天天看點

基于kolla安裝的OpenStack解決KVM虛拟機嵌套問題

一、問題

基于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

問題解決。

繼續閱讀