Skip to content

Commit 1aa2a2d

Browse files
committed
Update cpu-levelling-v2.md
1 parent ba3ff09 commit 1aa2a2d

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

xapi/design/cpu-levelling-v2.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@ title: CPU feature levelling 2.0
33
layout: default
44
design_doc: true
55
status: proposed
6-
revision: 3
6+
revision: 4
77
revision_history:
88
- revision_number: 1
99
description: Initial version
1010
- revision_number: 2
1111
description: Add details about VM migration and import
1212
- revision_number: 3
1313
description: Included and excluded use cases
14+
- revision_number: 4
15+
description: Rolling Pool Upgrade use cases
1416
---
1517

1618
Executive Summary
@@ -56,19 +58,18 @@ Excluded use cases
5658

5759
2. A user wants to replace all the hosts in an existing XenServer pool with newer, more capable models and upgrade the pool's feature set to reveal the features offered by the new hosts. The pool feature set will remain the same, even after the last of the older, less capable hosts is removed. In the future, 're-levelling' could allow the pool feature set to be expanded, however this should only be done with the user's consent as doing so would prevent any older hosts from being re-added to the pool.
5860

61+
Rolling pool upgrade
62+
--------------------
5963

60-
Rolling pool upgrade
61-
-------
64+
* When a heterogeneous pool is upgraded, it might turn out that the master is the most capable host. If the pool level is set to the master's level, then all the other hosts will be disabled after the upgrade. Instead, as each host is upgraded and comes back online, we will compare its feature level with the pool level and down-level the pool if the newly-upgraded host is below the pool's level.
6265

63-
* When a heterogeneous pool is upgraded, it might turn out that the master is the most capable host. If the pool level is set to the master's level, then all the other hosts will be disabled after the upgrade. Instead, as each host is upgraded and comes back online, we will compare its feature level with the pool level and down-level the pool if the newly-upgraded host is below the pool's level.
64-
65-
* A VM which was running on the pool before the upgrade is expected to continue to run afterwards. However, when the VM is migrated to an upgraded host, some of the CPU features it had been using might disappear, either because they are not offered by the host or because the new feature-levelling mechanism hides them. To allow such a VM to continue running, it will be given a temporary VM-level feature set allowing all CPU features. When the VM is rebooted it will inherit the pool-level feature set.
66+
* A VM which was running on the pool before the upgrade is expected to continue to run afterwards. However, when the VM is migrated to an upgraded host, some of the CPU features it had been using might disappear, either because they are not offered by the host or because the new feature-levelling mechanism hides them. To allow such a VM to continue running, it will be given a temporary VM-level feature set allowing all CPU features. When the VM is rebooted it will inherit the pool-level feature set.
6667

67-
* A VM which is started during the upgrade will be given the current pool-level feature set. The pool-level feature set may drop after the VM is started, as more hosts are upgraded and re-join the pool, however the VM is guaranteed to be able to migrate to any host which has already been upgraded. If the VM is started on the master, there is a risk that it may only be able to run on that host.
68+
* A VM which is started during the upgrade will be given the current pool-level feature set. The pool-level feature set may drop after the VM is started, as more hosts are upgraded and re-join the pool, however the VM is guaranteed to be able to migrate to any host which has already been upgraded. If the VM is started on the master, there is a risk that it may only be able to run on that host.
6869

69-
* To allow the VMs with grandfathered-in flags to be migrated around in the pool, the intra pool VM migration pre-checks will compare the VM's feature flags to the target host's flags, not the pool flags. This will maximise the chance that a VM can be migrated somewhere in a heterogeneous pool, particularly in the case where only a few hosts in the pool do not have features which the VMs require. TODO: This requires that the VM's feature set describes roughly what features it requires; with an 'allow all' feature set, we can't choose the best host for a VM. The best we can do is to migrate the VM to the most capable host with space in the pool.
70+
* To allow the VMs with grandfathered-in flags to be migrated around in the pool, the intra pool VM migration pre-checks will compare the VM's feature flags to the target host's flags, not the pool flags. This will maximise the chance that a VM can be migrated somewhere in a heterogeneous pool, particularly in the case where only a few hosts in the pool do not have features which the VMs require. TODO: This requires that the VM's feature set describes roughly what features it requires; with an 'allow all' feature set, we can't choose the best host for a VM. The best we can do is to migrate the VM to the most capable host with space in the pool.
7071

71-
* To allow cross-pool migration, we will still check the VM's requirements against the *pool-level* features of the target pool. This is to avoid the possibility that we migrate a VM to an 'island' in the other pool, from which it cannot be migrated any further.
72+
* To allow cross-pool migration, we will still check the VM's requirements against the *pool-level* features of the target pool. This is to avoid the possibility that we migrate a VM to an 'island' in the other pool, from which it cannot be migrated any further.
7273

7374

7475
XenAPI Changes

0 commit comments

Comments
 (0)