Hi,
On 2/13/20 4:22 PM, Eneko Lacunza wrote:
Hi again,
It is also documented elsewhere:
https://www.linux-kvm.org/page/Migration#Note
First of all I want to point out that the information you posted was
last updated in 2009, and since then CPUs have gotten more and more
complex (and, if Intel's security issues are anything to go by, also
come with more bugs then ever). It _might_ have been true back then, but
I have a feeling that even then it was more wishful thinking then actual
success stories.
Cheers
El 13/2/20 a las 16:12, Eneko Lacunza escribió:
Hi Stefan,
El 13/2/20 a las 15:58, Stefan Reiter escribió:
Hi,
On 2/13/20 1:27 PM, Eneko Lacunza wrote:
Hi Stefan,
Do you think this could help specifying a custom CPU model that will
migrate VMs with more than 1 core between Intel and AMD CPUs?
https://bugzilla.proxmox.com/show_bug.cgi?id=1660
as discussed on the bug report you linked, live migration between
hosts using different vendors' CPUs is very much unsupported in
general (with KVM-enabled VMs). Even if it _appears_ to work, there
are no guarantees about stability.
That said, if you find a specific CPU flag configuration that seems
to work for you (like comment #12 in the report mentions), this
series would indeed allow you to specify it as a custom CPU model
instead of having to use the '-args' parameter.
I don't understand why you insist that this isn't supported. Linux KVM
FAQ says otherwise:
https://www.linux-kvm.org/page/FAQ#Does_KVM_support_live_migration_from_an_AMD_host_to_an_Intel_host_and_back.3F
"
Does KVM support live migration from an AMD host to an Intel host and
back?
Yes. [...]
"
I understand that there can be bugs, or maybe Proxmox VE as a product
can decide no to support such a feature; but technically upstrean says
that it should work. Shall I report the issue upstream directly?
PVE _does_ allow you to attempt live-migration between different CPU
hosts, but since time and experience has told us that it seldomly works
as intended, we don't officially support it.
This is in contrast to most other virtualization providers that simply
forbid cross-vendor migrations entirely [0][1] - and I suppose they do
it for good reason too.
Of course you can always report kernel/KVM/QEMU/etc. bugs directly
upstream, this will indeed have the highest chance of getting your
specific issues fixed. Although I personally wouldn't hold my breath for
a 'complete fix' (as in, cross-vendor live-migration working just as
well as between same-vendor hosts) anytime soon.
[0]
https://kb.vmware.com/s/article/1005764#Does%20EVC%20allow%20AMD%20and%20Intel%20CPUs%20to%20be%20vMotion%20compatible?
[1]
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn859550(v=ws.11)#when-to-use-processor-compatibility-mode
Thanks a lot
Eneko
Hope that helps,
Stefan
Thanks a lot
Eneko
El 12/2/20 a las 16:11, Stefan Reiter escribió:
Based on the RFC and following on- and off-list discussion about
custom CPU
models [0].
In essence, this revised patch allows a user to specify custom CPU
models in
/etc/pve/cpu-models.conf (section-config style [1]), where VMs
using that CPU
model inherit details from the definition. This removes any fragile
"auto-magical" CPU flag detection, while still giving the user a
way to create
VMs with the best possible subset of CPU features maintaining
live-migration
compatibility.
Includes the infrastructure for broadcasting supported CPU flags
for each
cluster-node via the key-value store - this is not necessary for the
custom-cpu feature in particular, but I think could prove useful for
implementing the GUI part (e.g. show the user which flags are
supported on which
nodes).
v7 -> v8:
* rebase on master, fix tests now using +pve0
* fixed nits noted by Thomas
* moved live-migration/snapshot patches forward to avoid temporary
breakage
* fix CPU hotplug with custom CPUs
* guard mkdir with check_cfs_is_mounted and also run before write
* fix rebase-error in cfg2cmd tests (getaddrinfo_all)
* dropped applied patches
I deliberately didn't add any version_guard checks, since I don't
think a bump
is the right thing to do here (I say, after I waited for the
pve-version series
to be applied for making this v8).
Doing so would break custom CPUs on older machine versions (since
I'd have to
pin it to 4.1~pve2) for no reason. The idea would have been to show
a neat error
message, but since up to this point we didn't even check the
pve-version on
migration, it wouldn't help much. Besides, migration to older
versions already
fails cleanly with a semi-readable message ('Unknown option:
force-cpu').
< see [2] for older history >
[0]: https://pve.proxmox.com/pipermail/pve-devel/2019-July/038268.html
[1]: e.g.:
cpu-model: custom-cpu-name
host-phys-bits 1
flags +aes;+avx;+avx2
reported-model kvm64
[2]
https://pve.proxmox.com/pipermail/pve-devel/2020-January/041278.html
qemu-server: Stefan Reiter (8):
Adapt CPUConfig to handle custom models
Verify VM-specific CPU configs seperately
Include "-cpu" parameter with live-migration
Include "-cpu" parameter with snapshots/suspend
Add helpers to better structure CPU option handling
Rework get_cpu_options and allow custom CPU models
fix #2318: allow phys-bits and host-phys-bits CPU settings
cfg2cmd: add test cases for custom CPU models
PVE/API2/Qemu.pm | 10 +-
PVE/QemuConfig.pm | 36 +-
PVE/QemuMigrate.pm | 22 +
PVE/QemuServer.pm | 44 +-
PVE/QemuServer/CPUConfig.pm | 477
+++++++++++++++---
test/cfg2cmd/custom-cpu-model-defaults.conf | 8 +
.../custom-cpu-model-defaults.conf.cmd | 24 +
test/cfg2cmd/custom-cpu-model.conf | 8 +
test/cfg2cmd/custom-cpu-model.conf.cmd | 27 +
test/cfg2cmd/i440fx-win10-hostpci.conf.cmd | 2 +-
test/cfg2cmd/minimal-defaults.conf.cmd | 2 +-
test/cfg2cmd/pinned-version.conf.cmd | 2 +-
.../q35-linux-hostpci-multifunction.conf.cmd | 2 +-
test/cfg2cmd/q35-linux-hostpci.conf.cmd | 2 +-
test/cfg2cmd/q35-win10-hostpci.conf.cmd | 2 +-
test/cfg2cmd/simple1.conf.cmd | 2 +-
test/cfg2cmd/spice-enhancments.conf.cmd | 2 +-
test/cfg2cmd/spice-linux-4.1.conf.cmd | 2 +-
test/cfg2cmd/spice-usb3.conf.cmd | 2 +-
test/cfg2cmd/spice-win.conf.cmd | 2 +-
test/run_config2command_tests.pl | 23 +
21 files changed, 609 insertions(+), 92 deletions(-)
create mode 100644 test/cfg2cmd/custom-cpu-model-defaults.conf
create mode 100644 test/cfg2cmd/custom-cpu-model-defaults.conf.cmd
create mode 100644 test/cfg2cmd/custom-cpu-model.conf
create mode 100644 test/cfg2cmd/custom-cpu-model.conf.cmd
_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel