この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

Longhorn V2データエンジン

Longhorn V2データエンジンは、ストレージパフォーマンス開発キット(SPDK)の力を活用して、I/Oレイテンシを大幅に削減し、IOPSとスループットを向上させます。その結果、多様なワークロードの要求に応えることができる高性能なストレージソリューションが実現します。

Longhorn V2データエンジンは*実験的*な機能であり、プロダクション環境での利用は推奨されません。

前提条件

アクティブなLonghorn V2データエンジンを持つすべてのノードには、以下の専用リソースが必要です:

  • Longhornインスタンスマネージャーポッド用の1つのCPUコア

  • 2 GiBのRAM(1024 × 2 GiBの巨大ページとして割り当て)

  • データストレージ用のローカルNVMeディスクが少なくとも1つ必要です

制限

Longhorn V2データエンジンは現在、以下の操作をサポートしていません:

  • バックイメージの作成と使用

  • ボリューム暗号化

SSDおよびその他の非NVMeディスクは、unmap操作をサポートしていないSPDK AIO bdevドライバーを使用して管理されます。非NVMeディスクを使用している場合は、ファイルシステムのトリミングを避けてください。これによりI/Oエラーや仮想マシンの一時停止が発生します。たとえば、Linux仮想マシンでext4ファイルシステムを作成する際は、mkfs.ext4 -E nodiscard /dev/vdb`を使用してください(/dev/vdb`がデバイスパスであると仮定)。Windows仮想マシンでは、コマンド`fsutil behavior set disabledeletenotify NTFS 1`を実行することでNTFSのトリミングを無効にできます。

使用方法

Longhorn V2データエンジンは、新しく作成されたボリュームとイメージにのみ利用可能です。既存のボリューム、仮想マシンイメージ、および仮想マシンのルートボリュームは、引き続きV1データエンジンを使用します。

  1. SUSE Virtualization UIで、詳細設定 → に移動します

  2. `longhorn-v2-data-engine-enabled`を`true`に設定します。

    SUSE VirtualizationはLonghorn V2データエンジンに必要なカーネルモジュールを自動的にロードし、すべてのノードで1024 × 2 MiBサイズの巨大ページ(たとえば、2 GiBのRAM)を割り当てようとします。

    この設定を変更すると、すべてのノードでRKE2が自動的に再起動しますが、実行中の仮想マシンのワークロードには影響しません。

    "not enough hugepages-2Mi capacity"というフレーズを含むエラーメッセージが表示された場合は、エラーが解決されるまでしばらくお待ちください。エラーが続く場合は、影響を受けたノードを再起動してください。

    特定のノード(例えば、処理能力とメモリリソースが少ないノード)でLonghorn V2データエンジンを無効にするには、*ホスト*画面に移動し、ターゲットノードに次のラベルを追加します:

    • ラベル:node.longhorn.io/disable-v2-data-engine

    • 値:true

  3. *ホスト*画面に移動し、マルチディスク管理で説明されているように、各ノードに追加のディスクを追加します。

    各追加ディスクの`Provisioner`を`Longhorn V2 (CSI)`に設定します。

    SUSE Virtualizationは Longhornディスクドライバーを`auto`に設定し、NVMeディスクがSPDK NVMe bdevドライバーを使用するようにします。これにより、最高のパフォーマンスが提供され、トリム(廃棄とも呼ばれる)などの高度な操作もサポートされます。

    SSDおよびその他の非NVMeディスクは、SPDK AIO bdevドライバーを使用して管理されます。このドライバーは、_4096バイトの偶数倍_のディスクサイズを必要とします。このサイズ要件を満たさない非NVMeディスクは追加できません。さらに、SPDK AIO bdevドライバーはunmap操作をサポートしていません。非NVMeディスクを使用している場合は、ファイルシステムのトリミングを避けてください。これによりI/Oエラーや仮想マシンの一時停止が発生します。

  4. *高度な→ストレージクラス*に移動し、ストレージクラスの作成で説明されているように新しいストレージクラスを追加します。

    `Provisioner`を`Longhorn V2 (CSI)`に設定します。

  5. 次の作成時に新しいストレージクラスを使用します:

    • ボリューム(*ボリューム*画面または仮想マシン作成中)

    • イメージ(*イメージ*画面)

      新しいストレージクラスを使用して作成されたボリュームとイメージは、Longhorn V2データエンジンによって提供されます。

SUSE Virtualization v1.4.xからのアップグレード

SUSE Virtualization v1.4.xはSUSE Storage v1.7.xを使用しており、V2ボリュームが接続された仮想マシンをライブマイグレーションすることができません。さらに、V2データエンジンは仮想マシンイメージおよびブートボリュームには使用できません。これらの制限は、SUSE Virtualization v1.5.0以降のバージョンには存在せず、SUSE Storage v1.8.1以降のバージョンを使用しています。ただし、これは_アップグレード後_ SUSE Virtualizationに作成されたボリュームおよびイメージにのみ適用されます。

SUSE Virtualization v1.4.xを使用して作成されたV2ストレージクラスでは、`migratable`オプションが`false`に設定されています。他のすべてのストレージクラスのプロパティと同様に、一度設定されると変更できません。同様に、SUSE Virtualization v1.4.xを使用して作成されたV2ボリュームは、アップグレード後も移行不可能なままです。SUSE Virtualization v1.4.xでV2データエンジンを使用し、その後SUSE Virtualization v1.5にアップグレードする場合は、新しいV2ストレージクラスを作成する必要があります。`migratable`オプションはデフォルトで`true`に設定されているため、この新しいV2ストレージクラスを使用して作成されたボリュームおよびイメージはライブマイグレーションできます。

  • SPDK AIO bdevドライバーを使用している場合(具体的には、`/dev/sd*`デバイスパスを使用してディスクが追加された場合)、アップグレード前に作成されたV2ボリュームは使用できなくなり、アップグレード後に回復できません。詳細については、 issue #10461を参照してください。

  • SPDK NVMe bdevドライバーを使用している場合(具体的には、`/dev/nvme*`デバイスパスを使用してディスクが追加された場合)、アップグレード前に作成されたV2ボリュームは引き続き機能します。ただし、これらのボリュームはSUSE Storage v1.7.xエンジンを引き続き使用し、移行不可能なままです。必要に応じて、データをエクスポートし、新しい移行可能なボリュームを作成できます。

  • V2ボリュームが接続されているすべての仮想マシンは、アップグレードを開始する前に停止する必要があります。アクティブなV2ボリュームは、「システムサービスのアップグレード」フェーズ中にアップグレード処理を停止させる原因となります。`apply-manifests`ポッドのログには、次のような繰り返しメッセージが表示されます:

    instance-manager (aio)(v2) (image=longhornio/longhorn-instance-manager:v1.8.1) state is not running on node harvester-node-0, will retry...

    V2ボリュームを使用しているすべての仮想マシンを停止すると、アップグレードを進めることができます。

SPDK NVMe bdevドライバーを使用している場合(具体的には、`/dev/nvme*`デバイスパスを使用してディスクが追加された場合)で、既存の仮想マシンに非移行可能なV2ボリュームが接続されている場合、次の手順を実行することでライブマイグレーション可能なボリュームに移行できます:

  1. 仮想マシンを停止します。

  2. 各接続されたV2ボリュームを新しいV2ストレージクラスを使用するイメージにエクスポートします(`migratable`オプションが`true`に設定されています)。

  3. ボリュームがイメージにエクスポートされたら、仮想マシンを編集し、*ボリューム*タブで次の操作を行います:

    • 既存のV2ボリュームを削除します。

    • エクスポートされたボリュームから作成されたイメージを追加します。

  4. 仮想マシンを起動します。

    この手順は、コピーするデータの量によって時間がかかることがあります。