在XenCenter中使用命令删除XenServer虚拟机快照
在XenCenter中可以直接使用桌面化的操作方式将快照进行删除,但那样删除之后,还是存在快照占用磁盘空间的问题。在官网查找了一下文档,发现可以使用命令对快照占用的磁盘进行回收,尝试了一下,但效果不明显。
接下来介绍如何在资源池中对虚拟机快照删除之后的资源进行回收,环境描述:两台XenServer主机同时加入到了一个资源池,使用共享虚拟存储存放虚拟机,并启用了HA功能。
由于在对系统进行安全补丁更新时,为了保证系统在更新补丁之后能够正常运行,一般都会对虚拟机进行快照备份,这样即使安全补丁更新之后,造成系统不能正常运行,还是能够使用快照进行快速恢复的,采用快照方式进行备份,也是一种常用的应急恢复方案。之前都是在Windows Hyper-V的环境中对虚拟机进行快照备份和恢复,这次的环境却是XenServer。之前都没有尝试过对XenServer中的虚拟机进行备份和恢复操作,所以第一次在XenServer上进行快照备份操作,在进行快照备份时还是挺顺利的,只有一台虚拟机因为磁盘占用空间太大,未能完成快照备份。其他虚拟机均正常快照备份。在完成虚拟机系统补丁更新之后,测试发现所有系统均能正常运行,故没有做恢复操作。由于之前对虚拟机虚拟磁盘本身分配资源比较小,所以决定将快照文件进行删除,但删除之后,磁盘空间还是未能回收,处于占用状态。
获取虚拟机UUID
可以直接在XenCenter里面选中对应的虚拟机,在
General里面可以看到UUID信息,要是显示不出来,可以在View中选择Hidden Objects选项,再打开虚拟机的General选项里面查看。
另外一种方式就是在XenServer主机里面使用命令进行查看UUID,进入XenServer的console里面,输入: xe vm-list就可以看到对应的虚拟机的UUID码了。
显示所有快照的列表命令
删除对应快照的命令:
另一种销毁快照的命令:
回收虚拟机快照所占磁盘空间的命令:
说明host-uuid为主机的uuid,vm-uuid为虚拟机的uuid,host-uuid也是可以在General选项里面查看到的。
使用上面的命令,对删除快照之后的磁盘容量回收效果不是很好,大概只能回收1G左右的空间,对于FC类的存储空间来说,跟回收之前没多大区别。
官方提示:
? 思杰建议运行离线合并工具前,手动关闭或暂停虚拟机的运行(使用XenCenter或XenServer CLI)。如果您在处于运行状态的虚拟机上运行合并工具,工具会自动暂停虚拟机运行,执行所需的VDI合并操作,然后恢复虚拟机运行。
? 如果欲合并的虚拟磁盘镜像(VDI)保存在共享存储,您必须在资源池主服务器(pool master)上运行离线合并工具。
? 如果欲合并的VDI保存在本地存储,您必须在与本地存储相关联的服务器上运行离线合并工具。
- Xe vm-list name-label=<vm-name>
此命令来检测这个VM的信息是否已经被XenServer删除,- Xe vm-disk-list name-label=<vm-name>
此命令来查看VM对应的VDI的信息,在VM删除后,我们需要确定这个VDI有没有正常删除。- Lvscan | grep <vdi-uuid>
此命令来查看在linux底层这个VDI的LVM卷有没有正常被删除。
- 方法仅供测试,至于能否彻底清除SR扫描时候所产生的exception要结合用户的实际生产环境考虑, 因为后续要删除的每个VDISK都有可能是非常关键的VM数据。
- 上面所提的uuid均为我的测试环境,请结合自己实际环境中的uuid验证。