博文大綱:
1、磁盤與快照管理
2、虛擬機克隆技術
3、虛擬機的網絡配置web
這個段落主要介紹磁盤與快照的管理!vim
在KVM虛擬機中有兩種磁盤格式,分別是:服務器
舉例說明:網絡
[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磁盤的詳細信息 //以上操做建議在一個建立的測試目錄中
如下操做將本地磁盤格式轉換爲qcow2tcp
[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 //確認虛擬機能夠開啓,證實磁盤文件更改沒有錯誤
[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虛擬機的磁盤信息就先簡單介紹這麼多,有機會還會繼續更新!ide
在KVM虛擬化平臺中,克隆主要分爲如下三種:工具
- 手動克隆;
- 連接克隆;
- 完整自動克隆;
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 //開啓虛擬機,自行進行測試
連接克隆就是把其本來磁盤文件作一個連接而已!操做以下:測試
[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 //進行開機測試,自行進行測試
針對以上兩種克隆方式,這種克隆方式就顯得過於簡單了!有一個硬性的要求就是須要關閉KVM虛擬機。ui
[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虛擬機的兩個模式:
適用範圍:不容許互聯網進行訪問;
原理: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的虛擬機;
實現方式:
[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 //使用edit工具編輯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虛擬機網絡就介紹這麼多!
———————— 本文至此結束,感謝閱讀 ————————