日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Linux中如何对虚拟机管理和恢复

發布時間:2024/3/12 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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,開啟之后強制關閉,圖形控制器中還有該虛擬機的信息,虛擬機克隆成功

注: 管理硬件資源的文件 /etc/ 改變文件內容后重啟虛擬化服務 管理工具會自動斷開鏈接,需要再次手動連接 xml可擴展標記語言 ,應用于作數據封裝 html超文本標記語言 用于作網頁他的語法不嚴謹,重新規劃的語言

######################################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 查看快照的大小

[root@foundation27 images]# du -sh moon.qcow2 196k moon.qcow2


在快照虛擬機中創建文件

在虛擬機中建立文件reboot重啟后再次在真機中查看快照的大小,文件大小發生改變

[root@foundation27 images]# du -sh moon.qcow2 77M haha.qcow2


4.快照虛擬機損壞,那么刪除快照重新制作快照即可
<1>在虛擬機中刪除/etc/目錄,重啟虛擬機出現問題


<2>在虛擬機圖形控制器中刪除剛剛添加的快照的虛擬機
(1)單擊快照虛擬機,選擇delete

選擇快照的硬盤文件一起刪除

<3>在真機中對應的目錄下查看,快照文件被刪除

[root@foundation27 images]# ls desktop-1.qcow2 rh124-desktop-vdb.ovl rh124-server-vdb.ovl desktop.qcow2 rh124-desktop-vdb.qcow2 rh124-server-vdb.qcow2 miemie!!.qcow2 rh124-desktop.xml rh124-server.xml rh124-desktop-vda.ovl rh124-server-vda.ovl yyy.qcow2 rh124-desktop-vda.qcow2 rh124-server-vda.qcow2

<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 占位符 腳本后跟的第一串字符 $2 第二串 $* 表示所有

(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)以上只能一次安裝一個虛擬機,更改名字需要進入腳本更改
優化后可以通過更改命令后的字符來設定虛擬機的名字,直接進行修改和安裝

#!/bin/bash virt-install \ --cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso \ --memory 1000 \ --vcpus 1 \ --disk /var/lib/libvirt/images/$1.qcows,size=8,bus=virtio \ --network bridge=br0,model=virtio \ --name $1 >/dev/null &

(5)保存后退出運行
若運行時文件名后沒有字符,腳本中的名字沒有生效,會出現報錯沒有參數

[root@foundation27 images]# vim vm_create.sh [root@foundation27 images]# sh vm_create.sh #####直接運行該文件系統會出現報錯,沒有一個參數(續接名字) [root@foundation27 images]# usage: virt-install --name NAME --memory MB STORAGE INSTALL [options] virt-install: error: argument -n/--name: expected one argument


給執行腳本文件的命令后加一個名字,這個名字將是新的虛擬機的名字


若再次建立hello會報錯,名字hello已經被占用

[root@foundation27 images]# sh vm_create.sh hello [root@foundation27 images]# ERROR Guest name 'hello' is already in use.


再次更改文件名后的字符串,執行命令,直接建立并安裝虛擬機

###########################################
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)保存退出后運行腳本文件
給命令后加兩個字符串,第一個表示母盤的名字,第二個表示創建的快照的名字

[root@foundation27 images]# vim hehe.sh [root@foundation27 images]# sh hehe.sh bai kkk


(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.


退出后再次登陸,執行命令后可以打開

[root@foundation27 .ssh]# ssh -X root@172.25.254.127 root@172.25.254.127's password: Last login: Sun Jan 20 09:14:19 2019 from 172.25.254.27 /usr/bin/xauth: file /root/.Xauthority does not exist [root@software_install ~]# system-config-kickstart /usr/share/system-config-kickstart/kickstartGui.py:104: GtkWarning: GtkSpinButton: setting an adjustment with non-zero page size is deprecatedxml = gtk.glade.XML ("/usr/share/system-config-kickstart/system-config-kickstart.glade", domain="system-config-kickstart") Loaded plugins: langpacks, product-id

(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編輯剛剛保存的文件
文件中的內容就是剛剛在圖形工具里設置的東西,在文件末尾寫入

%packages @base ########@base 表示組件 lftp ##########沒有@表示單個的安裝軟件包 %end


(14)退出保存后
[root@software_install mnt]# ksvalidator ks.cfg
檢測語法有沒有錯誤
有任何輸出表示寫錯
沒有報錯代表語法正確,不代表內容設定合理
只能檢測語法錯誤

(15)安裝httpd軟件
[root@software_install mnt]# yum install httpd -y

安裝后開啟服務,設置服務開機自啟動
關閉火墻,設置火墻開機不啟動

[root@software_install mnt]# systemctl start httpd [root@software_install mnt]# systemctl enable httpd [root@software_install mnt]# systemctl stop firewalld [root@software_install mnt]# systemctl disable firewalld

(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

在文件中寫入 #!/bin/bash virt-install \ --name $1 \ --memory 1000 \ --vcpus 1 \ --disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio \ --network bridge=br0,model=virtio \ --location http://172.25.254.250/rhel7.3/x86_64/dvd \ localtion后的路徑表示安裝的鏡像的目錄,圖形工具里填的哪這里應保持一致 --extra-args "ks=http://172.25.254.127/ks.cfg" &>/dev/null & ####額外的 在哪里執行哪里

退出保存后給文件被執行權限
[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中如何对虚拟机管理和恢复的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。