前言:
使用開源的虛擬化技術,對公司自有的少數服務器進行虛擬化,在滿足業務需求的同時,並未增加投入,同時也避免了使用雲主機的不便,技術層面,kvm是開源的虛擬化產品,虛擬化性能出眾,更重要的是免費!!!WebVirtMgr作為kvm虛擬化的web管理工具,圖形化的WEB,讓人能更方便的查看kvm 宿主機的情況和操作,使用kvm+webvirtmgr便可滿足當前場景的業務需求,虛擬化的同時,也能夠進行便捷的管理。采用純Python開發,其前端是基於Python的Django,后端是基於Libvirt的Python接口,將日常kvm的管理操作變的更加的可視化。WebVirtMgr 介紹
WebVirtMgr 特點
- 操作簡單,易於使用
- 通過libvirt的API接口對kvm進行管理
- 提供對虛擬機生命周期管理
WebVirtMgr 功能
宿主機管理支持以下功能
- CPU利用率
- 內存利用率
- 網絡資源池管理
- 存儲資源池管理
- 虛擬機鏡像
- 虛擬機克隆
- 快照管理
- 日志管理
- 虛機遷移
虛擬機管理支持以下功能
- CPU利用率
- 內存利用率
- 光盤管理
- 關/開/暫停虛擬機
- 安裝虛擬機
- VNC console連接
- 創建快照
WebVirtMgr 管理工具安裝
一 webvirtmgr管理服務器配置
二 webvirtmgr服務器(服務端)與kvm服務器(客服端)連接配置
KVM WEB管理工具——WebVirtMgr(二)日常配置
- 配置宿主機
1、登錄WebVirtMgr管理平台,訪問地址http://webvirtmgrIP/login
2、添加宿主機
選擇首頁的WebVirtMgr -->Addd Connection
選擇“SSH鏈接“,設置Label,IP,用戶
注意:Label與IP要相同
- 虛機部署
1、創建存儲池
點擊前面創建的宿主機,進入虛擬機部署界面
點擊“存儲池”按鈕,創建存儲池(即創建磁盤鏡像存放的位置)
注意:
創建存儲池時,首先要在宿主機上創建一個目錄,然后在”路徑“設置欄中添加該目錄
例:mkdir /home/kvm/teststorage -p
2、添加磁盤鏡像
創建完成后如下:
3、宿主機網卡的橋接模式設置
4、創建網絡池
5、創建虛機
選擇“custom install”用戶自定義創建虛機
6、虛機掛載ISO鏡像
7、啟動虛機
點擊“啟動”按鈕后,打開虛機電源。
點擊控制台按鈕,進入操作系統安裝界面
8、虛機IP地址設置
當虛機安裝完成后,給虛機設置靜態IP地址
例:[root@vmtest01~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=172.16.1.199
NETMASK=255.255.255.0
GATEWAY=172.16.1.1
DNS1=172.16.1.1
- webvirtmgr克隆虛機操作
1、關閉正在運行的虛機
2、進入虛機配置界面,在克隆配置項,為新的虛機的“名字”,“MAC地址”,“磁盤鏡像”進行設置
3、啟動虛機,進入系統,對/etc/udev/rules.d/70-persistent-net.rules 文件做如下修改
修改后
4、編輯/etc/sysconfig/network-scripts/ifcfg-eth0 修改虛機的網卡配置,為虛機分配新的IP地址
5、重啟系統 使網卡重新注冊,讓配置生效
reboot
- webvirtmgr虛機磁盤擴容(新增磁盤)
1 關閉虛機
2 對虛機的xml文件的disk域添加如下代碼
場景一:新增一塊磁盤
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/> ---添加改行代碼找到新增磁盤格式
<source file='/home/kvm/teststorage/entd01.img'/> --指定新增磁盤路徑
<target dev='vda' bus='virtio'/> --指定磁盤設備名稱,和傳輸總線類型
</disk>
場景二:新增多塊磁盤
已新增兩塊盤為例:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/home/kvm/teststorage/entd01.img'/>
<target dev='vda' bus='virtio'/>
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/home/kvm/vm/waq02-clone.qcow2'/>
<target dev='vdb' bus='virtio'/>
</disk>
3 啟動虛機,然后在虛機系統內部對磁盤進行格式化,分區等操作。
總結:
- 創建虛擬機后,默認的主機名、IP地址還得在虛機控制台設置,太麻煩,下一步嘗試使用gusetfs的命令行工具,編寫一個腳本對虛擬機的鏡像文件進行預處理以解決這個問題。
- KVM集群中虛擬機要做到實時遷移,必須配合集中存儲,而且需要在每個物理機上將其配置為存儲池。目前我所了解的廉價、可擴展性好的集中存儲方案有Ceph與Glusterfs,下一步需要對比這兩種方案,以找出最合適的方案
- KVM集群中的虛擬機如果全部采用靜態設置IP地址,管理查看虛機的IP地址將很麻煩;如果全部采用動態獲取IP地址,則需要在網絡內部安裝dhcp服務器,然后可在dhcp服務器上管理查看虛機的IP地址。很顯然后一種方案更合理一點,但這個還需要驗證
- webvirtmgr並不是像openstack一樣的虛擬化一站式解決方案,它的工作原理其中就是通過一個web頁面,將多台物理機接入進來,然后通過libvirt分別管理每個物理機上的計算資源。要創建虛擬機時,才是管理員自行找到一個合適的物理,然后在上面創建虛擬機。那么在KVM集群環境,存儲已經通過Ceph或Glusterfs方案解決了,當要創建某個配置的虛擬機時,最好能有一個調度器,依據CPU、內存的需求,幫助管理員從眾多物理機中選取一個合適的物理機。簡單處理,也許可以寫一個腳本,根據CPU、內存的需求自動得出一個物理機選取推薦列表,以供管理員參考
- webvirtmgr所部署的主機需考慮高可用方案。簡單處理可以將其做成docker鏡像,一旦發現該服務故障了,可以快速地在其它地方啟動起來
信息參考:
https://www.cnblogs.com/kevingrace/p/5737724.html
https://blog.51cto.com/niubdada/1981760?tdsourcetag=s_pcqq_aiomsg