Skip to main content
NetApp virtualization solutions
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ONTAPストレージとKVM仮想化環境の統合について学ぶ

共同作成者 netapp-jsnyder kevin-hoke

Libvirt を使用してONTAPストレージを KVM 仮想化環境と統合することで、パフォーマンス、データ保護、運用効率を向上させます。 ONTAP のエンタープライズ グレードのストレージ機能が、柔軟な NFS、iSCSI、およびファイバ チャネル プロトコルを通じて、KVM ホスト インフラストラクチャとゲスト仮想マシンのストレージ要件の両方をサポートする方法をご覧ください。

KVM ホストの共有ストレージにより、VM のライブ マイグレーションの時間が短縮され、環境全体でのバックアップや一貫したテンプレートのターゲットとして適しています。 ONTAPストレージは、KVM ホスト環境のニーズだけでなく、ゲスト ファイル、ブロック、オブジェクト ストレージの要求にも対応できます。

KVM ホストには、スイッチにケーブル接続された FC、イーサネット、またはその他のサポートされているインターフェイスがあり、 ONTAP論理インターフェイスと通信できる必要があります。常に確認する "Interoperability Matrix Tool"サポートされている構成の場合。

ONTAPの高レベル機能

共通の特徴

  • スケールアウトクラスタ

  • 安全な認証とRBACのサポート

  • ゼロトラストマルチ管理者サポート

  • 安全なマルチテナンシー

  • SnapMirrorを使用してデータを複製します。

  • スナップショットによるポイントインタイムコピー。

  • スペース効率の高いクローン。

  • 重複排除、圧縮などのストレージ効率機能。

  • Kubernetes のTrident CSI サポート

  • SnapLock

  • 改ざん防止スナップショットコピーロック

  • 暗号化サポート

  • コールド データをオブジェクト ストアに階層化するFabricPool 。

  • BlueXPとData Infrastructure Insights の統合。

  • Microsoft オフロード データ転送 (ODX)

NAS

  • FlexGroupボリュームは、負荷分散とスケーラビリティとともに高いパフォーマンスを提供するスケールアウト NAS コンテナです。

  • FlexCache を使用すると、データをグローバルに分散しながらも、データへのローカルの読み取りおよび書き込みアクセスを提供できます。

  • マルチプロトコルのサポートにより、NFS だけでなく SMB 経由でも同じデータにアクセスできるようになります。

  • NFS nConnect は、TCP 接続ごとに複数の TCP セッションを許可し、ネットワーク スループットを向上させます。これにより、最新のサーバーで利用可能な高速 NIC の利用率が向上します。

  • NFS セッション トランキングにより、データ転送速度が向上し、可用性とフォールト トレランスが向上します。

  • 最適化されたデータパス接続のための pNFS。

  • SMB マルチチャネルは、データ転送速度の向上、高可用性、フォールト トレランスを実現します。

  • ファイル権限のための Active Directory/LDAP との統合。

  • TLS 経由の NFS による安全な接続。

  • NFS Kerberos サポート。

  • RDMA 経由の NFS。

  • Windows と Unix の ID 間の名前マッピング。

  • 自律的なランサムウェア保護。

  • ファイル システム分析。

サン

  • SnapMirrorアクティブ同期を使用して、障害ドメイン全体にクラスターを拡張します。

  • ASAモデルは、アクティブ/アクティブ マルチパスと高速パス フェールオーバーを提供します。

  • FC、iSCSI、NVMe-oF プロトコルのサポート。

  • iSCSI CHAP 相互認証のサポート。

  • 選択的な LUN マップとポートセット。

ONTAPストレージを使用した Libvirt

Libvirt は、ディスク イメージとデータにNetApp ONTAPストレージを活用する仮想マシンを管理するために使用できます。この統合により、Libvirt ベースの仮想化環境内で、データ保護、ストレージ効率、パフォーマンス最適化などの ONTAP の高度なストレージ機能を活用できるようになります。 Libvirt がONTAPと対話する方法と、実行できることは次のとおりです。

  1. ストレージプール管理:

    • ONTAPストレージを Libvirt ストレージ プールとして定義します。NFS、iSCSI、ファイバ チャネルなどのプロトコルを介してONTAPボリュームまたは LUN を指すように Libvirt ストレージ プールを設定できます。

    • Libvirt はプール内のボリュームを管理します。ストレージ プールが定義されると、Libvirt は、 ONTAP LUN またはファイルに対応するそのプール内のボリュームの作成、削除、クローン作成、スナップショットを管理できます。

      • 例: NFS ストレージ プール: Libvirt ホストがONTAPから NFS 共有をマウントする場合、Libvirt で NFS ベースのストレージ プールを定義すると、共有内のファイルが VM ディスクに使用できるボリュームとして一覧表示されます。

  2. 仮想マシンのディスクストレージ:

    • VM ディスク イメージをONTAPに保存: ONTAPストレージによってサポートされる Libvirt ストレージ プール内に仮想マシン ディスク イメージ (qcow2、raw など) を作成できます。

    • ONTAP のストレージ機能のメリット: VM ディスクをONTAPボリュームに保存すると、ONTAP のデータ保護 (スナップショット、 SnapMirror、 SnapVault)、ストレージ効率 (重複排除、圧縮)、およびパフォーマンス機能のメリットが自動的に得られます。

  3. データ保護:

    • 自動データ保護: ONTAP は、スナップショットやSnapMirrorなどの機能を備えた自動データ保護を提供します。これにより、オンプレミス、リモート サイト、クラウドなど、他のONTAPストレージにデータを複製して貴重なデータを保護できます。

    • RPO と RTO: ONTAP のデータ保護機能を使用すると、低いリカバリポイント目標 (RPO) と高速なリカバリ時間目標 (RTO) を達成できます。

    • MetroCluster/ SnapMirrorアクティブ同期: 自動化されたゼロ RPO (リカバリポイント目標) とサイト間の可用性を実現するには、サイト間でストレッチ クラスターを作成できるONTAP MetroClusterまたは SMas を使用できます。

  4. パフォーマンスと効率:

    • Virtio ドライバー: ゲスト VM で Virtio ネットワークおよびディスク デバイス ドライバーを使用すると、パフォーマンスが向上します。これらのドライバーはハイパーバイザーと連携し、準仮想化の利点を提供するように設計されています。

    • Virtio-SCSI: スケーラビリティと高度なストレージ機能を実現するには、SCSI LUN に直接接続し、多数のデバイスを処理する機能を提供する Virtio-SCSI を使用します。

    • ストレージ効率: 重複排除、圧縮、コンパクト化などの ONTAP のストレージ効率機能は、VM ディスクのストレージ フットプリントを削減し、コスト削減につながります。

  5. ONTAP Select統合:

    • KVM 上のONTAP Select : NetApp のソフトウェア定義ストレージ ソリューションでONTAP Select は、KVM ホストに導入でき、Libvirt ベースの VM に柔軟でスケーラブルなストレージ プラットフォームを提供します。

    • ONTAP Select Deploy: ONTAP Select Deploy は、 ONTAP Selectクラスターを作成および管理するために使用されるツールです。 KVM または VMware ESXi 上の仮想マシンとして実行できます。

本質的には、Libvirt をONTAPと併用することで、Libvirt ベースの仮想化の柔軟性と拡張性をONTAPのエンタープライズ クラスのデータ管理機能と組み合わせることができ、仮想化環境に堅牢かつ効率的なソリューションを提供できます。

ファイルベースのストレージプール(SMB または NFS を使用)

dir および netfs タイプのストレージ プールは、ファイル ベースのストレージに適用できます。

ストレージ プロトコル ディレクター フェス ネットファイル 論理的 ディスク iscsi iSCSIダイレクト mpath

SMB / CIFS

はい

いいえ

はい

いいえ

いいえ

いいえ

いいえ

いいえ

NFS

はい

いいえ

はい

いいえ

いいえ

いいえ

いいえ

いいえ

netfs では、libvirt がファイルシステムをマウントしますが、サポートされるマウント オプションは制限されます。 dir ストレージ プールでは、ファイル システムのマウントをホスト上で外部的に処理する必要があります。そのためには、fstab または自動マウント機能を利用できます。自動マウント機能を利用するには、autofs パッケージをインストールする必要があります。 Autofs は、ネットワーク共有をオンデマンドでマウントする場合に特に便利で、fstab での静的マウントに比べてシステム パフォーマンスとリソース使用率を向上させることができます。一定期間アクティビティがないと、共有は自動的にアンマウントされます。

使用されるストレージ プロトコルに基づいて、必要なパッケージがホストにインストールされていることを検証します。

ストレージ プロトコル フェドーラ Debian パックマン

SMB / CIFS

sambaクライアント/cifs-utils

smbclient/cifs-utils

smbclient/cifs-utils

NFS

nfs-utils

nfs-共通

nfs-utils

NFS は Linux でのネイティブ サポートとパフォーマンスにより人気のある選択肢ですが、SMB は Microsoft 環境との統合に有効なオプションです。実稼働環境で使用する前に、必ずサポート マトリックスを確認してください。

選択したプロトコルに基づいて、適切な手順に従って SMB 共有または NFS エクスポートを作成します。https://docs.netapp.com/us-en/ontap-system-manager-classic/smb-config/index.html["SMB共有の作成"] "NFSエクスポートの作成"

fstab または自動マウント設定ファイルのいずれかにマウント オプションを含めます。たとえば、autofsでは、auto.kvmfs01とauto.kvmsmb01ファイルを使用して直接マッピングを使用するために、/etc/auto.masterに次の行を含めました。

/- /etc/auto.kvmnfs01 --timeout=60 /- /etc/auto.kvmsmb01 --timeout=60 --ghost

/etc/auto.kvmnfs01ファイルには、/mnt/kvmnfs01 -trunkdiscovery,nconnect=4 172.21.35.11,172.21.36.11(100):/kvmnfs01と記述されています。

smb の場合、/etc/auto.kvmsmb01 に /mnt/kvmsmb01 -fstype=cifs,credentials=/root/smbpass,multichannel,max_channels=8 ://kvmfs01.sddc.netapp.com/kvmsmb01 がありました。

プール タイプ dir の virsh を使用してストレージ プールを定義します。

virsh pool-define-as --name kvmnfs01 --type dir --target /mnt/kvmnfs01
virsh pool-autostart kvmnfs01
virsh pool-start kvmnfs01

既存のVMディスクは、

virsh vol-list kvmnfs01

NFS マウントに基づく Libvirt ストレージ プールのパフォーマンスを最適化するには、セッション トランキング、pNFS、nconnect マウント オプションの 3 つのオプションすべてが役立ちますが、その有効性は特定のニーズと環境によって異なります。最適なアプローチを選択するために役立つ内訳は次のとおりです。

  1. nconnect:

    • 最適な用途: 複数の TCP 接続を使用して、NFS マウント自体をシンプルかつ直接的に最適化します。

    • 動作方法: nconnect マウント オプションを使用すると、NFS クライアントが NFS エンドポイント (サーバー) と確立する TCP 接続の数を指定できます。これにより、複数の同時接続の恩恵を受けるワークロードのスループットが大幅に向上します。

    • 利点:

      • 設定は簡単: NFS マウント オプションに nconnect=<number_of_connections> を追加するだけです。

      • スループットの向上: NFS トラフィックの「パイプ幅」を増やします。

      • さまざまなワークロードに効果的: 汎用仮想マシンのワークロードに役立ちます。

    • 制限事項:

      • クライアント/サーバー サポート: クライアント (Linux カーネル) と NFS サーバー ( ONTAPなど) の両方で nconnect をサポートする必要があります。

      • 飽和: nconnect 値を非常に高く設定すると、ネットワーク回線が飽和する可能性があります。

      • マウントごとの設定: nconnect 値は最初のマウントに対して設定され、同じサーバーおよびバージョンへの後続のすべてのマウントはこの値を継承します。

  2. セッショントランキング:

    • 最適な用途: NFS サーバーへの複数のネットワーク インターフェイス (LIF) を活用してスループットを向上させ、ある程度の回復力を実現します。

    • 仕組み: セッション トランキングにより、NFS クライアントは NFS サーバー上の異なる LIF への複数の接続を開くことができ、複数のネットワーク パスの帯域幅を効果的に集約できます。

    • 利点:

      • データ転送速度の向上: 複数のネットワーク パスを活用します。

      • 回復力: 1 つのネットワーク パスに障害が発生した場合、他のパスは引き続き使用できますが、障害が発生したパスで進行中の操作は、接続が再確立されるまで停止する可能性があります。

    • 制限事項: 依然として単一の NFS セッション: 複数のネットワーク パスを使用しますが、従来の NFS の基本的な単一セッションの性質は変わりません。

    • 構成の複雑さ: ONTAPサーバー上でトランキング グループと LIF を構成する必要があります。ネットワーク設定: マルチパスをサポートするには適切なネットワーク インフラストラクチャが必要です。

    • nConnect オプションを使用する場合: 最初のインターフェースにのみ nConnect オプションが適用されます。インターフェースの残りの部分は単一の接続になります。

  3. pNFS:

    • 最適な用途: 並列データ アクセスとストレージ デバイスへの直接 I/O のメリットを享受できる、高パフォーマンスのスケールアウト ワークロード。

    • 仕組み: pNFS はメタデータとデータ パスを分離し、クライアントがストレージから直接データにアクセスできるようにすることで、データ アクセスに NFS サーバーをバイパスする可能性があります。

    • 利点:

      • スケーラビリティとパフォーマンスの向上: 並列 I/O のメリットを享受できる HPC や AI/ML などの特定のワークロード向け。

      • 直接データ アクセス: クライアントがストレージから直接データを読み書きできるようにすることで、待ち時間が短縮され、パフォーマンスが向上します。

      • nConnect オプションを使用: すべての接続に nConnect が適用され、ネットワーク帯域幅が最大化されます。

    • 制限事項:

      • 複雑さ: pNFS は、従来の NFS や nconnect よりもセットアップと管理が複雑です。

      • ワークロード固有: すべてのワークロードが pNFS から大きなメリットを得られるわけではありません。

      • クライアント サポート: クライアント側で pNFS のサポートが必要です。

推奨事項: * NFS 上の汎用 Libvirt ストレージ プールの場合: nconnect マウント オプションから開始します。実装は比較的簡単で、接続数を増やすことでパフォーマンスを大幅に向上させることができます。 * より高いスループットと回復力が必要な場合: nconnect に加えて、または nconnect の代わりにセッション トランキングを検討してください。これは、Libvirt ホストとONTAPシステム間に複数のネットワーク インターフェイスがある環境で役立ちます。 * 並列 I/O のメリットを享受する要求の厳しいワークロードの場合: 並列データ アクセスを活用できる HPC や AI/ML などのワークロードを実行している場合は、pNFS が最適なオプションになる可能性があります。ただし、セットアップと構成が複雑になることに備えてください。常にさまざまなマウント オプションと設定を使用して NFS パフォーマンスをテストおよび監視し、特定の Libvirt ストレージ プールとワークロードに最適な構成を決定します。

ブロックベースのストレージプール(iSCSI、FC、NVMe-oF 対応)

dir プール タイプは、共有 LUN または名前空間上の OCFS2 や GFS2 などのクラスター ファイル システム上でよく使用されます。

使用されているストレージ プロトコルに基づいて、ホストに必要なパッケージがインストールされていることを確認します。

ストレージ プロトコル フェドーラ Debian パックマン

iSCSI

iscsi-initiator-utils、device-mapper-multipath、ocfs2-tools/gfs2-utils

open-iscsi、マルチパスツール、ocfs2-tools/gfs2-utils

open-iscsi、マルチパスツール、ocfs2-tools/gfs2-utils

FC

デバイスマッパーマルチパス、ocfs2ツール/gfs2ユーティリティ

マルチパスツール、ocfs2ツール/gfs2ユーティリティ

マルチパスツール、ocfs2ツール/gfs2ユーティリティ

NVMe-oF

nvme-cli、ocfs2-tools/gfs2-utils

nvme-cli、ocfs2-tools/gfs2-utils

nvme-cli、ocfs2-tools/gfs2-utils

ホストの iqn/wwpn/nqn を収集します。

# To view host iqn
cat /etc/iscsi/initiatorname.iscsi
# To view wwpn
systool -c fc_host -v
# or if you have ONTAP Linux Host Utility installed
sanlun fcp show adapter -v
# To view nqn
sudo nvme show-hostnqn

LUN または名前空間を作成するには、適切なセクションを参照してください。

FC ゾーニングまたはイーサネット デバイスがONTAP論理インターフェイスと通信するように設定されていることを確認します。

iSCSIの場合、

# Register the target portal
iscsiadm -m discovery -t st -p 172.21.37.14
# Login to all interfaces
iscsiadm -m node -L all
# Ensure iSCSI service is enabled
sudo systemctl enable iscsi.service
# Verify the multipath device info
multipath -ll
# OCFS2 configuration we used.
o2cb add-cluster kvmcl01
o2cb add-node kvm02.sddc.netapp.com
o2cb cluster-status
mkfs.ocfs2 -L vmdata -N 4  --cluster-name=kvmcl01 --cluster-stack=o2cb -F /dev/mapper/3600a098038314c57312b58387638574f
mount -t ocfs2 /dev/mapper/3600a098038314c57312b58387638574f1 /mnt/kvmiscsi01/
mounted.ocfs2 -d
# For libvirt storage pool
virsh pool-define-as --name kvmiscsi01 --type dir --target /mnt/kvmiscsi01
virsh pool-autostart kvmiscsi01
virsh pool-start kvmiscsi01

NVMe/TCPでは、

# Listing the NVMe discovery
cat /etc/nvme/discovery.conf
# Used for extracting default parameters for discovery
#
# Example:
# --transport=<trtype> --traddr=<traddr> --trsvcid=<trsvcid> --host-traddr=<host-traddr> --host-iface=<host-iface>
-t tcp -l 1800 -a 172.21.37.16
-t tcp -l 1800 -a 172.21.37.17
-t tcp -l 1800 -a 172.21.38.19
-t tcp -l 1800 -a 172.21.38.20
# Login to all interfaces
nvme connect-all
nvme list
# Verify the multipath device info
nvme show-topology
# OCFS2 configuration we used.
o2cb add-cluster kvmcl01
o2cb add-node kvm02.sddc.netapp.com
o2cb cluster-status
mkfs.ocfs2 -L vmdata1 -N 4  --cluster-name=kvmcl01 --cluster-stack=o2cb -F /dev/nvme2n1
mount -t ocfs2 /dev/nvme2n1 /mnt/kvmns01/
mounted.ocfs2 -d
# To change label
tunefs.ocfs2 -L tme /dev/nvme2n1
# For libvirt storage pool
virsh pool-define-as --name kvmns01 --type dir --target /mnt/kvmns01
virsh pool-autostart kvmns01
virsh pool-start kvmns01

FCの場合、

# Verify the multipath device info
multipath -ll
# OCFS2 configuration we used.
o2cb add-cluster kvmcl01
o2cb add-node kvm02.sddc.netapp.com
o2cb cluster-status
mkfs.ocfs2 -L vmdata2 -N 4  --cluster-name=kvmcl01 --cluster-stack=o2cb -F /dev/mapper/3600a098038314c57312b583876385751
mount -t ocfs2 /dev/mapper/3600a098038314c57312b583876385751 /mnt/kvmfc01/
mounted.ocfs2 -d
# For libvirt storage pool
virsh pool-define-as --name kvmfc01 --type dir --target /mnt/kvmfc01
virsh pool-autostart kvmfc01
virsh pool-start kvmfc01

注意: デバイスのマウントは /etc/fstab に含めるか、自動マウント マップ ファイルを使用する必要があります。

Libvirt は、クラスター化されたファイル システム上で仮想ディスク (ファイル) を管理します。基盤となる共有ブロック アクセスとデータ整合性を処理するために、クラスター化されたファイル システム (OCFS2 または GFS2) に依存します。 OCFS2 または GFS2 は、Libvirt ホストと共有ブロック ストレージ間の抽象化レイヤーとして機能し、共有ストレージに保存されている仮想ディスク イメージへの安全な同時アクセスを可能にするために必要なロックと調整を提供します。