KVM存儲池是被libvirt所管理的文件、目錄或存儲設備,存儲池可以位於本地,也可以通過網絡共享,存儲池最終可以被虛擬主機所使用。默認libvirt使用基於目錄的存儲池設計,/var/lib/libvirt/images目錄就是默認的存儲池。本地存儲池可以是本地的一個目錄、磁盤設備、物理分區或LVM卷,但本地存儲池不適合於大規模產品部署,也不支持虛擬機遷移功能。網絡共享存儲池使用標準的網絡協議進行存儲設備的共享,它支持SAN、IP-SAN、NFS、GFS2等協議。在KVM虛擬化技術中,存儲池可以包含多個存儲卷,對虛擬主機而言,這些存儲卷將被識別爲物理硬件存儲設備。
下面將以目錄存儲以及共享NFS存儲爲例,演示KVM存儲池及存儲卷的創建流程。
(1)創建基於目錄的虛擬存儲池與存儲卷。
1)創建目錄:
[root@centos7 ~]# mkdir /var/lib/libvirt/test
2)修改文件安全相關屬性:
[root@centos7 ~]# chown root.root /var/lib/libvirt/test
[root@centos7 ~]# chmod 700 /var/lib/libvirt/test
[root@centos7 ~]# semanage fcontext -a -t virt_image_t /var/lib/libvirt/test
[root@centos7 ~]# restorecon -v /var/lib/libvirt/test
3)創建存儲池:
[root@centos7 ~]# virt-manager #開啓虛擬機管理器
依次選擇“Edit”→“Connection Details”菜單,如圖-1所示,開啓虛擬機連接具體設置窗口,在Storage選項卡中,選擇左下角位置的添加圖標,創建存儲池,如圖-2所示。在創建存儲池的第一步中輸入存儲池名稱與類型。本例中存儲池名稱爲test,類型爲基於目錄的存儲池,如圖-3所示;第二步需要輸入存儲池目錄的具體路徑,如圖-4所示。至此,基於目錄的存儲池已創建完成,如圖-5所示。下面需要在池中創建存儲卷。
圖-1
圖-2
圖-3
圖-4
圖-5
4)創建存儲卷。
在完成存儲池的創建後,我們就可以在池中創建存儲捲了,如圖-5所示,單擊選擇需要創建卷的存儲池,本例爲test存儲池,然後選擇“New Volume”按鈕,根據提示輸入卷名稱、格式類型、最大存儲空間、實際分配空間,如圖-6所示。單擊“Finish”按鈕完成存儲卷的創建,如圖-7所示。
圖-6
圖-7
(2)爲虛擬機添加使用存儲設備。
存儲卷創建完成後,我們的虛擬主機就可以使用這些捲了,通過virt-manager選擇一個虛擬機雙擊打開控制窗口。點選設備按鈕,顯示設備列表,如圖-8所示,選擇“Add Hardware”按鈕添加新的設備,在添加虛擬硬件窗口中選擇Storage存儲設備,因爲我們已經爲虛擬主機創建好了存儲卷設備。因此,我們選擇已經存在的存儲空間,並輸入存儲卷的絕對路徑,如圖-9所示。進入虛擬主機操作系統,通過fdisk查看磁盤信息將包含剛剛添加的存儲卷設備,標記爲/dev/vdb,如圖-10所示。
圖-8
圖-9
圖-10
下面將演示如何在KVM虛擬化環境中創建基於NFS的存儲池以及存儲卷設備,這裏我們提前準備好了一臺NFS共享服務器。
1)創建存儲池。
與基於目錄的存儲池類似,我們通過如圖-11所示的添加按鈕,創建一個新的存儲池。第一步依然是填寫存儲池名稱以及類型,如圖-12所示;第二步根據實際情況填寫NFS服務器主機名或IP地址(192.168.0.254)、服務器共享目錄(/nfs)、本地掛載點(/var/lib/libvirt/nfs),如圖7-28所示,單擊“Finish”按鈕完成。
圖-11
圖-12
2)創建存儲卷。
與基於目錄的存儲卷類似,我們通過“New Volume”按鈕創建存儲卷,根據提示輸入卷名稱、格式類型、最大存儲容量、分配存儲容量,如圖-13所示。
圖-13