Linux中國

在LVM中設置精簡資源調配卷(第四部分)

邏輯卷管理有許多特性,比如像快照和精簡資源調配。在先前(第三部分中),我們已經介紹了如何為邏輯卷創建快照。在本文中,我們將了解如何在LVM中設置精簡資源調配。

Setup Thin Provisioning in LVM

LVM中設置精簡資源調配

精簡資源調配是什麼?

精簡資源調配用於LVM以在精簡池中創建虛擬磁碟。我們假定我伺服器上有15GB的存儲容量,而我已經有2個客戶各自佔去了5GB存儲空間。你是第三個客戶,你也請求5GB的存儲空間。在以前,我們會提供整個5GB的空間(富卷)。然而,你可能只使用5GB中的2GB,其它3GB以後再去填滿它。

而在精簡資源調配中我們所做的是,在其中一個大卷組中定義一個精簡池,再在精簡池中定義一個精簡卷。這樣,不管你寫入什麼文件,它都會保存進去,而你的存儲空間看上去就是5GB。然而,這所有5GB空間不會全部鋪滿整個硬碟。對其它客戶也進行同樣的操作,就像我說的,那兒已經有兩個客戶,你是第三個客戶。

那麼,讓我們想想,我到底為客戶分配了總計多少GB的空間呢?所有15GB的空間已經全部分配完了,如果現在有某個人來問我是否能提供5GB空間,我還可以分配給他么?答案是「可以」。在精簡資源調配中,我可以為第四位客戶分配5GB空間,即使我已經把那15GB的空間分配完了。

警告:從那15GB空間中,如果我們對資源調配超過15GB了,那就是過度資源調配了。

它是怎麼工作的?我們又是怎樣為客戶提供存儲空間的?

我已經提供給你5GB空間,但是你可能只用了2GB,而其它3GB還空閑著。在富資源調配中,我們不能這麼做,因為它一開始就分配了整個空間。

在精簡資源調配中,如果我為你定義了5GB空間,它就不會在定義卷時就將整個磁碟空間全部分配,它會根據你的數據寫入而增長,希望你看懂了!跟你一樣,其它客戶也不會使用全部卷,所以還是有機會為一個新客戶分配5GB空間的,這稱之為過度資源調配。

但是,必須對各個卷的增長情況進行監控,否則結局會是個災難。在過度資源調配完成後,如果所有4個客戶都盡量寫入數據到磁碟,你將碰到問題了。因為這個動作會填滿15GB的存儲空間,甚至溢出,從而導致這些卷下線。

前置閱讀

我的伺服器設置

操作系統 — 安裝有LVM的CentOS 6.5
伺服器IP — 192.168.0.200

步驟1: 設置精簡池和卷

理論講太多了,讓我們還是來點實際的吧,我們一起來設置精簡池和精簡卷。首先,我們需要一個大尺寸的卷組。這裡,我創建了一個15GB的卷組用於演示。現在,用下面的命令來列出卷組。

# vgcreate -s 32M vg_thin /dev/sdb1

Listing Volume Group

列出卷組

接下來,在創建精簡池和精簡卷之前,檢查邏輯卷有多少空間可用。

# vgs
# lvs

Check Logical Volume

檢查邏輯卷

我們可以在上面的lvs命令輸出中看到,只顯示了一些默認邏輯用於文件系統和交換分區。

創建精簡池

使用以下命令在卷組(vg_thin)中創建一個15GB的精簡池。

# lvcreate -L 15G --thinpool tp_tecmint_pool vg_thin
  • -L – 卷組大小
  • –thinpool – 創建精簡池
  • tp_tecmint_poolThin - 精簡池名稱
  • vg_thin – 我們需要創建精簡池的卷組名稱

Create Thin Pool

創建精簡池

使用『lvdisplay』命令來查看詳細信息。

# lvdisplay vg_thin/tp_tecmint_pool

Logical Volume Information

邏輯卷信息

這裡,我們還沒有在該精簡池中創建虛擬精簡卷。在圖片中,我們可以看到分配的精簡池數據為0.00%

創建精簡卷

現在,我們可以在帶有-V(Virtual)選項的『lvcreate』命令的幫助下,在精簡池中定義精簡卷了。

# lvcreate -V 5G --thin -n thin_vol_client1 vg_thin/tp_tecmint_pool

我已經在我的vg_thin卷組中的tp_tecmint_pool內創建了一個精簡虛擬卷,取名為thin_vol_client1。現在,使用下面的命令來列出邏輯卷。

# lvs 

List Logical Volumes

列出邏輯卷

剛才,我們已經在上面創建了精簡卷,這就是為什麼沒有數據,顯示為0.00%M

好吧,讓我為其它2個客戶再創建2個精簡卷。這裡,你可以看到在精簡池(tp_tecmint_pool)下有3個精簡卷了。所以,從這一點上看,我們開始明白,我已經使用所有15GB的精簡池。

Create Thin Volumes

創建文件系統

現在,使用下面的命令為這3個精簡卷創建掛載點並掛載,然後拷貝一些文件進去。

# mkdir -p /mnt/client1 /mnt/client2 /mnt/client3

列出創建的目錄。

# ls -l /mnt/

Creating Mount Points

創建掛載點

使用『mkfs』命令為這些創建的精簡卷創建文件系統。

# mkfs.ext4 /dev/vg_thin/thin_vol_client1 && mkfs.ext4 /dev/vg_thin/thin_vol_client2 && mkfs.ext4 /dev/vg_thin/thin_vol_client3

Create File System

創建文件系統

使用『mount』命令來掛載所有3個客戶卷到創建的掛載點。

# mount /dev/vg_thin/thin_vol_client1 /mnt/client1/ && mount /dev/vg_thin/thin_vol_client2 /mnt/client2/ && mount /dev/vg_thin/thin_vol_client3 /mnt/client3/

使用『df』命令來列出掛載點。

# df -h

Print Mount Points

顯示掛載點

這裡,我們可以看到所有3個客戶卷已經掛載了,而每個客戶卷只使用了3%的數據空間。那麼,讓我們從桌面添加一些文件到這3個掛載點,以填充一些空間。

Add Files To Volumes

添加文件到卷

現在列出掛載點,並查看每個精簡卷使用的空間,然後列出精簡池來查看池中已使用的大小。

# df -h
# lvdisplay vg_thin/tp_tecmint_pool

Check Mount Point Size

檢查掛載點大小

Check Thin Pool Size

檢查精簡池大小

上面的命令顯示了3個掛載點及其使用大小百分比。

13% of datas used out of 5GB for client1
29% of datas used out of 5GB for client2
49% of datas used out of 5GB for client3

在查看精簡池時,我們看到總共只有30%的數據被寫入,這是上面3個客戶虛擬卷的總使用量。

過度資源調配

現在,第四個客戶來申請5GB的存儲空間。我能給他嗎?因為我已經把15GB的池分配給了3個客戶。能不能再給另外一個客戶分配5GB的空間呢?可以,這完全可能。在我們使用過度資源調配時,就可以實現。過度資源調配可以給我們比我們所擁有的更大的空間。

讓我來為第四位客戶創建5GB的空間,然後再驗證一下大小吧。

# lvcreate -V 5G --thin -n thin_vol_client4 vg_thin/tp_tecmint_pool
# lvs

Create thin Storage

創建精簡存儲

在精簡池中,我只有15GB大小的空間,但是我已經在精簡池中創建了4個卷,其總量達到了20GB。如果4個客戶都開始寫入數據到他們的卷,並將空間填滿,到那時我們將面對嚴峻的形勢。如果不填滿空間,那不會有問題。

現在,我已經創建在thin_vol_client4中創建了文件系統,然後掛載到了/mnt/client4下,並且拷貝了一些文件到裡頭。

# lvs

Verify Thin Storage

驗證精簡存儲

我們可以在上面的圖片中看到,新創建的client 4總計使用空間達到了89.34%,而精簡池的已用空間達到了59.19。如果所有這些用戶不再過度對卷寫入,那麼它就不會溢出,下線。要避免溢出的話,我們需要擴展精簡池大小。

重要:精簡池只是一個邏輯卷,因此,如果我們需要對其進行擴展,我們可以使用和擴展邏輯卷一樣的命令,但我們不能縮減精簡池大小。

# lvextend

這裡,我們可以看到怎樣來擴展邏輯精簡池(tptecmintpool)。

# lvextend -L +15G /dev/vg_thin/tp_tecmint_pool

Extend Thin Storage

擴展精簡存儲

接下來,列出精簡池大小。

# lvs

Verify Thin Storage

驗證精簡存儲

前面,我們的tptecmintpool大小為15GB,而在對第四個精簡卷進行過度資源配置後達到了20GB。現在,它擴展到了30GB,所以我們的過度資源配置又回歸常態,而精簡卷也不會溢出下線了。通過這種方式,我們可以添加更多的精簡卷到精簡池中。

在本文中,我們已經了解了怎樣來使用一個大尺寸的卷組創建一個精簡池,以及怎樣通過過度資源配置在精簡池中創建精簡卷和擴著精簡池。在下一篇文章中,我們將介紹怎樣來移除邏輯卷。

via: http://www.tecmint.com/setup-thin-provisioning-volumes-in-lvm/

作者:Babin Lonston 譯者:GOLinux 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國