KVMホストをAMD cpuを搭載したホストからIntel CPUを搭載したホストに移行しようとしましたが、virsh start guest_name
取得しましたerror: unsupported configuration: CPU model ... is not supported by hypervisor
。
KVMがこのような移行をサポートしていることを知っています(FAQでは、64ビットAMD/Intel CPU間のライブマイグレーションについても話します)。どうすればよいですか?
ゲストのxml定義の一部を編集して、両方のCPU(IntelおよびAMD)にあるCPU機能のサブセットが含まれるようにする必要があります。 virsh
を使用して、このサブセットを見つけることができます。方法は次のとおりです。
$ virsh capabilities | virsh cpu-baseline /dev/stdin > /tmp/Host1.xml
# copy this file to Host#2 -- e.g.:
$ scp /tmp/Host1.xml $Host2:/tmp/Host1.xml
$ virsh capabilities | virsh cpu-baseline /dev/stdin > /tmp/Host2.xml
$ cat /tmp/Host1.xml /tmp/Host2.xml > /tmp/both-cpus.xml
次に、both-cpus.xml
を編集して、
<cpu>....</cpu>
セクションのみを保持<vendor>....</vendor>
の行を削除します最後にこれを実行します:
$ virsh cpu-baseline /tmp/both-cpus.xml
このエラーが発生した場合 "XMLエラー:CPUアーキテクチャがありません"両方の<Arch>x86_64</Arch>
セクションに<cpu>...</cpu>
を追加します。もちろんx86_64
は、最新のAMDおよびIntel CPU向けです。他のアーキテクチャを使用している場合は、適切に調整してください(このヒントの harald のおかげです)。
上記のコマンドの出力は、ゲストのxml定義内で使用する必要があります。