天天看點

KVM 存儲虛拟化 - 每天5分鐘玩轉 OpenStack(7)目錄類型的 Storage Pool

KVM 的存儲虛拟化是通過存儲池(Storage Pool)和卷(Volume)來管理的。

Storage Pool 是主控端上可以看到的一片存儲空間,可以是多種類型,後面會詳細讨論。Volume 是在 Storage Pool 中劃分出的一塊空間,主控端将 Volume 配置設定給虛拟機,Volume 在虛拟機中看到的就是一塊硬碟。

下面我們學習不同類型的 Storage Pool

檔案目錄是最常用的 Storage Pool 類型。

KVM 将主控端目錄 /var/lib/libvirt/images/ 作為預設的 Storage Pool。

那麼 Volume 是什麼呢?

答案就是該目錄下面的檔案了,一個檔案就是一個 Volume。

大家是否還記得我們之前建立第一個虛機 kvm1 的時候,就是将鏡像檔案 cirros-0.3.3-x8664-disk.img 放到了這個目錄下。檔案 cirros-0.3.3-x8664-disk.img 也就是Volume,對于 kvm1 來說,就是它的啟動磁盤了。

那 KVM 是怎麼知道要把 /var/lib/libvirt/images 這個目錄當做預設 Storage Pool 的呢?

實際上 KVM 所有可以使用的 Storage Pool 都定義在主控端的 /etc/libvirt/storage 目錄下,每個 Pool 一個 xml 檔案,預設有一個 default.xml,其内容如下:

注意:Storage Pool 的類型是 “dir”,目錄的路徑就是 /var/lib/libvirt/images

下面我們為虛機 kvm1 添加一個新的磁盤,看看有什麼變化。

在 virt-manager 中打開 kvm1 的配置頁面,右鍵添加新硬體

在預設 Pool 中建立一個 8G 的卷。

點選 “Finish”,可以看到新磁盤的資訊。

KVM 存儲虛拟化 - 每天5分鐘玩轉 OpenStack(7)目錄類型的 Storage Pool

在 /var/lib/libvirt/images/ 下多了一個 8G 的檔案 kvm1.img

root@ubuntu:~# ls -l /var/lib/libvirt/images/         total 14044 -rw-r--r-- 1 root root   14417920 Sep  4 11:24 cirros-0.3.3-x86_64-disk.img -rw------- 1 root root 8589934592 Sep  4 21:39 kvm1.img

使用檔案做 Volume 有很多優點:存儲友善、移植性好、可複制、可遠端通路。

前面幾個優點都很好了解,這裡對“可遠端通路”多解釋一下。

遠端通路的意思是鏡像檔案不一定都放置到主控端本地檔案系統中,也可以存儲在通過網絡連接配接的遠端檔案系統,比如 NFS,或者是分布式檔案系統中,比如 GlusterFS。

這樣鏡像檔案就可以在多個主控端之間共享,便于虛機在不同主控端之間做 Live Migration;如果是分布式檔案系統,多副本的特性還可以保證鏡像檔案的高可用。

KVM 支援多種 Volume 檔案格式,在添加 Volume 時可以選擇

raw 是預設格式,即原始磁盤鏡像格式,移植性好,性能好,但大小固定,不能節省磁盤空間。

qcow2 是推薦使用的格式,cow 表示 copy on write,能夠節省磁盤空間,支援 AES 加密,支援 zlib 壓縮,支援多快照,功能很多。

vmdk 是 VMWare 的虛拟磁盤格式,也就是說 VMWare 虛機可以直接在 KVM上 運作。

下一節介紹 LVM 類型的 Storage Pool。

本文轉自CloudMan6 51CTO部落格,原文連結:http://blog.51cto.com/cloudman/1750737

繼續閱讀