1. 程式人生 > >【linux】虛擬機器管理

【linux】虛擬機器管理

1. 圖形介面安裝虛擬機器

以超級使用者的身份開啟虛擬機器管理器,輸入命令virt-manager
在這裡插入圖片描述
開啟介面如圖所示,desktop和server是兩個已有虛擬機器。
在這裡插入圖片描述
我們重新安裝一個新的虛擬機器,點選左上角File->New Virtual Machine。選擇第一項,採用映象法安裝系統,前提是我們要有映象檔案iso。
在這裡插入圖片描述
Forward,選擇Use ISO image->Browse->Browse Local->open新增映象檔案。
在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述
RAM選擇1024MB,CPUs選擇1,硬碟容量disk選擇10GB,名字隨便,此處自己酌情配置即可,完成後點選Finish。此處就不放截圖了。
在這裡插入圖片描述


選中剛新建的虛擬機器,右鍵單擊->open,我們來完善虛擬機器的其他配置。
在這裡插入圖片描述
系統語言環境選擇English,這樣有利於檢視語法,當然你也可以選擇中文,->continue。
在這裡插入圖片描述
DATE&TIME選擇東八區
在這裡插入圖片描述
KEYBOARD和LANGUAGE SUPPORT,我在english之外還添加了Chinese。
在這裡插入圖片描述
SOFTWARE SELECTION選擇Server with GUI圖形介面,對於虛擬機器,建議先不要對右側的選項作選擇 ,點選Done
在這裡插入圖片描述
INSTALLATION DESTINATION我們選擇自己來分割槽
在這裡插入圖片描述
分割槽方案選擇標準分割槽。
在這裡插入圖片描述
我們將10GB硬碟容量分為以上三個區,大概講一下/boot和/swap的分割槽。
/boot是系統的啟動目錄,存放系統自動啟動檔案,核心,初始化程式。如果有/boot獨立分割槽時,務必讓該分割槽在整塊硬碟的最前面部分。這一步其實安裝程式幫我們完成了,我們可以看到/boot所在的磁碟分割槽為vda1。
/swap是記憶體交換空間,理論上說“swap最好為實體記憶體的1.5到2倍之間”,但我們只配置了500mb,這是為什麼呢?swap交換空間是很重要的,它可以避免因為實體記憶體不足而造成的系統效能低的問題。一般而言,如果實體記憶體有4GB以上時,其實swap也可以不必額外設定。swap記憶體交換空間的功能是:當有資料被存放在實體記憶體裡面,但是這些資料又不時常被CPU所取用,那麼這些不常被使用的程式將會被丟到swap交換空間中,而將速度較快的實體記憶體空間釋放出來給真正需要的程式使用。所以,如果系統不是很忙,而記憶體又很大,自然不太需要swap。
在這裡插入圖片描述

Accept Changes儲存改動即可。
在這裡插入圖片描述
右下角->Begin Installation
在這裡插入圖片描述
最後兩個設定,一個是配置root使用者的密碼,第二個是新增加一個普通使用者及密碼。接下來就是等待安裝過程咯。完成後,點選Reboot進行重啟。
在這裡插入圖片描述

在這裡插入圖片描述
上圖是我們剛新建的普通使用者,登入即可使用安裝的新虛擬機器啦。
圖形介面安裝虛擬機器是簡單,但是如果我們要安裝的是很多臺虛擬機器,難道要每一次都將這些步驟重新走一遍?那工作效率可太低了。因此,接下來介紹一下使用指令碼進行虛擬機器的安裝、快照以及重置,大大克服了映象法安裝的繁多步驟。

2. 指令碼批量安裝虛擬機器

介紹兩種指令碼安裝虛擬機器的情況。一種是從無到有,通過寫.sh指令碼檔案快速安裝一個新的虛擬機器。第二種是在已有其他安裝好的虛擬機器檔案基礎之上,如何快速安裝。

2.1 普通指令碼檔案安裝

首先要切換到root使用者下,通過ps可以檢視到當前的程序,使用which bash可以看出系統命令是儲存在/usr/bin/目錄下。我們可以將等會寫好的指令碼檔案與系統命令放在一起,方便呼叫。
在這裡插入圖片描述
編輯.sh指令碼檔案,這裡我們的檔名是createvm.sh
在這裡插入圖片描述
編輯內容如下:
在這裡插入圖片描述
對照之前的圖形介面安裝虛擬機器我們來簡單理解一下,首先點選創造新的虛擬機器按鈕;說明清楚iso映象檔案的絕對地址;配置記憶體為1024MB,單核;虛擬機器名字我們設定為一個引數,通過帶參命令的執行傳進來;/var/lib/libvirt/images/name.qcow2是硬碟,硬碟大小為10GB,行末的空格和斜槓表示換行。
指令碼檔案寫完後,怎麼執行呢?當然要賦予檔案可執行許可權啦。
在這裡插入圖片描述
然後把createvm.sh移動到/usr/bin/目錄下,這樣呼叫起來就和系統常規命令一樣快捷。
在這裡插入圖片描述
安裝效果如下:
在這裡插入圖片描述
之後就進入了和圖形介面一樣的安裝模式,此處不再贅述。

2.2 擁有硬碟檔案與硬碟資訊檔案的快速安裝/恢復虛擬機器

當然這個方法的實現建立在我們擁有硬碟檔案和前端檔案的基礎上。
硬碟檔案:/var/lib/libvirt/images/potizo.qcow2
硬碟資訊檔案:/etc/libvirt/qemu/potizo.xml
在這裡插入圖片描述
如上圖所示,在虛擬機器管理器中只有三個虛擬機器,沒有名為zoe這個虛擬機器。
但是我們有zoe這個虛擬機器的硬碟檔案和硬碟資訊檔案,在/mnt目錄下。
在這裡插入圖片描述
下來就是恢復過程,當然也可以理解為安裝,因為把這兩個檔案拷貝到其他主機上就可以安裝出來一個和zoe一模一樣的虛擬機器。
還記得我們之前用指令碼檔案安裝虛擬機器時,createvm.sh裡關於硬碟配置的語句是什麼嗎。–disk /var/lib/libvirt/images/$1.qcow2,我們現在要做的就是先把硬碟檔案放回原本應該存在的目錄下。(為什麼一定要存放在這個目錄下,我們先不用管,這個路徑是KVM預設查詢映象的地方)如果沒有移動硬體檔案,就直接恢復虛擬機器的話,會出現如下錯誤。
在這裡插入圖片描述
所以切記,在恢復虛擬機器之前,一定要把硬碟檔案vmname.qcow2移動到/var/lib/libvirt/images/下,然後恢復即可。這裡create和define都能恢復虛擬機器,區別在於create是臨時恢復,define是永久恢復。
在這裡插入圖片描述
在這裡插入圖片描述
我們再檢視一下虛擬機器管理器,名為zoe的虛擬機器找回來了。

3. 虛擬機器管理命令

  • virt-manager 進入虛擬機器管理器介面
  • virsh list 顯示當前正在執行的虛擬機器
  • virsh list --all 檢視所有虛擬機器
  • virsh start potizo 開啟虛擬機器
  • virsh shutdown potizo 正常關閉虛擬機器(前提是進系統)
  • virsh destroy potizo 強制關閉虛擬機器
  • virt-viewer potizo 顯示虛擬機器
  • virsh create potizo.xml 臨時恢復虛擬機器,xml是硬碟資訊檔案即前端管理檔案
  • virsh define potizo.xml 永久恢復虛擬機器
  • virsh undefine potizo 刪除虛擬機器的前端管理,但不會刪除儲存
    【注】:“potizo”是我的虛擬機器名字

4. 製作虛擬機器快照

4.1 命令方式

在這裡插入圖片描述
這句命令的意思是以rhel7.0.qcow2為母盤,建立一個名為potizo的虛擬快照。然後開啟虛擬機器管理器,用快照生成potizo.qcow2硬碟檔案來安裝虛擬機器(這與之前的用映象檔案安裝不一樣噢)
在這裡插入圖片描述
選擇Import existing disj image->Forward
在這裡插入圖片描述
把快照檔案的路徑放進去,下一步
在這裡插入圖片描述
在這裡插入圖片描述
給普通使用者起名字,最後Finshin,利用快照檔案安裝了一個新的虛擬機器potizo,它的母盤是虛擬機器rhel7.0。
在這裡插入圖片描述

4.2 指令碼方式

在這裡插入圖片描述
配置內容如下:
在這裡插入圖片描述
首先說明這是一個快照檔案, 以引數1的虛擬機器為母盤,建立一個名為引數2的虛擬機器快照。剩下的與指令碼安裝虛擬機器語句含義一樣,&>/dev/null表示不顯示過程中的繁瑣資訊,&表示後臺執行,不佔用終端。
然後給該檔案賦予可執行許可權。
在這裡插入圖片描述
將snapshot.sh檔案移動到/usr/bin/目錄下,呼叫起來和系統常規命令一樣快捷。
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
可以看到我們建立的以rhel7.0為母盤的student虛擬機器已經running啦。(:hh我是裝了多少個虛擬機器

4.3 小補充

有了快照,我們完全不用害怕玩壞虛擬機器,只要母盤沒事,玩壞以後快照再弄一個就是。
因此建議將母盤虛擬機器隱藏起來,以免被我們誤刪。
方法一:
直接undefine母盤資訊檔案,並且更改母盤的硬碟檔名稱。
對了,硬碟資訊.xml檔案存在的路徑是/etc/libvirt/qemu。和硬碟檔案不在一個路徑。
在這裡插入圖片描述
1)undefine硬體資訊檔案。
在這裡插入圖片描述
2)修改硬碟檔名稱,rhel7.0.qcow2改為rh7.qcow2
在這裡插入圖片描述
方法二:
在虛擬機器管理器下刪除虛擬機器但是保留硬碟檔案(不勾選刪除選項),然後修改硬碟檔案.qcow名字即可,與法一2)做法一致。
在這裡插入圖片描述

5. 指令碼實現reset虛擬機器

編輯reset_vm.sh檔案
在這裡插入圖片描述
編輯內容如下:
在這裡插入圖片描述
這裡簡單解釋一下,我們重置虛擬機器的第一步就是要強制關閉虛擬機器;第二步刪除虛擬機器的硬碟檔案;第三部以某個虛擬機器為母盤建立快照;開啟並顯示虛擬機器。
在這裡插入圖片描述
現在我們測試一下剛寫的reset_vm.sh,開啟並顯示虛擬機器potizo
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
發現虛擬機器potizo被破壞了,無法顯示。(這裡是實驗需要,所以我人為在potizo虛擬機器下rm -fr /*)。然後重置potizo
在這裡插入圖片描述