ovirt kvm嵌套虛擬化


 

 

嵌 套式虛擬nested是一個可通過內核參數來啟用的功能。它能夠使一台虛擬機具有物理機CPU特性,支持vmx或者svm(AMD)硬件虛擬化。關於 nested的具體介紹,可以看這里 。該特性需要內核升級到Linux 3.X版本 ,所以在centos6下是需要先升級內核的,而在centos7下已默認支持該特性,不過默認是不開啟的,需要通過修改參數支持。

1、確認主機是否支持nested
通找到如下文件或在模塊特性中能grep到該特性值 ,證明當前內核支持nested,如下是查到支持但未開啟:

#查看當前系統是否支持nested

systool -m kvm_intel -v  | grep -i nested
nested              = "N"

 


#或者這樣查看

cat /sys/module/kvm_intel/parameters/nested
N

 


2、開機啟動該nested
有兩種方法可以開機自啟動該特性:

在 kernel 那一行的末端加上 "kvm-intel.nested=1"


# echo "options kvm-intel nested=1" >> /etc/modprobe.d/kvm-intel.conf

 


不重啟主機也可以通過重新加載模塊支持:

# rmmod kvm_intel
# modprobe kvm-intel nested=1
# cat /sys/module/kvm_intel/parameters/nested

 



3、建議VMX支持虛擬機
通過virsh 指定xml 文件啟動虛擬機時,可以在xml 中通過如下三種方法支持

 <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

 


4、成功運行rhce虛擬機
以下才是本篇嵌套虛擬機的重點

通過如下方法啟動虛擬機:

/usr/libexec/qemu-kvm -m 8096 -cpu qemu64,+vmx -smp 4,sockets=4,cores=1,threads=1 -drive file=jiaoshiji.qcow2 -vnc 0.0.0.0:20 VNC連接后,

通過cat /proc/cpuinfo查看支持VMX特性:

egrep '(vmx|svm)' /proc/cpuinfo

 


5、如果用virtmanager管理,cpu屬性選擇Copy host CPU configure

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM