KVM仮想化のネストされた仮想化nested
8142 ワード
本明細書でテストする物理マシンはcentos 6である.5
物理マシンはIntel-V仮想化アーキテクチャを使用してqemu-kvmバージョン0.12をインストールする
Intelプロセッサでは、KVMがIntelのvmx(virtul machine eXtensions)を使用して仮想マシンのパフォーマンス、すなわちハードウェア支援仮想化技術を向上させることを知っています.現在、openstackクラスタをテストする必要がある場合や、単純に「vmx」サポートを備えたホストを複数台必要としていますが、物理サーバがあまり使用できません.仮想マシンが物理マシンと同様にvmxをサポートできる場合、問題は解決します.通常、仮想マシンはhypervisorsになり、仮想マシンを再インストールすることはできません.これらの仮想マシンはvmxをサポートしていないためです.
ネスト仮想nestedは、カーネルパラメータで有効にできる機能です.1台の仮想マシンに物理マシンCPUの特性を持たせることができ、vmxまたはsvm(AMD)ハードウェアの仮想化をサポートする.nestedの具体的な紹介については、ここを参照してください.
1.まず一般的なKVM仮想マシンCPU情報を確認する
2.物理サーバでnestedサポートをオンにする
物理マシンカーネルがnestedをサポートするには、まずLinux 3にシステムカーネルをアップグレードする必要があります.Xバージョン、2ステップ目はカーネルに新しいブートパラメータを追加する
デフォルトではnestedはサポートされていません
最初のステップはカーネルをアップグレードして、3.18カーネルでテストをして、カーネルをアップグレードするのは簡単で、コンパイルしたカーネルrpmパッケージをダウンロードして、ここはダウンロードアドレスです、インストールして、grubを修正します.confデフォルトブートカーネルは新しいカーネルです
ステップ2でブートパラメータを追加するのも簡単ですが、kernelの行の末端に「kvm-intel.nested=1」を付けるだけです.
上の変更後、システムを再起動し、「uname-r」でシステムカーネルを表示し、nestedがサポートされているかどうかを確認します.
3.vmxをサポートする仮想マシンの構築
libvirtを使用して仮想マシンを管理する場合は、仮想マシンxmlファイルのCPUの定義を変更する必要があります.次の3つの定義で構いません.
qemu-kvmコマンドラインを使用して仮想マシンを起動すると、簡単に追加できます.
仮想マシンを起動し、構成を表示します.
本文はhttp://www.cnblogs.com/jython/p/4458807.html、転載は出典を明記してください
参考記事
http://kashyapc.com/2012/01/14/nested-virtualization-with-kvm-intel/
http://networkstatic.net/nested-kvm-hypervisor-support/
物理マシンはIntel-V仮想化アーキテクチャを使用してqemu-kvmバージョン0.12をインストールする
Intelプロセッサでは、KVMがIntelのvmx(virtul machine eXtensions)を使用して仮想マシンのパフォーマンス、すなわちハードウェア支援仮想化技術を向上させることを知っています.現在、openstackクラスタをテストする必要がある場合や、単純に「vmx」サポートを備えたホストを複数台必要としていますが、物理サーバがあまり使用できません.仮想マシンが物理マシンと同様にvmxをサポートできる場合、問題は解決します.通常、仮想マシンはhypervisorsになり、仮想マシンを再インストールすることはできません.これらの仮想マシンはvmxをサポートしていないためです.
ネスト仮想nestedは、カーネルパラメータで有効にできる機能です.1台の仮想マシンに物理マシンCPUの特性を持たせることができ、vmxまたはsvm(AMD)ハードウェアの仮想化をサポートする.nestedの具体的な紹介については、ここを参照してください.
1.まず一般的なKVM仮想マシンCPU情報を確認する
[root@localhost ~]# lscpu
Architecture: x86_64
...
Vendor ID: GenuineIntel
Hypervisor vendor: KVM
Virtualization type: full
...
[root@localhost ~]# cat /pro/cpuinfo
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 13
model name : QEMU Virtual CPU version (cpu64-rhel6)
...
flags : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm unfair_spinlock pni cx16 hypervisor lahf_lm
, , CPU QEMU CPU, (flags vmx)
2.物理サーバでnestedサポートをオンにする
物理マシンカーネルがnestedをサポートするには、まずLinux 3にシステムカーネルをアップグレードする必要があります.Xバージョン、2ステップ目はカーネルに新しいブートパラメータを追加する
デフォルトではnestedはサポートされていません
# nested
systool -m kvm_intel -v | grep -i nested
nested = "N"
#
cat /sys/module/kvm_intel/parameters/nested
N
最初のステップはカーネルをアップグレードして、3.18カーネルでテストをして、カーネルをアップグレードするのは簡単で、コンパイルしたカーネルrpmパッケージをダウンロードして、ここはダウンロードアドレスです、インストールして、grubを修正します.confデフォルトブートカーネルは新しいカーネルです
ステップ2でブートパラメータを追加するのも簡単ですが、kernelの行の末端に「kvm-intel.nested=1」を付けるだけです.
#
rpm -ivh kernel-ml-3.18.3-1.el6.elrepo.x86_64.rpm
# grub.conf
default=0 #
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (3.18.3-1.el6.elrepo.x86_64)
root (hd0,0)
kernel /vmlinuz-3.18.3-1.el6.elrepo.x86_64 ro root=UUID=9c1afc64-f751-473c-aaa6-9161fff08f6f rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcy
rheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet kvm-intel.nested=1
...
上の変更後、システムを再起動し、「uname-r」でシステムカーネルを表示し、nestedがサポートされているかどうかを確認します.
3.vmxをサポートする仮想マシンの構築
libvirtを使用して仮想マシンを管理する場合は、仮想マシンxmlファイルのCPUの定義を変更する必要があります.次の3つの定義で構いません.
#
<cpu mode='custom' match='exact'>
<model fallback='allow'>core2duo</model>
<feature policy='require' name='vmx'/>
</cpu>
# CPU "core2duo", "vmx"
#
<cpu mode='host-model'>
<model fallback='allow'/>
</cpu>
#
<cpu mode='host-passthrough'>
<topology sockets='2' cores='2' threads='2'/>
</cpu>
#CPU , vcpu CPU , ,
qemu-kvmコマンドラインを使用して仮想マシンを起動すると、簡単に追加できます.
-enable-kvm -cpu qemu64,+vmx
# CPU qemu64 , vmx
仮想マシンを起動し、構成を表示します.
# CPU "host-model"
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 26
model name : Intel Core i7 9xx (Nehalem Class Core i7)
...
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc unfair_spinlock pni vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic
...
本文はhttp://www.cnblogs.com/jython/p/4458807.html、転載は出典を明記してください
参考記事
http://kashyapc.com/2012/01/14/nested-virtualization-with-kvm-intel/
http://networkstatic.net/nested-kvm-hypervisor-support/