KVM 存儲虛擬化 - 天天5分鐘玩轉 OpenStack(7)

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

Storage Pool 是宿主機上能夠看到的一片存儲空間,能夠是多種類型,後面會詳細討論。Volume 是在 Storage Pool 中劃分出的一塊空間,宿主機將 Volume 分配給虛擬機,Volume 在虛擬機中看到的就是一塊硬盤。網絡

下面咱們學習不一樣類型的 Storage Pool分佈式

目錄類型的 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,其內容以下: url

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

下面咱們爲虛機 kvm1 添加一個新的磁盤,看看有什麼變化。 在 virt-manager 中打開 kvm1 的配置頁面,右鍵添加新硬件 3d

在默認 Pool 中建立一個 8G 的卷。 orm

點擊 「Finish」,能夠看到新磁盤的信息。

在 /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。

相關文章
相關標籤/搜索