提交 5f719f21 编写于 作者: P Peter Krempa

qemu: Forbid migration of machines with I/O errors

Such machine can't be successuflly migrated unles the I/O error has
recovered and might lead to data corruption. Forbid this kind of
migration.
上级 caa467db
...@@ -1423,6 +1423,7 @@ qemuMigrationIsAllowed(virQEMUDriverPtr driver, virDomainObjPtr vm, ...@@ -1423,6 +1423,7 @@ qemuMigrationIsAllowed(virQEMUDriverPtr driver, virDomainObjPtr vm,
virDomainDefPtr def, bool remote) virDomainDefPtr def, bool remote)
{ {
int nsnapshots; int nsnapshots;
int pauseReason;
bool forbid; bool forbid;
int i; int i;
...@@ -1445,6 +1446,15 @@ qemuMigrationIsAllowed(virQEMUDriverPtr driver, virDomainObjPtr vm, ...@@ -1445,6 +1446,15 @@ qemuMigrationIsAllowed(virQEMUDriverPtr driver, virDomainObjPtr vm,
nsnapshots); nsnapshots);
return false; return false;
} }
/* cancel migration if disk I/O error is emitted while migrating */
if (virDomainObjGetState(vm, &pauseReason) == VIR_DOMAIN_PAUSED &&
pauseReason == VIR_DOMAIN_PAUSED_IOERROR) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("cannot migrate domain with I/O error"));
return false;
}
} }
if (virDomainHasDiskMirror(vm)) { if (virDomainHasDiskMirror(vm)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册