針對 Linux KVM 來說,因為是裸機式的虛擬系統,所以可以直接利用實體電腦系統內的檔案系統,來建立與規劃虛擬電腦所需要的硬碟空間,或是虛擬電腦群的硬碟櫃(存放所有虛擬電腦的硬碟檔案),也可以將虛擬電腦,依照不同的屬性,如使用單位、服務類型等,來建立不同的存放位置(空間),方便管理與維護。
除了前面章節所介紹,利用〝kvm-img〞這個指令,可以直接在終端機之下建立虛擬電腦的硬碟檔案之外,最方便,也最為直接的,就是在圖形管理工具下操作,而在這邊就利用圖形管理工具來說明如何規畫、分割與應用 Linux KVM 的硬碟檔案。
備註1:Linux KVM 可用的圖形管理工具其實有好幾套,只要符合 Open Cloud Computing Interface(OCCI)標準,所撰寫的套件,就可以管理 Linux KVM ,如 libvirt,就是符合 OCCI 標準的管理函式庫,而 virt-manager 就是使用此函式庫(libvirt)所撰寫的管理套件,就可以用來管理 Linux KVM
新增檔案櫃
這邊要針對本機做設定,若是位置是在遠端機器的地方,則可是會設定到遠端的機器之上喔,確認之後,在工具列的地方,點選「編輯」→「Connection Details」,視窗開啟之後,接著點到「Storage」的頁面,而在這邊所謂的「Storage」,存放與顯示的是虛擬系統之中,所有的硬碟檔案(虛擬硬碟),或是光碟映像檔(ISO檔案)的位置與檔案資訊,Linux KVM 安裝完成,就會存在一個資料夾,這是系統預設的,不過,就實際使用與管理來說,是比較少使用到系統預設的資料夾,因為這樣比較不容易管理,按下右下方的加號按鈕,來新增一個檔案櫃(硬碟櫃),或是光碟櫃(ISO 檔案櫃)吧:
按下加號按鈕之後,會跳出後續的設定視窗,整個程序有兩個步驟:
第一、設定名稱與類型
名稱,指的就是此檔案櫃的名稱,如要設定一個專門存放 ISO 檔案的位置,可在「Name」的位置填入〝ISO〞,而所謂的類型,指的則是〝儲存媒介〞,例如,若是使 用實體電腦系統內的檔案系統(這也是 Linux KVM / 裸機式的虛擬系統的特點),來當做儲存媒介,那麼類型就會是〝dir: Filesystem Directory〞,就 Linux KVM 來說,可用的儲存媒介有許多種類型,如下圖所示:
在這邊以選擇〝dir: Filesystem Directory〞為範例,設定完成之後,按下一步:
第二、指定路徑
這邊所謂的路徑,指的就是上述檔案櫃(如 ISO 檔案櫃)的絕對路徑,按下〝Browse〞,就可以搜尋並指定資料夾路徑,選擇完成,按下「完成(F)」:
設定完成,就可以看到新增的儲存位置與詳細資訊,以後,只要把相對應的檔案,存放到指定的位置,就可以輕鬆管理各種虛擬電腦的檔案了:
新增虛擬電腦硬碟檔
既然可以產生存放 ISO 檔案的檔案櫃,同樣的,也可以產生虛擬電腦硬碟存放的硬碟櫃,還記得,前面有提到, Linux KVM 安裝完成,就會產生一個「default」的資料夾(路徑:/var/lib/libvirt/images),任何新產生的虛擬硬碟,都會存放在這個資料夾內,雖然檔案都存在同一資料夾織內,但若是要對虛擬電腦進行管理,如區分部門、單位或樓層等,一旦檔案數目增多,就顯得不太方便了,所以可以依照前面新增檔案櫃的方式,做適當的區分,例如,可以在依照前面的步驟,新增一個「VM」的檔案櫃,來存放所有虛擬電腦的硬碟檔案。
這時系統會跳出一個〝新增儲存卷冊〞的視窗,這就是要用來設定虛擬硬碟相關參數的視窗:
這邊有四個設定欄位,右方的灰色區域有相對應的說明,這邊再次說明一下:
- Name:填入硬碟檔案的名稱
- Format:這邊指的是硬碟檔案的格式,而在 Linux KVM 之中,有提供許多可通用的虛擬系統的檔案格式,如下圖:
這邊針對其中幾個類型做說明,〝raw〞的類型,指的是一次格式化到最大指定硬碟容量,例如,若指定虛擬硬碟最大容量為 8G,則格式化時,會一次劃分完整 8G 的容量出來,這比較適合用在硬碟資料讀取量大與容易快速成長的系統類型,像是資料庫,就比較適合這種硬碟格式;〝qcow〞與〝qcow2〞的類型,則是屬於〝隨需擴增〞的檔案類型,簡單來說,就是硬碟容量會隨著資料量的增加而慢慢成長,直到當初所設定的最大硬碟容量為止,適合用在一般作業的電腦或實體電腦硬碟空間比較吃緊的狀況下,而者兩的差別,只是版本的不同;至於〝vmdk〞與〝vpc〞,則是大家比較熟悉的兩套虛擬系統,VMware 與 Virtual PC 的硬碟檔案
- Max Capacity:最大硬碟容量,也就是虛擬電腦的硬碟所能使用的容量上限
- Allocation:起始硬碟容量,指的是一開始虛擬硬碟的容量大小
按下「完成(F)」之後,在「VM」的檔案櫃,就會看到剛剛新增的虛擬硬碟:
不過,您可能會發現,硬碟容量怎會直接到 8GB(7.81 GB)的大小呢?剛剛不是指定使用 qcow2 的格式,並設定起始硬碟大小才 256 MB 嗎?別緊張,在「Storage」內的硬碟資訊,顯示的硬碟的最大容量上限,並不是最初設定的起始大小,若要確認目前實際虛擬硬碟的容量大小,則需要到終端機之下,切換到虛擬硬碟所在的目錄,如「VM」,並輸入以下指令:
$ du -h UbuntuServer.img (若顯示權限不足,則需要在指令最前面加入 sudo)
然而,在這邊您可能還是會疑惑,怎不是 256 MB 呢?其實系統本身會有個運算機制,會產生一個趨近當初設定的最小值,雖然與最初的設定不相同,但目的一樣是有達到的。而若要檢視虛擬硬碟的詳細資訊,則可以輸入以下指令就可以得知:
$ sudo kvm-img info -f qcow2 UbuntuServer.img
直接使用新增的虛擬硬碟
縮小日益增長的虛擬硬碟
- 關閉虛擬電腦
- 開啟終端機,並切換到虛擬硬碟所在的目錄(〝default〞的 Storage 目錄區,或是前面設定中,所自定的 Storage 目錄區,如上述的〝VM〞)
- 縮小虛擬硬碟檔案:在終端機內,輸入以下指令:
$ sudo kvm-img convert -O qcow2 UbuntuServer.img temp.ing
(其中,〝UbuntuServer.img〞為目標虛擬硬碟名稱,而〝temp.img〞則是縮小空間後的虛擬硬碟名稱) - 刪除舊有虛擬硬碟檔案,如〝UbuntuServer.img〞
- 重新命名縮小後的虛擬硬碟檔案為此來的的名稱,指令如下:
$ sudo mv temp.ing UbuntuServer.img
這樣整個虛擬硬碟檔案縮小化的步驟就完成了!
可否請問,如果指定虛擬電腦的磁碟容量(增量模式)大於實體磁碟的容量,會出現什麼問題?
回覆刪除想請問一下 KVM 有 support HOST failover 嗎?
回覆刪除找了一些資料 只找到對於share storage 做failover