feat(xo-server/backup-ng): disable VM HA on DR/CR (#3755)

Fixes #2359
This commit is contained in:
badrAZ 2018-12-12 16:04:03 +01:00 committed by Julien Fontanet
parent 995e6664f9
commit cb5d3b9750
5 changed files with 25 additions and 0 deletions

View File

@ -12,6 +12,7 @@
- [Backup NG] Add "XOSAN" in excluded tags by default [#2128](https://github.com/vatesfr/xen-orchestra/issues/3563) (PR [#3559](https://github.com/vatesfr/xen-orchestra/pull/3563))
- [VM] add tooltip for VM status icon [#3749](https://github.com/vatesfr/xen-orchestra/issues/3749) (PR [#3765](https://github.com/vatesfr/xen-orchestra/pull/3765))
- [New XOSAN] Improve view and possibility to sort SRs by name/size/free space [#2416](https://github.com/vatesfr/xen-orchestra/issues/2416) (PR [#3691](https://github.com/vatesfr/xen-orchestra/pull/3691))
- [Backup NG] Disable HA on replicated VM (CR, DR) [#2359](https://github.com/vatesfr/xen-orchestra/issues/2359) (PR [#3755](https://github.com/vatesfr/xen-orchestra/pull/3755))
### Bug fixes

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -141,3 +141,12 @@ To make the mount point persistent in XOA, edit the `/etc/fstab` file, and add:
```
This way, without modifying your previous scheduled snapshot, they will be written to this new local mountpoint!
## High availability (HA) disabled on replicated VMs
Replicated VMs HA are taken into account by XS/XCP-ng. To avoid the resultant troubles, HA will be disabled from the replicated VMs and a tag indicating this change will be added.
![](./assets/disabled-dr-ha-tag.png)
![](./assets/disabled-cr-ha-tag.png)
> The tag won't be automatically removed by XO on the replicated VMs, even if HA is re-enabled.

View File

@ -447,6 +447,19 @@ const extractIdsFromSimplePattern = (pattern: mixed) => {
}
}
const disableVmHighAvailability = async (xapi: Xapi, vm: Vm) => {
if (vm.ha_restart_priority === '') {
return
}
return Promise.all([
xapi._setObjectProperties(vm, {
haRestartPriority: '',
}),
xapi.addTag(vm.$ref, 'HA disabled'),
])
}
// File structure on remotes:
//
// <remote>
@ -1236,6 +1249,7 @@ export default class BackupNg {
await Promise.all([
xapi.addTag(vm.$ref, 'Disaster Recovery'),
disableVmHighAvailability(xapi, vm),
xapi._updateObjectMapProperty(vm, 'blocked_operations', {
start:
'Start operation for this vm is blocked, clone it if you want to use it.',
@ -1586,6 +1600,7 @@ export default class BackupNg {
await Promise.all([
xapi.addTag(vm.$ref, 'Continuous Replication'),
disableVmHighAvailability(xapi, vm),
xapi._updateObjectMapProperty(vm, 'blocked_operations', {
start:
'Start operation for this vm is blocked, clone it if you want to use it.',