Proxmox VE(PVE)虛擬出來的主機CPU預設不支援巢狀虛擬化(vmx),參照KVM支援巢狀虛擬化的方法開啟nested。
cat /sys/module/kvm_intel/parameters/nestedN
顯示預設狀態下是未開啟。
開啟巢狀虛擬化需要關閉所有虛擬機器。
列出所有虛擬機器:
qm list
關閉虛擬機器:
qm stop
批次關閉:
for i in {100。。115};do qm stop $i;done #{}號中間填vmid的起止數字
開啟核心支援:
modprobe -r kvm_intel modprobe kvm_intel nested=1 #如果報錯Module kvm_intel is in use,請檢查你的虛擬機器是否全部關閉
現在再看看nested是否已開啟:
cat /sys/module/kvm_intel/parameters/nestedY
編輯配置檔案:
echo “options kvm_intel nested=1” >> /etc/modprobe。d/modprobe。conf
讓系統重啟自動載入netsted
最後,檢視虛擬機器啟動命令配置:
qm showcmd
找到-cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce
在後面加上+vmx,表示開啟vmx
加入配置檔案
vi /etc/pve/qemu-server/
可以加到第一行,新增一個args引數,示例:
args: -cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce,+vmxbootdisk: scsi0cores: 1ide2: d02:iso/proxmox-ve_5。4-1。iso,media=cdrommemory: 512name: pvenet0: virtio=7E:89:5B:25:10:59,bridge=vmbr0,firewall=1numa: 0ostype: l26scsi0: vms:vm-103-disk-0,size=8Gscsihw: virtio-scsi-pcismbios1: uuid=094fdd5d-ae0b-4af6-aa08-c23c445f9da0sockets: 1startup: down=0vmgenid: 8813ce4c-1248-4964-86da-83a3f1cd6738
為了簡化操作,我寫了個pve工具:
https://github。com/ivanhao/pvetools。git
其中就包含上面的內容而且是自動化配置,很方便實用。
如果好用請去github頁面點星點贊,