KVM安裝部署、快照備份及常用命令

KVM安裝部署:

安裝kvm虛擬機首先需要查看物理機的cpu是否支持虛擬化:

[root@localhost ~]# cat /proc/cpuinfo | egrep 'vmx|svm' 

wKiom1VZp0XTYnmoAAEo6DF-IDk272.jpg

找到flags部分,如果其中輸出有VMX或SVM,即表明支持虛擬化技術。


如果物理機的cpu支持安裝虛擬機,那麼開始安裝虛擬環境,如下:

yum -y groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools"

可以先用yum grouplist查看下,爲了避免缺少組件


虛擬環境安裝好後,開始配置網絡,一般都用橋接的方式,配置如下:

yum install bridge-utils -y

wKiom1VZqE-xhM-_AAFtM1onoo8103.jpg

配置網卡,添加bridge網卡

修改/etc/sysconfig/network-scripts/ifcfg-em1文件,並且在同目錄下新建ifcfg-br0,兩文件內容如下:

wKioL1VZqufy0z-WAAD9Hsuupkw973.jpg

br0配置:

wKioL1VZquehnw_KAAE4x8Oc94E407.jpg

查看內核下面三項是否爲0,官網說這是爲了disabled netfilter:

wKioL1VZq2ujixUdAACIZHeZsOQ809.jpg

最後重啓網卡,看bridge是否配置成功,看到如下輸出說明橋接配置成功:(或者用brctl show也可以查看)

wKiom1VZql2iiyfuAAFMBQd9a5w143.jpg

可以開始安裝虛擬機了,有兩種方法安裝,第一種用命令行安裝,第二種在圖形界面安裝,這裏主要說下在命令行下面怎麼安裝:

1.新建兩個目錄分別存放ISO文件和虛擬磁盤,我這裏在/opt下新建了iso和kvmimg目錄;有些朋友不知道怎麼將PC上的ISO文件傳送到服務器上,我這裏推薦大家用xshell和xftp,簡單好用且免費!


2.利用virt-install開始安裝系統,更多參數可以參考--help

[root@localhost iso]# virt-install --name vm01 --boot network,cdrom,menu=on --ram 1024 --vcpus=1 --os-variant=rhel6 --accelerate --cdrom=/opt/iso/CentOS-6.4-x86_64-bin-DVD1.iso --disk path=/opt/kvmimg/vm01.img,size=5,bus=virtio --bridge=br0,model=virtio --autostart --vnc --vncport=5900 --vnclisten=0.0.0.0


Starting install...

Creating storage file vm01.img    

Cannot open display:

Run 'virt-viewer --help' to see a full list of available command line options

Domain installation still in progress. You can reconnect to

the console to complete the installation process.

這個時候就是已經OK了,用vnc軟件(vnc-viewer/tigervnc)填好IP地址和端口,這裏是5900連接,就能看到裝系統的界面了。


PS:安裝完畢後的補充

查看所有虛擬機狀態:

virsh list --all

手動啓動虛擬機:

virsh start vm01

最後重啓網卡,虛擬機就可以正常聯網了。


KVM克隆:

有時需要安裝多臺虛擬機,但是一臺一臺安裝效率又太低了,這時就可以用虛擬機克隆了。已wm01爲例:

首先關閉vm01虛擬機:

virsh stop vm01

運行virsh suspend vm01命令,克隆完成後virsh resume vm01恢復即可

克隆vm02

virt-clone -o vm01 -n vm02 -f /opt/kvmimg/vm02.img 

修改vm02.xml文件,因爲vm01的vnc已經把5900端口占用所以需要換一下,我這裏修改成6900

virsh edit vm02

<graphics type='vnc' port='6900' autoport='no' listen='0.0.0.0'>

啓動vm02

virsh start vm02 

最後利用vnc登錄到vm02之後,有些網絡設置需要修改,否則網卡無法啓動

cat /etc/sysconfig/network-scripts/ifcfg-eth0     //刪除mac地址和uuid那一行

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=dhcp

cat /etc/udev/rules.d/70-persistent-net.rules    //把之前的"SUBSYSTEM=="這一行註釋掉,把新的那行的eth1換成eth0

wKioL1VZsDmhIijMAAHNYrtYzGE914.jpg重啓vm02,重啓網絡,這樣克隆就完成了。


KVM快照:

有時需要對虛擬機做快照,防止損壞了可以正常恢復,具體操作如下:


kvm快照,分兩種:

1種lvm快照,如果分區是lvm,可以利用lvm進行kvm的快照備份

2種由於raw格式不支持鏡像,所以需要將格式轉換爲qcow2纔可以創建快照。

方法2具體操作如下:

kvm虛擬機默認使用raw格式的鏡像格式,性能最好,速度最快,它的缺點就是不支持一些新的功能,如支持鏡像,zlib磁盤壓縮,AES加密等。   
要使用鏡像功能,磁盤格式必須爲qcow2。下面開始kvm虛擬機快照備份的過程。


查看磁盤格式

[root@localhost images]# qemu-img infotest-script.img

raw格式需要轉換成qcow2

wKioL1VZsVGAga1mAAC3qu64erE279.jpg


關閉test-script

[root@localhost images]# virsh shutdowntest-script

wKiom1VZr9fTqL-KAACn7mb8xVc720.jpg


轉換磁盤格式

[root@localhost images]# qemu-img convert -fraw -O qcow2 test-script.img test-script.qcow2

-f  源鏡像的格式   
-O 目標鏡像的格式

wKioL1VZsVHQ-U6tAAFaXwNAwSM978.jpg


查看轉換後的格式,已經轉換成了qcow2, 這裏是拷貝一份,並將格式轉成qcow2

[root@localhost images]# qemu-img infotest-script.qcow2

wKioL1VZsVHhGf4eAADJ_Ng9cU4230.jpg


2.修改虛擬機配置文件:

修改磁盤格式,與新qcow2格式的磁盤。

[root@localhost images]# virsh edittest-script

wKiom1VZr9fh5Ru_AAH9B7Le_VI355.jpg


3. 對虛擬機進行快照管理 

對oeltest01虛擬機創建快照

也可以virsh snapshot-create as oeltest01 snap1 創建後個快照別名。

[root@localhost images]# virshsnapshot-create test-script 
Domain snapshot 1419995560 created

wKiom1VZr9eSPdghAABCKxXfMJo667.jpg


查看虛擬機鏡像快照的版本

[root@localhost images]# virshsnapshot-list test-script

wKiom1VZsIuDsGCrAACOC1BeWdI626.jpg


可以看到爲當前最新的快照版本。

[root@localhost images]#virsh snapshot-current test-script

wKioL1VZsVORj6pZAAFvrtsjHmQ521.jpg


查看當前虛擬機鏡像文件

又創建了一個,快照的版本也記錄在鏡像文件中了。

[root@localhost images]# virshsnapshot-create test-script

[root@localhost images]# qemu-imginfo test-script.qcow2

wKioL1VZsVOy0ouTAAG3mIctSxI751.jpg


快照配置文件在/var/lib/libvirt/qemu/snapshot/虛擬機名稱下

wKiom1VZr9nTB3lLAAEKxDWSqPY971.jpg


當前的還是最新的快照:

wKiom1VZr9njNQiAAAC4ucFhJ6Y869.jpg


恢復虛擬機快照

恢復虛擬機快照必須關閉虛擬機。

[root@localhost test-script]#virsh domstate test-script

wKioL1VZsVTSqLZ6AADUpm5Apfk381.jpg


確認需要恢復的快照時間,這裏恢復到1419995560

[root@localhost test-script]# virshsnapshot-list test-script

wKiom1VZr9qS1QooAAC3AlRxp9U711.jpg


執行恢復,並確認恢復版本

[root@localhost test-script]# virshsnapshot-revert test-script 1419995560

[root@localhost test-script]# virshsnapshot-current test-script

wKioL1VZsVSStKFWAAGSZ8itZko483.jpg


刪除虛擬機快照

查看虛擬機快照

[root@localhost images]# qemu-imginfo test-script.qcow2

wKioL1VZsxKBv3tfAAEhiBurlUk967.jpg


這裏刪除第一個快照1419995560

刪除快照

[root@localhost images]# virshsnapshot-delete test-script 1419995560

[root@localhost images]# qemu-imginfo test-script.qcow2

wKioL1VZsVbT7HmyAAFVPZCZ_GA905.jpg


由於把當前的快照刪除了:顯示沒有快照了。

[root@localhost images]# virshsnapshot-current test-script 
error: domain 'test-script' has no current snapshot

[root@localhost images]# virshsnapshot-revert test-script 1419995769

[root@localhost images]# virshsnapshot-current test-script

再次還原到快照2,然後查看當前快照。

wKiom1VZr9yjgDjyAAF2HS5-itE477.jpg


到此kvm虛擬機快照測試完畢。

開啓測試虛擬機:

[root@localhost images]# virsh starttest-script

wKiom1VZr9zA70G8AAERtcbkwo4700.jpg



常用virsh指令:

1)virsh list 列出當前虛擬機列表,不包括未啓動的

2)virsh list --all 列出所有虛擬機,包括所有已經定義的虛擬機

3)virsh destroy vm-name 關閉虛擬機

4)virsh start vm-name 啓動虛擬機

5)virsh edit vm-name 編輯虛擬機xml文件

6)virsh undefine vm-name 刪除虛擬機

7)virsh shutdown vm-name 停止虛擬機

8)virsh reboot vm-name 重啓虛擬機

9)virsh autostart vm-name 虛擬機隨宿主機啓動


kvm虛擬機刪除報錯:

error:Failed to undefine domain test

error:Requested operationis not valid: cannot undefine transient domain

直接命令行操作解決:  關閉kvm虛擬機後記得重啓圖形管理virtual manager,否則可能會出現卡死的情況,關閉了kvm虛擬機而無法刪除虛擬機。

wKiom1VZsfWzWXncAACGsOvFQNg692.jpg

wKiom1VZsfWx_h8tAADmQ54bD3E721.jpg



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章