仮想マシン(VM)データへのアクセスにおけるNFSとiSCSIの比較
NFS 対 iSCSI – VMware VM ファイルの保存にはどちらのプロトコルを選ぶべきか?この疑問は、ESXi ホスト間で移行する必要がある仮想マシン(VM)を保存するために共有ストレージを設定する際、特に次のような用途で利用する場合によく浮上します。 特徴量のクラスタリング、およびサーバーに物理ディスクを接続するための空きスロットがない場合です。
大規模なデータセンターで VMware vSphere を導入する組織では、コストのかかるファイバーチャネル(FC)やファイバーチャネル・オーバー・イーサネット(FCoE)の使用を好む傾向があります。 しかし、VMware vSphere インフラストラクチャに利用される中小規模のデータセンターにおいては、NFS や iSCSI が魅力的です。なぜなら、これらの共有プロトコルでファイル共有を構成するために必要なハードウェアは、より手頃な価格だからです。このブログ記事では、VMware vSphere 仮想インフラストラクチャでの利用に焦点を当て、NFS と iSCSI を比較します。
NFSとは何ですか?
ネットワーク・ファイル・システム(NFS)は、サーバーのディスクまたはディスク・アレイに保存されたファイルを、ネットワーク内の他のコンピュータと共有できるようにするネットワークプロトコルです。NFSはSUN Microsystemsによって開発され、最初のバージョンは1984年に発表されました。この記事の執筆時点では、NFSの最新実装はバージョン4.1です。バージョン4.2は開発中であり、まだ本番環境での使用には公開されていません。
NFSの各新バージョンでは、仮想化ストレージに有用な機能を含め、新機能や改良が追加されてきました。NFS v4.1では、複数のユーザーが同じファイルを共有し、データの整合性を確保するためのメカニズム(並列アクセス)が提供されています。操作のためのマルチスレッドもサポートされています。
NFSは、オープンシステム相互接続(OSI)モデルのアプリケーション層で動作するプロトコルです。 クライアントは、NFSサーバー上のファイルやディレクトリに対して操作を行うために、リモートプロシージャコール(RPC)リクエストをNFSサーバーに送信することでファイルにアクセスします。
RPCリクエストは、プレゼンテーション層で動作し、プラットフォーム間のデータ抽象化の標準であるXDRプロトコル(eXternal Data Representation)に送信されます。XDRは、コンピューティングシステムのアーキテクチャに依存しない、統一された標準的なデータ表現形式を規定しています。 クライアントがデータを送信する際、RPCクライアントはローカルデータを正規形式に変換し、サーバー側で逆の操作が行われます。
データの統一が完了すると、クライアント側のRPCサービスがリモートプロシージャの要求とサーバー上での実行を保証します(セッション層の機能を提供します)。この段階で、NFS固有のレイヤーに関する説明は終了です。 次に、データは標準的なTCPまたはUDPデータ単位にカプセル化され、OSIモデルの下位層へと転送されます。
| OSIモデル | プロトコル |
| 用途 | NFS |
| プレゼンテーション | XDR |
| セッション | RPC |
| 輸送 | TCP |
| ネットワーク | IP |
| データリンク | イーサネット |
| 物理的 | – |
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のバージョン3.0以降では、NFS 3.0およびNFS 4.1がサポートされています。ESXiには、TCP/IP経由でNFSサーバーに接続する組み込みのNFSクライアントが含まれています。 NFS バージョン 3.0 および 4.1 経由での接続には、それぞれ異なる NFS クライアントが使用されます。新しい NFS データストアを作成する際に、使用する NFS バージョンを選択できます。NFS v.4.1 を使用する場合、VMware は以下の機能をサポートしていません:
- ストレージ DRS
- ストレージI/O制御
- Site Recovery Manager
NFSデータストアは、仮想マシンにオペレーティングシステムをインストールするためのVMテンプレートやISOイメージを保存する際に便利です。
iSCSIとは何ですか?
インターネット・スモール・コンピュータ・インターフェース(iSCSI)は、データ共有のためにネットワーク内のオブジェクト(イニシエーターとターゲット)間の連携を保証するネットワークプロトコルです。 iSCSIイニシエーターはクライアント側で設定され、iSCSIターゲットはサーバー側で設定されます。
iSCSIイニシエーターには、ソフトウェアベースとハードウェアベースのものがあります。ハードウェアベースのものは、クライアントマシンの中央処理装置(CPUまたはプロセッサ)の負荷を軽減するのに役立ち、ハードウェアホストバスアダプタ(HBA)のインストールが必要です。ハードウェアiSCSI HBAは、イーサネットインターフェースを備えたネットワークインターフェースコントローラ(NIC)です。 このiSCSIとNFSの比較では、ソフトウェアベースのiSCSIイニシエーターの使用について検討します。iSCSIは2003年に導入され、RFC 3720で規定されています。
iSCSIは、TCP/IPスタック上で動作するセッション層プロトコル(OSIモデルのレイヤー5で動作)です。 データはブロック単位で共有されます、NFSとは異なり、FCと同様です。これは、iSCSIとNFSを比較する上で重要なポイントです。SCSIコマンドはTCP/IPデータ単位にカプセル化され、標準的なイーサネットネットワークを介して転送されます。その結果、あるコンピュータはネットワークを利用して、別のコンピュータ上にあるストレージブロックデバイスにSCSIコマンドを送信することができます。
| レイヤー | 説明 |
| 用途 | ファイルシステム、データベースなど |
| SCSI | SCSIデータ、SCSIコマンド、SCSIステータス |
| iSCSI | iSCSIプロトコルサービス、iSCSI認定名(IQN)、インターネット・ストレージ・ネーム・サービス(iSNS)、CHAP認証など |
| TCP | エラー制御メカニズムを備えたプロトコル(通常はTCP/IPスタック内で動作する) |
| IP | ネットワーク通信およびルーティングのためのプロトコル |
| イーサネット | スイッチ、ケーブル、ポート(コネクタ)、プロトコル |
注: iSCSIをどのように活用できるかについて、興味深い事実があります VMware 仮想マシンの復旧. "Instant VM Recovery"を使用する場合、 NAKIVO Backup & Replicationたとえば、ESXiホスト上でバックアップから直接VMを実行する場合、選択したESXiホスト上にVMが作成され、iSCSIプロトコルを使用して仮想互換モードのRDMディスクとして仮想ディスクがVMにマウントされます。
VMware NFS 対 iSCSI – 主な違い
NFSもiSCSIも、銅線を使用して構築された1ギガビットおよび10ギガビットイーサネット(1GbEおよび10GbE)ネットワークで動作します。ネットワーク速度は速いほど良いです。詳細については ネットワークトポロジー. VMware vSphere で共有データストアを使用して VM ファイルを保存する場合、VM のライブマイグレーション、ロードバランシング、およびデータストア間の VM 移行には、NFS と iSCSI の両方の実装を使用できます。どちらの共有プロトコルも、TCP/IP ネットワーク上での多層的なデータカプセル化メカニズムによって、かなりのオーバーヘッドが発生します。
NFS は、ほとんどのベンダーの NAS デバイスでサポートされています。例えば、 Synology そして QNAP. とはいえ、現在ではiSCSIに対応したNASを選ぶのは難しくありません。
ここで、VMwareにおけるNFSとiSCSIの比較について、さらに詳しく見ていきましょう。
負荷分散
1つのネットワークパスに障害が発生したり、過負荷になったりした場合、複数のパスが存在すれば、マルチパシング機能によりサーバーとストレージ間の負荷分散が可能になります。
NFS 4.1では、サーバーでセッション・トランキングが利用可能な場合(ただし、クライアントIDトランキングは除く)、マルチパシングがサポートされます。その結果、単一のNFSボリュームに複数のIPアドレスからアクセスできるようになります。NFS v3を使用する場合は、ネットワークの負荷分散にDNSラウンドロビンをご利用ください。
VMware vSphere では、iSCSI マルチパシングは VMkernel ネットワークアダプタレベルで機能します。vSphere での iSCSI 負荷分散には、ポートバインディングを使用できます。
キャッシュ
NFSを使用する場合、ファイルシステムキャッシュを持つファイルシステムはNFSサーバー上に配置され、クライアントマシンはNFSサーバー上のメタデータを常に確認する必要があります。NFS v3およびv4では非同期データ書き込みがサポートされていますが、メタデータの更新は同期式です。
iSCSIを使用する場合、クライアントデバイスはブロックレベルで共有ストレージにアクセスした後、ファイルシステムを作成します(VMware vSphereの場合、ESXiホストがiSCSI LUN上にVMFSファイルシステムを作成します)。iSCSI共有ストレージ用のファイルシステムによってキャッシュポリシーが定義され、ファイルシステムキャッシュはクライアント側に配置されます。 たとえば、共有プロトコルとしてiSCSIを使用し、ファイルシステムとしてext3を使用する場合、データおよびメタデータの更新に対して完全なライトバックキャッシュが利用されます。
最新のファイルシステムの多くは非同期メタデータ更新を採用しており、データ復旧にはログベースのジャーナリングが使用されます。一般的に、非同期データ更新(iSCSIで使用される)は、NFSなどで使用される同期更新と比較して、データおよびメタデータの永続性の点で信頼性が低くなります。
信頼性
NFSNICのチームング機能を利用すれば、ネットワーク障害からシステムを保護することができます。あるNICが故障しても、別のNICが引き続き動作し続けることができます。
iSCSI. VMware Pluggable Storage Architecture (PSA) は、iSCSI アレイを使用する場合、フェイルオーバーの実装に"Storage Array Type"プラグインを使用します。iSCSI バインディングでは、異なるサブネット上の複数の iSCSI ターゲットを iSCSI イニシエーターにマッピングする必要があります。
iSCSI と NFS はどちらもカプセル化に TCP を使用するため、データの転送はネットワークレベルでチェックされます。
iSCSI ストレージ上の VMFS は、以下のデータを保存する場合、不安定になる可能性があります シンプロビジョニング 仮想マシン用の仮想ディスク。停電が発生すると、ボリュームが復元不能になる可能性があります。このような状況下では、NFS データストアの動作の方が若干信頼性が高くなります。定期的な VMwareのバックアップ.
セキュリティ
一般的に、iSCSIトラフィックは暗号化されませんが、だからといってiSCSIトラフィックを保護できないわけではありません。iSCSI共有の認証には、ユーザー名とパスワードの使用がサポートされています。チャレンジ・ハンドシェイク認証プロトコル(CHAP)を使用することで、サーバーとクライアントは相互に信頼関係を確立できます。
NFSはホストベースの認証を使用します。 NFSのデフォルト設定では暗号化は提供されませんが(sys=system)、Kerberosを有効にしたNFSv4(sec=krb5p)を使用する場合、接続は安全です。NFSサーバーの設定では、NFS共有へのアクセスを許可するホストのIPアドレスを定義する必要があります。 複数のホストやサブネット全体を定義することも可能です。例えば、広く知られている SMB ファイル共有プロトコルは、ユーザーベースの認証に依存しています。
VMware vSphere で共有 iSCSI および NFS ストレージを使用する場合、専用の VLAN を設定するか、別の(プライベートな)物理ネットワークを使用することが推奨されます。このアプローチにより、ストレージトラフィックを他の種類のトラフィックから分離することができます。 NFS v3には、NFS v4.1のようなセキュリティ機能はありません。ESXiサーバーは、Kerberosを使用しない場合、root権限でNFS共有をマウントします。したがって、セキュアな構成を行う際は、この点を念頭に置いてください。以下の内容も参照してください。 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 対 iSCSI – Raw Device Mapping
iSCSIを共有ストレージとして使用する場合、VMに対してRaw Device Mapping(RDM)を設定できます。Raw Device Mapping(RDM)は、物理ディスク全体またはiSCSI LUNを、VMの設定で仮想ディスクをアタッチする代わりに、デバイスとしてVMに直接アタッチできる機能です。 RDM ベースのアプローチは、LUN(論理ユニット番号)上にデータストアを作成し、VMFS ファイルシステムを作成し、VM が使用する仮想ディスクをそのデータストアに保存するという従来のアプローチとは異なります。iSCSI を使用する場合、iSCSI 共有はブロックレベルで動作し、VM は接続されたブロック RDM ディスクを、VM にインストールされたゲスト OS が使用するカスタムファイルシステムでフォーマットできるため、RDM が可能になります。
NFSについては、NFS共有はファイルレベルで動作し、RDMではVMにブロックデバイスを接続する必要があるため、NFS共有をRDMディスクとして接続することはサポートされていません。NFS共有では、NFSデータストアを作成し、そのデータストアにVMDK仮想ディスクファイルを格納することしかできません。 ゲストOSにNFSクライアントまたはiSCSIイニシエーターが搭載されている場合、ゲストOSレベルでNFS共有やiSCSI共有をマウントすることは可能です。したがって、VMwareにおけるiSCSIとNFSの比較において、RAWデバイスマッピングのカテゴリーではiSCSIが勝者となります。
iSCSI 対 NFS のパフォーマンス
ソフトウェアベースのiSCSI実装では、パフォーマンスは若干向上しますが、クライアントホストのCPU負荷も高くなります。また、iSCSIはネットワークへの負荷も大きくなります。iSCSIはネットワークトラフィックとネットワーク負荷を増加させますが、NFSの使用はよりスムーズで予測しやすいものです。大量の書き込み操作が行われる場合、NFS共有ではパフォーマンスの低下が見られることがあります。
vSphereでNFSを使用する場合、ストレージ側でvStorage API for Array Integration(VAAI)をサポートしたNFSを使用することをお勧めします。VAAIを使用すると、NFSデータストア上にシックプロビジョニングされた仮想ディスクを作成できます。デフォルトでは、NFSデータストア上にはシンプロビジョニングされたディスクが作成されます。NFSとiSCSIの両方とも、ネットワークパフォーマンスを向上させるためにジャンボフレームをサポートしています。
このiSCSIとNFSの速度比較の最後に、パフォーマンスはストレージアレイのベンダーによっても異なる点に留意する必要があります。
同時アクセス
iSCSIは、ブロックデバイスへの同時または並列データアクセスをサポートしていません。 データは2つのホップ間で共有される必要があります。ただし、VMFSやGFSなど、ファイルへの並列アクセスをサポートするファイルシステムレベルでは、並列アクセスが許可されます。VMware vSphereでiSCSI共有を使用する場合、VMFSレベルで共有への同時アクセスが保証されます。
NFSは、競合を回避しデータの一貫性を維持するために、ロックメカニズムとクローズ・トゥ・オープン一貫性メカニズムを使用して、共有ファイルへの同時アクセスをサポートしています。 NFS v3とNFS v4.1では、異なるメカニズムが使用されます。NFS v3ではNetwork Lock Managerプロトコル(NLM)を使用できますが、NFS v4.1ではネイティブプロトコルで規定されたロックを使用します。VMware ESXi上でNFS v3を使用してファイル共有にアクセスする場合、VMwareはこのケースでは独自のロックプロトコルを提供するため、ESXiはNLMプロトコルを使用しません。ロックファイルの命名規則は"."で始まります。lck-file_id VMware vSphereでNFS v3共有を使用する場合、ファイル共有上に作成されます。
NFS v4.1では、同時アクセス時のファイルロックに予約機能を使用します。 NFS ファイル共有を作成する場合、すべてのクライアントは同じバージョンの NFS プロトコルを使用する必要があります(たとえば、すべての ESXi ホストが NFS v4.1 経由で共有に接続するなど)。互換性のない 2 つのクライアントが、NFS サーバー上のファイルに異なるバージョンの NFS を使用してアクセスすると、動作の不整合やデータの破損が発生する可能性があります。
設定の難しさ
NFSを使用する場合、サーバーとクライアントの設定は比較的簡単です。一方、iSCSIを使用して共有ストレージを設定するのはより困難です。ストレージとホストのIQNを設定し、iSCSIサービス、LUN、およびマスキングの設定を行う必要があります。また、セキュリティ上の理由から(iSCSI通信に使用するネットワークセグメントを分離してセキュリティレベルを高めるため)、複数のVLANを設定する必要があります。
詳細はこちら VMware Virtual Volumes VMデータを保存するために使用できる。
VMware vSphere における NFS と iSCSI の比較 – 概要表
この"iSCSI 対 NFS VMware 比較"において、各データ共有プロトコルの主な特徴を要約表でまとめてみましょう。
| iSCSI | NFS | |
| データの共有 | ブロックレベル | ファイル単位 |
| 仮想マシン向けのRawデバイスマッピング | はい | いいえ |
| 設定の難しさ | 中 | 簡単 |
| SANから起動する | はい | いいえ |
| エラーチェック | はい | はい |
| セキュリティ機能 | CHAP | Kerberos |
| Storage vMotion | はい | はい |
| ストレージDRS | はい | はい |
結論
どちらの共有プロトコルも、VMware vSphere で使用できるほど十分に成熟しています。iSCSI と NFS の主な違いは、iSCSI がブロックレベルでデータを共有するのに対し、NFS はファイルレベルでデータを共有する点にあります。 パフォーマンスはほぼ同等ですが、状況によってはiSCSIの方が優れた結果をもたらす場合があります。VM用のRDMディスクはiSCSIでは使用できますが、NFSでは使用できません。
どちらのネットワーク共有プロトコルも信頼性が高いです。ただし、データ損失やダウンタイムを防ぐためには、サードパーティ製のデータ保護ソリューションを使用する必要があります。共有ストレージ上のデータ損失を防ぐため、停電やその他のハードウェア障害を回避してください。無停電電源装置(UPS)を使用し、定期的なバックアップを作成してください。