KVM虛擬化學習筆記

shuyingxi發表於2018-01-23

轉自:

kvm虛擬化學習筆記(一)之kvm虛擬化環境安裝
1.作業系統安裝
本文采用Centos6.4X64作業系統,也可以採用RHEL/CentOS6.x。
(1)檢視系統版本、核心版本

檢視系統版本

[root@KVM ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)

檢視核心版本

[root@KVM ~]# uname -a
Linux KVM 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
注: 2.6.20以下的核心需要升級。
(2)關閉selinux,iptables,重啟後生效
①. 關閉selinux
[root@kvm ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
②. 關閉iptables
[root@kvm ~]# iptables -F
[root@kvm ~]# iptables -X
[root@kvm ~]# /etc/init.d/iptables save
[root@kvm ~]# /etc/init.d/iptables stop
(3)重啟
[root@kvm ~]# reboot

2.虛擬化環境配置
(1)VMware內的Centos開啟虛擬化

說明1:半虛擬化是不能執行與安裝KVM虛擬機器的。
(2) 檢視系統是否支援KVM虛擬化
[root@KVM ~]# egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo

若實際環境沒有, 需要到主機板BIOS中開啟Virtual Technolege(VT, 虛擬化技術)
(3) 安裝kvm軟體包
[root@KVM ~]# yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v libguestfs-tools qemu-kvm gcc*
3.檢視虛擬化環境
(1)檢視虛擬機器環境
[root@KVM ~]# /etc/init.d/libvirtd start
[root@KVM ~]# virsh -c qemu:///system list
Id Name State
—————————————————-

(2)檢視kvm模組支援
[root@KVM ~]# lsmod |grep kvm
kvm_intel 55624 0
kvm 338535 1 kvm_intel
(3)檢視虛擬工具版本
[root@KVM ~]# virsh –version
0.10.2
[root@KVM ~]# virt-install –version
0.600.0
[root@KVM ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
[root@KVM ~]# qemu-kvm -version
QEMU PC emulator version 0.12.1 (qemu-kvm-0.12.1.2-2.448.el6_6.4), Copyright (c) 2003-2008 Fabrice Bellard
4.手動配置虛擬網橋
(1)關閉networkmanager服務
[root@KVM ~]# /etc/init.d/NetworkManager stop
[root@KVM ~]# chkconfig NetworkManager off
(2)建立br0網k

[root@KVM ~]# cd /etc/sysconfig/network-scripts/
[root@KVM network-scripts]# cp ifcfg-eth0 ifcfg-br0
[root@KVM network-scripts]# vim ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:41:DA:81
TYPE=Ethernet
UUID=21501ff5-e313-494c-a402-50f2a84f1f5c
ONBOOT=yes
NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.15.14

NETMASK=255.255.255.0

GATEWAY=192.168.15.2

BRIDGE=br0
[root@KVM network-scripts]# vim ifcfg-br0
DEVICE=br0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.15.14
NETMASK=255.255.255.0
GATEWAY=192.168.15.2
DNS1=114.114.114.114
TYPE=Bridge
(3)重啟network服務。
[root@KVM network-scripts]# /etc/init.d/network restart
(4)檢視網橋br0.

(4)檢視網橋

到此kvm虛擬化環境安裝完畢。

kvm虛擬化學習筆記(二)之windows kvm虛擬機器安裝

  1. 開始安裝windows 2003 (1) 上傳2003 iso檔案到/data/iso資料夾中

(2) 開始安裝
[root@KVM ~]# cat create_win_kvm.sh 
 virt-install \
--name=win2003_1 \
--ram 1024 \
--vcpus=2 \
--disk path=/data/img/win2003_1.img,size=8 \
--accelerate \
--cdrom /data/win_server_2003_R2x64.iso \
--vnc \
--vncport=5915 \
--vnclisten=0.0.0.0 \
--network bridge=br0 --force --autostart
(3) 透過vnc連線,然後進行安裝過程,也可以透過控制檯繼續安裝過程。

注:檔案複製完畢後,windows會重啟,這裡虛擬機器會關閉,需要手動啟動,而且VNC無法使用。

啟動win2003_1後用vnc連線安裝wind2003時出現如下

(4) 接上面,登入控制檯。
如果其它環境無法連線控制檯,可以遠端安裝vnc伺服器端工具,透過vnc登入伺服器,可以最終安全完成。無需要我們分兩步。 
##雙擊win2003_1

(5) 手動掛載光碟機,如下圖所示,一步一步的操作如下。

返回控制檯,繼續安裝過程。

  1. 安裝後配置 (1) 配置IP地址 (2) 配置遠端桌面

到此,windows server 2003 kvm虛擬機器安裝完畢,後面將介紹如何對windows進行效能方面的最佳化。
說明:如果在KVM虛擬化平臺上Centos 6.6上安裝vnc server可以直接透過vnc全程安裝完畢。

kvm虛擬化學習筆記(三)之linux kvm虛擬機器安裝
1.上傳ISO檔案,這裡採用Centos 6.4x64iso

2.開始安裝Centos6.4
(1)raw格式磁碟
[root@KVM ~]#vim create_kvm.sh
 virt-install \
--name centos2 \ ##虛擬機器名稱
--ram 512 \ ##分配記憶體大小(預設大小MB)
--vcpus=1 \ ##分配CPU核心數,最大與時提及CPU核心數相同
--disk path=/data/img/kvm_centos2.img,size=10 \ ##指定虛擬機器映象(size單位為GB)

--network bridge=br0 \ ##指定網路
--cdrom=/data/CentOS-6.4-x86_64-bin-DVD1.iso \ ##指定安裝映象iso
--accelerate \ ##加速
--vnclisten=0.0.0.0 \ ##指定VNC繫結IP,預設繫結127.0.0.1,這裡改為0.0.0.0
--vncport=5911 \ ##指定VNC監聽埠(預設為5900)
--vnc ##啟用VNC管理
注: 每行"\"後面不要帶有空格.

用KVM建立虛擬機器

如果採用qcow2磁碟格式,需要事先建立qcow2格式虛擬磁碟 (2)qcow2格式(空間動態增長)2015.7.10日更新
[root@KVM ~]# qemu-img create -f qcow2 /data/img/Centos3.img 3G

用KVM建立虛擬機器

[root@KVM ~]# sh create_qcow2_kvm.sh
[root@KVM ~]# echo $?
0
[root@KVM ~]# virsh list

說明:在linux系統安裝開始就要注意新增提高效能的一些引數,後面就不需要做一些調整了。
3.開始透過VNC進行連線,進行安裝過程。

4.登入作業系統檢視
(1) 檢視虛擬機器列表

ps: Centos1是我的測試機. centos2和centos3是新建立的。 centos2安裝完作業系統自動關閉了, 需要手動啟動. centos3安裝完後也需要手動啟動
[root@KVM ~]# virsh start centos2
Domain centos2 started
[root@KVM ~]# virsh list –all|grep centos2
11 centos2 running
(2) centos2、centos3主機自動獲取IP地址

centos2自動獲取IP地址

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-eth0.bak
[root@localhost network-scripts]# dhclient
[root@localhost network-scripts]# ip a

(3) 清空iptables規則, 透過sshd登入該主機
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -X
[root@localhost ~]# /etc/init.d/iptables restart

(3) 安裝電源服務
[root@localhost ~]# yum -y install acpid
[root@shadowsocks ~]# /etc/init.d/acpid start
[root@shadowsocks ~]# chkconfig acpid on
至此Centos 6.4X64KVM虛擬機器安裝完畢。

kvm虛擬化學習筆記(四)之kvm虛擬機器日常管理與配置

  1. 檢視KVM虛擬機器配置檔案及執行狀態 (1) KVM虛擬機器預設配置檔案位置: /etc/libvirt/qemu/ autostart目錄是配置kvm虛擬機器開機自啟動目錄。

(2) virsh命令幫助
[root@KVM ~]# virsh –help
或直接virsh命令和,再執行子命令。如下所示。
[root@KVM ~]# virsh 
virsh # help #幫助
……
virsh # quit #退出
(3) 檢視kvm虛擬機器狀態
[root@KVM ~]# virsh list –all 
2. KVM虛擬機器開機
[root@KVM ~]# virsh start centos1
[root@KVM ~]# virsh start centos2
[root@KVM ~]# virsh start centos3 
3. KVM虛擬機器關機或斷電
(1) 關機
預設情況下virsh工具不能對linux虛擬機器進行關機操作,linux作業系統需要開啟與啟動acpid服務。在安裝KVM linux虛擬機器必須配置此服務。
[root@Centos1 ~]# yum -y install acpid
[root@Centos1 ~]# /etc/init.d/acpid start

virsh關機

[root@KVM ~]# virsh shutdown centos1
(2) 強制關閉電源
[root@KVM ~]# virsh destroy centos2 
4. 透過配置檔案啟動虛擬機器
[root@KVM ~]# virsh create /etc/libvirt/qemu/centos1.xml 
5. 配置開機自啟動虛擬機器
[root@KVM ~]# virsh autostart centos2

autostart目錄是kvm虛擬機器開機自啟動目錄,可以看到該目錄中有KVM配置檔案連結。
6. 匯出KVM虛擬機器配置檔案
[root@KVM ~]# virsh dumpxml centos1 > /etc/libvirt/qemu/centos01.xml 
KVM虛擬機器配置檔案可以透過這種方式進行備份。
7. 新增與刪除KVM虛擬機器
(1) 刪除kvm虛擬機器
[root@KVM ~]# virsh undefine centos1
Domain centos1 has been undefined
說明:該命令只是刪除 centos1的配置檔案,並不刪除虛擬磁碟檔案。如下圖所示。 
(2) 重新定義虛擬機器配置檔案
透過匯出備份的配置檔案恢復原KVM虛擬機器的定義,並重新定義虛擬機器。
[root@KVM ~]# mv /etc/libvirt/qemu/centos01.xml /etc/libvirt/qemu/centos1.xml
[root@KVM ~]# virsh define /etc/libvirt/qemu/centos1.xml #為客戶端輸出xml配置檔案 
8. 編輯KVM虛擬機器配置檔案
[root@KVM ~]# virsh edit centos1
virsh edit將呼叫vi命令編輯/etc/libvirt/qemu/centos1.xml配置檔案。也可以直接透過vi命令進行編輯,修改,儲存。
可以但不建議直接透過vi編輯。 
9. 其它(掛起、恢復)virsh命令
(1) 掛起伺服器
[root@KVM ~]# virsh suspend centos3 
(2) 恢復伺服器
[root@KVM ~]# virsh resume centos3 
virsh命令豐富。可以執行各種維護任務,本文只是從維護與管理的角度例舉了常用的命令,為該命令的使用提供一個思路。

kvm虛擬化學習筆記(五)之windows虛擬機器效能調整

在透過KVM安裝WindowsXP/2003/7/2008作業系統後,由於預設的磁碟驅動(IDE)效能與網路卡驅動(RTL8139100M) 的效能都極其低下,需要調整,透過載入Redhatvirtio驅動來提高kvmwindows虛擬機器磁碟與網路卡效能。更換後的驅動為SCSI磁碟驅動, 與virtio網路卡驅動(1000M)。
提升效能方式:
(1)採用LVM邏輯捲上安裝虛擬機器,採用更換磁碟驅動為SCSI來提升效能。
(2)修改預設網路卡型別與驅動。
新可以在安裝windows的時候載入驅動,也可以安裝後載入驅動,本文就是採用系統安裝之後再載入驅動的方式。
1.本文相關軟體下載地址
ISO驅動:virtio-win-0.1-52.iso
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-52.iso
軟碟機驅動:virtio-win-1.1.16.vfd可在down.51cto.com下載頻道中找。
2.載入驅動思路
(1)使用預設方式來安裝Windows系統,安裝系統完成後,再安裝virtio磁碟驅動,最後修改kvm啟動引數,設定磁碟為virtio。
(2)在開始安裝時直接按F6載入virtio驅動。
由於本文事先已經安裝好了windowsServer2003x86作業系統,所以這裡採用第一種方式安裝virtio驅動。直接將配置檔案修改,在沒有載入virtio驅動的情況下,會造成系統無法啟動。
3.替換驅動
(1)透過正常的圖形介面方式進行安裝windows虛擬機器,這時驅動都是採用的預設的。
(2)在控制檯上新增一塊virtio磁碟,一塊virtio網路卡,光碟機掛載virtioISO驅動光碟。

隨例新增一塊virtiodisk磁碟。點選Add Hardware(新增硬體)

新增一塊virtio網路卡。

掛載驅動iso檔案。將剛下載的iso上傳到KVM服務端內。

(3)進入系統開啟裝置管理器,重新整理硬體,需要安裝scsi與乙太網控制器驅動。

在SCSI控制器上右鍵,更新驅動程式,瀏覽到D盤\wxp\x86目錄,2003驅動目錄,下一步開始載入驅動。

繼續安裝驅動。

(4)安裝乙太網控制器驅動。

(4)重啟系統驗證驅動載入情況。
第二塊網路卡配置新的IP地址,然後關機。
(5)修改虛擬機器配置檔案
思路:替換與修改原磁碟驅動配置,與網路卡配置,修改內容如下:
1 # virsh edit wintest01

修改後的內容:
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='writeback'/>
<source file='/data/wintest01.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
<interface type='bridge'>
<mac address='52:54:00:da:f1:a6'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

(6)進入系統更新網路卡和SCSI控制器的驅動,重啟後就會應用新的硬體了。


5.解決KVM虛擬機器滑鼠同步問題
kvm虛擬化windows作業系統滑鼠有點不靈活等問題,在這裡透過以下方式解決。在虛擬機器的配置中增加:
1
2 # virsh edit wintest01
<input type=’tablet’ bus=’usb’/>

此windows磁碟與網路卡驅動調整以提高效能方法配置完畢。

kvm虛擬化學習筆記(六)之kvm虛擬機器控制檯登入配置
vm虛擬機器能否像xen虛擬機器一樣透過virsh console 一樣採用字元介面進行linux虛擬機器控制檯呢,答案是肯定的,預設情況下該命令是不起作用的,需要修改相關檔案才能實現。
1. 配置方法如下
(1) 新增ttyS0的許可,允許root登入
vm虛擬機器能否像xen虛擬機器一樣透過virsh console 一樣採用字元介面進行linux虛擬機器控制檯呢,答案是肯定的,預設情況下該命令是不起作用的,需要修改相關檔案才能實現。
1. 配置方法如下
(1) 新增ttyS0的許可,允許root登入
[root@Centos1 ~]# ip a
[root@Centos1 ~]# echo “ttyS0″ >> /etc/securett #是零不是英文字母O

(2) 修改/etc/grub.conf檔案
[root@Centos1 ~]# vim /etc/grub.conf

(3) 修改/etc/inittab檔案
[root@Centos1 ~]# vim /etc/inittab

(4) 重啟
[root@Centos1 ~]# reboot

  1. 測試virsh console命令 [root@KVM ~]# virsh console centos2

至此virsh console 命令進入控制檯配置完畢,今後將對linux虛擬機器很方便的console方式進行管理。
kvm虛擬化學習筆記(七)之kvm虛擬機器克隆
kvm虛擬機器的克隆分為兩種情況,本文也就透過以下兩種情況進行克隆,克隆虛擬機器為Centos 6.4X64。
(1) KVM主機本機虛擬機器直接克隆。
(2) 透過複製配置檔案與磁碟檔案的虛擬機器複製克隆(適用於異機的靜態遷移)。
1. 本機虛擬機器直接克隆
(1) 檢視虛擬機器配置檔案
[root@KVM ~]# cat /etc/libvirt/qemu/centos3.xml

虛擬機器磁碟檔案: /data/img/Centos3.img
虛擬機器名稱:Centos3
[root@KVM ~]# virsh list –all

(2) 開始克隆
[root@KVM ~]# virt-clone -o centos3 -n Linux3 -f /data/img/Linux3.img
說明:克隆虛擬機器應保持關閉狀態,以centos3做為源,克隆centos3虛擬機器,並建立名稱為Linux3虛擬機器,使用磁碟檔案/data/img/Linux3.img 
(3) 啟動虛擬機器
[root@KVM ~]# virsh start Linux3
[root@KVM ~]# virsh list

(4) 修改主機名,IP地址等
[root@localhost ~]# hostname Linux3
[root@localhost ~]# bash
[root@Linux3 ~]# vi /etc/sysconfig/network
HOSTNAME=Linux3
修改IP地址
[root@Linux3 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.15.135
NETMASK=255.255.255.0
GATEWAY=192.168.15.2
DNS1=114.114.114.114
[root@Linux3 ~]# /etc/init.d/network restart
2. 複製配置檔案與磁碟檔案克隆
(1) 匯入kvm虛擬機器配置檔案
這裡採用centos3做為模板,進行克隆。
[root@KVM ~]# virsh list –all

[root@KVM ~]# virsh dumpxml centos3 > /etc/libvirt/qemu/Linux03.xml

(2) 複製kvm虛擬機器磁碟檔案
本系列文章都是採用虛擬磁碟檔案進行測試,沒有使用lvm卷。
透過檢視配置檔案:虛擬磁碟位置
[root@KVM ~]# cp /data/img/Centos3.img /data/img/Linux03.img

(3) 直接編輯修改配置檔案
修改name,uuid,disk位置,vnc埠
此時還是將該配置檔案註冊進來,無法透過virsh edit進行編輯。
[root@node1 data]# vi /etc/libvirt/qemu/Linux03.xml

Linux03
8f2bb4a7-c7ed-32aa-3676-9fb05923260d


(4) 定義新虛擬機器配置檔案
[root@KVM ~]# virsh define /etc/libvirt/qemu/Linux03.xml

啟動虛擬機器

[root@KVM ~]# virsh start Linux03

(5) 登入虛擬機器進行主機名,IP等修改

[root@localhost ~]# vi /etc/sysconfig/network
HOSTNAME=Linux03
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.15.133
NETMASK=255.255.255.0
GATEWAY=192.168.15.2
DNS1=114.114.114.114

本文到此透過兩種方式進行kvm虛擬機器克隆,其實各有用處。
再次說明:本文克隆的虛擬機器是Centos6.4,如果克隆的虛擬機器是RHEL/CentOS/OEL7.x作業系統,還需要修改/etc/udev/rules.d/70-persistent-net.rules檔案。
kvm虛擬化學習筆記(八)之kvm虛擬機器vnc配置
本文是透過vnc方式訪問虛擬主機上的KVM虛擬機器。
這裡的透過vnc方式訪問虛擬機器不是在kvm虛擬機器安裝配置vnc伺服器,透過虛擬主機的IP地址與埠進行訪問,kvm虛擬化對vnc的支援相對來說比xen要好很多,在虛擬主機上配置VNC訪問虛擬機器,也是為了多提供一種方式訪問虛擬機器而已。
1. 修改qemu.conf
[root@KVM ~]# vim /etc/libvirt/qemu.conf
vnc_listen = “0.0.0.0”
說明1:vnclisten 預設繫結127.0.0.1 在配置檔案裡指定VNC 繫結0.0.0.0IP,就不用在安裝kvm虛擬機器時指定vnclisten引數了。
說明2:在虛擬主機上有很多個虛擬機器的時候,需要指定每個虛擬機器的埠,否則將會很亂。
2. 修改虛擬機器配置檔案
[root@KVM ~]# virsh edit Linux03


配置VNC的配置檔案,port是指定埠號,autoport是自己分配埠號。

  1. 啟動虛擬機器並測試VNC

檢視vnc埠

[root@KVM ~]# netstat -tunlp|grep qemu-kvm
tcp 0 0 0.0.0.0:5916 0.0.0.0:* LISTEN 4134/qemu-kvm

vnc工具登入

改為字元介面啟動,vnc也能出現介面,這點比xen虛擬化vnc要好。vnc登入如下。到此kvm虛擬機器管理已經介紹了兩種方式,一種是在KVM虛擬主機上配置VNC,一種是在kvm虛擬主機上配置virsh console控制檯,當然虛擬化管理器就不用說了。
kvm虛擬化學習筆記(九)之kvm虛擬機器時間配置
注:在虛擬化環境中,虛擬機器在長時間執行過程中,時間會變慢,通常的作法是配置ntpdate定時與時間伺服器進行時間同步的計劃任務。
KVM虛擬機器預設採用utc時間,需要專門修改,以及考慮kvm時間同步問題。
1. kvm虛擬機器修改時間配置檔案
kvm虛擬機器採用utc時間,需要先修改配置檔案使用KVM虛擬機器的時間與虛擬主機同步。
[root@KVM ~]# virsh edit Linux03

修改utc為localtime,儲存退出,重啟虛擬機器。

  1. 關於kvm虛擬機器時間問題解決思路 (1) 虛擬機器時間慢是所有虛擬化平臺的一共性問題。 (2) 解決時間的最終解決方法就是在生產環境中配置時間伺服器,kvm虛擬化伺服器與kvm機均都要配置時間同步的計劃任務,這才是解決這一個問題最終解決方案。 示例:如果能訪問網際網路,最簡單了,需要kvm虛擬機器與主機時間同步,但是執行一段時間會慢,一定要做時間同步,特別是對時間敏感的環境。

crontab -e

01 */3 * * * /usr/sbin/ntpdate ntp.fudan.edu.cn >> /dev/null 2>&1
關於虛擬機器時間配置本文討論完畢。
kvm虛擬化學習筆記(十)之kvm虛擬機器快照備份
kvm虛擬機器預設使用raw格式的映象格式,效能最好,速度最快,它的缺點就是不支援一些新的功能,如支援映象,zlib磁碟壓縮,AES加密等。
要使用映象功能,磁碟格式必須為qcow2。下面開始kvm虛擬機器快照備份的過程。
進一步的學習參考:kvm+libvirt虛擬機器快照淺析 http://itxx.sinaapp.com/blog/content/130
1. 檢視現有磁碟映象格式與轉換
(1) 檢視磁碟格式
[root@KVM ~]# qemu-img info /data/img/kvm_centos2.img

raw格式需要轉換成qcow2

(2) 關閉虛擬機器並轉換磁碟
[root@centos2 ~]# yum -y install acpid ##安裝電源服務
[root@KVM ~]# virsh shutdown centos2 
(3) 轉換磁碟格式
[root@KVM ~]# qemu-img convert -f raw -O qcow2 /data/img/kvm_centos2.img /data/img/kvm_centos2.qcow2
-f 源映象的格式
-O 目標映象的格式
檢視轉換後磁碟大小

檢視轉換後的格式,已經轉換成了qcow2, 這裡是複製一份,並將格式轉成qcow2
[root@KVM ~]# qemu-img info /data/img/kvm_centos2.qcow2 
2. 修改虛擬機器配置檔案
修改磁碟格式,與新qcow2格式的磁碟。
[root@KVM ~]# virsh edit centos2

  1. 對虛擬機器進行快照管理 (1) 對oeltest01虛擬機器建立快照 也可以virsh snapshot-create-as centos2 centos2_snapshot 建立後個快照別名。 [root@KVM ~]# virsh snapshot-create-as centos2 centos2_snaphshot

(2) 檢視虛擬機器映象快照的版本
[root@KVM ~]# virsh snapshot-list centos2

(3) 檢視當前虛擬機器映象快照的版本
可以看到為當前最新的快照版本。
[root@KVM ~]# virsh snapshot-create-as centos2 centos2_snaphshot
[root@KVM ~]# virsh snapshot-current centos2

檢視快照

[root@KVM ~]# virsh snapshot-info centos2 centos2_snaphshot

(4) 檢視當前虛擬機器映象檔案

啟動centos2, 安裝ftp, 在做一個快照.

[root@KVM ~]# virsh start centos2
[root@centos2 ~]# yum -y install vsftpd
[root@KVM ~]# virsh snapshot-create-as centos2 centos_installftp
[root@KVM ~]# qemu-img info /data/img/kvm_centos2.qcow2

快照配置檔案在/var/lib/libvirt/qemu/snapshot/虛擬機器名稱/下 
4. 恢復虛擬機器快照
(1) 恢復虛擬機器快照必須關閉虛擬機器。
[root@KVM ~]# virsh shutdown centos2

確認虛擬機器是關機狀態 
(2) 確認需要恢復的快照時間,這裡恢復到centos2_installftp 
(3) 執行恢復,並確認恢復版本
[root@KVM ~]# virsh snapshot-revert centos2 centos2_installftp 
(4) 登入到centos2驗證ftp命令

  1. 刪除虛擬機器快照 (1) 檢視虛擬機器快照 [root@KVM ~]# qemu-img info /data/img/kvm_centos2.qcow2 (2) 刪除快照 這裡刪除第一個快照centos2_installftp [root@KVM ~]# virsh snapshot-delete centos2 centos2_installftp [root@KVM ~]# qemu-img info /data/img/kvm_centos2.qcow2

(3) 回到centos2第一個快照(centos2_snaphshot), 並檢視centos2狀態.
[root@KVM ~]# virsh snapshot-revert centos2 centos2_snaphshot

到此kvm虛擬機器快照測試完畢。kvm虛擬化學習筆記進行到這裡了,感覺到kvm虛擬化的內容真的很多。水是越來越深了。
kvm虛擬化學習筆記(十一)之kvm虛擬機器擴充套件磁碟空間
kvm虛擬機器磁碟空間擴充套件與xen虛擬機器磁碟空間擴充套件思路一致。原因在於xen/kvm預設的虛擬機器磁碟格式為raw,所以方式可以通用。
一、raw磁碟格式擴充套件思路如下
1. 新新增一塊raw格式的磁碟加入到KVM虛擬機器,然後透過虛擬機器系統lvm邏輯卷管理方式進行管理,擴充套件磁碟空間。
①. 檢視現有磁碟容量
[root@centos1 ~]# df -h
 ②. 使用dd建立一個磁碟檔案
[root@kvm ~]# dd if=/dev/zero bs=1024MB count=2 > /data/img/centos1_new.img
[root@kvm ~]# du -sh /data/img/centos1_new.img
 ③. 關閉虛擬機器
[root@kvm ~]# virsh list
[root@kvm ~]# virsh shutdown centos1
[root@kvm ~]# virsh list –all
 ④. 修改虛擬主機配置檔案
[root@kvm ~]# virsh edit centos1
 ⑤. 啟動虛擬機器
[root@kvm ~]# virsh start centos1
⑥. 檢視centos1磁碟資訊
[root@centos1 ~]# fdisk -l
⑦. 建立磁碟分割槽,格式化分割槽, 掛載分割槽.
[root@centos1 ~]# fdisk /dev/sdb
[root@centos1 ~]# mkfs.ext4 /dev/sdb1
[root@centos1 ~]# mkdir /data
[root@centos1 ~]# mount /dev/sdb1 /data/
[root@centos1 ~]# df -h

  1. 直接透過dd命令擴充套件現有虛擬機器磁碟大小,擴充套件之後,原磁碟大小增大,進入虛擬機器系統後,直接透過fdisk分割槽新新增的空間,然後將該分割槽併入lvm邏輯卷中,擴大磁碟空間。
    ①. 關閉擴容kvm(centos1)
    [root@kvm ~]# virsh shutdown centos1
    [root@kvm ~]# virsh list –all

    ②. 直接擴充套件現有磁碟空間(centos1_new.img)
    [root@kvm ~]# du -sh /data/img/centos1_new.img
    [root@kvm ~]# dd if=/dev/zero bs=1024MB count=2 >> /data/img/centos1_new.img

    ③. 啟動kvm(centos1)
    [root@kvm ~]# virsh start centos1
    [root@kvm ~]# virsh list

    ④. 檢視分割槽列表.(注: 建立分割槽自便)
    [root@centos1 ~]# df -h
    [root@centos1 ~]# fdisk -l /dev/sdb

二、qcow2磁碟格式擴充套件思路如下
(1) 可以採用raw磁碟格式磁碟的擴充套件方式一致的方式進行。
(2) qcow2格式磁碟,直接透過qemu-img 直接擴充套件qcow2磁碟, 新新增一塊raw格式的磁碟加入到KVM虛擬機器,然後透過虛擬機器系統lvm邏輯卷管理方式進行管理,擴充套件磁碟空間。
下面將開始透過qcow2格式新增磁碟。
方式一:新增一塊qcow2磁碟加入虛擬機器
1. 檢視現在虛擬機器磁碟資訊
①. 檢視kvm虛擬機器(centos1)磁碟格式
[root@kvm ~]# virsh edit centos1
 ②. 檢視磁碟格式資訊
[root@kvm ~]# qemu-img info /data/img/kvm_centos1.qcow2
③. 進入虛擬機器,檢視磁碟容量
[root@centos1 ~]# df -h
④. 新增一塊qcow2磁碟
[root@kvm ~]# qemu-img create -f qcow2 /data/img/kvm_centosA1.qcow2 2G
 ⑤. 關閉kvm(centos1)新增一塊qcow2磁碟資訊加入配置檔案
[root@kvm ~]# virsh shutdown centos1 
[root@kvm ~]# virsh edit centos1 
⑥. 啟動虛擬機器並配置磁碟
root@kvm ~]# virsh start centos1
[root@centos1 ~]# fdisk -l 
2. 配置LVM擴充套件磁碟
①.磁碟分割槽
[root@centos1 ~]# fdisk /dev/sdb 
②. 擴充套件lvm邏輯卷。
[root@centos1 ~]# pvcreate /dev/sdb1
[root@centos1 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup lvm2 a– 9.51g 0
/dev/sdb1 lvm2 a– 2.00g 1020.00m
[root@centos1 ~]# vgextend VolGroup /dev/sdb1
[root@centos1 ~]# lvextend -L +1024MB /dev/mapper/VolGroup-lv_root
[root@centos1 ~]# resize2fs /dev/mapper/VolGroup-lv_root
[root@centos1 ~]# df -h 
可以看到, 根”/”分割槽增長了1G容量。
方式二:直接擴充套件qcow2磁碟(拿kvm_Centos4做演示)
(1) 關閉虛擬機器。
(2) 刪除配置檔案中第二塊磁碟資訊
1. 直接擴充套件qcow2磁碟
(1) 檢視磁碟
[root@kvm ~]# virsh edit centos40
(2) 直接擴充套件qcow2磁碟
[root@kvm ~]# qemu-img resize /data/img/kvm_centos4.qcow2 +4G 經過前後對比,磁碟大小已由14G擴充套件到18G,已擴充套件,qcow2磁碟格式必須採用此方式進行擴充套件,不要使用dd方式,dd方式適用於raw格式。
2. 進入系統開始擴充套件磁碟
(1) 啟動kvm(centos4)並檢視分割槽大小
[root@kvm ~]# virsh start centos4
[root@centos4 ~]# fdisk -l 
(2) 開始分割槽
[root@centos4 ~]# fdisk /dev/vda 檢視現在磁碟空間
[root@centos4 ~]# df -h (3) 格式化分割槽並掛載。
[root@centos4 ~]# mkfs.ext4 /dev/vda3
[root@centos4 ~]# mkdir /database
[root@centos4 ~]# mount /dev/vda3 /data
[root@centos4 ~]# df -h 到此kvm虛擬機器擴充套件磁碟空間成功,當虛擬機器磁碟格式換成qcow2後,確實有很多需要注意的地方,qcow2格式支援動態擴充套件與快照功能,雖然性比raw稍差,但確實很實用。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/438414/viewspace-2150472/,如需轉載,請註明出處,否則將追究法律責任。

相關文章