現在、当社には、SAN 接続ストレージ アレイ上に数百の LUN を作成し、それらを 1 つ以上の (物理) サーバーにエクスポートし、LUN に含まれるデータに対してテストを実行し、それらを破棄して、これを繰り返すテスト環境があります。
VM をサーバーとして使用したいのですが、数百の LUN を各 VM に手動で割り当てる際に問題が発生しています (物理サーバーの場合、以前はゾーニングを設定してこれを実行し、HBA の再スキャンを実行するだけで済みました)。
この状況に対処する方法について何か提案はありますか? 1 つの解決策としては、VM ダイレクト パス IO (ただし、現時点ではそのために必要なハードウェアがありません)、または ESX レベルで新しい LUN を自動的に再スキャンし、その LUN を特定の VM に自動的に割り当てるスクリプトを設定する (これは API 経由で実行できると思います) ことが考えられます。
答え1
標準の ESX\ESXi セットアップでこれを実行できない理由がわかりません。
これは、Raw デバイス マッピングで実行できるはずです。SAN 側のゾーニングと LUN プレゼンテーションの手順が変更されていないと仮定すると、vmkfstools を使用して ESX に再スキャンを指示し、ホスト レベルで新しい LUN を検出できます。それが見つかったら、VMDK を作成して VM に追加するか、ボリューム全体を Raw デバイス マッピング (RDM) として提示することができます。
ESXではサービスコンソールのコマンドラインでスクリプト化できますが、ESXiではPowerCLI(Powershell)またはPerl CLIツールを使用する必要があります。vSphere 管理アプライアンスは、そのルートを取りたい場合に備えて、すべてのツールがあらかじめパッケージ化されたLinuxアプライアンスです。3つのCLIアプローチのドキュメントはすべて、ここ。
実行したいことの一般的な概要は次のとおりです。
1. ホスト上の新しい LUN を再スキャンします。
vicfg-rescan [vmhbaX]
おそらく、LUN が提示される関連 HBA をスキャンするだけなので、vmhbaX を SAN に接続されている関連 HBA 名に置き換えます。
2. 新しいLUNにマップするRDMスタブを作成する
vmkfstools –a lsilogic -r /vmfs/devices/disks/vmhba1:0:0:0 /vmfs/volumes/storage1/testluns/testrdmlun.vmdk
LUN の LUN 参照を調べ、vmdk を環境に適した場所と名前に設定する必要があります。これにはいくつかの構文バリエーションがあり、ESXi 4 では使用していませんが、この形式は 3.5 では問題なく動作していました。RDM モードは 2 つあり、より多くの SCSI 機能が必要な場合は、Raw Device Mapping Passthrough モードの方が適している可能性があります。その場合は、-r を -x に置き換えてください。
3. 新しいディスクを VM に提示します。
このようにディスクを準備したら、VM内のOSにこれらを提示する方法がいくつかあります。VM構成を編集してこのデバイスのエントリを追加するか、この特定のターゲットvmdkをVMで既に構成しておき、VMの電源をオフにした状態で上記の検出手順を実行することができます。より動的なメカニズムが必要な場合は、VMware ディスクマウントユーティリティ- これにより、VM 構成を変更することなく、ゲスト OS 内から RDM (またはその他の VMDK) を直接マウントできるようになります。
再スキャンおよび vmkfstools 部分にリモート CLI を使用している場合は、コマンドの一部としてターゲット ホストと認証資格情報を指定する必要がある場合があります。
同じアプローチを標準の VMDK ファイルで使用することもできますが、まず LUN を VMFS としてフォーマットし、その上に適切な VMDK を作成する必要があります。あなたの説明から判断する限り、その方法で実行してもメリットはありません。