Skip to content

Commit d9db650

Browse files
committed
Design doc for Virtual Hardware Platform Version management
Signed-off-by: Thomas Sanders <[email protected]>
1 parent 5283bd5 commit d9db650

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
title: Virtual Hardware Platform Version
3+
layout: default
4+
design_doc: true
5+
revision: 1
6+
status: proposed
7+
---
8+
9+
Some VMs can only be run on hosts of sufficiently recent versions.
10+
11+
We want a clean way to ensure that xapi only tries to run a guest VM on a host that supports the "virtual hardware platform" required by the VM.
12+
13+
Suggested design:
14+
15+
* In the datamodel, VM has a new integer field "virt_hw_vn" which defaults to zero.
16+
* In the datamodel, Host has a corresponding new integer-list field "virt_hw_vns" which defaults to the empty list.
17+
* When a host boots it populates its own entry from a hardcoded value, currently a list containing a single element which is the number 1. (Alternatively this could come from a config file.)
18+
* If this new version-handling functionality is introduced in a hotfix, at some point the pool master will have the new functionality while at least one slave does not. An old slave-host that does not yet have software to handle this feature will not populate its DB entry, which will therefore remain as the empty list (maintained in the DB by the master).
19+
* The existing test for whether a VM can run on (or migrate to) a host must include a check that the VM's virtual hardware platform version is zero or is in the host's list of supported versions.
20+
* When a VM is made to start using a feature is available only in a certain virtual hardware platform version, xapi must set it the VM's virt_hw_vn to the minimum of that version-number and its current value.
21+
22+
For the version we could consider some type other than integer, but a strict ordering is needed.

0 commit comments

Comments
 (0)