單臺(tái)服務(wù)器搭建不了虛擬化/云平臺(tái)集群?是時(shí)候開(kāi)啟KVM嵌套虛擬化了!
一、嵌套虛擬化
嵌套虛擬化即讓虛擬機(jī)支持虛擬化,也就是在虛擬機(jī)上再跑虛擬機(jī),一般用于測(cè)試環(huán)境,當(dāng)我們只有一臺(tái)服務(wù)器,像模擬一個(gè)虛擬化集群、云平臺(tái)的時(shí)候經(jīng)常會(huì)使用到嵌套虛擬化。
二、開(kāi)啟嵌套虛擬化
本文以基于intel處理器為例,如果是AMD處理器,則講本文的kvm_intel替換為kvm_amd即可。
1.首先檢查 KVM host(主機(jī))上的kvm_intel/kvm_amd模塊是否打開(kāi)了嵌套虛擬機(jī)功能(默認(rèn)是開(kāi)啟的)
#?①先查看kvm_intel/kvm_amd模塊是否已經(jīng)加載
#?intel的處理器執(zhí)行命令如下
root@localhost~#?modinfo?kvm_intel?|?grep?nested
#?輸出以下內(nèi)容則表示已經(jīng)加載
parm:?nested:bool
#?②基于Intel的處理器運(yùn)行以下命令查看是否開(kāi)啟嵌套虛擬化功能
root@localhost~#cat?/sys/module/kvm_intel/parameters/nested
N?#?輸出N為未開(kāi)啟,Y則代表已開(kāi)啟
2.如果上面的顯示結(jié)果不是Y的話(huà)需要開(kāi)啟nested
注意:確保虛擬機(jī)已關(guān)機(jī),否則我們會(huì)得到像"modprobe: FATAL:Module kvm_intel is in use”這樣的錯(cuò)誤信息。
#?卸載kvm
root@localhost.~#?modprobe?-r?kvm_intel
root@localhost.~#?modprobe?kvm_intel?nested=1
root@localhost:~#?cat?/sys/module/kvm_intel/parameters/nested
Y
3.然后創(chuàng)建虛擬機(jī)即可
4.如需永久生效,可以通過(guò)以下方式設(shè)置
1、ubuntu系統(tǒng)
通過(guò)修改內(nèi)核參數(shù)的方式:
vi?/etc/default/grub
在kernel?那一行的末端加上?“kvm-intel.nested=1”(設(shè)置GRUB_CMDLINE_LINUX=“kvm-intel.nested=1”)
grub-mkconfig?-o?/boot/grub/grub.cfg
reboot
2、centos系統(tǒng)
卸載kvm內(nèi)核模塊之后
echo?‘options?kvm_intel?nested=1’?>/etc/modprobe.d/kvm-nested.conf
modprode?kvm_intel
cat?/sys/module/kvm_intel/parameters/nested
三、注意事項(xiàng)
如加載模塊失敗,一般是沒(méi)有在BIOS中啟用vt-x
導(dǎo)致
pedprobe:?ERROR:?gould?not?insert?'kvm_intel':?Operation?not?supported