一、問題
基于kolla安裝OpenStack Queens版本。其中一個控制節點、兩個計算節點,均為實體X86伺服器。在計算節點啟動KVM虛拟機。
需求是:在KVM虛拟機裡面再啟動KVM虛拟機,進行其他實驗驗證。
首先,在計算節點的實體伺服器上面改配置,實作支援KVM虛拟機嵌套。具體請參考《openstack開啟kvm虛拟機嵌套》
然後,重新開機相關容器:
docker restart nova_libvirt
docker restart nova_compute
然後,啟動虛拟機(修改實體伺服器配置時,上面運作的虛拟機必須先關閉)
報如下錯誤:
Exception during message handling: libvirtError: internal error: process exited while connecting to monitor: Could not access KVM kernel module: Permission denied
--T15::Z qemu-kvm: failed to initialize KVM: Permission denied
可以看到是權限問題。
二、解決
檢視計算節點qume配置
cat /etc/kolla/nova-libvirt/qemu.conf
stdio_handler = "file"
user = "nova"
group = "nova"
使用者群組都是nova
再看 /dev/kvm 的權限,其他使用者群組沒有rw權限
ls -al /dev/kvm
crw-rw---- root , Jul : /dev/kvm
設定權限,實作其他使用者群組也有rw權限
chmod a+rw /dev/kvm
ls -al /dev/kvm
crw-rw-rw- root , Jul : /dev/kvm
啟動虛拟機,沒有再報錯
進入虛拟機,檢視已經支援kvm
egrep -c '(vmx|svm)' /proc/cpuinfo
顯示為 4 ,說明CPU為4核,支援kvm
問題解決。