ESXi は、インターネット SCSI (iSCSI) プロトコルを使用して、外部の SAN ストレージに接続できます。ESXi は、従来の iSCSI に加えて、iSCSI Extensions for RDMA (iSER) もサポートします。

iSER プロトコルの場合、ホストは同一の iSCSI フレームワークを使用できますが、リモート ダイレクト メモリ アクセス (RDMA) 転送を使用して、TCP/IP 転送が置き換えられます。

iSCSI SAN について

iSCSI SAN は、ホストと高パフォーマンス ストレージ サブシステムとの間でイーサネット接続を使用します。

ホスト側の iSCSI SAN コンポーネントには、iSCSI ホスト バス アダプタ (HBA) またはネットワーク インターフェイス カード (NIC) があります。iSCSI ネットワークには、ストレージ トラフィックを転送するスイッチおよびルーター、ケーブル、ストレージ プロセッサ (SP)、ストレージ ディスク システムなども含まれます。

2 つのタイプの iSCSI 接続(1 つはソフトウェア イニシエータ、もう 1 つはハードウェア イニシエータを使用)を示した図。

iSCSI SAN では、クライアント サーバ アーキテクチャが使用されます。

クライアントは iSCSI イニシエータと呼ばれ、ESXi ホストで動作します。クライアントは SCSI コマンドを発行し、iSCSI プロトコルにカプセル化して iSCSI サーバに送信することで、iSCSI セッションを開始します。サーバは iSCSI ターゲットと呼ばれます。通常、iSCSI ターゲットは、ネットワーク上の物理ストレージ システムを表します。

仮想 iSCSI SAN、たとえば仮想マシン内で実行されている iSCSI ターゲット エミュレータがターゲットとして使用される場合もあります。iSCSI ターゲットは、必要な iSCSI データを送信することで、イニシエータのコマンドに応答します。

iSCSI マルチパス

ホスト サーバとストレージの間でデータを転送するとき、SAN はマルチパスとよばれる手法を使用します。マルチパスによって、ESXi ホストからストレージ システム上の LUN に対する複数の物理パスを確保できます。

一般的に、ホストから LUN への 1 つのパスは、iSCSI アダプタまたは NIC、スイッチ ポート、接続用ケーブル、およびストレージ コントローラ ポートから構成されます。パスのコンポーネントで障害が発生した場合、ホストは I/O に使用可能な別のパスを選択します。障害が発生したパスを検出し、別のパスに切り替えるプロセスは、パスのフェイルオーバーと呼ばれます。

マルチパスの詳細については、ESXi 環境でのマルチパスとフェイルオーバーについてを参照してください。

iSCSI SAN のノードおよびポート

iSCSI SAN 上の単一の検出可能なエンティティ、たとえばイニシエータやターゲットは、iSCSI ノードを表します。

各ノードには、ノード名が付いています。ESXi はいくつかの方法を使用してノードを識別します。

IP アドレス
各 iSCSI ノードには IP アドレスが関連付けられているため、ネットワーク上のルーティングおよびスイッチングの機器はホストとストレージとの間の接続を確立できます。このアドレスは、企業内のネットワークやインターネットにアクセスするときにコンピュータに割り当てる IP アドレスと同様です。
iSCSI 名
ノードを識別するための世界中で一意の名前。 iSCSI では、iSCSI 修飾名 (IQN)および拡張された一意識別子 (EUI)を使用します。
デフォルトで、 ESXi は iSCSI イニシエータに iqn.1998-01.com.vmware:iscsitestox-68158ef2 のような一意の iSCSI 名を生成します。通常、デフォルトの値を変更する必要はありませんが、変更する場合は、新しい iSCSI 名が世界中で一意であることを確認してください。
iSCSI エイリアス
使用されている iSCSI デバイスまたはポートに付けられた管理しやすい名前です(iSCSI 名ではありません)。iSCSI エイリアスは一意ではありません。ポートに関連付けるためのわかりやすい名前です。

各ノードには、そのノードを SAN に接続する 1 つ以上のポートがあります。iSCSI ポートは、iSCSI セッションのエンドポイントです。

iSCSI 命名規則

iSCSI は、iSCSI ノード (ターゲットまたはイニシエータ) を識別するために、特殊な一意の名前を使用します。

iSCSI 名は 2 つの異なる形式で付けられます。もっとも一般的な形式は IQN 形式です。

iSCSI 命名要件と文字列プロファイルについては、IETF Web サイトの RFC 3721 と RFC 3722 を参照してください。

iSCSI 修飾名 (IQN) 形式
iSCSI 修飾名 (IQN) の形式は、 iqn.yyyy-mm.naming-authority:unique name です。
  • yyyy-mm は、命名機関が設立された年と月です。
  • naming-authority は、命名機関のインターネット ドメイン名の逆の構文です。たとえば、iscsi.vmware.com という命名機関は、iqn.1998-01.com.vmware.iscsi という形式の iSCSI 修飾名になります。この名前は、ドメイン名 vmware.com が 1998 年 1 月に登録され、iscsi がサブドメインであり、vmware.com が管理していることを示します。
  • unique name は、使用する任意の名前です (ホスト名など)。命名機関は、コロンの後ろに割り当てた名前が、次のように一意であることを確認する必要があります。
    • iqn.1998-01.com.vmware.iscsi:name1
    • iqn.1998-01.com.vmware.iscsi:name2
    • iqn.1998-01.com.vmware.iscsi:name999
エンタープライズ一意識別子形式
エンタープライズ一意識別子 (EUI) の形式は、 eui.16_hex_digits です。

例えば、eui.0123456789ABCDEF です。

16 桁の 16 進数は、IEEE EUI (拡張された一意識別子) 形式による 64 ビットの数字を文字で表現したものです。上位 24 ビットは IEEE が特定の企業に対して登録した企業 ID です。下位 40 ビットは企業 ID を持つエンティティが割り当て、一意であることが必要です。

iSCSI イニシエータ

iSCSI ターゲットにアクセスするには、ESXi ホストで iSCSI イニシエータを使用します。

このイニシエータは、ESXi ホストにインストールされたソフトウェアまたはハードウェアです。iSCSI イニシエータは、ホストと外部の iSCSI ストレージ システムとの間で通信を開始し、ストレージ システムにデータを送信します。

ESXi 環境では、ホスト上で設定された iSCSI アダプタがイニシエータの役割を果たします。ESXi は、いくつかのタイプの iSCSI アダプタをサポートします。

iSCSI アダプタの構成と使用の詳細は、ESXi を使用した iSCSI および iSER アダプタとストレージの構成を参照してください。

ソフトウェア iSCSI アダプタ
ソフトウェア iSCSI アダプタは VMkernel に内蔵された VMware コードです。ソフトウェア iSCSI アダプタを使用して、ホストは、標準のネットワーク アダプタを介して iSCSI ストレージ デバイスに接続できます。ネットワーク アダプタと通信するとき、ソフトウェア iSCSI アダプタが iSCSI 処理を行います。ソフトウェア iSCSI アダプタの使用により、特殊なハードウェアを購入せずに、iSCSI テクノロジーを使用できます。
ハードウェア iSCSI アダプタ
ハードウェア iSCSI アダプタは、ホストからの iSCSI およびネットワーク処理を軽減するサードパーティ製アダプタです。ハードウェア iSCSI アダプタはカテゴリに分類されます。
  • Dependent Hardware iSCSI Adapter。VMware が提供する iSCSI の構成および管理用インターフェイスと、VMware ネットワークに依存します。

    このタイプのアダプタとして、同じポートに対して標準ネットワーク アダプタと iSCSI オフロード機能を提供するカードが利用できます。iSCSI オフロード機能は、iSCSI セッションで使用する IP、MAC、およびその他のパラメータを取得するのに、ホストのネットワーク構成に依存します。依存型アダプタの例として、ライセンス取得済みの iSCSI 対応 Broadcom 5709 NIC が挙げられます。

  • Independent Hardware iSCSI Adapter。独自のネットワークと、iSCSI の構成インターフェイスおよび管理インターフェイスを実装しています。

    通常、独立型ハードウェア iSCSI アダプタは iSCSI オフロード機能のみを提供するカード、または iSCSI オフロード機能と標準の NIC 機能を提供するカードです。iSCSI オフロード機能には、iSCSI セッションで使用する IP、MAC、およびその他のパラメータを割り当てる独立構成管理機能があります。独立型アダプタの例として、QLogic QLA4052 アダプタがあります。

ハードウェア iSCSI アダプタではライセンスが必要になる場合があります。そうしない場合、クライアントまたは vSphere CLI には表示されない可能性があります。ライセンス情報については、ベンダーにお問い合わせください。

ESXi での iSER プロトコルの使用

ESXi は、従来の iSCSI に加えて、iSCSI Extensions for RDMA (iSER) プロトコルをサポートしています。iSER プロトコルが有効な場合、ESXi ホスト上の iSCSI フレームワークは、TCP/IP の代わりにリモート ダイレクト メモリ アクセス (RDMA) トランスポートを使用できます。

従来の iSCSI プロトコルは、ホスト上の iSCSI イニシエータとストレージ デバイス上の iSCSI ターゲット間で TCP/IP ネットワークを介して SCSI コマンドを転送します。iSCSI プロトコルでは、コマンドをカプセル化し、そのデータを TCP/IP レイヤーのパケットに組み立てます。データが到着すると、iSCSI プロトコルは SCSI コマンドを区別してストレージ デバイスに配信できるように、TCP/IP パケットを分解します。

iSER は TCP/IP データ転送モデルをリモート ダイレクト メモリ アクセス (RDMA) 転送に置き換えるため、従来の iSCSI とは異なります。iSER プロトコルは、RDMA の直接データ配置テクノロジーを使用して、ESXi ホストとストレージ デバイスのメモリ バッファ間で直接データを転送できます。この方法では、不要な TCP/IP 処理とデータの複製が必要なくなり、ストレージ デバイス上の遅延と CPU 負荷も軽減できます。

iSER 環境では、iSCSI は以前と同様に動作しますが、TCP/IP ベースのインターフェイスではなく、基盤となる RDMA ファブリック インターフェイスを使用します。

iSER プロトコルは iSCSI インフラストラクチャと互換性があるため、ESXi ホスト上で iSER を有効にするプロセスは iSCSI プロセスと似ています。ESXi を使用した iSER の構成を参照してください。

iSCSI 接続の確立

ESXi の文脈では、ターゲットという語は、ホストがアクセスできる 1 つのストレージ ユニットを表します。ストレージ デバイスおよび LUN という語は、ターゲット上のストレージ容量を表す論理ボリュームを意味しています。一般的に ESXi の文脈では、デバイスおよび LUN という語は、ストレージ ターゲットからホストに表示される SCSI ボリュームを意味しており、フォーマットに使用できます。

iSCSI ストレージのベンダーにより、ストレージをホストに見せる方法が異なります。一部のベンダーは複数の LUN を単一のターゲットで表示します。別のベンダーは複数のターゲットにそれぞれ 1 つの LUN を表示します。

図 1. ターゲットと LUN との対応表現
一方の例では、ホストから 3 つの LUN を持つ 1 つのターゲットが見えます。もう一方の例では、ホストから 3 つのターゲットが見え、それぞれに LUN が 1 つあります。

これらの例では、どちらの構成でも 3 つの LUN が利用できます。最初の例の場合、ホストは 1 つのターゲットを検出しますが、そのターゲットには使用できる LUN が 3 つあります。各 LUN は、個々のストレージ ボリュームを意味します。2 つ目の例では、ホストはそれぞれ 1 つの LUN を持つ 3 つの異なるターゲットを検出します。

ホスト ベースの iSCSI イニシエータは、各ターゲットに対して接続を確立します。複数の LUN が 1 つのターゲット内にあるストレージ システムの場合、すべてのトラフィックは単一の接続で行われます。3 つのターゲットにそれぞれ 1 つずつ LUN があるシステムの場合は、ホストと 3 つの LUN との間に個別の接続が 3 つ存在します。

この情報は、複数の iSCSI アダプタを使用してホストからの複数の接続上のストレージ トラフィックを集約する場合に役立ちます。あるターゲットへのトラフィックを特定のアダプタに設定し、別のターゲットへのトラフィックは別のアダプタに設定して使用することができます。

iSCSI ストレージ システムのタイプ

ホストでサポートされる ESXi ストレージのタイプは、アクティブ-アクティブ、アクティブ-パッシブ、および ALUA 準拠です。

アクティブ-アクティブのストレージ システム
大幅にパフォーマンスを低下させることなく、使用可能なすべてのストレージ ポートを通じて同時に LUN へのアクセスをサポートします。すべてのパスは、パスが失敗しない限り常にアクティブです。
アクティブ-パッシブのストレージ システム
1 つのストレージ プロセッサが特定の LUN にアクティブにアクセスを提供しているシステム。その他のプロセッサは、その LUN のバックアップとして機能し、ほかの LUN I/O にアクティブにアクセスを提供します。I/O は、特定の LUN のアクティブなポートにのみ送信できます。アクティブなストレージ ポートを経由したアクセスで障害が発生した場合、パッシブ ストレージ プロセッサの 1 つが、そこにアクセスしているサーバによってアクティブになります。
非対称ストレージ システム
非対称論理ユニット アクセス (ALUA) をサポートします。ALUA 準拠のストレージ システムは、ポートごとに異なるアクセス レベルを設定できます。ALUA を使用すると、ホストはターゲット ポートの状態を判別し、パスに優先順位を付けることができます。ホストはプライマリとしてアクティブ パスのいくつかを使用し、その他をセカンダリとして使用します。
仮想ポート ストレージ システム
1 つの仮想ポートを経由して、使用可能なすべての LUN へアクセスできます。仮想ポート ストレージ システムは、アクティブ-アクティブのストレージ デバイスですが、単一ポートによって複数接続を隠します。 ESXi マルチパスは、デフォルトで特定のポートからストレージに複数接続を行いません。一部のストレージ ベンダーはストレージへの複数の接続を確立および管理するためにセッション マネージャを提供しています。このストレージ システムでは、ポートのフェイルオーバーと接続バランスの調整を透過的に行います。この機能は、透過的なフェイルオーバーと呼ばれます。

検出、認証、およびアクセス コントロール

ストレージの検出と、アクセスの制限には、複数のメカニズムを使用できます。

使用しているストレージ アクセス制御ポリシーに対応させるには、ホストおよび iSCSI ストレージ システムを構成する必要があります。

検出
検出セッションは iSCSI プロトコルの一部で、iSCSI ストレージ システムでアクセスできる一連のターゲットを返します。 ESXi では、動的検出と静的検出の 2 種類の検出方法があります。動的検出ではアクセス可能なターゲットのリストを iSCSI ストレージ システムから取得します。静的検出ではターゲット名とアドレスを使用して特定のターゲットにのみアクセスできます。

詳細については、『ESXi ホストでの iSCSI および iSER の動的または静的検出の設定』を参照してください。

認証
iSCSI ストレージ システムは、名前と鍵のペアでイニシエータを認証します。 ESXi は CHAP 認証プロトコルをサポートします。CHAP 認証を使用するには、 ESXi ホストと iSCSI ストレージ システムで CHAP を有効にし、証明書を共通にしておく必要があります。

CHAP の有効化については、ESXi ホストでの iSCSI または iSER ストレージ アダプタの CHAP パラメータの構成を参照してください。

アクセス コントロール
アクセス コントロールとは iSCSI ストレージ システムで設定するポリシー。ほとんどの実装環境で、次に示す 3 つうちの 1 つ以上のアクセス コントロール機能をサポートしています。
  • イニシエータ名によるアクセス コントロール
  • IP アドレスによるアクセス コントロール
  • CHAP プロトコルによるアクセス コントロール

すべてのルールを満たすイニシエータのみが iSCSI ボリュームにアクセスできます。

アクセス コントロールに CHAP だけを使用すると、再スキャンの速度が低下する可能性があります。ESXi ホストはすべてのターゲットを検出できますが、認証段階で失敗するためです。認証できるターゲットのみをホストが検出する場合は、iSCSI の再スキャンは 高速で実行されます。

仮想マシンから iSCSI SAN 上のデータへのアクセス方法

ESXi は、SAN ストレージ デバイスにある VMFS データストア内に、仮想マシンのディスク ファイルを格納します。仮想マシンのゲスト OS が仮想ディスクに SCSI コマンドを送信すると、SCSI 仮想化レイヤーがこれらのコマンドを VMFS ファイル処理に変換します。

仮想マシンが SAN 上の仮想ディスクと通信するとき、次の処理が実行されます。

  1. 仮想マシンのゲスト OS が SCSI ディスクの読み取りまたは書き込みを行うとき、仮想ディスクに対して SCSI コマンドが送信されます。
  2. 仮想マシンのオペレーティング システムのデバイス ドライバが仮想 SCSI コントローラと通信します。
  3. 仮想 SCSI コントローラは、コマンドを VMkernel に転送します。
  4. VMkernel は次の処理を実行します。
    1. VMFS ボリュームから適切な仮想ディスク ファイルを特定します。
    2. 仮想ディスクに対するブロックの要求を、適切な物理デバイスのブロックにマッピングします。
    3. 変更した I/O 要求を VMkernel のデバイス ドライバから iSCSI イニシエータ(ハードウェアまたはソフトウェア)に送信します。
  5. iSCSI イニシエータがハードウェア iSCSI アダプタ(独立型または依存型)の場合、アダプタは次の処理を行います。
    1. I/O 要求を iSCSI PDU (Protocol Data Unit) にカプセル化します。
    2. iSCSI PDU を TCP/IP パケットにカプセル化します。
    3. イーサネット経由で iSCSI ストレージ システムに IP パケットを送信します。
  6. iSCSI イニシエータがソフトウェア iSCSI アダプタの場合、次の処理が実行されます。
    1. iSCSI イニシエータが I/O 要求を iSCSI PDU にカプセル化します。
    2. イニシエータは TCP/IP 接続経由で iSCSI PDU を送信します。
    3. VMkernel の TCP/IP スタックは TCP/IP パケットを物理 NIC に中継します。
    4. 物理 NIC はイーサネット経由で iSCSI ストレージ システムに IP パケットを送信します。
  7. ネットワーク上のイーサネット スイッチとルーターが、適切なストレージ デバイスに要求を転送します。

エラー訂正

iSCSI ヘッダおよびデータの整合性を保護するために、iSCSI プロトコルにはヘッダ ダイジェストおよびデータ ダイジェストというエラー訂正方法が用意されています。

どちらの方法も ESXi ホストでサポートされており、有効にすることができます。これらの方法は、iSCSI イニシエータとターゲット間で双方向に伝送されるヘッダおよび SCSI データの検査に使用されます。

ヘッダーおよびデータのダイジェストは、TCP やイーサネットなどのほかのネットワーク レイヤーが提供する整合性に加え、暗号化されていないデータの整合性を検査します。ダイジェストでは、ルーター、スイッチ、プロキシなどのネットワークレベルのトラフィックを変動させる要素も含め、通信経路全体を検査します。

SCSI 接続が確立されたときに、ダイジェストの有無と種類のネゴシエーションが行われます。イニシエータとターゲットの双方がダイジェスト設定を受け入れた場合、そのイニシエータとターゲット間の全トラフィックにそのダイジェストを使用する必要があります。

ヘッダーおよびデータのダイジェストを有効にすると、イニシエータおよびターゲットの両方に追加処理が発生するため、スループットおよび CPU 使用率に影響する場合があります。

注: Intel Nehalem プロセッサを使用しているシステムは、iSCSI ダイジェストの計算をオフロードするため、パフォーマンスへの影響が低減されます。

ヘッダー ダイジェストとデータ ダイジェストの詳細は、ESXi ホストでの iSCSI の詳細パラメータの構成を参照してください。