我想将共享虚拟磁盘添加到已连接到第一台虚拟机的第二台虚拟机。它们将通过设置为虚拟总线共享的 SCSI 控制器共享磁盘访问权限。
这可以通过 vCenter GUI 正常工作,但我想通过 PoweCLI 来实现。
我找不到一种方法来将新的 SCSI 控制器连接到第二台虚拟机,而无需将现有硬盘作为参数传递给 cmdlet new-scsicontroller
。不幸的是,这会导致第一台虚拟机上出现新的 SCSI 控制器,而不是第二台虚拟机上出现新的 SCSI 控制器。
有什么想法可以使用 vSphere API 或其他技术来实现这一点吗?
答案1
找到你无法弄清楚的 PowerCLI 代码的最佳方法是使用 Onyx:http://labs.vmware.com/flings/onyx
答案2
以下内容适用于 vSphere 5.5 上的 PowerCLI。正如所写,它将在服务器 1 上具有虚拟模式的 SCSI 总线共享的新 LSI Logic SAS 存储控制器上创建一个新的 1GB 驱动器,并在服务器 2 和服务器 3 上具有虚拟模式的 SCSI 总线共享的新 LSI Logic SAS 存储控制器上将相同的 VMDK 添加为新磁盘。您可以修改它以查询现有的 SCSI 控制器并将其添加到该控制器。
$SizeGB = 1
$sourceVM = Get-VM 'server1'
$shareWith = @('server2', 'server3')
$disk = New-HardDisk -VM $sourceVM -CapacityGB $SizeGB -Persistence persistent -StorageFormat EagerZeroedThick
$disk | New-ScsiController -Type VirtualLsiLogicSAS -BusSharingMode Virtual
foreach ($targetVM in $shareWith) {
$targetVM = Get-VM $targetVM
New-HardDisk -VM $targetVM -DiskPath $disk.Filename | New-ScsiController -Type VirtualLsiLogicSAS -BusSharingMode Virtual
}