NFS vs iSCSI – VMware VM ファイルを保存するためにどのプロトコルを選択すべきですか?この質問は、ESXi ホスト間で移行する必要がある仮想マシン(VM)を保存するために共有ストレージを構成する必要がある場合や、クラスタリング機能を使用する場合、およびサーバーに物理ディスクをアタッチするための空きスロットがない場合に通常発生します。
大規模データセンターに VMware vSphere を展開する組織では、費用がかかる Fibre Channel (FC) または Fibre Channel over Ethernet (FCoE) を使用することが一般的です。しかし、NFS と iSCSI は、これらの共有プロトコルを使用してファイル共有を構成するために必要なハードウェアが手頃な価格であるため、VMware vSphere インフラストラクチャに中小規模のデータセンターで魅力的です。このブログ投稿では、VMware vSphere 仮想インフラストラクチャでそれらを使用することに焦点を当てて、NFS vs iSCSI を比較します。
NFS とは何ですか?
Network File System(NFS)は、ネットワーク上の他のコンピュータとサーバーのディスクまたはディスク配列に保存されているファイルを共有できるネットワークプロトコルです。NFS は SUN Microsystems によって開発され、最初のバージョンは 1984 年に発表されました。この投稿を書いている時点での最新の NFS の実装はバージョン 4.1 です。バージョン 4.2 は開発中であり、まだ本番で使用するために発表されていません。
新しいバージョンの NFS では、仮想化ストレージに役立つ機能を含む、機能の追加や改善が行われています。NFS v4.1 では、複数のユーザーが同じファイルを共有し、データの整合性(並行アクセス)を確保するメカニズムが提供されます。操作用の複数のスレッドがサポートされています。
NFSは、Open Systems Interconnect(OSI)モデルのアプリケーション層で動作するプロトコルです。クライアントは、NFSサーバーに対してファイルやディレクトリの操作を行うために、リモートプロシージャコール(RPC)リクエストを送信してファイルにアクセスします。
RPCリクエストは、プレゼンテーション層で動作するXDRプロトコル(外部データ表現)に送信されます。XDRは、プラットフォーム間のデータ抽象化のための標準であり、コンピューティングシステムのアーキテクチャに依存しない統一された正準形式のデータ表現を記述します。クライアントがデータを送信する際、RPCクライアントはローカルデータを正準形式に変換し、サーバーは逆の操作を行います。
データの統一が完了すると、クライアント側のRPCサービスはリモートプロシージャの要求とそのサーバーでの実行を保証します(セッション層の機能を提供します)。この段階で、NFS固有のレイヤーの説明は終了です。次に、データは標準のTCPまたはUDPデータユニットにカプセル化され、OSIモデルの下位レイヤーに転送されます。
OSIレイヤー | プロトコル |
アプリケーション | NFS |
プレゼンテーション | XDR |
セッション | RPC |
トランスポート | TCP |
ネットワーク | IP |
データリンク | Ethernet |
物理 | – |
NFSはファイルレベルでデータを共有します。標準のネットワークアダプタには、イーサネットインタフェースとRJ-45ポートがあり、NFS共有ストレージを実装するために使用できます。
最古のNFSバージョンは、IPネットワークを介してUDP経由で動作し、新しいバージョン(NFS v2およびv3)はTCPとUDPで動作します。 NFS 4.0および4.1は、標準としてIPv4上のTCPを使用します。 NFS v4は、ファイアウォールとインターネットを介して動作します。
VMware vSphere ESXi 6.0およびより高いESXiバージョンは、NFS 3.0およびNFS 4.1をサポートしています。 ESXiには、TCP/IP経由でNFSサーバに接続する組み込みのNFSクライアントが含まれています。 NFSバージョン3.0および4.1を介して接続するためには、異なる2つのNFSクライアントが使用されます。 新しいNFSデータストアを作成する際に使用するNFSバージョンを選択できます。 VMwareは、NFS v.4.1を使用した場合に以下の機能をサポートしていません:
- ストレージ DRS
- ストレージI/Oコントロール
- サイトリカバリマネージャ
NFSデータストアを使用すると、仮想マシンのテンプレートやオペレーティングシステムのインストール用のISOイメージを格納する際に便利です。
iSCSIとは何ですか?
Internet Small Computer Interface(iSCSI)は、データを共有するためにネットワーク内のオブジェクト(イニシエータとターゲット)の相互作用を保証するネットワークプロトコルです。 iSCSIイニシエータはクライアント側に構成され、iSCSIターゲットはサーバ側に構成されます。
<iSCSIのイニシエーターは、ソフトウェアベースとハードウェアベースの両方があります。ハードウェアベースのものは、クライアントマシンの中央処理ユニット(CPUまたはプロセッサ)の負荷を軽減し、ハードウェアホストバスアダプタ(HBA)のインストールが必要です。ハードウェアベースのiSCSI HBAは、イーサネットインターフェースを備えたネットワークインターフェースコントローラ(NIC)です。このiSCSI対NFS比較では、ソフトウェアベースのiSCSIイニシエーターの使用を考慮しています。iSCSIは2003年に導入され、RFC 3720で説明されています。
iSCSIはセッションレイヤープロトコルであり(OSIモデルのレイヤー5で動作します)、TCP / IPスタックの上で動作します。データはブロックレベルで共有されます、NFSとは異なりますが、FCと同様です。これは、iSCSI対NFSの比較で重要なポイントです。SCSIコマンドはTCP / IPデータユニットにカプセル化され、標準のイーサネットネットワークを使用して転送されます。その結果、1台のコンピューターはネットワークを介して別のコンピューターに配置されたストレージブロックデバイスにSCSIコマンドを送信できます。
レイヤー | 説明 |
アプリケーション | ファイルシステム、データベースなど |
SCSI | SCSIデータ、SCSIコマンド、SCSIステータス |
iSCSI | iSCSIプロトコルサービス、iSCSI Qualified Name (IQN)、Internet Storage Name Service (iSNS)、CHAP認証など |
TCP | エラー制御メカニズムを備えたプロトコル(通常はTCP/IPスタックで動作) |
IP | ネットワーク通信およびルーティングのためのプロトコル |
Ethernet | スイッチ、ケーブル、ポート(コネクタ)、プロトコル |
注意: iSCSIがVMware VMリカバリにどのように使用されるかに関する興味深い事実があります。例えば、NAKIVO Backup & ReplicationでインスタントVMリカバリを使用して、バックアップから直接ESXiホスト上でVMを実行する場合、VMは選択したESXiホスト上に作成され、仮想ディスクはiSCSIプロトコルを使用してVMにRDMディスクとして仮想互換モードでマウントされます。
VMware NFS vs iSCSI – 主な違い
NFSとiSCSIは、銅線を使用して展開された1ギガビットおよび10ギガビットイーサネットネットワーク(1GbEおよび10GbE)で動作できます。より高いネットワーク速度が良いです。 ネットワークトポロジについてもっと詳しく読んでください。VMware vSphereで共有データストアを使用してVMファイルを保存する場合、NFSとiSCSIの両方の実装を使用して、VMのライブマイグレーション、負荷分散、データストア間でのVMマイグレーションが行えます。両方の共有プロトコルは、TCP / IPネットワーク上での多層データカプセル化のメカニズムによって引き起こされる著しいオーバーヘッドを持っています。
NFSは、大多数のベンダーのNASデバイスでサポートされています。たとえば、SynologyやQNAPなどです。しかし、現在ではiSCSIをサポートしているNASを選択することは難しくありません。
このVMware NFS対iSCSIの比較を詳しく見てみましょう。
負荷分散
ネットワークパスが1つ失敗した場合や過負荷の場合、マルチパスは複数のパスがある場合にサーバーとストレージ間で負荷分散を行う能力を提供します。
NFS 4.1は、サーバーでセッショントランキングが利用可能な場合(ただし、クライアントIDトランキングではない)、マルチパスをサポートしています。その結果、複数のIPアドレスから単一のNFSボリュームにアクセスできます。 NFS v3を使用する場合は、ネットワーク負荷分散にDNSラウンドロビンを使用します。
VMware vSphereでは、iSCSIマルチパスはVMkernelネットワークアダプターのレベルで機能します。vSphereでのiSCSI負荷分散には、ポートバインディングを使用できます。
Caching
NFSを使用する場合、ファイルシステムキャッシュを持つファイルシステムがNFSサーバーにあり、クライアントマシンはNFSサーバー上のメタデータを一貫してチェックする必要があります。 NFS v3およびv4では非同期データ書き込みがサポートされていますが、メタデータの更新は同期的です。
iSCSIを使用する場合、ファイルシステムはクライアントデバイスによって作成され、ブロックレベルで共有ストレージにアクセスした後に作成されます(VMware vSphereの場合、ESXiホストはiSCSI LUN上のVMFSファイルシステムを作成します)。 キャッシングポリシーはiSCSI共有ストレージ用のファイルシステムによって定義され、ファイルシステムキャッシュはクライアント側にあります。 たとえば、共有プロトコルとしてiSCSIを使用し、ファイルシステムとしてext3を使用する場合、データおよびメタデータの更新に完全なライトバックキャッシュがあります。
最も現代的なファイルシステムは非同期メタデータ更新を使用し、データの回復にはログベースのジャーナリングが使用されます。 一般的に、非同期データ更新(iSCSIで使用される)は、NFSで使用される同期更新と比較して、データおよびメタデータの永続性において信頼性が低いです。
信頼性
NFS。 NICチーミングを使用してネットワーク障害に対処できます。 1つのNICが故障した場合、別のNICが引き続き動作できます。
iSCSI。 VMware Pluggable Storage Architecture(PSA)は、iSCSIアレイと連携する際にフェイルオーバー実装のためにStorage Array Typeプラグインを使用します。 iSCSIバインディングには、異なるサブネット上の複数のiSCSIターゲットをiSCSIイニシエータにマッピングする必要があります。
iSCSIとNFSの両方がTCPをカプセル化に使用するため、データ配信はネットワークレベルで確認されます。
iSCSIストレージ上のVMFSは、VMのスレンダープロビジョニングされた仮想ディスクを保存する場合、壊れやすい場合があります。停電が発生すると、ボリュームが回復不能になる可能性があります。このような状況でのNFSデータストアの動作は、わずかに信頼性が高いです。定期的なVMwareのバックアップを実行することで、これらの問題を緩和できます。
セキュリティ
一般的にiSCSIトラフィックは暗号化されていませんが、これはiSCSIトラフィックを保護できないことを意味するわけではありません。名前とパスワードを使用した認証は、iSCSI共有のためにサポートされています。チャレンジ ハンドシェイク 認証プロトコル(CHAP)を使用すると、サーバーとクライアントが互いを信頼していることを確認できます。
NFSはホストベースの認証を使用します。NFSのデフォルト構成では暗号化は提供されません(sys=system)、しかしNFSv4を有効にしてKerberosを使用すると(sec=krb5p)、接続は安全になります。NFSサーバーの構成では、NFS共有へのアクセスを許可するホストのIPアドレスを定義する必要があります。複数のホストまたは全サブネットを定義することもできます。例えば、広く知られているSMBファイルベースの共有プロトコルはユーザーベースの認証に依存しています。
専用のVLANを設定するか、別の(プライベート)物理ネットワークを使用することが、VMware vSphereで共有iSCSIおよびNFSストレージを使用する際の推奨される方法です。このアプローチにより、ストレージトラフィックを他の種類のトラフィックから分離することができます。NFS v3には、NFS v4.1にあるようなセキュリティ機能がありません。ESXiサーバーは、NFS共有をルートアクセスでマウントします(Kerberosが使用されていない場合)。したがって、セキュアな構成を行う際には、これを考慮してください。また、VLANとVXLANについても読んでください。
NFS v.4.1は、データ暗号化標準(DES)に加えて、Kerberos認証をサポートしています。Kerberosの暗号アルゴリズムにより、不正なユーザーがNFSトラフィックにアクセスするのを防ぎます。ESXiは、Kerberosのkrb5およびkrb5i実装をサポートしています。ESXi 7.0は、NFS 4.1 Kerberos暗号化とAUTH_SYSセキュリティメカニズムをサポートしています(ただし、同時にはサポートしていません)。
VMware NFS vs iSCSI – Raw Device Mapping
ソフトウェアiSCSI実装では、パフォーマンスはわずかに向上しますが、クライアントホストのCPU負荷も高くなります。 iSCSIはまた、ネットワークに高い負荷をかけます。 iSCSIはより多くのネットワークトラフィックとネットワーク負荷を生成しますが、NFSを使用するとよりスムーズで予測可能です。 大量の書き込み操作を実行すると、NFS共有でパフォーマンスの低下が見られる場合があります。
vSphereでNFSを使用する場合、ストレージ側でvStorage API for Array Integration(VAAI)をサポートするNFSを使用する方が良いです。VAAIを使用すると、NFSデータストア上で厚いプロビジョニングされた仮想ディスクを作成できます。デフォルトでは、NFSデータストア上で薄いプロビジョニングされたディスクが作成されます。NFSとiSCSIの両方がジャンボフレームをサポートして、ネットワークのパフォーマンスを向上させることができます。
iSCSI vs NFSの速度比較の最後に、パフォーマンスはストレージアレイベンダーにも依存することを述べるべきです。
同時アクセス
iSCSIはブロックデバイスへの同時または並行したデータアクセスをサポートしていません。データは2つのホップ間で共有する必要があります。ただし、ファイルシステムがファイルへの並行アクセスをサポートしている場合(例:VMFSまたはGFS)、ファイルシステムのレベルで並行アクセスが許可されます。VMware vSphereでiSCSI共有を使用する場合、共有への同時アクセスがVMFSレベルで確保されます。
NFSは、ロックメカニズムとデータの一貫性を保持するためのクローズ・トゥ・オープンの一貫性メカニズムを使用して、共有ファイルへの同時アクセスをサポートしています。NFS v3とNFS v4.1は異なるメカニズムを使用しています。NFS v3ではネットワークロックマネージャープロトコル(NLM)を使用し、NFS v4.1ではネイティブプロトコルが指定されたロックを使用します。VMware ESXiでNFS v3を使用してファイル共有にアクセスする場合、VMwareはこの場合に独自のロックプロトコルを提供するため、ESXiはNLMプロトコルを使用しません。NFS v3共有を使用してVMware vSphereでファイル共有にアクセスすると、.lck-file_idでロックファイルの名前付けが行われます。
NFS v4.1は同時アクセス用にファイルをロックするために予約を使用します。NFSファイル共有を作成する場合、すべてのクライアントは同じバージョンのNFSプロトコルを使用する必要があります(たとえば、すべてのESXiホストはNFS v.4.1経由で共有に接続します)。互換性のない2つのクライアントがNFSサーバー上のファイルに異なるバージョンのNFSアクセスを使用すると、一貫性のない動作やデータの破損が発生する可能性があります。
構成の難しさ
NFSを使用する場合、サーバーとクライアントの構成は容易です。共有ストレージを構成するにはiSCSIを使用する方が難しいです。ストレージとホストのためにIQNを構成する必要があり、iSCSIサービス、LUN、およびマスキングの構成を行う必要があります。また、セキュリティ上の理由から複数のVLANを構成する必要があります(iSCSI通信に使用されるネットワークセグメントを分離して、より高いセキュリティレベルを提供します)。
VMデータを保存するために使用できるVMware仮想ボリュームについて読む。
VMware vSphereにおけるNFS対iSCSI – 要約表
このiSCSI対NFS VMware比較の要約表で、各データ共有プロトコルの主な特徴を強調しましょう。
iSCSI | NFS | |
データ共有 | ブロックレベル | ファイルレベル |
VM用のRaw Device Mapping | はい | いいえ |
構成の難しさ | 中程度 | 簡単 |
SANからの起動 | はい | いいえ |
エラーチェック | はい | はい |
セキュリティ機能 | CHAP | Kerberos |
Storage vMotion | はい | はい |
Storage DRS | はい | はい |
結論
iSCSIとNFSの両方の共有プロトコルはVMware vSphereで使用するには十分に成熟しています。 iSCSIはデータをブロックレベルで共有し、NFSはファイルレベルで共有します。性能はほぼ同じですが、一部の状況ではiSCSIがより良い結果を提供できます。 VMのRDMディスクはiSCSIとNFSでは使用できますが、iSCSIではNFSでは使用できません。
両方のネットワーク共有プロトコルは信頼性があります。しかし、データの損失やダウンタイムを避けるためには、第三者のデータ保護ソリューションを使用する必要があります。共有ストレージ上でのデータの損失を避けるために、停電やその他のハードウェアの障害を避けてください。無停電電源装置を使用し、定期的なバックアップを作成してください。
Source:
https://www.nakivo.com/blog/nfs-vs-iscsi-for-accessing-vm-data/