1. 程式人生 > >KVM虛擬化平臺部署及管理

KVM虛擬化平臺部署及管理

cto 克隆 恢復 使用 做的 所有 擁有 轉換 destroy

KVM虛擬化平臺部署及管理

前言
利用linux內核的一個模塊kvm,並使用一些輔助工具來搭建虛擬機,完成和esxi類似的操作,實現linux虛擬化。KVM直接整合到了linux內核,因此在性能、安全性、兼容性、穩定性上都有好的表現。我們都知道,使用虛擬化技術可以為公司節約成本,可以在一臺物理機上運行多個系統,充分利用物理機的資源。

環境準備(仔細閱讀):
OS:Centos7.2
LINUX系統一臺內核、cpu、內存均是越大最後效果越優,然後在下載一個系統鏡像放到服務器中也可以自己上傳,用於之後安裝kvm虛擬機系統。
技術分享圖片
備註:如果是使用vmware搭建可以先準備虛擬化的前提條件,選中標註位置選項即可
技術分享圖片

一、部署KVM

1、 解決依賴包關系
1.1 在安裝操作系統的時候,選擇桌面安裝,並選擇“現在自定義”,下一步之後選擇“虛擬化”,並勾選右側的所有功能;
1.2 如果安裝系統的時候沒有選擇也沒關系,可以使用yum安裝

yum -y install python-virtinst.noarch qemu-* bridge-utils.x86_64 libvirt virt-manager 

1.3 驗證CPU是否支持虛擬化,如果有輸出代表沒問題

cat /proc/cpuinfo  | grep vmx

技術分享圖片
1.4 檢查kvm模塊是否安裝成功

lsmod  | grep kvm

技術分享圖片
2、橋接網絡
在libvirt中運行kvm網絡有兩種方法:nat和bridge,默認是nat(用戶模式),用戶模式可以訪問外網,但是無法從外部訪問虛擬機網絡,所以用的不是很多,我們一般做的服務器都需要外網的訪問,所有我們多數情況采用橋接模式(bridge),這種模式允許虛擬機像一臺獨立的主機一樣擁有網絡,外部的機器可以直接訪問到虛擬機,下面以橋接模式為例:

2.1 修改本地網卡配置
添加如下兩行:

NM_CONTROLLED="no"
BRIDGE="br0"

技術分享圖片
2.2 添加橋接網卡
BRIDGE定義橋接網卡名稱,新增名為"br0"的網卡,內容如下:

DEVICE="br0"
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
TYPE=Bridge

技術分享圖片
2.3 重啟網卡地址,驗證是否獲取成功

ip addr | grep br0

技術分享圖片
3、KVM虛擬機部署
3.1 使用管理軟件libvir,創建虛擬機
3.1.1 打開管理軟件

virt-manager

技術分享圖片
雙擊下圖圖中箭頭所指"QEMU/KVM"的位置,打開新的界面

技術分享圖片
3.1.2 選擇“存儲”,單擊“+”新建存儲池,輸入/data/store,這個位置用於存儲之後創建的虛擬機
技術分享圖片
技術分享圖片
點擊完成,即可創建存儲池

3.1.3 按照上面的做法,再創建一個鏡像存儲池,用於存儲系統鏡像,方便之後選擇系統安裝
技術分享圖片
技術分享圖片

3.1.4 創建存儲卷
虛擬磁盤有raw和qcow2兩種格式,默認使用的是raw,raw性能好,速度快,缺點是不支持一些功能,例如:制作快照、壓縮、加密等。但是qcow2格式用的比較多,功能多。為了避免後續轉換格式我在這裏直接選擇的qcow2的格式
技術分享圖片
添加後效果如下:
技術分享圖片

3.1.5 新建虛擬機,右擊"QEMU/KVM"新建虛擬機
技術分享圖片技術分享圖片
選擇提前準備好的鏡像
技術分享圖片
選擇規格和存儲卷
技術分享圖片
安裝前可以根據需要修改一些配置,勾上自定義配置選項即可
技術分享圖片
自定界面勾選需要的配置,點擊左上角的 開始安裝 即可進入虛擬機安裝界面
技術分享圖片
安裝系統的步驟略過,安裝好了後我們進行實例管理例如:快照、克隆、備份、掛起等操作。
技術分享圖片

二、使用kvm命令管理虛擬機

1、查看虛擬機狀態

virsh list --all
start啟動、stop停止、reboot重啟此處略過

技術分享圖片
1.1 查看虛擬機信息

virsh  dominfo 虛擬機名稱(centos7.0)

技術分享圖片
1.2 修改虛擬機信息

virsh edit 虛擬機名稱(centos7.0)

1.3 配置虛擬機伴隨主機自動啟動

virsh autostart 虛擬機名稱(centos7.0)    
virsh autostart --disable虛擬機名稱(centos7.0)     # 取消隨主機自動啟動

2、恢復和掛起虛擬機
2.1 掛起虛擬機

virsh suspend 虛擬機名稱(centos7.0)

技術分享圖片
2.2 恢復掛起虛擬機
技術分享圖片
3、格式轉換
轉換raw格式到qcow2格式介紹(由於我之前選擇了qcow2格式,此處只是演示轉換方法)
3.1 查看當前格式

qemu-img info /date/store/centos7_1.qcow2
如果是raw則繼續下面的步驟進行轉換,不是則忽略

技術分享圖片
3.2 關機實例

virsh shutdown 虛擬機名稱(centos7.0)

技術分享圖片
備註:KVM 虛擬機默認是無法用virsh shutdown 進行關機的,如果要想使用該命令關機,則必須在kvm 虛擬機上安裝acpid acpid-sysvinit 兩個包,啟動acpid 服務,並且加入隨機啟動,也可以強制斷電,如下

virsh destroy 虛擬機名稱(centos7.0)    # 強制斷電

技術分享圖片
3.3 轉換raw格式到qcow2格式

qemu-img convert -f raw -O qcow2 /date/store/kvm_xxx.img /date/store/kvm_xxx.qcow2 

技術分享圖片
3.4 修改kvm的xml配置文件

virsh edit 虛擬機名稱(centos7.0)
把raw改成qcow2,一共兩個地方,然後保存退出,完成轉換

技術分享圖片
4、克隆虛擬機及快照
4.1 克隆虛擬機
需要關閉虛擬機,如果克隆命令無法使用提前安裝好 virt-clone

yum -y install virt-clone

克隆

virt-clone -o 虛擬機名稱(centos7.0)  -n  新的虛擬機名稱(centos7.0_1) -f /date/store/centos7.0_1.qcow2(新的存儲名稱) 

技術分享圖片
4.2 虛擬機快照
為虛擬機創建快照,並查看快照信息

virsh snapshot-create 虛擬機名稱(centos7.0_1)
virsh snapshot-list 虛擬機名稱(centos7.0_1) 

技術分享圖片
恢復快照

virsh snapshot-revert 虛擬機名稱(centos7.0_1)  快照名稱(1527228860)

技術分享圖片

刪除快照

virsh snapshot-delete 虛擬機名稱(centos7.0_1)  快照名稱(1527228860)

技術分享圖片

三、KVM虛擬網絡管理命令(virtual network):

virsh命令參數 功能 用法舉例
net-autostart 配置一個虛擬網絡開機自啟(--disable可以關閉) virsh net-autostart br0
net-create 通過一個xml文件創建一個虛擬網絡 virsh net-create ./virbr1.xml
net-define 通過xml文件定義一個虛擬網絡,僅定義不實例化 virsh net-define ./virbr1.xml
net-destory 停止由其名稱(uuid)指定的虛擬網絡,立即生效 virsh net-destroy br0
net-dumpxml 以xml文件的形式輸出一個虛擬網絡的配置信息 virsh net-dumpxml br0
net-edit 編輯一個虛擬網絡的配置文件(修改虛擬網絡配置) virsh net-edit br0
net-info 返回要查看的虛擬網絡的基本信息 virsh net-info default
net-list 查看當前的虛擬網絡信息(可以帶參數) virsh net-list --all
net-name
net-start 開始一個不活躍的虛擬網絡 virsh net-start br0
net-undefine 將一個不活躍的虛擬網絡取消定義 virsh net-undefine br0
net-uuid
net-update
創建並啟用一個網絡:net-define -> net-start
virsh net-define br0.xml
virsh net-list --all (有br0網絡,但處於不活躍狀態)
virsh net-start br0
virsh net-list --all (br0網絡已處於活躍狀態)

停用並刪除一個網絡(以br0為例):net-destroy -> net-undefine
virsh net-destroy br0
virsh net-list --all (br0網絡變為不活躍狀態)
virsh
net-undefine br0
virsh net-list --all (br0網絡已被刪除)

KVM虛擬化平臺部署及管理