VMware虚拟化 - 建设篇
第四章 使用vim-cmd工具给ESXi虚机定期打快照
- VMware虚拟化 - 建设篇
- 系列文章回顾
- 使用vim-cmd工具给ESXi虚机定期打快照
- 前言
- 前提条件
- ESXi新增执行快照备份的sh脚本
- ESXi添加crond任务并使其生效
- ESXi指定部分虚拟机不执行定期快照
- (附加)虚拟机自定义属性结合sh脚本实现自定义操作
- 验证定期创建快照和删除快照
- 参考链接
系列文章回顾
第一章 部署vCenter6.7和vSphere群集功能
第二章 vCenter6.7的管理网络使用vDS+LACP
第三章 vCenter6.7挂载Windows Server2016 NFS41存储
使用vim-cmd工具给ESXi虚机定期打快照
前言
由于整合了几台ESXi
主机,使用了vCenter
虚拟化平台,为确保虚拟机业务持续稳定地运行,需定期给虚拟机打快照备份和磁盘备份(使用Windows Server Backup
做磁盘备份),即使用ESXi
自带的vim-cmd
工具集进行虚机快照备份。
- 虚拟化平台:
VMware VSCA 6.7
- ESXi底层:
VMware VMvisor 6.7
前提条件
- 使用vim-cmd工具给ESXi虚拟机打快照的前提是 虚拟机所在的数据存储
datastore
必须有闲置容量,因为打快照的原理是锁定当前虚机的所有存储容量,当产生新的数据时就开始占用datastore
的闲置容量了。 - 根据虚机的实际使用量来计算,至少冗余
10%
以上的datasotre
闲置容量,保证datastore
存储有可用容量。
ESXi新增执行快照备份的sh脚本
sh脚本存放在datastore
数据存储内,即/vmfs/volumes/datastore
目录,sh脚本引用目录时使用UUID
真实链接
如下案例将<datastore1-UUID>
替换成datastore
的UUID
真实链接
### cd /vmfs/volumes/datastore1
[root@VM01:/vmfs/volumes/<datastore1-UUID>] mkdir crontabs; cd crontabs# 创建快照的sh脚本 | 给sh脚本添加执行权限
[root@VM01:/vmfs/volumes/<datastore1-UUID>/crontabs] touch snapshot_create.sh; chmod +x snapshot_create.sh
# 删除快照的sh脚本 | 给sh脚本添加执行权限
[root@VM01:/vmfs/volumes/<datastore1-UUID>/crontabs] touch snapshot_delete.sh; chmod +x snapshot_delete.sh
# 记录创建快照的log日志
[root@VM01:/vmfs/volumes/<datastore1-UUID>/crontabs] touch schedule_create_snap.log
# 记录创建删除的log日志 | 全量log日志
[root@VM01:/vmfs/volumes/<datastore1-UUID>/crontabs] touch schedule_delete_snap.log; touch schedule_delete_snap_All.log
snapshot_create.sh
#!/bin/sh
_SNAPLEN=2 # 为防止 snapshot_delete.sh 执行失败的情况出现,创建快照期间也要限制快照的数量不超过 _SNAPLEN。这个值跟snapshot_delete.sh的 _SNAPLEN 保持一致
_Count=`vim-cmd vmsvc/getallvms | egrep vmx | wc -l` # 统计虚机总数
echo