[ Virtualization Service ] 在 Vmware ESX 上建立一個可供 clustering 的虛擬磁碟

在 VMWare ESX Server 上建立一個可供多台虛擬機器(virtual machine,以下簡稱 vm)共享的虛擬磁碟 (virtual disk,以下簡稱 vdisk),需要在 console 以指令建立。

如果只是透過 VIClient 建立一個 vdisk,並將該 vdisk 掛載於獨立的 SCSI Bus,並且將 SCSI 卡指定型式為 Virtual,掛載於多台 vm 後, vm 開機時,會得到以下完整錯誤訊息的一部分:


Type: error                Time: yyyy/M/D hh:mm:ss                Task: Power On Virtual Machine                Target: VM

Description:
Failed to power on VM on SERVER in DOMAIN: VMware ESX Server cannot open the virtual disk, “/vmfs/volumes/STORAGE/VM/VMDK.vmdk” for clustering. Please verify that the virtual disk was created using the ‘thick’ option.
Cannot open the disk ‘/vmfs/volumes/STORAGE/VM/VMDK.vmdk‘ or one of the snapshot disks it depends on.
Reason: Thin/TBZ disks cannot be opened in multiwriter mode.

Related Events:
yyyy/M/D hh:mm:ss, Failed to power on VM on SERVER in DOMAIN: VMware ESX Server cannot open the virtual disk, “/vmfs/volumes/STORAGE/VM/VMDK.vmdk” for clustering. Please verify that the virtual disk was created using the ‘thick’ option.
Cannot open the disk ‘/vmfs/volumes/STORAGE/VM/VMDK.vmdk‘ or one of the snapshot disks it depends on.
Reason: Thin/TBZ disks cannot be opened in multiwriter mode.
yyyy/M/D hh:mm:ss, VM on host SERVER in DOMAIN is starting


上述錯誤訊息的粗斜體字部分,將會根據實際環境被替換,其中:

yyyy/M/D hh:mm:ss:時間格式。例如「2008/7/12 23:14:05」
VM:虛擬機器名稱。
SERVER:ESX 伺服器名稱。
DOMAIN:ESX 領域名稱。
/vmfs/volumes/STORAGE/VM/VMDK.vmdk:共享的虛擬磁碟絕對路徑與名稱。

解決的方法,就是利用指令來建立 vdisk。登入 ESX 的 service console(就是 ESX 主機的文字管理環境),然後選定 vdisk 存放的路徑後(請確定這個路徑是 vm 們可以存取的路徑),利用 vmkfstools 來建立一個 vdisk,如下指令所示:

vmkfstools -c 8G -a lsilogic -d thick /vmfs/volumes/STORAGE/VM/VMDK.vmdk



其中粗斜體字的部份:

8G:指的是 vdisk 的容量。
lsilogic:指的是虛擬 SCSI 卡的廠牌
/vmfs/volumes/STORAGE/VM/VMDK.vmdk:指的是 vdisk 的絕對路徑與名稱。

如此建立的 vdisk,就可以在編輯 vm 的屬性時掛上到一個獨立的 SCSI Bus 並將型式指定為 Virtual 後,開機使用。