Info2softは、ウェブサイトでより快適で適切な閲覧体験を提供するためにCookieを使用しています。 プライバシーポリシー
Loading...
NFSとiSCSIの選択は単なる設定上の細部ではない。ストレージの高負荷時の動作、障害発生時の挙動、運用チームの管理工数を左右する。
技術詳細に入る前に、簡単な結論を記載する。
要点まとめ
2つの違いは内部でのデータ処理方式にある。
ネットワークファイルシステム(NFS)はファイルレベルプロトコルである。ストレージサーバーがext4やZFSといったファイルシステムを管理し、ディレクトリツリーをクライアントに共有する。クライアントはこのリモートディレクトリをマウントし、ローカルストレージと同様に扱える。
NFSはリモートプロシージャコール(RPC)を使用し、別コンピュータ上のプログラムを実行する。ファイルシステムの管理権限はサーバーにあるため、複数クライアントが同時に同一ディレクトリをマウントしてもファイル破損が発生しない。
NFSはLinux・Unixシステムに標準搭載されている。クライアント側でストレージのフォーマット作業が不要なため、導入が迅速。
インターネット小型コンピュータシステムインターフェース(iSCSI)はブロックレベルプロトコルである。標準的なSCSIコマンドをTCP/IPパケットにカプセル化し、一般的なイーサネット経由でブロックストレージを通信可能にする。
iSCSIはイニシエーター・ターゲットモデルを採用する。クライアント(イニシエーター)がストレージアレイ(ターゲット)に接続する。クライアントから見たターゲットは未フォーマットの生ハードディスク、論理ユニット番号(LUN)として認識される。
既定では各LUNは単一クライアント専用となる。クラスタファイルシステムを使用せず複数ホストが同一LUNに書き込むとデータ破損が発生する。
NFSとiSCSIはファイルシステムの管理場所から適用シナリオまで、6つの軸で特性が分かれる。
| 比較項目 | NFS | iSCSI |
|---|---|---|
| アクセス単位 | ファイル | ブロック |
| ファイルシステム配置先 | サーバー側 | クライアント側 |
| マルチクライアント同時アクセス | 標準対応 | クラスタFSが別途必要 |
| OSとの親和性 | Linux/Unix標準搭載 | クロスプラットフォーム対応 |
| 設定難易度 | 低い | 中~高い |
| 主な利用用途 | ファイル共有、NASバックアップ | データベース、仮想マシンストレージ |
上記の表は表面的な差異を示している。各項目の実運用での意味を解説する。
前出の表は全体像を示すが、以下8つの運用要素により日々の運用での差が明確になる。
この差により、クライアントOSはNFSをネットワーク共有、iSCSIをローカルディスクと認識する。
データベースエンジンやハイパーバイザー標準ファイルシステムといった生ブロックアクセスを要求するアプリケーションにはiSCSIが自然な選択肢となる。
iSCSIはVMkernelアダプターレベルでポートバインドを実装し、ホストOSまたはマルチパスI/O(MPIO)ソフトウェアにより複数経路にトラフィックを能動的に分散可能。
簡易性より細かいフェイルオーバー制御を重視する場合はiSCSIの管理ツールが優位となる。
ファイルレベルの変換オーバーヘッドが発生しないため、高IOPS・低レイテンシのワークロードではiSCSIが優位。実際のESXi環境の検証では、シーケンシャルリードやVM起動時の差は小さいが、VAAI(vSphereストレージ統合API)アクセラレーションによりクローン作成やストレージ移行時はiSCSIが顕著に高速。10GbE以上の環境では性能差が縮小する。
両プロトコル共にジャンボフレーム(MTU 9000)による性能向上が見込める。iSCSIはクライアント側CPUリソースを消費する代わりにストレージの処理遅延を低減する。
データベースやVDIといったランダムI/O偏重の業務では性能差を考慮する必要があるが、バックアップやファイル共有用途では意識する必要は少ない。
NFSはストレージサーバーのファイルシステムキャッシュを活用し、NFSv3・NFSv4共に同期更新によりクライアントがメタデータの整合性を確認する。
iSCSIのキャッシュはクライアント側のホストRAM上にブロック単位で保持される。非同期なメタデータ更新により書き込み速度は速まるが、ダーティブロックがディスクにフラッシュされる前にクライアントがクラッシュするとデータ整合性が損なわれるリスクがある。
書き込み速度よりクラッシュ後のデータ堅牢性を優先する場合、NFSの同期モデルが安全な既定選択となる。
NFSボリュームはサーバー側で透過的に容量拡張されるのに対し、iSCSI LUNの容量変更はアレイ側のブロックデバイス拡張に加え、クライアント側のファイルシステム再サイズが必要。
専任のストレージ管理者がいない環境ではNFSの保守負担が少ない。
両プロトコルは本番環境で安定稼働するが、障害発生時の挙動に差がある。
NFSの同期メタデータ処理はクライアントクラッシュ時のデータ整合性を保護する一方、iSCSIの非同期書き込みはジャーナル破損のリスクを伴う。
ネットワークの安定性が確保できない環境ではNFSが緩やかに縮退動作する。
iSCSIの主なリスクは、共有ネットワーク上で暗号化されていないブロック通信がパケット盗聴される点。NFSの主なリスクは設定ミスによりファイルシステム全体が公開される点。
プロトコル自体に優劣はなく、設定ミスが主なリスク要因であるため、どちらを選択する場合でもストレージ専用ネットワークを分離する必要がある。
両方ともスケールアウト型アレイに対応するが、NFSの方が水平拡張が簡易。
NFSは少ない管理工数で水平拡張が可能、iSCSIは環境拡大時にボリューム単位の詳細な制御が可能。
上記の差異を実運用の視点から整理し、シンプルな長所・短所としてまとめる。
NFSは細かい制御より簡易性と障害復旧性を優先する。標準的な仮想マシンや共有ディレクトリの既定選択肢として適している。
長所:
短所:
iSCSIは汎用イーサネットにSAN並みの速度と経路制御機能を提供する。ディスクブロックを直接制御するトランザクション型アプリケーションに適している。
長所:
短所:
適切なプロトコル選択は主に業務ワークロード、稼働OS、運用チームのストレージ知識に依存する。
簡易運用、スケールの容易さ、標準搭載のファイル共有機能を重視する場合はNFSが最適。複数サーバーが同一ディレクトリに同時アクセスするLinux・Unix環境のマルチクライアントファイル共有に適している。
共有ファイルシステムによりVMテンプレートやISOライブラリの保管にも適している。NASバックアップ先やログ保管用途では、生I/O速度より運用の簡易性を優先する現場で幅広く活用される。
ボリューム容量の変更が頻繁な環境にも適しており、NFSマウントはクライアント接続を遮断せずに容量拡張可能。
アプリケーションが専用のブロックレベルアクセス、詳細なマルチパス制御、低レイテンシを要求する場合はiSCSIが優位。SQL ServerやOracleといった高IOPSデータベースは書き込みキュー最適化のため生ブロックアクセスを活用する。
Hyper-V仮想化やWindows Serverフェイルオーバークラスタともシームレスに統合可能で、両システムはブロックストレージを基盤に構築されている。
SANブート構成では、ディスクレスホストがネットワーク上のLUNから直接起動できる。VMFSを使用するVMware ESXi上のパフォーマンス重視VM、また仮想マシンがハイパーバイザーのファイルシステムを経由せず直接ストレージにアクセスするRDM(Raw Device Mapping)環境にも適切。
適切なプロトコルを選定することでストレージのパフォーマンスは決まるが、データ保護の課題は別問題。NFSとiSCSIはどちらもデータ転送に優れるが、単体でバックアップ機能は備えていない。
多くの運用チームはこのレイヤーをi2Backupで対応している。
NFSとiSCSIを併用する環境において、単一画面で統合管理できる点は単独のプロトコル選択よりも重要な価値を持つ。
i2BackupはInfo2softの総合データ保護製品ラインナップの一部。重要データベース向けのほぼゼロRPOレプリケーション機能が必要な環境には、バイト単位で常時データを取得するi2CDPにより保護範囲を拡張可能。
i2Backupの60日間無料トライアルを利用し、既存のストレージ環境との適合性を確認できる。
NFSとiSCSIは競合する規格ではなく、それぞれ異なる用途向けに開発されている。NFSはファイル共有を簡素化し、ネットワークの一時的な障害から穏やかに復旧する。iSCSIはデータベースやVMワークロードに必要な生ブロックパフォーマンスを提供する。
多くの本番環境では両方を併用し、共有ファイル・バックアップ先にNFS、トランザクション処理・高IOPSストレージにiSCSIを活用する。
ストレージ基盤を導入後、次の課題は2つのプロトコル上のデータを統一的にバックアップすること。i2Backupは単一の管理画面からこの課題に対応可能。