經過案例 搭建KVM虛擬化平臺python
注意:1本次實驗要開啓VMWare中對應CentOS6.5虛擬機的虛擬化功能--在虛擬機設置--處理器--虛擬化引擎--勾選虛擬化Intel VT-x/EPT 或 AMD-V/RVI(V)shell
2.KVM是Kernel Virtual Machine的縮寫,目前RedHat 只支持在64位的系統上運行KVM , 同時硬件要支持VT技術。vim
案例環境:採用的是CentOS6.5x86_64,開啓虛擬化支持安全
1、安裝方式服務器
圖形化安裝CentOS6.5--採用最小化安裝系統--選擇桌面安裝--選擇虛擬化選項網絡
2、在已有系統基礎上,安裝KVM所需軟件dom
yum -y groupinstall "Desktop"ide
yum -y install qemu-kvm.x86_64 qemu-kvm-tools.x86_64 python-virtinst.noarch qemu-img.x86_64 bridge-utils.x86_64 libvirt virt-manager工具
3、驗證--安裝好以上RPM包後,最好重啓一下系統,再查看CPU是否支持虛擬化性能
1)查看如下兩種類型CPU支持虛擬化的相關信息
A.Intel
cat /proc/cpuinfo | grep vmx
B.AMD
CAT /proc/cpuinfo | grep smv
2)查看KVM模塊是否成功安裝
lsmod | grep kvm
4、設置KVM網絡
在libvirt中運行KVM網絡有兩種:用戶模式-NAT和橋接模式-Bridge,默認是NAT模式
,根據實際的需求咱們採用橋接模式。
vim /etc/sysconfig/network-scripts/ifcfg-eth0(修改配置文件ifcfg-eth0)
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
HWADDR=00:0c:29:25:6a:6e
BRIDGE="br0"
vim /etc/sysconfig/network-scripts/ifcfg-br0(新建配置文件ifcfg-br0)
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
重啓network服務
[root@localhost ~]# service network restart
正在關閉接口 br0: [肯定]
正在關閉接口 eth0: [肯定]
關閉環回接口: [肯定]
彈出環回接口: [肯定]
彈出界面 eth0: [肯定]
彈出界面 br0: Determining if ip address 192.168.1.100 is already in use for device br0...
確認IP地址信息: [肯定]
[root@localhost ~]# ifconfig
輸出以上信息,說明網卡橋接成功了!
5、KVM管理
virt-manager是基於libvirt的圖形化虛擬機管理軟件,該軟件不一樣的版本,圖形界面和操做方法也可能不一樣,在Shell環境下,以root身份輸入命令:virt-manager 便可調出虛擬化管理器。
[root@localhost ~]# virt-manager
Xlib: extension "RANDR" missing on display "localhost:10.0".
6、虛擬化管理的步驟以下:
1)建立存儲池
雙擊localhost(QEMU)--選擇「儲存」選項卡--單擊「+」新建儲存池:名稱「bdqn」;目錄「/data_kvm/store」--單擊「完成」。
2)再建立一個鏡像儲存池
雙擊localhost(QEMU)--選擇「儲存」選項卡--單擊「+」新建儲存池:名稱「bdqn_iso」;目錄「/data_kvm/iso」--單擊「完成」。
上傳iso鏡像文件
可用mount -o 或別的方法把鏡像上傳到服務器目錄/data_kvm/iso
3)建立存儲卷
單擊剛建立好的「bdqn」存儲池--單擊對話框右下角「新建卷」按鈕創建一個儲存卷:名稱:「benet_kvm」;設置存儲卷的最大容量和分配容量「10240MB」--單擊「完成」。
4)建立虛擬機
虛擬系統管理器--右擊「Localhost(QEMU)」--單擊「新建」選項--虛擬機名稱「CentOS6.5」--打擊「前進」按鈕--分配內存和CPU資源--單擊「前進」按鈕--勾選「當即分配整個磁盤」,點選「管理的或者其餘現有存儲」,單擊「瀏覽」按鈕選擇文件--單擊「前進」按鈕--勾選「在安裝前自定義配置」--單擊「完成」。在「Overview」視圖,定位到「機器設置」-時鐘偏移-改成「localtime」,單擊應用;定位到「Boot Option」,勾選「主機引導時啓動虛擬機」複選框-單擊應用;在「顯示VNC」中,將Keymap設置爲「Copy Local Keymap」。
設置完畢後,單擊「Begin Installation」按鈕便可,整個虛擬機配置過程完成。下面就是一步一步安裝系統了。
第二部分 使用KVM命令集管理虛擬機
1、安裝Linux虛擬機
虛擬機192.168.1.100宿主機(看成物理機)已安裝,可使用Xshell遠程控制該宿主機或在本機上操做。
2、KVM基本功能管理
1)查看命令幫助
[root@localhost ~]# ls /etc/libvirt/qemu
autostart CentOS6.5.xml networks
2)查看KVM的配置文件存放目錄(CentOS6.5.xml是虛擬機系統實例的配置文件)
ls /etc/libvirt/qemu
3)查看虛擬機狀態
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
3 CentOS6.5 running
4)虛擬機關機與開機
注意:首先要確認acpid服務已安裝並運行
[root@localhost ~]# rpm -qa acpid
acpid-1.0.10-2.1.el6.x86_64
[root@localhost ~]# /etc/rc.d/init.d/acpid start
啓動 acpi 守護進程: [肯定]
[root@localhost ~]# virsh shutdown CentOS6.5
域 CentOS6.5 被關閉
[root@localhost ~]# virsh start CentOS6.5
域 CentOS6.5 已開始
5)強制實例系統關閉電源
[root@localhost ~]# virsh destroy CentOS6.5
域 CentOS6.5 被刪除
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
- CentOS6.5 關閉
6)經過配置文件啓動虛擬機系統實例
[root@localhost ~]# virsh create /etc/libvirt/qemu/CentOS6.5.xml
域 CentOS6.5 被建立(從 /etc/libvirt/qemu/CentOS6.5.xml)
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
5 CentOS6.5 running
7)掛起虛擬機
[root@localhost ~]# virsh suspend CentOS6.5
域 CentOS6.5 被掛起
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
5 CentOS6.5 暫停
8)恢復虛擬機
[root@localhost ~]# virsh resume CentOS6.5
域 CentOS6.5 被從新恢復
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
5 CentOS6.5 running
9)配置虛擬機實例伴隨宿主機自動啓動
[root@localhost ~]# virsh autostart CentOS6.5
域 CentOS6.5標記爲自動開始
該目錄內容爲開機自動啓動的系統
[root@localhost ~]# ls -hl /etc/libvirt/qemu/autostart/
總用量 0
lrwxrwxrwx 1 root root 31 9月 24 17:18 CentOS6.5.xml -> /etc/libvirt/qemu/CentOS6.5.xml
10)導出虛擬機配置
virsh dumpxml CentOS6.5 >/etc/libvirt/qemu/test02.xml
[root@localhost ~]# ls /etc/libvirt/qemu
autostart CentOS6.5.xml networks test02.xml
11)虛擬機的刪除和添加
[root@localhost ~]# virsh shutdown CentOS6.5
域 CentOS6.5 被關閉
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
- CentOS6.5 關閉
[root@localhost ~]# virsh undefine CentOS6.5
域 CentOS6.5 已經被取消定義
[root@localhost ~]# ls /etc/libvirt/qemu
autostart networks test02.xml
注意:CentOS6.5的配置文件被刪除,可是磁盤文件不會被刪除
經過virsh list --all 查看不到CentOS6.5的信息,說明此虛擬機被刪除。
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
經過備份配置文件從新定義虛擬機
cd /etc/libvirt/qemu
mv test02.xml CentOS6.5.xml
[root@localhost qemu]# virsh define CentOS6.5.xml
定義域 CentOS6.5(從 CentOS6.5.xml)
[root@localhost ~] virsh list --all
Id 名稱 狀態
----------------------------------------------------
- CentOS6.5 關閉
12)修改虛擬機的配置信息(可修改系統內存大小、磁盤文件等信息)
vim /etc/libvirt/qemu/CentOS6.5.xml
經過virsh命令修改
virsh edit CentOS6.5
第三部分 KVM文件的管理
注意:首先安裝文件格式轉換的命令行工具
[root@localhost Packages]# yum -y install libguestfs-tools
1、轉換raw格式磁盤文件至qcow2格式
查看當前磁盤文件格式
[root@localhost ~] qemu-img info /data_kvm/store/benet_kvm.img
p_w_picpath: /data_kvm/store/benet_kvm.img
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 10G
關閉虛擬機CentOS6.5
[root@localhost qemu]# virsh shutdown CentOS6.5
域 CentOS6.5 被關閉
轉換磁盤文件格式
qemu-img convert -f raw -O qcow2 /data_kvm/store/benet_kvm.img /data_kvm/store/benet_kvm.qcow2
2、修改CentOS6.5的xml配置文件
[root@localhost ~]# virsh edit CentOS6.5
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/data_kvm/store/benet_kvm.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
編輯了域 CentOS6.5 XML 配置。
3、virt-cat命令,相似於cat命令
virt-cat -a /data_kvm/store/benet_kvm.qcow2 /etc/sysconfig/network
4、virt-edit命令,用於編輯文件,用法與vim基本一致。
virt-edit -a /data_kvm/store/benet_kvm.qcow2 /etc/resolv.conf
5、virt-df命令查看虛擬磁盤信息
virt-df -h
[root@localhost ~]# virt-df -h CentOS6.5
Filesystem Size Used Available Use%
CentOS6.5:/dev/sda1 1008M 57M 900M 6%
第四部分 虛擬機的克隆
1、查看虛擬機的狀態
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
- CentOS6.5 關閉
2、從CentOS6.5克隆test01
virt-clone -o CentOS6.5 -n test01 -f /data_kvm/store/benet_kvm.qcow2
[root@localhost ~]# virt-clone -o CentOS6.5 -n test01 -f /data_kvm/store/test01.qcow2
正在分配 'test01.qcow2' | 10 GB 00:05
Clone 'test01' created successfully.
3、查看虛擬機狀態
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
- CentOS6.5 關閉
- test01 關閉
4、啓動虛擬機
[root@localhost ~]# virsh start test01
域 test01 已開始
[root@localhost ~]# virsh list --all
Id 名稱 狀態
----------------------------------------------------
7 test01 running
- CentOS6.5 關閉
第五部分 虛擬機快照
KVM虛擬機要使用鏡像功能,磁盤格式必須爲qcow2.
[root@localhost ~]# qemu-img info /data_kvm/store/test01.qcow2
p_w_picpath: /data_kvm/store/test01.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 607M
cluster_size: 65536
KVM虛擬機快照備份過程以下:
1)對CentOS6.5建立快照
[root@localhost ~]virsh snapshot-create CentOS6.5
2)查看虛擬機快照版本信息
[root@localhost ~]virsh snapshot-current CentOS6.5
3)查看快照信息
[root@localhost ~]virsh snapshot-list CentOS6.5
4)建立新快照
[root@localhost ~]virsh snapshot-create CentOS6.5
5)查看快照信息
[root@localhost ~]virsh snapshot-list CentOS6.5
6)恢復虛擬機至某個快照狀態
[root@localhost ~]virsh snapshot-revert CentOS6.5 1282572963
7)查看虛擬機快照版本信息
[root@localhost ~]virsh snapshot-current CentOS6.5
8)刪除快照
[root@localhost ~]virsh snapshot-delete CentOS6.5 1282572963
總結:KVM虛擬化平臺,現做爲Linux內核模塊之一,它依託CPU虛擬化指令集(如Intel-VT,AMD-V)實現高性能的安全穩定的虛擬化支持。
KVM對硬件的要求,必須是64位操做系統,其CPU支持lntel或AMD虛擬化,能夠分別經過cat /proc/cpuinfo |grep vmx 或cat /proc/cpuinfo |grep smv 來查看。
KVM 可經過命令集管理,但寵大的命令集很難清楚明瞭,因此一般都是在桌面環境下經過圖形界面管理,直觀方便。