博文大綱:
一、磁盤與快照管理
二、虛擬機克隆技術
三、虛擬機的網絡配置
一、磁盤與快照管理
這個段落主要介紹磁盤與快照的管理!
在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虛擬機
進行驗證:
訪問互聯網沒有問題!
(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虛擬機網絡就介紹這麼多!
———————— 本文至此結束,感謝閱讀 ————————