IT技術互動交流平臺

KVM虛擬化(一) 介紹與簡單使用

作者:Mr.Mangood  來源:IT165收集  發布日期:2016-11-16 20:05:34

一、架構及介紹

  KVM(Kernel-based Virtual Machine)它由 Quramnet 開發,該公司于 2008年被 Red Hat 收購;

  自Linux 2.6.20后整合到內核,該內核模塊使得 Linux 變成了一個 Hypervisor層;

  它依托于CPU虛擬化指令集,性能、安全性、兼容性、穩定性表現很好,每個虛擬化操作系統表現為單個系統進程,與Linux安全模塊selinux安全模塊很好結合;

  官方網站為http://www.linux-kvm.org/page/Main_Page

二、KVM的安裝

(1)安裝之前要查看CPU是否支持虛擬化,以下命令有輸出就代表支持虛擬化;如果確定cpu可以支持虛擬化,但以上命令沒有輸出結果,就進入bios打開虛擬化

1 Intel  CPU:
2   [root@localhost ~ ]#cat  /proc/cpuinfo | grep vmx
3 AMD  CPU:
4   [root@localhost ~ ]#cat /proc/cpuinfo | grep smv

(2)安裝方法

方法一:在安裝系統的時候,選擇桌面安裝,然后選擇虛擬化選項

方法二:在已有系統基礎上,安裝KVM所需軟件。

必安包:

qemu-kvm.x86_64  //KVM模塊
qemu-img.x86_64  //qemu組件,創建磁盤、啟動虛擬機等

可選工具包:

yum -y groupinstall 'Desktop'   //安裝GNOME桌面環境
virt-manager  //圖形界面管理虛擬機工具
libvirt  //圖形化虛擬機管理工具
python-virtinst.noarch  //python組件,記錄創建VM時的xml文件
bridge-util.x86.64  //網絡支持工具,橋接功能模塊
libguestfs-tools     //文件管理工具
acpid                //virsh命令依賴的服務,需要開機啟動的,他是一個服務,不是工具包

(3)驗證安裝結果

[root@localhost ~ ]# lsmod | grep kvm
kvm_intel        54285    0
kvm          333172    1    kvm_intel

三、KVM網絡

1、KVM虛擬機網絡介紹

  在libvirt中運行KVM網絡有兩種方法:NAT和Bridge,默認是NAT

(1)NAT模式:即用戶模式,可以訪問外網,但是無法從外部訪問虛擬機網絡。

(2)Bridge模式:即橋接模式,這種模式允許虛擬機像一臺獨立的主機一樣擁有網絡,外部的機器可以直接訪問到虛擬機內部,但需要網卡支持,一般有線網卡都支持。另外需要編輯網卡參數文件以支持橋接。

  如圖所示,兩臺虛擬機的網卡對應著宿主機的兩個虛擬網卡,他們會以一個叫br0的網橋連接,虛擬機網卡和網橋連接后,就可以獲得設置和宿主機一個網段的IP地址的權限,因此就可以通過宿主機的網絡訪問外網。

2、設置KVM橋接網絡

1 [root@localhost network-scripts]# cat ifcfg-eth0
2 DEVICE=eth0
3 HWADDR=00:0C:29:A6:73:18
4 TYPE=Ethernet
5 UUID=ea80305d-532a-4c31-883f-d9797e279e29
6 ONBOOT=yes
7 NM_CONTROLLED=no   #關閉network manager對網卡的控制
8 BOOTPROTO=none      #不需要給物理機設置ip地址
9 BRIDGE='br0'             #設置eth0網卡支持網橋
1 [root@localhost network-scripts]# vi ifcfg-br0
2 添加:
3 DEVICE=br0
4 TYPE=Bridge
5 ONBOOT=yes
6 NM_CONTROLLED=no
7 BOOTPROTO=none
8 IPADDR=192.168.1.10
9 NETMASK=255.255.255.0
1 [root@localhost ~]# /etc/init.d/NetworkManager stop  #關掉網卡守護進程
2 [root@localhost ~]# service network restart 

四、管理虛擬機

  創建虛擬機有兩種方法,一種基于命令行,一種基于圖形化界面。

1、圖形化界面管理

  virt-manager是基于libvirt的圖像化虛擬機管理軟件,不同版本的virt-manager的界面和操作方法可能不同,他是創建KVM虛擬機的最簡單的方法。用這種方法必須基于之前我們安裝的軟件包virt-manager和libvirt.這里不做過多闡述。

創建虛擬機的步驟大致如下:

  (1)創建存儲池并創建存儲卷,所謂存儲池其實就是一個文件夾,存儲卷就是kvm虛擬機的實體鏡像

  (2)創建鏡像存儲池,用于存放操作系統鏡像,鏡像存儲池就是放操作系統鏡像的文件夾

  (3)創建虛擬機,并設置相應參數

  (4)可把時鐘偏移改為“localtime”

  (5)可設置主機引導時啟動虛擬機

  (6)可設置通過VNC遠程管理,keymap選項設為Copy local keymap

2、命令行式創建虛擬機

使用命令創建虛擬機
--name 指定KVM虛擬機的名字
--ram 內存大小
--file 磁盤文件的路徑
--vcpus 指定虛擬機的 CPU 數量
--file-size=30(默認單位是G) 設置硬盤大小
--cdrom 光驅提供boot.iso 鏡像
--location 本地提供boot.iso 鏡像
--network network:default  設置網卡(使用默認)
--vnc --vncport=5911  連接桌面環境的vnc端口
[root@localhost ~]# virt-install --name=benet --ram=2048 --vcpus=1 --file=/var/lib/libvirt/images/benet.img --file-size=30 --location=/tmp/rhel6.5.iso --force &

3、KVM命令集

  想使用virsh命令必須開啟acpid服務

yum -y install acpid
/etc/init.d/acpid start
chkconfig acpid on

虛擬機重要的兩個文件目錄  

/etc/libvirt/qemu/         //虛擬機配置文件目錄
/var/lib/libvirt/images/   //虛擬機磁盤文件目錄

修改虛擬機的配置

vim /etc/libvirt/qemu/benet.xml  //修改虛擬機配置信息(用來修改系統內存大小、磁盤文件等信息)
virsh edit benet                        //通過virsh命令修改虛擬機配置信息

基本命令

 1 virsh -h                   //查看命令幫助
 2 virsh list                 //查看正在運行的虛擬機
 3 virsh list --all           //查看所有虛擬機
 4 virsh create /etc/libvirt/qemu/benet.xml  //通過配置文件啟動虛擬機系統實例
 5 virsh start benet          //啟動,需要確認acpid服務安裝并運行
 6 virsh shutdown benet       //關機,需要確認acpid服務安裝并運行
 7 virsh destroy benet        //強制關機
 8 virsh autostart benet      //隨宿主機自動啟動,此命令將創建/etc/libvirt/qemu/autostart/目錄,目錄內容為開機自動啟動的系統。
 9 virsh suspend benet        //掛起
10 virsh resume benet         //恢復
11 virsh dumpxml benet > /etc/libvirt/qemu/benet2.xml   //導出虛擬機配置
12 virsh undefine benet       //刪除虛擬機,會發現配置文件被清除,但是磁盤文件不會被刪除
13 mv /etc/libvirt/qemu/benet2.xml/  /etc/libvirt/qemu/benet.xml    //把備份的配置文件改回去,以便重新定義虛擬機
14 virsh define benet.xml     //重新定義虛擬機(因為磁盤文件沒有被刪除)

4、KVM文件管理

  通過文件管理可以直接查看、修改、復制虛擬機的內部文件、例如,當系統因為配置問題無法啟動時,可以直接修改虛擬機的文件。虛擬機磁盤文件有raw與qcow2格式,qcow2格式是kvm支持的標準格式,raw格式為虛擬磁盤文件通用格式。KVM虛擬機默認使用raw格式,raw格式性能最好,速度最快,其缺點是不支持一些新的功能,如鏡像,Zlib磁盤壓縮、AES加密等,另外raw格式文件比qcow2格式文件大很多,將近15倍吧。

  文件管理需要專門的工具才能完成,不同格式的磁盤有不同的文件管理工具。本地yum安裝libguestfs-tools后產生的命令行工具(這個工具可以直接讀取qcow2格式的磁盤文件,因此需要將raw格式的磁盤文件轉換成qcow2格式)

  轉換磁盤格式方法:

1 qemu-img info /var/lib/libvirt/images/benet.img   # 查看當前磁盤格式
2 virsh shutdown benet
3 qemu-img convert -f raw -O qcow2 /var/lib/libvirt/images/benet.img  /var/lib/libvirt/images/benet.qcow2 #轉換磁盤文件格式,轉化后多了一個新的qcow2文件,注意是新增了
4 virsh edit benet   #修改benet的xml配置文件
5 ……//省略部分內容
6   <disk type='file'   device='disk'>
7     <driver  name='qemu'  type='qcow2'   chche='none'/>
8     <source file='/var/lib/libvirt/images/benet.qcow2'/>

  其他用法如下:

1 ~]# virt-cat -a  /var/lib/libvirt/images/benet.qcow2   /etc/sysconfig/network #查看命令,用法與cat命令類似,格式為:virt-cat 磁盤鏡像路徑 文件絕對路徑(最后要看的就是這個network文件)
2 NETWORKING=yes
3 HOSTNAME=benet
4 ~]# virt-edit -a  /var/lib/libvirt/images/benet.qcow2  /etc/resolv.conf   #與vim用法基本一致
5 nameserver  8.8.8.8
6 ~]# virt-df  -h  benet   #用于查看虛擬機磁盤信息
7 Filesystem              Size        Used        Available      Use%
8 benet:/dev/sda1           484M         32M          427M               7%
9 benet:/dev/VolGroup/lv_root        7.4G             1.6G                5.4G             5.4G               22%

5、克隆與快照

1 [root@localhost ~]# virt-clone -o benet -n benet2 -f /var/lib/libvirt/images/benet2.img      //虛擬機克隆
2 [root@localhost ~]# virsh snapshot-create benet       //創建新快照
3 Domain snapshot 1382572463 created
4 [root@localhost ~]# virsh snapshot-delete benet 1382572463    //刪除快照
5 Domain snapshot 1382572463 deleted
6 [root@localhost ~]# virsh snapshot-revert benet 1382572463  //恢復虛擬機狀態
7 [root@localhost ~]# virsh snapshot-current benet            //查看快照版本號
8 [root@localhost ~]# virsh snapshot-list benet               //查看快照信息

延伸閱讀:

  • 專題推薦

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
香港最快开奖现场直播结果