歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> KVM管理工具WebVirtMgr使用中遇到問題及解決

KVM管理工具WebVirtMgr使用中遇到問題及解決

日期:2017/2/28 13:43:38   编辑:Linux教程

1.KVM虛擬機控制台問題

點擊虛機實例,每台虛機最後的按鈕”控制台”,點擊後發現報錯,如下圖所示


查看django後台的錯誤為:
ERROR:django.request:Internal Server Error: /console/
Traceback (most recent call last):
File “/usr/lib/python2.6/site-packages/django/core/handlers/base.py”, line 113, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File “/data/apps/webvirtmgr/console/views.py”, line 58, in console
response.set_cookie(‘token’, token)
AttributeError: ‘str’ object has no attribute ‘set_cookie’
查找其源代碼,發現可能的錯誤是由於虛機沒有安裝vnc等圖形管理工具,於是在虛機的xml配置文件添加如下配置:
virsh edit oss.webvirtmgr.001

<graphics type='vnc' port='5910' autoport='no' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
</graphics>

再重啟虛機,如果還是不行,就先undefine,然後重新根據xml配置create試試。下載個VNC-Viewer,輸入IP:5910,看能否訪問,如下圖所示:說明設置VNC是成功

但是從網頁點擊控制台按鈕,發現還是不行,報錯是server disconnected

訪問時django後台只有如下信息:
[26/Apr/2016 05:59:56] “GET /console/?token=4-bcc6ca3b-ca6d-6e51-505a-9c86cf58a6b2 HTTP/1.1” 200 7270

安裝了novnc,仍然報同樣的錯,百度谷歌也找不到相應的信息。yum -y install novnc後,無意間在服務器上發現了這個命令novnc-server

於是敲了如下命令:novnc_server –vnc IPADDR:5920,其中IPADDR為宿主機ip地址,5920是定義的虛擬機的vnc端口號。

[root@oss-webvirtmgr-001 ~]# novnc_server –vnc 192.168.200.230:5920
Warning: could not find self.pem
Starting webserver and WebSockets proxy on port 6080
WebSocket server settings:
- Listen on :6080
- Flash security policy server
- Web server. Web root: /usr/share/novnc
- No SSL/TLS support (no cert file)
- proxying from :6080 to 192.168.200.230:5920

Navigate to this URL:

http://oss-webvirtmgr-001:6080/vnc.html?host=oss-webvirtmgr-001&port=6080

Press Ctrl-C to exit

1: 10.1.196.211: Plain non-SSL (ws://) WebSocket connection
1: 10.1.196.211: Version hybi-13, base64: ‘False’
1: connecting to: 192.168.200.230:5920

結果居然ok了,console控制台起來了

問題是:假如我有30台虛擬機,每個虛擬機都有一個vnc端口,我是不是得寫30條這樣的命令,監控每一個端口??

後來發現是由於有一個腳本沒起,才會導致這種情況,起了這個腳本後,所有控制台應該都能正常訪問。pyhton腳本為
webvirtmgr/console/webvirtmgr-console

隔天發現以上兩個方法都沒作用了,控制台死活連不上,後台也不報錯,網頁就只顯示server disconnected,無奈…
https://github.com/retspen/webvirtmgr/issues/215

2.存儲池添加鏡像

我添加的存儲池是目錄類型卷,添加成功後,可看到如下網頁:

然後在存儲池添加鏡像時,報錯了,網頁上和django後台顯示的信息均為: libvirt: Storage Driver error : unsupported flags (0x1) in function storageVolumeCreateXML

谷歌找到答案:https://github.com/retspen/webvirtmgr/issues/400
原來在創建qcow2格式鏡像時,不能點選Metadata,這個Metadata不知道是做什麼用的。在添加虛擬機時也是如此。

在後台可看到該目錄vmdisk下已經生成了一個磁盤文件,
[root@localhost vmdisk]# qemu-img info a.michaelzeng.001.img
image: a.michaelzeng.001.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 136K
cluster_size: 65536

3.webvirtmgr克隆問題


點擊克隆後,報錯如下:
Storage volume not found: no storage vol with matching path
原因為:我所要克隆的kvm,其磁盤文件不在存儲池裡。

更改後再次克隆
又是報錯:unsupported flags (0x1) in function storageVolumeCreateXMLFrom
還是跟以前一樣,不能選中metadata選項,克隆後名字貌似不能自定義,這個比較不人性化

Copyright © Linux教程網 All Rights Reserved