1. 程式人生 > >基於kolla安裝的OpenStack解決KVM虛擬機器巢狀問題

基於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 2018-07-28T15:19:33.415996Z 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---- 1 root 42427 10, 232 Jul 28 11:31 /dev/kvm

設定許可權,實現其他使用者和組也有rw許可權

chmod a+rw /dev/kvm
ls -al /dev/kvm
crw-rw-rw- 1 root 42427 10, 232 Jul 28 11:31 /dev/kvm

啟動虛擬機器,沒有再報錯

進入虛擬機器,檢視已經支援kvm

egrep -c '(vmx|svm)' /proc/cpuinfo
4

顯示為 4 ,說明CPU為4核,支援kvm

問題解決。