Linux中如何对虚拟机管理和恢复
1.虛擬機管理命令
virt-manager 開啟虛擬機管理器
virsh list 顯示正在運行的虛擬機
virsh list --all 查看所有虛擬機
virsh shutdown bai 正常關閉虛擬機bai
虛擬機會出現正常關機的界面,但是在圖形管理工具上不會立即顯示出來
virsh destroy server 強行關閉虛擬機server
virsh start bai 打開虛擬機bai
virt-viewer bai 顯示虛擬機bai
2.主機之間虛擬機的克隆
(1)在別人的主機中發現一個安裝好的虛擬機
ssh -X root@172.25.254.28連接別人的主機,切換到超級用戶下,
執行virt-manager命令,打開虛擬機圖形控制器,這臺主機中的虛擬機如下
如圖:bai這臺虛擬機的硬盤是真機中的/var/lib/libvirt/images/bai.qcow2
(2)主機中存在已經安裝好的虛擬機
切換到/var/lib/libvirt/images/目錄,ls查看目錄中的文件
(3) 復制虛擬機所需文件
用自己的主機復制別人主機的硬盤到自己主機的目錄下
scp root@172.25.254.28:/var/lib/libvirt/image/bai.qcow2 /mnt/
同時復制bai.xml文件到自己想要的目錄下
scp root@172.25.254.28:/etc/libvirt/qemu/bai.xml /mnt/
查看目錄下文件
(4)對虛擬機進行恢復
virsh creat /mnt/bai.xml 用虛擬機硬件文件一次性打開虛擬機,系統會提示找不到文件
因為路徑不一致,硬盤文件在/mnt/下,系統的硬盤資源文件都在/var/lib/libvirt/image/目錄下,所以將復制過來的虛擬機硬盤文件移動到這個目錄下
再次執行virsh creat /mnt/bai.xml命令,在虛擬機圖形控制器中可以看到bai這個虛擬機被克隆
virsh destroy bai強制關閉這臺虛擬機,虛擬機圖形控制器中沒有了這臺虛擬機,這是因為virsh creat只是一次性打開
virsh define /mnt/bai.xml 永久恢復
執行命令后虛擬機圖形管理器中出現虛擬機
開啟該虛擬機virsh start bai,開啟之后強制關閉,圖形控制器中還有該虛擬機的信息,虛擬機克隆成功
######################################3
3.虛擬機的快照
1.生成快照
<1>復制文件生成快照
[root@foundation27 ~]# qemu-img create -f qcow2 -b /var/lib/libvirt/images/bai.qcow2 /var/lib/libvirt/images/moon.qcow2 Formatting '/var/lib/libvirt/images/moon.qcow2', fmt=qcow2 size=21474836480backing_file='/var/lib/libvirt/images/bai.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off<2>切換到/var/lib/libvirt/images/目錄下,查看剛剛生成的文件
[root@foundation27 ~]# cd /var/lib/libvirt/images/ [root@foundation27 images]# ls bai.qcow2 desktop-1.qcow2 rh124-desktop-vda.qcow2 rh124-server-vda.qcow2 desktop.qcow2 rh124-desktop-vdb.ovl rh124-server-vdb.ovlrh124-desktop-vdb.qcow2 rh124-server-vdb.qcow2 moon.qcow2 rh124-desktop.xml rh124-server.xml rh124-desktop-vda.ovl rh124-server-vda.ovl yyy.qcow2 注:f是類型 b是目錄2.把生成的快照導入到虛擬機圖形控制器中
<1>打開虛擬機控制圖形
[root@foundation27 ~]# virt-manager
<2>添加一個虛擬機
(1)雙擊下圖中的紅色框中的圖標
(2)進入之后選擇import existing disk image
(3)選擇硬盤文件
選擇剛剛創建的快照硬盤
<3>起名時和快照一致
完成后系統會自動切換到登錄界面
3.使用虛擬機虛擬機可以使用
在真機中du -sh 查看快照的大小
在快照虛擬機中創建文件
在虛擬機中建立文件reboot重啟后再次在真機中查看快照的大小,文件大小發生改變
4.快照虛擬機損壞,那么刪除快照重新制作快照即可
<1>在虛擬機中刪除/etc/目錄,重啟虛擬機出現問題
<2>在虛擬機圖形控制器中刪除剛剛添加的快照的虛擬機
(1)單擊快照虛擬機,選擇delete
選擇快照的硬盤文件一起刪除
<3>在真機中對應的目錄下查看,快照文件被刪除
<4>重復創建快照的過程,添加對應的虛擬機
[root@foundation27 images]# qemu-img create -f qcow2 -b /var/lib/libvirt/ images/bai.qcow2 /var/lib/libvirt/images/miao.qcow2 Formatting '/var/lib/libvirt/images/miao.qcow2', fmt=qcow2 size=32212254720 backing_file='/var/lib/libvirt/images/bai.qcow2' encryption=off cluster_si ze=65536 lazy_refcounts=off [root@foundation27 images]# ls bai.qcow2 desktop-1.qcow2 rh124-desktop-vda.qcow2 rh124-server-vda.qcow2 desktop.qcow2 rh124-desktop-vdb.ovl rh124-server-vdb.ovl miao.qcow2 rh124-desktop-vdb.qcow2 rh124-server-vdb.qcow2 rh124-desktop.xml rh124-server.xml rh124-desktop-vda.ovl rh124-server-vda.ovl yyy.qcow2
5.當快照使用后不可以對母盤作任何操作
對虛擬機進行了快照之后,原來的虛擬機作更改,再次登陸快照 快照會失效
########################################
4.命令刪除虛擬機
<1>virsh undefine hahah
虛擬機圖形控制器中刪除圖形,查看文件是沒有刪除的
注:刪除時如果虛擬機正在運行不會立即顯示圖形消失,當虛擬機停止運行時會立即消失
(1)先執行命令virsh undefine hahah
(2)打開圖形管理工具,hahah虛擬機正在運行,沒有消失
(3)讓虛擬機停止運行之后hahah虛擬機的圖形消失
(4)查看硬盤資源目錄,hahah的硬盤文件還在
<2>rm -fr /var/lib/libvirt/images/hahah.qcow2
刪除后查看目錄,文件被刪除
###################################################
5.虛擬機腳本文件控制虛擬機的安裝
(1)建立編輯一個腳本文件
[root@foundation27 images]# vim vm_create.sh #!/bin/bash #####表示在shell環境下運行 virt-install \ ####表示安裝虛擬機 --cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso \ ######錄入光驅目錄 --memory 1000 \ ####設定內存的大小1000mib --vcpus 1 \ ####指定cpu的數目為1個 --disk /var/lib/libvirt/images/h1.qcows,size=8,bus=virtio \ #####指定虛擬機的硬盤位置/var/lib/libvirt/images/h1.qcows ,大小為8G, 總線為virtio虛擬的輸入輸出 --network bridge=br0,model=virtio \ #####設置網關中的網橋為br0, --name h1 ######虛擬機的名字為h1(2)退出保存后運行
[root@foundation27 images]# sh vm_create.sh
(3)虛擬機被建立,調轉到安裝界面
(4)以上只能一次安裝一個虛擬機,更改名字需要進入腳本更改
優化后可以通過更改命令后的字符來設定虛擬機的名字,直接進行修改和安裝
(5)保存后退出運行
若運行時文件名后沒有字符,腳本中的名字沒有生效,會出現報錯沒有參數
給執行腳本文件的命令后加一個名字,這個名字將是新的虛擬機的名字
若再次建立hello會報錯,名字hello已經被占用
再次更改文件名后的字符串,執行命令,直接建立并安裝虛擬機
###########################################
6.自動添加快照
(1)創建編輯腳本文件
[root@foundation27 images]# vim hehe.sh 寫入以下內容 #!/bin/bash qemu-img create -f qcow2 -b \ ###快照 /var/lib/libvirt/images/$1.qcow2 \ #####母盤的目錄 /var/lib/libvirt/images/$2.qcow2 \ &> /dev/null ###快照的目錄 ######&> /dev/null 將所有的輸出丟到垃圾箱virt-install \ ####表示安裝 --name $2 \ ####快照名字 --memory 1000 \ ####快照的內存大小為1000MB --vcpus 1 \ #######cpu個數 1個 --disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \ ####硬盤目錄, --network bridge=br0,model=virtio \ --import &> /dev/null &(2)保存退出后運行腳本文件
給命令后加兩個字符串,第一個表示母盤的名字,第二個表示創建的快照的名字
(3)再次執行,創建快照虛擬機hhh
[root@foundation27 images]# sh hehe.sh bai hhh
7.虛擬機的自動化安裝
把系統安裝過程中所有問題的答案寫進文件中,實現安裝過程的自動化
實現自動化安裝之前需要搭建DHCP服務器(用來分配ip),詳情見博客《模擬DHCP服務器的搭建》
https://mp.csdn.net/mdeditor/86601156#
(1)安裝制作自動安裝腳本的工具
[root@software_install software]# yum install system-config-kickstart -y
(2)安裝后system-config-kickstart打開圖形工具
制作自動安裝腳本的工具
出現以下錯誤,因為鏈接該虛擬機是沒有使用圖形
[root@software_install ~]# system-config-kickstart Could not open display because no X server is running. Try running 'system-config-kickstart --help' for a list of options.
退出后再次登陸,執行命令后可以打開
(3)打開圖形后依次選擇開始制作工具
第一行選擇時區,語言,輸入超級用戶密碼選擇安裝后自動重啟系統,安裝過程中純文本因為有圖形影響電腦性能
(4)第二行選擇,安裝新的引導,不選擇會出錯
選擇網絡共享 ,并選擇對應的目錄
(5)第三行選擇清掉原來的引導
(6)第四行選擇刪除原來的記錄,刪除所有的標簽,刪除原來所有的硬盤
左下角添加新的目錄
第一個先添加一個/boot目錄,選擇大小為200mb
再添加一個swap目錄,選擇大小為500mb (再第二行選擇)
再選擇一個/目錄,將剩下所有的都給/
(7)第五行選擇網絡時選擇dhcp ,批量安裝時靜態網絡會搶ip
網卡設置為eth0
(8)第六行是加密方式SHA512不用改變
(9)第七行設置防火墻,兩行都選擇disable 開機不啟動
(10)第八行設置開機引導,第一次開機時不出現引導
(11)第九行是設置包,因為圖形有bug,在文件里添加
(12)第十行是設置安裝前需要干什么,可以寫入腳本
(13)第十一行是設置安裝后需要干什么,寫入腳本
設置完圖形之后將文件保存到/mnt/下
單擊file,選擇save
關閉圖形工具后切換到/mnt/下查看目錄中的文件,剛剛保存的文件在
vim ks.cfg編輯剛剛保存的文件
文件中的內容就是剛剛在圖形工具里設置的東西,在文件末尾寫入
(14)退出保存后
[root@software_install mnt]# ksvalidator ks.cfg
檢測語法有沒有錯誤
有任何輸出表示寫錯
沒有報錯代表語法正確,不代表內容設定合理
只能檢測語法錯誤
(15)安裝httpd軟件
[root@software_install mnt]# yum install httpd -y
安裝后開啟服務,設置服務開機自啟動
關閉火墻,設置火墻開機不啟動
(16)將剛剛編輯的文件復制到/var/www/html/目錄下
[root@software_install mnt]# cp /mnt/ks.cfg /var/www/html/
將kickstart發布(用cp 不要用mv)
(17)將kickstart發布成功后真機瀏覽器里訪問http://172.25.254.127/ks.cfg
(18)在真機中切換到超級用戶,切換到/mnt/目錄后,建立并編輯一個腳本文件
[root@foundation27 mnt]# vim vm_create.sh
退出保存后給文件被執行權限
[root@foundation27 mnt]# chmod 777 vm_create.sh
[root@foundation27 mnt]# ls -l vm_create.sh
運行剛剛編輯的腳本文件
[root@foundation27 mnt]# sh vm_create.sh test1
虛擬機開始安裝,安裝過程中會出現一個列表若列表中除了建立用戶的項是!外其他都是x表示成功,反之若哪一項前面是!就表示哪一項是有問題的,返回到前面的步驟更改即可
安裝后如下:
總結
以上是生活随笔為你收集整理的Linux中如何对虚拟机管理和恢复的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网站设计开发的步骤和方法!
- 下一篇: linux 动态扫描 数码管,七段数码管