快照脚本化运维
PowerCLI 把 VMware 快照操作脚本化:New-Snapshot 创建、Get-Snapshot 查询、Set-VM 回滚、Remove-Snapshot 删除并合并 delta 磁盘。快照适合作为变更前后的短期护栏,它保存的是增量 delta 链,不能替代真正的备份产品。
基本信息
| 创建 | New-Snapshot -VM web01 -Name before-patch -Description "补丁窗口" |
|---|---|
| 查询 | Get-Snapshot -VM web01 | Select Name,Created,SizeGB |
| 回滚 | Set-VM -VM web01 -Snapshot $s -Confirm:$false |
| 删除 | Remove-Snapshot -VM web01 -Snapshot $s |
| 前提条件 | 先 Connect-VIServer 连上 vCenter,账号具备快照相关权限 |
| 代价 | 快照存在期间写入落到 delta 文件,长期保留影响性能与空间 |
典型使用场景
- 补丁与升级前打快照,出问题快速回退
- 变更验证期间保留还原点,验证通过立即删除
- 批量巡检发现长期未清理的快照,提前处理空间与性能隐患
- 交付验收前确认虚机没有残留快照
- 演练回滚流程,摸清实际恢复耗时
创建、回滚与删除快照
创建、回滚与删除快照
Connect-VIServer -Server vcsa.example.com # 先连上 vCenter
New-Snapshot -VM web01 -Name before-patch -Description '补丁窗口'
$s = Get-Snapshot -VM web01 -Name before-patch
Set-VM -VM web01 -Snapshot $s -Confirm:$false # 回滚到快照
Remove-Snapshot -VM web01 -Snapshot $s # 删除并合并 delta
Get-Snapshot -VM web01 | Select Name,Created,SizeGB # 列出全部快照,便于定期清理操作与代价
| 操作 | 行为 | 代价 |
|---|---|---|
| 创建快照 | 生成 delta 磁盘,后续写入进入 delta | 磁盘链路变长,写入性能下降 |
| 回滚 | 丢弃快照之后的写入 | 不可撤销,先确认数据取舍 |
| 删除快照 | 把 delta 合并回基础盘 | 大快照合并耗时长且占用大量 I/O |
| 含内存快照 | 额外保存内存状态 | 生成慢、占用空间大 |
快照保留时间越长,delta 链越长,回滚与删除都更慢;把快照当临时护栏,变更验证结束就删掉,长期留存交给备份产品。巡检脚本可以按创建时间列出超期快照,形成固定的清理节奏。
回滚是不可撤销的写入丢弃动作:快照之后产生的数据会一并消失,执行前必须与业务确认取舍。删除大快照期间避免再对同一虚机创建或回滚快照。