VMware vSphere 6 ESXi では様々なストレージが利用できます。
- ローカルディスク
- FC
- iSCSI
- NFS
vSphere の仮想ストレージには様々な用語が出てきます。
ESXi でのストレージの概念についてまとめました。
ストレージの仮想化
vSphere の世界ではストレージも「仮想化」します。
ESXi → ストレージの管理が必要
仮想マシン → ストレージの管理は不要
「仮想マシン」は「仮想ディスク」を持っています。
「仮想ディスク」は「データストア」に格納されています。
下図はストレージの仮想化のイメージ図です。
一見すると複雑で入り組んでいるように見えますが、これから詳しく解説します。
仮想ディスクとは?
仮想ディスクとは、物理ストレージ上に格納される仮想的なディスク領域です。
仮想マシンからは「仮想ディスク」は通常の「物理ディスク」に見えるので
- OSのインストール
- アプリケーションのインストール
- パーティションの作成
- データのコピーやバックアップ
ができます。
仮想ディスクの実態は「.vmdk」という拡張子の「ファイル」で、「データストア」に格納されます。
「仮想ディスク」は仮想マシンの「仮想コントローラ」である「SAS/SCSI HBA」に接続されたローカルの「SAS/SCSI ディスク」として認識されます。
「仮想コントローラ」である「SAS/SCSI HBA」は、ソフトウェア上のコントローラです。
仮想コントローラは以下の実在の製品をエミュレートして作成されています。
- LSI Logic 製
- BusLogic 製
更に細かく分類すると
- LSI Logic パラレル
- LSI Logic SAS
- BusLogic パラレル
- VMware 順仮想化
を利用できます。
エミュレートとは?
emulate(英語) → ~と競う。~と張り合う。~を熱心に見習う。~をまねる。
エミュレート(IT用語) → 機械が機械をまねる。あるコンピュータシステムが他のコンピュータシステムをまねる。
たとえば、昔の「任天堂ファミコン」のハードとカセットを買ってゲームをするのではなく、インターネット上のエミュレーターで昔のゲームを楽しむとかでしょうか。
この場合は、オリジナルのゲーム機本体やゲームのカセットがなくてもエミュレーター上でプレイできます。
LSI社について
LSIコーポレーション(LSI Corporation)は、電子機器製造企業で以下の製品を中心に設計・製造しています。
- ASIC
- HBA(ホスト・バス・アダプタ)
- RAIDコントローラ
- ストーレジ関連
- ネットワーク関連
LSI社の公式サイト
→上記URLをクリックすると「ブロードコム社(Broadcom Ltd.)」のホームページに転送されます。
その理由は、LSI社はアバゴ・テクノロジー社(Avago Technologies)に買収され、ブロードコム社もアバゴ・テクノロジー社に買収され、社名を「ブロードコム」に変更したからです。
BusLogic社とは?
BusLogic社はかなり昔に「Mylex社」に買収されたようですが、Mylex社がLSI社に買収されたので、「BusLogic社」イコール「LSI社」でいいと思います。
仮想ディスクは LSI の方が良い
ベンチマークやサポートなどを比較すると「LSI Logic SAS」が推奨です。
下図のように新規仮想マシンを作成する場合もデフォルトで「LSI Logic SAS」が選択されています。
データストアとは?
「データストア」とは「仮想マシン」を格納するための「領域」です。
言葉を変えると、「仮想マシン」は「データストア」に格納された「仮想ディスク」にアクセスします。
その際に「仮想マシン」は「SCSIコマンド」を発行してアクセスします。
つまり、仮想マシンは「仮想ディスク」をローカルにマウントされている「SCSIデバイス」として扱います。
下図はVMware vSphere ESXi のストレージ構成のイメージです。
仮想マシンは「仮想SCSIコントローラ」を経由して仮想ディスクにアクセスしますが、「iSCSI」や「ファイバチャネル」などを意識しません。
ローカルにつながっているものとしてアクセスします。
データストアがサポートするファイルシステムは以下です。
- VMFS(Virtual Machine File System)
- NFS(Network File System)
- Virtual SAN
- Virtual Volumes
VMFS(Virtual Machine File System)とは?
VMFSは VMware社によって開発されたクラスタファイルシステムです。
VMFSは複数の ESXi ホストからアクセス(読み書き)が可能です。
クラスタファイルシステムとは?
クラスタファイルシステムとは、SAN(Storage Area Network)や iSCSI など、複数のコンピュータから同時にアクセス(読み書き)が可能なファイルシステムのことを言います。
クラスタファイルシステムの特徴は、I/Oのパフォーマンスが高いことです。
その理由は「ブロックアクセス」を使用するからです。
iSCSIのポートバインディング
ポートバインディングとは、iSCSI ストレージに対して「パス」と「物理NIC」を結び付けることです。
注意点は、iSCSI ポートは VMkernel ポートと同じブロードキャスト ドメインおよび IP サブネットに置く必要があります。
※ブロードキャストドメインとは、ブロードキャストのフレーム(FF-FF-FF-FF-FF-FF)が届く範囲のことをです。ブロードキャストフレームはルーターを超えられませんので、同一IPサブネット内という意味です。ちなみに、L2スイッチでもVLANが設定されていれば、そのVLANの範囲内になります。
VMkernelポートを iSCSI イニシエーターを関連付けて iSCSI ストレージにアクセスできます。
具体的には、「VMkernelのポート(vmk)」と「物理NIC(vmnic)」を関連付けます。
NICのチーミングではダメなのか?
iSCSIは、LAN接続でデータを送受信するため、iSCSIのポートバインディングではなく、NICのチーミングでも可能です。
しかしNICのチーミングでは以下の制約があります。
- 冗長化はできるが分散が難しい
- たとえ分散ができてもスイッチが対応していなければいけない
そのため、NICのチーミングよりも「iSCSI ポートバインディング」の方がよりパフォーマンスを発揮する可能性が高いです。
iSCSI(Internet SCSI/SCSI over IP)とは?
ここで一回 iSCSI の概念について復習しておきます。
「iSCSI」は「iSCSI SAN」とも呼ばれます。
こちらの記事でも iSCSI について解説をしています。
iSCSIは、サーバーとストレージ間で「LAN接続」を使用します。
iSCSIは、SCSI命令やデータをTCPプトロコルに乗せて、TCP/IPネットワーク経由(LAN経由)で LUN へアクセスします。
ファイバチャネルはサーバーとストレージ間で「ファイバチャネル接続」を使用しますが、高価のため最近はファイバチャネルから iSCSI に切り替える企業も増えています。
iSCSI はファイバチャネルに比べて
- 安い
- 設定が簡単
というメリットがあります。
サーバー側には
- iSCSI用 HBA(ホストバスアダプタ)
- NIC(ネットワークインターフェースカード)
を設置します。
iSCSIは、「クライアント/サーバー」システムで構成されています。
クライアント → iSCSIに接続するノード → イニシエーター
サーバー → iSCSI → ターゲット
iSCSIノードは「IPアドレス」を持っています。
iSCSI名は、iSCSIノードを識別する名前です。
iSCSI名の例は「iqn.1998-01.com.vmware.iscsi:xxx.xxx」などです。
iSCSIエイリアス名は、iSCSIの別名で管理しやすい名前を付けたものです。
iSCSI イニシエーターとは?
iSCSI ターゲットにアクセスするためには、ESXi ホストで iSCSI イニシエーターを利用します。
ESXi は2種類の iSCSI アダプタをサポートしています。
- ソフトウェア iSCSI アダプタ
- ハードウェア iSCSI アダプタ
ソフトウェア iSCSI アダプタ
ソフトウェア iSCSI アダプタは VMkernel に内蔵しています。
ハードウェア iSCSI アダプタ
ハードウェア iSCSI アダプタはサードパーティ製の iSCSI アダプタです。
iSCSI の設定手順概要
以下、iSCSI の設定手順の概要です。
- iSCSI 用の仮想スイッチを作成する
- iSCSI 用のポートグループを作成する
- iSCSI 用の「VMkernel ポート」を作成する
- 「VMkernel ポート」を 「iSCSI イニシエーター」に関連付ける
- 「VMkernel ポート」と「物理 NIC(vmnic1など)」に対応付ける
特に「VMkernel ポート」と「物理 NIC」に紐付けることを「ポートバインディング」と言います。
具体的な「ソフトウェア iSCSI ポートバインディングの設定手順」の公式サイトのURLです。
ソフトウェア iSCSI とのネットワーク通信設定のベスト プラクティス
コマンドラインからの iSCSI セッションの確認
コマンドラインから「iSCSI セッション」を確認することができます。
esxcli コマンドを使用します。
$ esxcli –server=<server_name> iscsi session list |
このコマンドを実行すると「アカウント」と「パスワード」の入力が求められるので入力します。
※VMware vSphere コマンドラインは以下の公式サイトで詳しく学習できます。
vSphere Command-Line Interface Documentation
FC-SAN とは?
FC-SANは、ストレージ I/O 専用プロトコルである「ファイバチャネルプロトコル」を使用します。
データ転送に関しては非常に高速ですが、FC-SANを利用するためには、専用の「FC HBA(Host Bus Adapter)」と「FC スイッチ」が必要になるため高額になります。
ゾーニングでアクセス制御を細かく設定できる
FC-SAN は、サーバーとストレージ間でゾーニングをすることでアクセス制御を細かく設定できます。
ゾーニングとは FCポート間での関連付け(どのFCポートとどのFCポートが通信するのか)と、FCポートと LUN の紐付へをすることです。
ゾーニングにより、サーバーは許可された LUN のみにアクセスできます。
LUN(Logical Unit Number/論理ユニット番号)とは?
例えば EMC とか NetApp とか HP とは Tintri などのストレージにはディスクが100個以上格納されていることがあります。
合計で50TBとか100TBなどのストレージもあります。
では、この100TBのストレージを一つのファイルシステムとして利用するのでしょうか?
例えば「/home」に100TBを割り当てるとか?
もちろん、そんなもったいないことはしません。
100TBもの容量があったらもっと効率のよい使い方をします。
そのためにはこの100TBを分割して利用した方がいいです。
巨大なストレージを論理的に分割して、それぞれに LUN を割り当てて、独立したストレージとして扱います。
LUN は論理的に分割したストレージを識別するための番号(ID)です。
まとめ
VMware vSphere ESXiを構築する上でストレージを適切に設定して、ストレージのパフォーマンスを十分に引き出すためには覚えなければいけないことが多々あると感じました。
更に深く調べて記事を更新していく予定です。
コメント