KVM的存儲選項(xiàng)有多種,包括虛擬磁盤文件、基于文件系統(tǒng)的存儲和基于設(shè)備的存儲。
為實(shí)現(xiàn)KVM(Kernel-based Virtual Machine)存儲管理,可以使用LVM(Logical Volume Manager)和創(chuàng)建存儲池。當(dāng)系統(tǒng)創(chuàng)建KVM虛擬機(jī)的時候,默認(rèn)使用虛擬磁盤文件作為后端存儲。安裝后,虛擬機(jī)認(rèn)為在使用真實(shí)的磁盤,但實(shí)際上看到的是用于模擬硬盤的虛擬磁盤文件。這一額外的文件系統(tǒng)層會降低系統(tǒng)速度。
當(dāng)然,基于磁盤鏡像的虛擬磁盤并非全無益處,磁盤文件系統(tǒng)可以很輕松地用于其它的KVM虛擬化宿主機(jī)。但是如果您希望優(yōu)化KVM虛擬化性能,最好考慮其它的存儲方式。
基于文件系統(tǒng)的KVM存儲
在安裝KVM宿主機(jī)時,可選文件系統(tǒng)為dir(directory)或fs(formatted block storage)作為初始KVM存儲格式。默認(rèn)選項(xiàng)為dir,用戶指定本地文件系統(tǒng)中的一個目錄用于創(chuàng)建磁盤鏡像文件。
fs選項(xiàng)可以允許用戶指定某個格式化文件系統(tǒng)的名稱,把它作為專用的磁盤鏡像文件存儲。兩種KVM存儲選項(xiàng)之間最主要的區(qū)別在于:fs文件系統(tǒng)不需要掛載到某個特定的分區(qū)。
兩種選項(xiàng)所指定的文件系統(tǒng),都可以是本地文件系統(tǒng)或位于SAN上某個物理宿主機(jī)上的網(wǎng)絡(luò)文件系統(tǒng)。后者具備一定的優(yōu)勢,因?yàn)镾AN可以很輕易地實(shí)現(xiàn)多個主機(jī)同時訪問,而本地磁盤或文件系統(tǒng)則無法實(shí)現(xiàn)。
還有一種基于文件的磁盤存儲方式是netfs,用戶可以指定一個網(wǎng)絡(luò)文件系統(tǒng)的名稱,如Samba.用這種方式作為KVM存儲很方便,因?yàn)檫@樣很容易訪問到位于其它服務(wù)器上的文件系統(tǒng),同時用戶也可以通過多臺宿主機(jī)訪問磁盤文件。
所有的這些基于文件的KVM存儲方式都有一個缺點(diǎn):文件系統(tǒng)固有缺陷。因?yàn)樘摂M機(jī)的磁盤文件不能直接讀取或?qū)懭隟VM存儲設(shè)備,而是寫入宿主機(jī)OS之上的文件系統(tǒng)。這也就意味著在訪問和寫入文件時中間增加了額外一層,這通常會降低性能。所以,如果您希望尋找KVM虛擬化性能最優(yōu)方案,最好考慮基于設(shè)備的存儲。
基于設(shè)備的KVM存儲
另外一種KVM存儲的方式就是使用基于設(shè)備的方式。共支持四種不同的物理存儲:磁盤、iSCSI、SCSI和邏輯盤。磁盤方式指直接讀寫硬盤設(shè)備。iSCSI和SCSI方式可選,取決于用戶采取SCSI或iSCSI地址把磁盤設(shè)備連接。這種KVM存儲方式的優(yōu)勢在于,磁盤的名稱是固定的,而不需要取決于宿主機(jī)OS搜索到磁盤設(shè)備的順序。
這種連接磁盤的方式也有缺點(diǎn):靈活性不足。虛擬磁盤的大小很難改變,而且基于設(shè)備的KVM存儲不支持快照。
如果要優(yōu)化KVM存儲的靈活性,可以使用LVM(Logical Volume Manager)。LVM的優(yōu)勢在于可以使用快照,而快照并不是KVM虛擬化自帶的功能。
LVM可以把所有存儲放到一個卷組里,從而輕松創(chuàng)建一個邏輯卷。該卷組是物理磁盤設(shè)備的一個抽象,所以如果超出可用磁盤空間最大值,還可以向卷組中添加新的設(shè)備,從而極大簡化了增加存儲空間的過程,增加的空間在邏輯卷中直接可以使用。使用LVM使得磁盤空間分配更加靈活,而且增加和刪除存儲也更為容易。
最后,LVM無論是在單宿主機(jī)或多宿主機(jī)環(huán)境中都可以很好工作。在多宿主機(jī)環(huán)境中,您可以在SAN上創(chuàng)建邏輯卷。如果使用Cluster LVM,可以很容易的配置成多個主機(jī)同時訪問某個邏輯卷。
使用KVM存儲池
為簡化KVM存儲管理的目的,可以創(chuàng)建存儲池。在宿主機(jī)上創(chuàng)建存儲池,可以簡化KVM存儲設(shè)備的管理。采用存儲池的方式還可以實(shí)現(xiàn)對提前預(yù)留的存儲空間的分配。這種策略對于大型應(yīng)用環(huán)境很有效,存儲管理員和創(chuàng)建虛擬機(jī)的管理經(jīng)常不是同一個人。這樣,在創(chuàng)建首臺虛擬機(jī)之前先完成KVM存儲池的創(chuàng)建是很好的方法。
當(dāng)您決定開始KVM虛擬化時,先在宿主機(jī)端創(chuàng)建一個KVM存儲池,然后通過這個池提供LVM邏輯卷。對于使用LVM增加的快照功能,用戶是不會感到后悔的,這種KVM存儲方法提供了極大地靈活性。