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のより新しいバージョンでは、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トランキングは除く)、マルチパシングがサポートされます。その結果、1つの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などで使用される同期更新と比較して、データおよびメタデータの永続性の点で信頼性が低くなります。
信頼性
NFS. NICのチームング機能を利用することで、ネットワーク障害からシステムを保護することができます。ある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)、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 – 生デバイスマッピング
iSCSIを共有ストレージとして使用する際、VMに対してRaw Device Mapping(RDM)を設定することができます。Raw Device Mapping(RDM)は、物理ディスク全体またはiSCSI LUNを、VMの設定で仮想ディスクをアタッチする代わりに、デバイスとしてVMに直接アタッチできる機能です。 RDM ベースのアプローチは、LUN(論理ユニット番号)上にデータストアを作成し、VMFS ファイルシステムを作成して、VM が使用する仮想ディスクをそのデータストアに保存するという従来のアプローチとは異なります。iSCSI を使用する場合、iSCSI 共有はブロックレベルで動作し、VM は接続されたブロック RDM ディスクを、VM にインストールされたゲストオペレーティングシステムで使用されるカスタムファイルシステムでフォーマットできるため、RDM が可能になります。
NFSについては、NFS共有はファイルレベルで動作し、RDMではVMにブロックデバイスを接続する必要があるため、NFS共有をRDMディスクとして接続することはサポートされていません。NFS共有では、NFSデータストアを作成し、そのデータストアにVMDK仮想ディスクファイルを格納することしかできません。 ゲストOSにNFSクライアントまたはiSCSIイニシエーターが搭載されている場合、ゲストOSレベルでNFS共有やiSCSI共有をマウントできます。したがって、VMwareにおけるiSCSIとNFSの比較において、”生デバイスマッピング”のカテゴリーでは、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 v.4.1 経由で共有に接続するなど)。互換性のない 2 つのクライアントが、NFS サーバー上のファイルに異なるバージョンの NFS を使用してアクセスすると、動作の不整合やデータの破損が発生する可能性があります。
設定の難しさ
NFS を使用する場合、サーバーとクライアントの設定は比較的簡単です。一方、iSCSI を使用して共有ストレージを設定するのはより困難です。ストレージとホストの IQN を設定し、iSCSI サービス、LUN、およびマスキングの設定を行う必要があります。また、セキュリティ上の理由から、複数の VLAN を設定する必要があります(iSCSI 通信に使用するネットワークセグメントを分離し、より高いセキュリティレベルを確保するため)。
詳細はこちら VMware 仮想ボリューム VMデータの保存に使用できるものです。
VMware vSphere における NFS と iSCSI の比較 – 概要表
この”iSCSI 対 NFS:VMware 比較”において、各データ共有プロトコルの主な特徴を要約表でまとめてみましょう。
| iSCSI | NFS | |
| データの共有 | ブロックレベル | ファイルレベル |
| 仮想マシン向けの生のデバイスマッピング | 対応 | 非対応 |
| 設定の難しさ | 中 | 簡単 |
| SANからの起動 | 対応 | 非対応 |
| エラーチェック | 対応 | 対応 |
| セキュリティ機能 | CHAP | Kerberos |
| Storage vMotion | 対応 | 対応 |
| ストレージ DRS | 対応 | 対応 |
結論
どちらの共有プロトコルも、VMware vSphere で使用するのに十分な成熟度を備えています。iSCSI と NFS の主な違いは、iSCSI がブロックレベルでデータを共有するのに対し、NFS はファイルレベルでデータを共有する点にあります。 パフォーマンスはほぼ同等ですが、状況によってはiSCSIの方が優れた結果をもたらす場合があります。VM用のRDMディスクはiSCSIでは使用できますが、NFSでは使用できません。
どちらのネットワーク共有プロトコルも信頼性が高いです。ただし、データ損失やダウンタイムを防ぐためには、サードパーティ製のデータ保護ソリューションを使用する必要があります。共有ストレージ上のデータ損失を防ぐため、停電やその他のハードウェア障害を回避してください。無停電電源装置(UPS)を使用し、定期的なバックアップを作成してください。