0

我在 vCenter 中有一个数据存储,我正在尝试使用每周运行的 PowerCLI 脚本克隆它。我可以将虚拟机克隆到它,但我完全无法控制目录结构。它将每个虚拟机放入以虚拟机命名的文件夹中,位于数据存储的根目录中。

我的理想目录结构是根仅用于活动虚拟机。存在“备份”文件夹。在该文件夹中每周创建一次以存储每周的克隆。今天的示例“20111004”。每个虚拟机都存在该文件夹。

$vm = <name of the virtual machine obtained programmatically>
$date = Get-Date -Format "YYYYMMDD"
$h = <ESXi host where the VM is located, obtained programatically>
$dsName = "DATASTORE1" #<Name of the datastore I'm targeting>
$dirPath = "BACKUPS/" + $date + "/" + $vm

New-VM -Name $vm-$date -VM $vm -VMHost -$h -Datstore $dsName -Location $dirPath

“完整”路径示例
[DATASTORE1] BACKUPS/20111004/VIRTUALMACHINE

这是脚本中唯一不起作用的部分。当在 PowerShell 中以这种方式给出命令时,它会完全忽略 -Location 参数并将克隆扔到数据存储的根目录上。我还没有找到任何关于它应该如何格式化的文档(我理解)。与 VIContainer 有什么关系??

我正在自定义的脚本源:
http ://www.mbnbusiness.co.uk/blog/2010/08/updated-powercli-vmware-vm-backup-script-v2-0/

4

3 回答 3

1

-Location 定义了放置 VM 的 vCenter 文件夹,而不是数据存储中放置 VM 文件的文件夹。

据我所知,虚拟机文件必须放在数据存储的根目录上。

当我第一次创建脚本时,我考虑尝试做类似的事情,因为它使旧备份的归档更容易,但当时我找不到解决方案。

抱歉,我帮不上忙……</p>

于 2011-10-05T10:37:14.140 回答
1

听起来您正在尝试进行备份,我强烈建议您查看实际的备份产品,例如VMware 的 Data RecoveryVeeam 的 Backup实用程序。

就像@Mike 所说,VM 文件在数据存储的根目录工作。您可以创建多个数据存储并循环通过它们进行备份,但如果您使用高性能磁盘,这可能会非常昂贵。

于 2011-10-05T12:11:23.307 回答
0

我尝试使用$date = Get-Date -Format "YYYYMMDD"但最终输出为YYY01DD.

改为$date = Get-Date -uformat "%d%m%Y ,我现在得到01012012

于 2012-01-10T16:55:16.973 回答