我的VM备份脚本在创建快照时失败。
virsh snapshot-create-as --domain machine_1 snap --diskspec vda,file=/srv/test/test-snap.qcow2 --disk-only --atomic --no-metadata --quiesce
error: Requested operation is not valid: domain is already quiesced即使在VM重新启动之后,系统仍然是静止的,我也得到了相同的错误。
我认为quiesce意味着FS冻结,但这是没有意义的,因为我仍然可以在登录错误VM时写入FS。如果再重新启动的话,这是不可能的,对吧?
这是否是一个通信问题,让主机认为GA说机器是安静的,而不是呢?
在任何情况下,是否有命令来查询静态状态(除了尝试快照并查看是否有错误)?
假设错误的VM在一个不可复制的错误之后停止工作,我可以通过退出静态状态来解决这个问题,不管这意味着什么。是否有一个virsh命令来解除VM?
整个备份过程过去是工作的,现在它在2个VM上失败了,但是仍然在另外两个VM上工作,我想不出它们之间有什么相关的区别。
软件版本:
(为了记录在案,备份脚本是在GitHub上。基本上,它所做的是1/创建快照、2/拷贝、3/提交快照。)
如果我从快照命令行中删除quiesce选项,事情就会顺利进行。但很明显,这并不理想。
发布于 2018-06-25 15:03:00
根本原因是libvirt1.2.11中固定的错误。
固定上游:提交6085d917d5c5839b7ed351e99fadbbb56f5178fe作者: Michal Privoznik mprivozn@redhat.com Date:清华11月27日11:43:56 2014 +0100 qemu:不要跟踪FSs https://bugzilla.redhat.com/show_bug.cgi?id=1160084截至b6d4dad11b (1.2.5)的静止状态,我们试图保持FSFreeze在客人中的地位。尽管我试图修复几个角落的情况(6ea54769ba18),但我最近才意识到,这种方法被设计打破了。首先,与qemu(甚至通过libvirt)对话的其他方式有很多,即文件系统可以解冻(例如qemu命令),而不需要libvirt注意到。此外,有很多方法可以解冻文件系统,甚至连qemu都没有注意到(是的,qemu保持FSFreeze状态的内部跟踪)。因此,与其自己跟踪,或者询问qemu的陈旧状态,最好让qemu处理这个问题(并且可能让来宾内核传播一个错误)。此外,下面的方法有一个错误,如果fsthaw命令失败,我们随后执行了fsthaw。因此,在virsh中发出domfs冻结给出了以下结果: virsh # domfsfreeze gentoo冻结了1文件系统(S) virsh # domfsfreeze gentoo错误:内部错误:内部错误:无法执行QEMU代理命令‘来宾- for冻结’:针对这个实例,已禁用命令来宾-fs冻结-冻结命令
升级到较新的版本解决了这个问题。
https://serverfault.com/questions/917247
复制相似问题