我在vCenter中有一个数据存储区,我正在尝试使用我每周运行的PowerCLI脚本克隆到该数据存储区。我可以克隆虚拟机,但我完全无法控制目录结构。它将每个虚拟机放在数据存储区根目录下以虚拟机命名的文件夹中。
我的理想目录结构是Root仅用于活动虚拟机。存在“BACKUPS”文件夹。每周创建该文件夹内部以存储每周克隆。今天的示例“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/
答案 0 :(得分:1)
-Location定义放置VM的vCenter文件夹,而不是数据存储中放置VM文件的文件夹。
据我所知,VMs文件必须放在数据存储区的根目录上。
当我第一次创建脚本时,我考虑尝试做类似的事情,因为它使旧备份的归档更容易,但我当时找不到解决方案。
抱歉,我帮不了多忙......
答案 1 :(得分:1)
我听起来您正在尝试进行备份,我强烈建议您查看实际的备份产品,例如VMware's Data Recovery或Veeam's Backup实用程序。
就像@Mike所说,VM文件在数据存储区的根目录下工作。您可以创建多个数据存储并循环进行备份,但如果您使用的是高性能磁盘,则可能会非常昂贵。
答案 2 :(得分:0)
我尝试使用$date = Get-Date -Format "YYYYMMDD"
但最终输出为YYY01DD
。
已更改为$date = Get-Date -uformat "%d%m%Y
,我现在得到01012012