...
Eventually we decided to solve this issue by dumbing down all instances to the lowest common feature set, i.e. Sandy Bridge in our ZH region. Now new instances will only be able to use the subset of features supported by Sandy Bridge CPUs, but we can freely migrate them between all servers.
The configuration uses the uses cpu_mode=custom
in nova.conf.TO BE CONTINUED. When cpu_mode is set to custom, then cpu_model
must also be defined. On our ZH cluster, we set it to SandyBridge
. The model must be known to libvirt; these models are defined in /usr/share/libvirt/cpu_map.xml
. On the somewhat ancient libvirt version we use, this file knows about SandyBridge and Haswell, but not about IvyBridge or Broadwell. In our other production cluster, LS, we could use IvyBridge
, but then we'd have to define that ourselves. But we find it too cumbersome/risky to override this system file, so we just use SandyBridge as well. Anyway, there aren't that many differences between SandyBridge and IvyBridge.