KVM虛擬化平臺——磁盤與快照管理、克隆虛擬機與網絡管理

博文大綱:
一、磁盤與快照管理
二、虛擬機克隆技術
三、虛擬機的網絡配置

一、磁盤與快照管理

這個段落主要介紹磁盤與快照的管理!

在KVM虛擬機中有兩種磁盤格式,分別是:

  • RAW:裸格式。佔用空間較大,性能比較好,但不支持快照功能;
  • qcow2:佔用空間較小,性能相比較RAW稍差,,但它支持快照功能;

(1)虛擬磁盤管理

舉例說明:

[root@localhost ~]# qemu-img create 1234.raw 5G            
//創建虛擬磁盤,名稱爲1234.raw,大小爲5G,創建磁盤默認格式爲raw
[root@localhost ~]# qemu-img create -f qcow2 123.qcow2 5G
//創建虛擬磁盤,名稱爲123.qcow2,大小爲5G,創建時指定磁盤格式爲qcow2
[root@localhost ~]# qemu-img info 1234.raw        //查看1234.raw磁盤的詳細信息
[root@localhost ~]# qemu-img info 123.qcow2       //查看123.qcow2磁盤的詳細信息
//以上操作建議在一個創建的測試目錄中

以下操作將本地磁盤格式轉換爲qcow2

[root@localhost ~]# cd /kvm/disk/        //KVM虛擬磁盤存放路徑
[root@localhost disk]# qemu-img info web01.raw    //查看磁盤詳細信息  
image: web01.raw
file format: raw                                  //這裏顯示的格式是raw
virtual size: 10G (10737418240 bytes)
disk size: 1.4G
[root@localhost disk]# virsh list  --all          //查看虛擬機列表,確認虛擬機是關閉的狀態
 Id    名稱                         狀態
----------------------------------------------------
 -     web01                          關閉
[root@localhost disk]# qemu-img convert -f raw -O qcow2 web01.raw web01.qcow2
//將原本的磁盤格式raw轉換爲qcow2,不過轉換之前需要保證KVM虛擬機是關閉的狀態
[root@localhost disk]# ls              
web01.qcow2  web01.raw
//注意轉換之前的虛擬機磁盤依然存在
[root@localhost disk]# virsh edit web01 
//修改虛擬機的磁盤文件格式,定位到driver name,修改爲以下內容:
      <driver name='qemu' type='qcow2'/>
      <source file='/kvm/disk/web01.qcow2'/>
//將原本的磁盤類型raw更改爲qcow2,這兩行都需修改
[root@localhost disk]# virsh start web01
//確認虛擬機可以開啓,證明磁盤文件更改沒有錯誤

(2)虛擬機快照管理

[root@localhost disk]# virsh snapshot-create web01        
//針對web01虛擬機創建快照
[root@localhost disk]# virsh snapshot-list web01
//查看虛擬機的快照信息
 名稱               生成時間              狀態
------------------------------------------------------------
 1575285097           2019-12-02 19:11:37 +0800 running
//名稱這一列表示爲時間戳,從1970年到現在的時間,默認是秒數
[root@localhost disk]# virsh snapshot-revert web01 1575285097
//針對虛擬機恢復指定快照信息
[root@localhost disk]# qemu-img info web01.qcow2    //查看虛擬機轉換後的磁盤信息
image: web01.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 2.0G
cluster_size: 65536
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         1575285097             254M 2019-12-02 19:11:37   00:01:54.499
//從這裏可以看出快照其實是存儲在虛擬機的磁盤中的,佔用磁盤的空間
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@localhost disk]# virsh snapshot-delete web01 1575285097
//針對虛擬機刪除指定快照

針對KVM虛擬機的磁盤信息就先簡單介紹這麼多,有機會還會繼續更新!

二、虛擬機克隆技術

在KVM虛擬化平臺中,克隆主要分爲以下三種:

  • 手動克隆;
  • 鏈接克隆;
  • 完整自動克隆;

(1)手動克隆

KVM虛擬機有兩個配置文件,通過克隆配置文件的方式來對虛擬機進行克隆,還有一個前提要求就是虛擬機必須處於關機的狀態。
操作如下:

[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# cp web01.xml web02.xml         //使用最基礎的命令進行復制
[root@localhost qemu]# virsh dumpxml web01 > web03.xml    //使用dumpxml工具進行生成
[root@localhost qemu]# ls
networks  web01.xml  web02.xml  web03.xml
//確認xml文件確實存在,以上兩種方法都可以
[root@localhost qemu]# rm -rf web03.xml 
//實驗環境所以就把這個文件刪除
[root@localhost qemu]# cd /kvm/disk/
[root@localhost disk]# cp web01.raw web02.raw 
//進入指定目錄對虛擬機磁盤文件進行復制
[root@localhost disk]# vim /etc/libvirt/qemu/web02.xml 
//修改虛擬機的xml文件
定義到第一個name字段更改內容如下:  
<name>web02</name>
定義到第一個uuid字段進行刪除uuid整行!
定義到第一個mac address字段進行刪除整行!
[root@localhost disk]# cd /etc/libvirt/qemu
[root@localhost qemu]# virsh define web02.xml 
//通過配置文件定義一個虛擬機(這個虛擬機還不是活動的)
注意:如果需要刪除使用“virsh define web02.xml ”但是隻會刪除xml文件,並不會刪除磁盤文件!
[root@localhost qemu]# virsh list --all
 Id    名稱                         狀態
----------------------------------------------------
 -     web01                          關閉
 -     web02                          關閉

[root@localhost qemu]# virsh start web02        //開啓虛擬機,自行進行測試

(2)鏈接克隆

鏈接克隆就是把其原本磁盤文件做一個鏈接而已!操作如下:

[root@localhost disk]# qemu-img create -f qcow2 -b web01.raw web02.qcow2
//針對原本的web01.raw生成一個新的磁盤文件web02.qcow2,添加“-b”選項的意思,就是鏈接的意思
[root@localhost disk]# qemu-img info web02.qcow2    //查看新創建的磁盤詳情
image: web03.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K                  //注意大小
cluster_size: 65536
backing file: web01.raw             //表示最終使用的磁盤
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@localhost disk]# virsh edit web02
定義到driver name字段,
      <driver name='qemu' type='qcow2'/>  修改爲qcow2
      <source file='/kvm/disk/web02.qcow2'/> 修改爲web02.qcow2
[root@localhost disk]# virsh start web02  //進行開機測試,自行進行測試           

(3)完整自動克隆

針對以上兩種克隆方式,這種克隆方式就顯得過於簡單了!有一個硬性的要求就是需要關閉KVM虛擬機。

[root@localhost ~]# virt-clone --auto-clone -o web01 -n web03 
//針對虛擬機web01自動生成web03虛擬機,如果不加-n指定名稱,將生成web01-clone。
[root@localhost ~]# virsh list --all
 Id    名稱                         狀態
----------------------------------------------------
 -     web01                          關閉
 -     web02                          關閉
 -     web03                          關閉

[root@localhost ~]# virsh start web03            //開機自行進行測試

關於虛擬機的克隆就介紹這麼多!

三、虛擬機的網絡配置

我們之所以在KVM虛擬機中創建多個虛擬機,是爲了能夠給互聯網的用戶提供相應的服務。

那麼首先我們介紹KVM虛擬機的兩個模式:

(1)NAT模式

適用範圍:不允許互聯網進行訪問;
原理:NAT方式是KVM安裝完成之後的默認方式,它支持KVM宿主機和虛擬機之間的訪問,同時也支持虛擬機訪問互聯網,但不支持互聯網用戶對其進行訪問!

實現方式:

[root@localhost ~]# virt-clone --auto-clone -o web01 -n web02
//通過完整自動克隆的方式生成web02虛擬機
[root@localhost ~]# systemctl start firewalld
//保證防火牆是開啓的狀態
[root@localhost ~]# echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
//開啓路由轉發功能
[root@localhost ~]# firewall-cmd --add-port=5900/tcp --permanent
[root@localhost ~]# firewall-cmd --reload
//如果需要VNC對其進行操作,還需開啓5900端口
[root@localhost ~]# virsh start web02     //開啓web02虛擬機

進行驗證:
KVM虛擬化平臺——磁盤與快照管理、克隆虛擬機與網絡管理
KVM虛擬化平臺——磁盤與快照管理、克隆虛擬機與網絡管理
訪問互聯網沒有問題!

(2)bridge模式(橋接網絡)

適用範圍:服務器主機虛擬化;
原理:即虛擬網橋的網絡連接方式,使互聯網用戶可以訪問到KVM的虛擬機;

實現方式:

[root@localhost ~]# systemctl stop NetworkManager       //關閉網絡管理工具
[root@localhost ~]# virsh iface-bridge ens33 br0       //通過ens33生成br0
使用附加設備 br0 生成橋接 ens33 失敗            //提示失敗沒有關係
已啓動橋接接口 br0
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cat ifcfg-ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE="br0"                 
//可以查看到ens33的網卡幾乎沒有內容,就是橋接到br0而已
[root@localhost network-scripts]# cat ifcfg-br0 
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="none"
IPADDR="192.168.1.7"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.254"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"
STP="on"
DELAY="0"
//發現原本屬於ens33的IP地址跑到了br0網卡上
[root@localhost ~]# brctl show     //使用br專用命令進行查看
bridge name bridge id       STP enabled interfaces
br0     8000.000c29855ef5   yes     ens33
virbr0      8000.52540028f9c1   yes     virbr0-nic
//可以看出ens33橋接到了br0網卡上
[root@localhost ~]#  virsh edit web01             //使用web01進行測試
定位到interface,修改一下內容:
    <interface type='bridge'>          修改爲bridge
      <mac address='52:54:00:ef:a3:93'/>
      <source bridge='br0'/>     修改爲 bridge='br0'
[root@localhost ~]# virsh start web01         //啓動web01虛擬機

進行驗證:
KVM虛擬化平臺——磁盤與快照管理、克隆虛擬機與網絡管理
KVM虛擬化平臺——磁盤與快照管理、克隆虛擬機與網絡管理
KVM虛擬化平臺——磁盤與快照管理、克隆虛擬機與網絡管理

關於KVM虛擬機網絡就介紹這麼多!

———————— 本文至此結束,感謝閱讀 ————————

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