vSphere 4のストレージ機構における最も大きな変更点は、Pluggable Storage Architecture(以下PSAと略記)の導入だろう。その名の通り、ESXのストレージスタックの一部をモジュール化し、プラグイン可能なアーキテクチャに変更したものである。
PSAはESXのストレージスタックにおけるマルチパス機構を実装するコンポーネントである。ESX 3.xでは、標準で収録されているマルチパスドライバを利用する以外に選択肢がなかったが、ESX 4.0では、標準提供のマルチパスドライバに加え、サードパーティ製のマルチパスドライバを組み込んで利用することが可能になった。
vSphere 4に対応するストレージアレイ装置は、多数のベンダから製造・販売されている。そしてその機種ごとに特性があり、I/Oマルチパスソフトウェアも、そのストレージの特性に最適化されたものを利用したいという場合がある。各ストレージベンダは、ESX 4.0のPSA用のモジュールという形態で、独自にマルチパスドライバを開発・提供することができるようになったというわけである。
PSAは論理デバイス側のI/Oスケジューラと、物理アダプタ側のI/Oスケジューラの間に介在する形で実装されている。
PSAはMulti-Pathing Plugin(以下MPPと略記)と呼ばれるモジュールをロードする。接続されているストレージデバイスの機種などに応じて、適切なMPPが自動的に選択され、適用される。MPPの選択・適用ルールは事前に定義されているが、後から変更することも可能である。
ESX に標準で搭載されているI/Oマルチパス機能も、MPPの1形態として実装されている。VMware ESX 4.0に標準で収録されているマルチパスプラグインのことをVMware Native Multipathing Plugin(以下NMPと略記)と呼ぶ。
VMware NMPはさらに、Storage Array Type Plugin(以下SATPと略記)と呼ばれるモジュールと、Path Selection Plugin(以下PSPと略記)と呼ばれるモジュールをサブプラグインとして組み込む形で実装している。
SATPはストレージへのアクセスパスのフェイルオーバ処理をハンドルするためのモジュールである。一般的なActive/Activeストレージ、Active/Passiveストレージに対応するためのジェネリック(汎用的)なモジュールのほかに、特定の機種を想定して作成されたモジュールなど、何種類かのSATPが標準で収録されている。
PSPはI/Oのロードバランス処理をハンドルするためのモジュールである。標準ではMRU、Fixed、Round Robbinの3種類のロードバランシングアルゴリズムを実装したモジュールが収録されている。
なお、ストレージベンダはVMware NMPに組み込むためのSATP並びにPSPを独自に開発することもできる。従って、ストレージベンダがESX用のマルチパスソフトウェアを開発したいと考えた場合、MPPそのものを開発することもできるし、もしくはVMware NMPへのサブプラグインとしてSATPやPSPを開発・提供することもできる。
PSAの管理にはコマンドライン操作が必要である。ESX 4.0のユーザーは、sshなどでサービスコンソールにログインしてコマンドを実行できる。また、コマンドラインをリモート実行するためのツールvSphere CLI 4.0を利用するとESX 4.0、ESXi 4.0の双方を管理することができる。vSphere CLI 4.0は以下よりダウンロードできる。
vSphere CLI 4.0
http://www.vmware.com/support/developer/vcli/
esxcliというコマンドを用いてPSAの管理を行う。esxcliコマンドはPSAに関係するさまざまな設定やステータス情報にアクセスすることができる。本稿では例としてPSAの構成情報を出力させるコマンドを紹介する。
PSAは接続されているストレージの種類に応じてMPPを選択、適用するが、そのときの適用ルールを以下のコマンドで確認できる。デフォルトでは標準収録されているNMPが原則として選択されるよう設定されている。
# esxcli corestorage claimrule list Rule Class Type Plugin Matches 0 runtime transport NMP transport=usb 1 runtime transport NMP transport=sata 2 runtime transport NMP transport=ide 3 runtime transport NMP transport=block 4 runtime transport NMP transport=unknown 101 runtime vendor MASK_PATH vendor=DELL model=Universal Xport 101 file vendor MASK_PATH vendor=DELL model=Universal Xport 65535 runtime vendor NMP vendor=* model=*
システムにインストールされているMPP一覧を出力させるにはesxcfg-mpathコマンドを用いる。vSphere CLIではvicfg-mpathコマンドで同等の操作を実行できる。標準では以下の2種類のMPPが確認できるはずだ。
# esxcfg-mpath -G MASK_PATH NMP
通常はMPPとしてVMware NMPを利用することになる。NMPはサブプラグインとしてSATPを利用するが、SATPの適用ルールは以下のコマンドで出力させることができる。
# esxcli nmp satp listrules Name Vendor Model Driver Transport Options Claim Options Description VMW_SATP_ALUA_CX DGC tpgs_on CLARiiON array in ALUA mode VMW_SATP_SVC IBM 2145 VMW_SATP_MSA MSA1000 VOLUME VMW_SATP_EQL EQLOGIC All EqualLogic Arrays VMW_SATP_INV EMC Invista
VMware NMPには標準でさまざまな種類のSATPが収録されている。インストール済みモジュール一覧の出力には以下のコマンドを用いる。また、該当のSATPがデフォルトで利用するPSPも同時に出力される。
# esxcli nmp satp list Name Default PSP Description VMW_SATP_ALUA_CX VMW_PSP_FIXED Supports EMC CX that use the ALUA protocol VMW_SATP_SVC VMW_PSP_FIXED Supports IBM SVC VMW_SATP_MSA VMW_PSP_MRU Supports HP MSA VMW_SATP_EQL VMW_PSP_FIXED Supports EqualLogic arrays VMW_SATP_INV VMW_PSP_FIXED Supports EMC Invista
VMware NMPは標準で3種類のI/Oロードバランシングアルゴリズムをサポートしている。それぞれPSPという形態で実装され収録されている。インストール済みPSP一覧の出力には以下のコマンドを用いる。
# esxcli nmp psp list Name Description VMW_PSP_MRU Most Recently Used Path Selection VMW_PSP_RR Round Robin Path Selection VMW_PSP_FIXED Fixed Path Selection
NMPはターゲットとなるLUNやデバイスごとに適切なSATP、PSPを選択し、適用する。認識されている全ターゲットのPSAの構成情報を出力するには以下のコマンドを用いる。
# esxcli nmp device list naa.60060160967021004fe70806e311de11 Device Display Name: DGC Fibre Channel Disk (naa.60060160967021004fe70806e311de11) Storage Array Type: VMW_SATP_CX Storage Array Type Device Config: {navireg ipfilter} Path Selection Policy: VMW_PSP_MRU Path Selection Policy Device Config: Current Path=vmhba1:C0:T1:L4 Working Paths: vmhba1:C0:T1:L4 mpx.vmhba3:C0:T0:L0 Device Display Name: Local TEAC CD-ROM (mpx.vmhba3:C0:T0:L0) Storage Array Type: VMW_SATP_LOCAL Storage Array Type Device Config: Path Selection Policy: VMW_PSP_FIXED Path Selection Policy Device Config: {preferred=vmhba3:C0:T0:L0;current=vmhba3:C0:T0:L0} Working Paths: vmhba3:C0:T0:L0 :
I/Oマルチパス機構はターゲットとなるLUN単位で構成される。あるLUNに対して構成されているパス情報、並びに適用されているPSAの情報はesxcfg-mpathコマンド(vSphere CLI利用時はvicfg-mpathコマンド)にて確認することができる。以下の例ではターゲットとなるLUNへの到達経路が4通り存在しており、詳細情報が経路ごとに出力されている。
# esxcfg-mpath -l -d naa.60060160967021004fe70806e311de11 fc.20000000c97ec04d:10000000c97ec04d-fc.50060160c1e0e1d6:5006016841e0e1d6-naa.60060160967021004fe70806e311de11 Runtime Name: vmhba2:C0:T1:L4 Device: naa.60060160967021004fe70806e311de11 Device Display Name: DGC Fibre Channel Disk (naa.60060160967021004fe70806e311de11) Adapter: vmhba2 Channel: 0 Target: 1 LUN: 4 Adapter Identifier: fc.20000000c97ec04d:10000000c97ec04d Target Identifier: fc.50060160c1e0e1d6:5006016841e0e1d6 Plugin: NMP State: active Transport: fc Adapter Transport Details: WWNN: 20:00:00:00:c9:7e:c0:4d WWPN: 10:00:00:00:c9:7e:c0:4d Target Transport Details: WWNN: 50:06:01:60:c1:e0:e1:d6 WWPN: 50:06:01:68:41:e0:e1:d6 fc.20000000c97ec04d:10000000c97ec04d-fc.50060160c1e0e1d6:5006016041e0e1d6-naa.60060160967021004fe70806e311de11 : fc.20000000c97ec04c:10000000c97ec04c-fc.50060160c1e0e1d6:5006016941e0e1d6-naa.60060160967021004fe70806e311de11 : fc.20000000c97ec04c:10000000c97ec04c-fc.50060160c1e0e1d6:5006016141e0e1d6-naa.60060160967021004fe70806e311de11 :
vSphere 4で標準提供されるマルチパス機構を利用している限り、PSAの管理コマンドを実行する機会はあまりない。しかし、現在の構成情報の確認のみであっても、上記のようなコマンドを実行してみることで、ESX 4.0で採用されたデバイスネーミングの方式や、PSAの全体構造に関する理解を深めることができるだろう。
サードパーティより提供されるPSAモジュールをインストールして利用する場合は、PSAのアーキテクチャを理解しておくことが望ましいため、必要に応じて詳細をご確認いただければ幸いである。本稿では構成情報を出力させるコマンドを紹介したが、ルールの編集や追加を行うこともできる。詳細はマニュアル「ESX Configuration Guide」をご参照いただきたい。
ESXConfigurationGuide
http://www.vmware.com/support/pubs/vs_pages/vsp_pubs_esx40_vc40.html
Copyright © ITmedia, Inc. All Rights Reserved.