KVM安裝部署:shell
安裝kvm虛擬機首先須要查看物理機的cpu是否支持虛擬化:服務器
[root@localhost ~]# cat /proc/cpuinfo | egrep 'vmx|svm' 網絡
找到flags部分,若是其中輸出有VMX或SVM,即代表支持虛擬化技術。
dom
若是物理機的cpu支持安裝虛擬機,那麼開始安裝虛擬環境,以下:ide
yum -y groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools"性能
能夠先用yum grouplist查看下,爲了不缺乏組件測試
虛擬環境安裝好後,開始配置網絡,通常都用橋接的方式,配置以下:ui
yum install bridge-utils -y加密
配置網卡,添加bridge網卡url
修改/etc/sysconfig/network-scripts/ifcfg-em1文件,而且在同目錄下新建ifcfg-br0,兩文件內容以下:
br0配置:
查看內核下面三項是否爲0,官網說這是爲了disabled netfilter:
最後重啓網卡,看bridge是否配置成功,看到以下輸出說明橋接配置成功:(或者用brctl show也能夠查看)
能夠開始安裝虛擬機了,有兩種方法安裝,第一種用命令行安裝,第二種在圖形界面安裝,這裏主要說下在命令行下面怎麼安裝:
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
KVM快照:
有時須要對虛擬機作快照,防止損壞了能夠正常恢復,具體操做以下:
kvm快照,分兩種:
1種lvm快照,若是分區是lvm,能夠利用lvm進行kvm的快照備份
2種因爲raw格式不支持鏡像,因此須要將格式轉換爲qcow2才能夠建立快照。
方法2具體操做以下:
kvm虛擬機默認使用raw格式的鏡像格式,性能最好,速度最快,它的缺點就是不支持一些新的功能,如支持鏡像,zlib磁盤壓縮,AES加密等。
要使用鏡像功能,磁盤格式必須爲qcow2。下面開始kvm虛擬機快照備份的過程。
查看磁盤格式
[root@localhost p_w_picpaths]# qemu-img infotest-script.img
raw格式須要轉換成qcow2
關閉test-script
[root@localhost p_w_picpaths]# virsh shutdowntest-script
轉換磁盤格式
[root@localhost p_w_picpaths]# qemu-img convert -fraw -O qcow2 test-script.img test-script.qcow2
-f 源鏡像的格式
-O 目標鏡像的格式
查看轉換後的格式,已經轉換成了qcow2, 這裏是拷貝一份,並將格式轉成qcow2
[root@localhost p_w_picpaths]# qemu-img infotest-script.qcow2
2.修改虛擬機配置文件:
修改磁盤格式,與新qcow2格式的磁盤。
[root@localhost p_w_picpaths]# virsh edittest-script
3. 對虛擬機進行快照管理
對oeltest01虛擬機建立快照
也能夠virsh snapshot-create as oeltest01 snap1 建立後個快照別名。
[root@localhost p_w_picpaths]# virshsnapshot-create test-script
Domain snapshot 1419995560 created
查看虛擬機鏡像快照的版本
[root@localhost p_w_picpaths]# virshsnapshot-list test-script
能夠看到爲當前最新的快照版本。
[root@localhost p_w_picpaths]#virsh snapshot-current test-script
查看當前虛擬機鏡像文件
又建立了一個,快照的版本也記錄在鏡像文件中了。
[root@localhost p_w_picpaths]# virshsnapshot-create test-script
[root@localhost p_w_picpaths]# qemu-imginfo test-script.qcow2
快照配置文件在/var/lib/libvirt/qemu/snapshot/虛擬機名稱下
當前的仍是最新的快照:
恢復虛擬機快照
恢復虛擬機快照必須關閉虛擬機。
[root@localhost test-script]#virsh domstate test-script
確認須要恢復的快照時間,這裏恢復到1419995560
[root@localhost test-script]# virshsnapshot-list test-script
執行恢復,並確認恢復版本
[root@localhost test-script]# virshsnapshot-revert test-script 1419995560
[root@localhost test-script]# virshsnapshot-current test-script
刪除虛擬機快照
查看虛擬機快照
[root@localhost p_w_picpaths]# qemu-imginfo test-script.qcow2
這裏刪除第一個快照1419995560
刪除快照
[root@localhost p_w_picpaths]# virshsnapshot-delete test-script 1419995560
[root@localhost p_w_picpaths]# qemu-imginfo test-script.qcow2
因爲把當前的快照刪除了:顯示沒有快照了。
[root@localhost p_w_picpaths]# virshsnapshot-current test-script
error: domain 'test-script' has no current snapshot
[root@localhost p_w_picpaths]# virshsnapshot-revert test-script 1419995769
[root@localhost p_w_picpaths]# virshsnapshot-current test-script
再次還原到快照2,而後查看當前快照。
到此kvm虛擬機快照測試完畢。
開啓測試虛擬機:
[root@localhost p_w_picpaths]# virsh starttest-script
經常使用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虛擬機而沒法刪除虛擬機。