仮想マシン・ストレージは、仮想化インフラの重要なコンポーネントの1つで、ブロック・ストレージとファイル・ストレージが最も使用されるストレージ・タイプです。どちらを選ぶかは、実行するVM、アプリ、サービスのパフォーマンスに影響します。そのため、VMのストレージをそれらの要件にうまくマッチさせることが特に重要なのです。そこで今回は、ブロックストレージとファイルストレージの違いを明らかにし、最も注目すべきプロトコルを説明します。
ファイル・ストレージ
ファイル・ストレージでは、データはディレクトリとサブディレクトリに編成された階層構造のファイルに保存されます。ストレージシステムからファイルを取り出すには、アクセス権限とファイルパスが必要です。ファイルプロトコルは、複数のクライアントがサーバーに接続するNASシナリオを可能にし、ファイルの共有やコラボレーションを簡単に行うことができるようにします。
最も一般的なファイル(NAS)プロトコルは、NFS(Network File System)およびSMB(Server Message Block)です。仮想化の観点からは、NFSベースのストレージはVMware、KVM、Xenでよく使用され、SMBはHyper-V環境で好まれるオプションです。
全体的に、ファイルストレージは、テキスト文書、画像、メディア、その他の一般的なコンテンツタイプなど、小~中規模の非構造化データセットに最適です。しかし、最新のファイルストレージプロトコルの実装は、仮想マシンのストレージとしても有効で、ブロックストレージ(SAN)を追加したくない管理者にとっては非常に便利なものです。
ブロックストレージ
一方、ブロックストレージは、仮想マシンファイルやデータベースのような大規模な構造化データセットの保存に一般的に使用されます。ブロックストレージでは、ファイルは複数のブロックに分割され、各ブロックには固有のIDが付与されます。ブロックは、異なるディスクドライブや、ネットワークで接続された異なるシステムにも保存することができます。そのデータが要求されたとき、ブロックはそのIDによって検索され、再組み立てされます。
ブロックストレージはSAN(Storage Area Network)でよく使われ、最も一般的なプロトコルはファイバーチャネル、iSCSI、そして最近ではNVMe-oF(NVMe over Fabrics)である。
SMB、NFS、iSCSI、NVMe-oFの比較
次に、ほとんどの仮想化環境で利用可能な4つの一般的なファイルおよびブロックレベルのプロトコルの違いと類似点を考えてみます:
ファイルプロトコル
SMB
SMB(Server Message Block)は、ファイルレベルのストレージプロトコルです。クライアントがネットワーク上のファイルサーバーからデータを読み書きできるようにします。SMBは、そのシンプルさと使いやすさで知られています。また、互換性が高く、さまざまなオペレーティングシステムでうまく機能します。Microsoft Hyper-Vや、Microsoft SQL ServerなどのWindows Serverサービスは、SMBを使用してデータを保存することができます。Windows Server 2012から利用できるSMB 3.0バージョンでは、SMB MultichannelやSMB Directなどの新機能が追加され、プロトコルのパフォーマンスが大幅に向上し、ユースケースが拡大されました。
性能面では、SMBは大規模なシーケンシャルリード/ライト用に調整されており、これは「カジュアル」なユーザーがほとんどの場合行うことです。また、SMB 3.0のネイティブ機能とその高度な機能により、非構造化データやWindowsベースの環境での仮想マシンの保存にも最適です。そのため、中小企業では仮想化やファイル共有のために好まれています。しかし、SMBは帯域幅の制限があるため、大企業や高性能な環境にはあまり適していません。また、キロバイトサイズの小さなファイルをたくさん転送する場合には好ましくありません。ここでは、iSCSIのようなブロックレベルのストレージを使用するのがよいでしょう。
NFS
ネットワークファイルシステム(NFS)は、ネットワーク上でのファイル共有とファイルへのリモートアクセスを可能にする分散ファイルシステムのプロトコルです。また、クライアントサーバーモデルで動作するため、ユーザーはリモートサーバーに保存されたファイルをローカルフォルダーに保存されているかのようにアクセスすることができます。
SMBと同様に、NFSはユーザーに透過的なアクセスとファイルロック機構を提供し、企業内の共同作業が必要な場合に便利です。SMBと同様に、NFSは大規模なシーケンシャルリード/ライトではより高速で効率的であり、小規模なI/Oではあまり効果的ではありません。NFS 4の性能は、RDMAやマルチパスなどの高度な機能によってさらに向上させることができます。しかし、セッショントランキングまたはpNFS拡張を介して達成された、NFSのマルチパスの実装は、SMBのように信頼性と使いやすさに欠けます。
ブロックプロトコル
iSCSI
Internet Small Computer System Interface、通称iSCSIは、TCP上で動作するブロックプロトコルです。ISCSIは、複数のクライアントやサービスが中央のストレージにアクセスすることを可能にする共有ストレージネットワークを設定することができます。
iSCSIはブロックプロトコルなので、イニシエータはブロックレベルのデータをサーバからストレージデバイスのターゲットに転送します。iSCSIは、SCSIコマンドをカプセル化して、TCP/IPレイヤーのパケットの形でデータを組み立てます。パケットが目的地に到着すると、物理的なストレージデバイスがコンピュータにローカルに接続されているかのように、OSがデータを読み取るための様々なiSCSIコマンドに分離されます。この場合の主な問題は、iSCSIでは複数のサーバーが同じボリュームに同時にアクセスすることができないことです。ただし、クラスタ化されたファイルシステム(CSV、VMFSなど)のように、複数の同時アクセスを許可するファイルシステムを使用すれば、これを実現することができます。
iSCSIプロトコルは、ほとんどのハイパーバイザーやOSでサポートされており、既存のイーサネット機器を使用してiSCSI SANインフラを導入することができます。複雑なファイバーチャネルSANトポロジーを学ぶ必要がないため、専用のハードウェアや、iSCSIストレージネットワークを展開・維持するためのスタッフは必要ありません。iSCSIはTCP/IPプロトコルを使用しているため、技術的には最大400Gbpsのイーサネットをサポートしています。このため、エンタープライズ環境での集中的なワークロードには、SMBよりも望ましい選択となります。
欠点としては、iSCSIはその性質上、膨大な量のネットワークトラフィックを発生させます。これは、iSCSIを別のLANセグメントに分離し、RDMAや様々なオフロードによって速度をさらに向上させることで回避することができます。しかし、はっきりとした微調整を行わないと、問題が発生する可能性があります。
NVMe-oF
NVMe-oF として知られる Non-Volatile Memory Express Over Fabrics は、Ethernet、Fibre Channel、InfiniBand 上のイニシエータと固体ストレージデバイス間の高速かつ効率的なデータ転送を確保するために使用される最新の高速ストレージプロトコルです。NVMeと同様に、NVMe-oFは、従来のプロトコルやインターフェイスによって妨げられていたフラッシュ・ストレージの潜在的な性能を完全に引き出すことができます。
NVMe-oFはまだ登場したばかりですが、すでに広く採用されているネットワーク・アーキテクチャです。NVMe-oFは登場したばかりですが、すでに広く採用されているネットワーク・アーキテクチャであり、最小のネットワーク遅延と最高のスループットを必要とするさまざまなワークロードを企業が処理するのに役立っています。しかし、ハードウェアコストの増加、ハイパーバイザーサポートの制限、特にクラスタ環境での構成の複雑化など、いくつかの欠点があります。
正しい選択をする
結論として、ファイルストレージとブロックストレージの選択、特にそれぞれのプロトコルの選択は、ユーザ固有のニーズと要件に依存します。
●SMBは、ユーザーフレンドリーなファイルレベルのプロトコルであり、ファイル共有とコラボレーションを主な要件とするWindowsを実行する中小企業に最適です。仮想マシンの保存にも有効ですが、高負荷のクラスタ環境では、通常ブロックレベルのプロトコルがより一般的な選択肢になります。
●NFSは、Linux環境での共同ファイル共有と仮想化のために広く使用されています。SMBと同様に、そのほとんどは大規模なシーケンシャルリード/ライト用に調整されており、高性能なVMストレージや高可用性クラスタリングなど、より要求の厳しいシナリオにはあまり適していません。
●逆に、iSCSIはブロックレベルのストレージを提供し、既存のイーサネット機器と統合できる柔軟性があるため、大規模な仮想化環境におけるデータ集約型のアプリケーションに適した選択肢です。iSCSIは、実装コストや複雑さと結果として得られるパフォーマンスのバランスがよく、ほとんどの仮想マシンストレージ使用ケースに最適な選択肢です。
●NVMe-oFは、オールフラッシュストレージ環境における高速データ転送のための最新技術を活用したもので、最高のアクセス速度を要求するレイテンシー重視のアプリケーションに最適です。高頻度取引、リアルタイム分析、ハイパフォーマンス・コンピューティングなどは、NVMe-oFが活躍する分野の一つです。
全体として、各プロトコルの「特徴」を理解することは、仮想マシンのストレージとして適切なものを選択するために重要です。しかし、その選択自体は、ユーザ独自の要件、利用可能なリソース、インフラストラクチャがサポートする必要のある特定のワークロードに依存します。
関連トピックス:
- どのストレージ・プロトコールがVMware vSphereディプロイに最適化なのか?
- ストレージの機能について【仮想化プラットホーム VMware vSphere】
- VMFS3・VMFS5ブロックサイズ制限【VMware vSphere4.1 vSphere 5】
- ブロック・ストレージとは?
- 仮想マシンサイズ制限【VMware vSphere 4.1】
- NFSストレージのマウント方法【仮想化プラットホーム VMware vSphere】
- iSCSIを活用した信頼性があり、高速なSANネットワークの構築
- SMB(Server Message Block)ファイル共有で仮想マシン(VM)をストアするその優位点は?:Hyper-V 3.0