VMware ESXi で外付け USB ストレージドライブをスムーズに動作させるのは、時に面倒な作業です。ファイルの高速転送、仮想マシンのバックアップ、あるいはネットワーク速度の低下を回避したいといった用途であっても、USB を ESXi に接続するのは、単に差し込むだけという単純な作業ではありません。特に VMware は USB ドライブをデータストアとして公式にサポートしておらず、サイズ制限やドライバの動作に関する問題がいくつかあり、それが問題を引き起こす可能性があります。そこで、このガイドではこれらの問題を解決し、USB スティックを VMFS データストアとして利用できるようにするか、ネットワークや共有ストレージを気にすることなく直接ファイルを転送できるようにする方法を説明します。これらの手順は、実際に問題なく動作するかを確認するためのものです。
USBドライブをVMware ESXiのVMFSデータストアとして使用したり、ファイルを転送したりする方法
VMware ESXi で USB ドライブを VMFS データストアとして使用する
USBドライブをお持ちで、ストレージを(少なくとも一時的に)拡張したい場合は、VMwareが公式にサポートしていなくても、VMFSデータストアに変換するという方法があります。こうすることで、VMファイルやISOイメージをドライブに直接コピーできます。ただし、ESXiは最大2TBのUSBドライブしか扱えず、これはクリティカル/安定した環境では公式にサポートされていないため、本番環境での使用は避けるべきです。新しいバージョン(ESXi 7.xや8.xなど)では、vSphere GUIを使ってUSBドライブ上にVMFSを作成するのは比較的簡単ですが、ドライブが表示されない場合は、コマンドラインで何らかの操作が必要になる場合があります。
usbarbitratorか、関連する詳細設定を無効にする必要があります。少しやり過ぎのように思えるかもしれませんが、実際には機能します。
USBドライブ上にVMFSを準備して作成する手順
- まず、USBドライブをESXiホストに接続し、「ストレージ」→「デバイス」に進みます。「再スキャン」
ls /dev/disks/をクリックして、ドライブが表示されることを確認します。表示されない場合は、ドライブが正しくフォーマットされていることを確認し、や などのコマンドでデバイス名を確認してくださいvdq -q。 - ドライブが表示されない場合、または表示がおかしい場合は、手動でパーティション分割とフォーマットを行う必要があるかもしれません。デバイス名を取得するには、次のコマンドを実行してください。
ls /dev/disks/- または
vdf -q、すべてのディスクをリストします
- デバイスを指すシェル変数を作成します。例:
DISK="/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0" - VMFSを作成する前に、ドライブを消去してセットアップしてください。以下のコマンドで、以前のパーティションテーブルをすべてクリアしてください。
# partedUtil mklabel ${DISK} gpt警告: ここでドライブ上のすべてのデータが消去されます。
- 次の方法でディスクセクターを確認します。
# partedUtil getptbl ${DISK}パーティションを設定します。
# partedUtil setptbl /${DISK} gpt "1 2048 104856254 AA31E02A400F11DB9590000C2911D1B8 0" - 次のコマンドで VMFS にフォーマットします。
# vmkfstools -C vmfs6 -S usbdrive ${DISK}:1 - フォーマットが完了したら、 vSphere Web Clientの「ストレージ」に移動すると、USBメモリがデータストアとして表示されます。表示されない場合は、ホストの再スキャンまたは再起動をお試しください。認識されにくいドライブの場合は、VMFS UUIDを使用して手動でマウントする必要がある場合もあります。
esxcli storage vmfs snapshot listその後:
esxcli storage vmfs snapshot mount -u <uuid>
USB VMFSデータストアの接続と検出
ドライブは表示されるものの、正しくマウントされない場合は、スナップショットか何か他の問題として認識されている可能性があります。スナップショットの一覧を表示しesxcli storage vmfs snapshot list、UUIDを使って手動でマウントできます。環境によっては不安定な場合もありますが、少し手間をかければ、再び使用可能なデータストアになります。
USBドライブからESXiにファイルを転送する方法
ファイルを素早くダンプしたいだけなら、ドライブをVMFSに変換する必要はありません。FAT32、NTFS、またはExt3パーティションの場合は、再フォーマットせずにESXiコンソールから直接データにアクセスできます。USBアービトレータサービスは干渉しやすいため、事前に無効にしておいてください。そうしないと、ESXiがUSBドライブを経由して任意のVMに直接データを送信し続け、混乱を招く可能性があります。
- SSH経由でホストにログインします。
- 走る:
# /etc/init.d/usbarbitrator stop - 再起動時に起動しないようにしたい場合:
# chkconfig usbarbitrator off
完了したら、mcopyやntfscatなどのコマンドを使ってファイルをコピーできます。FAT32 または Ext3 パーティションの場合、読み書きは概ね問題ありません。NTFS ドライブの場合、特別なドライバーを設定するか、Windows/Linux で事前に転送を実行しない限り、ファイルのコピーはドライブからのみ可能で、ドライブへのファイルの戻しはできません。
FAT32 転送の例を次に示します。
# /bin/mcopy -i "/dev/disks/naa.5000000000000001:2" ::/some.iso /vmfs/volumes/your_datastore_name/iso/some.iso
ただし、FAT32は4GBを超えるファイルを扱えないため、大きなVMDKファイルの移動は難しい場合があります。コピー前にファイルを分割することも一つの選択肢ですが、可能であればネットワーク経由で転送するのが最善策です。
# /bin/ntfscat -f /dev/disks/naa.5000000000000001:2" some.iso > /vmfs/volumes/your_datastore_name/iso/some.iso
ただし、ntfscat は ESXi 7.x 以降には含まれていないため、ネットワーク経由で大きなファイルをコピーする (WinSCP や SCP など) 方が、NTFS ドライブの場合はより簡単かつ信頼性が高くなります。
緊急の場合は、USBメモリをWindowsまたはLinuxマシンに接続し、ファイルをコピーして、SSHまたはSCPを使用して移動します。ESXi内のコマンドラインツールに頼るのは、特に大きなファイルやサポートされていないファイルシステムの場合は、少し扱いにくい場合があります。
これで誰かの頭痛が少しでも軽減されるといいですね。頑張ってください!
まとめ
- ストレージデバイスを再スキャンして USB を見つけます。
- 必要に応じて、CLI コマンドを使用して VMFS データストアを作成またはフォーマットします。
- ドライブが正しく認識されない場合は、USB パススルーを無効にします。
mcopyファイル転送には またはを使用しますntfscatが、FAT32 には 4 GB のファイル サイズ制限があることに注意してください。- 大きなファイルの場合は、まずネットワーク転送またはファイルの分割を検討してください。
まとめ
USBドライブをESXiで動作させるのは必ずしもスムーズではありませんが、コマンドラインを少しいじり、少しの忍耐があれば可能です。一時的なストレージを追加する場合でも、ネットワークの問題を気にせずにファイルを取得する場合でも、重要なのは、ファイルを適切にフォーマット、マウント、転送する方法を理解することです。ただし、VMwareが手取り足取り教えてくれるとは期待しないでください。CLIの手順が最適な場合もあります。この記事が、困っている誰かの助けになれば幸いです。