Linux中國

在Linux中使用LVM構建靈活的磁碟存儲(第一部分)

邏輯卷管理器(LVM磁碟空間管理更為便捷。如果一個文件系統需要更多的空間,可以在它的卷組中將空閑空間添加到其邏輯卷中,而文件系統可以根據你的意願調整大小。如果某個磁碟啟動失敗,用於替換的磁碟可以使用卷組註冊成一個物理卷,而邏輯卷擴展可以將數據遷移到新磁碟而不會丟失數據。

在Linux中創建LVM存儲
在如今,每台伺服器空間都會因為我們的需求增長而不斷擴展。邏輯卷可以用於RAID,SAN。單個物理卷將會被加入組以創建卷組,在卷組中,我們需要切割空間以創建邏輯卷。在使用邏輯卷時,我們可以使用某些命令來跨磁碟、跨邏輯卷擴展,或者減少邏輯卷大小,而不用重新格式化和重新對當前磁碟分區。卷可以跨磁碟抽取數據,這會增加I/O數據量。

LVM特性

  • 可以在任何時候靈活地擴展空間。
  • 可以安裝和處理任何文件系統。
  • 可以通過遷移來恢復錯誤磁碟。
  • 可以使用快照功能恢復文件系統到先前的階段。等等……

我的伺服器設置 - 需求

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

在Linux中創建LVM磁碟存儲

1. 我們已經在虛擬磁碟(VDA)中使用了帶LVM的CentOS 6.5操作系統。在此,我們可以使用下列命令查看到物理卷(PV),卷組(VG),邏輯卷(LV)。

# pvs 
# vgs
# lvs

Check Physical Volumes檢查物理卷
下面是上面截圖中各個參數的說明。

  • 物理磁碟大小(PV Size)
  • 用作虛擬磁碟vda的磁碟
  • 卷組大小(VG Size)
  • 卷組名稱(vg_tecmint)
  • 邏輯卷名稱(LogVol00,LogVol01)
  • LogVol00分配給swap,大小1GB
  • LogVol01分配給/,大小16.5GB

從上面看,我們可以知道VDA磁碟中沒有足夠的空閑空間。

2. 為了創建一個新卷組,我們需要在這台伺服器上添加額外的3個硬碟。3個驅動器不是強制使用的,只要一個就足夠用來創建新的VG,並在其中創建LV了。我在這裡添加了更多的磁碟,目的只是用於演示和更多命令功能的說明。

下面是我已經額外添加的磁碟。

sda, sdb, sdc
# fdisk -l

Verify Added Disks驗證添加的磁碟

  • 用於操作系統(CentOS 6.5)的默認磁碟。
  • 默認磁碟上定義的分區(vda1 = swap),(vda2 = /)。
  • 額外添加的磁碟Disk1,Disk2,Disk3。

各個磁碟大小都是20GB,默認的卷組的PE大小為4MB,我們在該伺服器上配置的卷組使用默認PE。

Volume Group Display卷組顯示

  • VG Name – 卷組名稱。
  • Format – LVM架構使用LVM2。
  • VG Access – 卷組為讀寫模式,備好待用。
  • VG Status – 卷組可調整大小,如果我們需要添加更多空間,我們可以擴展更多。
  • Cur LV – 當前卷組中有2個邏輯卷。
  • CurPV and Act PV – 當前使用的物理磁碟是1(vda),已被激活,因此我們可以使用該卷組。
  • PE Size – 磁碟的物理擴展大小,可以定義使用PE,或者GB,LVM的默認PE大小是4MB。例如,如果我們需要創建5GB大小的邏輯卷,我們可以使用總計1280 PE,你們懂我的意思么?

這裡解釋一下 -> 1024MB = 1GB,這樣的話,1024MB x 5 = 5120PE = 5GB,然後5120/4 = 1280,4是默認的PE大小。

  • Total PE – 該卷組具有的PE數量。
  • Alloc PE – 總的PE使用量,已經使用的全部PE,4482 x 4PE = 17928。
  • Free PE – 這裡因為已經使用,所以沒有空閑PE了。

3. 只使用了vda,當前CentOS在使用lvm的vda物理磁碟中安裝了/boot,/,swap,,該磁碟中沒有空間剩餘。

# df -TH

Check the Disk Space檢查磁碟空間
上面的圖片中顯示了用於根的掛載點已使用了18GB,因此沒有空閑空間可用了。

4. 那麼,讓我們創建新的物理卷(pv),以及名為tecmintaddvg的卷組(vg),並在其中創建邏輯卷(lv)。這裡,我們可以創建4個邏輯卷,分別名為 tecmint_documentstecmint_manager以及tecmintaddvg

我們可以擴展當前使用的卷組以獲得更多空間。但在這裡,我們將要做的是,創建新的卷組,然後在裡面肆意妄為吧。過會兒,我們可以看到怎樣來擴展使用中的卷組的文件系統。

在使用新磁碟前,我們需要使用fdisk來對磁碟分區。

# fdisk -cu /dev/sda
  • c – 關閉DOS兼容模式,推薦使用該選項。
  • u – 當列出分區表時,會以扇區而不是柱面顯示。

Create New Physical Partitions創建新的物理分區
接下來,請遵循以下步驟來創建新分區。

  • 選擇n來創建新分區。
  • 選擇p來創建主分區。
  • 選擇我們需要創建的分區號。
  • Enter兩次來使用整個磁碟空間。
  • 我們需要修改新創建的分區類型,輸入t
  • 選擇需要修改的分區號,選擇我們創建的分區號1
  • 這裡,我們需要修改類型。我們需要創建LVM,因此我們使用LVM的類型代碼8e。如果不知道類型代碼,按L來列出所有類型代碼。
  • 列印我們創建的分區以確認。
  • 這裡我們可以看到Linux LVM的ID 8e。
  • 寫入修改並退出fdisk。

重複以上步驟,為另外2個磁碟sdb和sdc創建新分區。然後重啟機器,使用fdisk命令來驗證分區表。

# fdisk -l

Verify Partition Table驗證分區表

創建物理卷

5. 現在,該使用3個磁碟來創建物理卷了。這裡,我已經使用pvs命令將物理磁碟列了出來,現在只有一個默認的pvs被列出來了。

# pvs

然後,使用命令創建新的物理磁碟。

# pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1

再次列出磁碟來查看新創建物理磁碟。

# pvs

Create Physical Volumes創建物理卷

創建卷組

6. 使用可用的空閑PV來創建名為tecmintaddvg的卷組,PE大小為32。顯示當前卷組,我們可以看到只有帶有1個PV的一個卷組在使用。

# vgs

這將使用上面創建的3個物理卷創建名為tecmintaddvg的卷組,PE大小為32MB。

# vgcreate -s 32M tecmint_add_vg /dev/sda1 /dev/sdb1 /dev/sdc1

接下來,再次運行vgs命令來驗證卷組。

# vgs

Create Volume Groups創建卷組Verify Volume Groups驗證卷組
理解vgs命令輸出:

  • 卷組名。
  • 本卷組中使用的物理卷。
  • 顯示本卷組中的可用空閑空間。
  • 卷組總大小。
  • 本卷組中的邏輯卷,這裡我們還沒創建,所以是0。
  • SN = 卷組包含的快照數量。(後面,我們會創建一個快照。)
  • 卷組狀態,如可寫,可讀,可調整大小,已導出,部分的和集群的。這裡是wz——意為w = 可寫,z = 可調整大小。
  • 卷組中使用的物理卷(PV)數量。

7. 使用命令來顯示更多卷組信息。

# vgs -v

Check Volume Group Information檢查卷組信息
8. 要獲取更多關於新創建的卷組信息,運行以下命令。

# vgdisplay tecmint_add_vg

List New Volume Groups列出新卷組

  • 卷組名稱
  • 使用的LVM架構。
  • 可讀寫,備好待用。
  • 該卷組可以調整大小。
  • 使用和激活的物理磁碟數量。
  • 卷組總大小。
  • 這裡單個PE大小為32。
  • 該卷組中可用的PE總數。
  • 當前還沒有在卷組中創建任何LV,因此它是空閑的。
  • 該卷組的UUID。

創建邏輯卷

9. 現在,創建3個名為tecmint_documents,tecmint_managertecmint_public的邏輯卷。這裡,我們可以看到如何分別以PE為單位和GB為單位來創建邏輯卷。首先,使用以下命令來列出當前邏輯卷。

# lvs

List Current Volume Groups列出當前卷組
10. 這些邏輯卷處於vg_tecmint卷組中使用pvs命令來列出並查看有多少空閑空間可以創建邏輯卷。

# pvs

Check Free Space檢查空閑空間
11. 卷組大小為54GB,而且未被使用,所以我們可以在該組內創建LV。讓我們將卷組平均劃分大小來創建3個邏輯卷,就是說54GB/3 = 18GB,創建出來的單個邏輯卷應該會是18GB。

方法1: 使用PE創建邏輯卷

首先,讓我們使用物理擴展(PE)為單位來創建邏輯卷。我們需要知道分配到該卷組的默認PE大小,以及總的可用PE大小來創建新的邏輯卷,運行下面的命令來獲取使用中的卷組信息。

# vgdisplay tecmint_add_vg

Create New Logical Volume創建新邏輯卷

  • 默認分配給該卷組的PE為32MB,這裡單個的PE大小為32MB。
  • 總可用PE是1725。

只要用bc命令做一點小小的計算來看看就知道了。

# bc
1725PE/3 = 575 PE. 
575 PE x 32MB = 18400 --> 18GB

Calculate Disk Space計算磁碟空間
CRTL+D退出bc。現在讓我們使用575個PE來創建3個邏輯卷。

# lvcreate -l (Extend size) -n (name_of_logical_volume) (volume_group)
# lvcreate -l 575 -n tecmint_documents tecmint_add_vg
# lvcreate -l 575 -n tecmint_manager tecmint_add_vg
# lvcreate -l 575 -n tecmint_public tecmint_add_vg
  • -l – 使用擴展大小創建
  • -n – 給邏輯卷命名

使用lvs命令來列出創建的邏輯卷。

# lvs

List Created Logical Volumes列出創建的邏輯卷

方法2: 使用GB大小創建邏輯卷

在使用GB大小創建邏輯卷時,我們不能獲得精確的大小。因此,最好的辦法是用擴展。

# lvcreate -L 18G -n tecmint_documents tecmint_add_vg
# lvcreate -L 18G -n tecmint_manager tecmint_add_vg
# lvcreate -L 18G -n tecmint_public tecmint_add_vg
# lvcreate -L 17.8G -n tecmint_public tecmint_add_vg

使用lvs命令來列出創建的邏輯卷。

# lvs

Verify Created Logical Volumes驗證創建的邏輯卷
這裡,我們可以看到,當創建第三個LV的時候,我們不能收集到18GB空間。這是因為尺寸有小小的改變,但在使用或者尺寸來創建LV時,這個問題會被忽略。

創建文件系統

12. 要使用邏輯卷,我們需要格式化。這裡我使用ext4文件系統來創建卷,並打算掛載到/mnt

# mkfs.ext4 /dev/tecmint_add_vg/tecmint_documents
# mkfs.ext4 /dev/tecmint_add_vg/tecmint_public
# mkfs.ext4 /dev/tecmint_add_vg/tecmint_manager

Create Ext4 File System創建Ext4文件系統
13. 讓我們在/mnt下創建目錄,並將已創建好文件系統的邏輯卷掛載上去。

# mount /dev/tecmint_add_vg/tecmint_documents /mnt/tecmint_documents/
# mount /dev/tecmint_add_vg/tecmint_public /mnt/tecmint_public/
# mount /dev/tecmint_add_vg/tecmint_manager /mnt/tecmint_manager/

使用下面的命令來列出並確認掛載點。

# df -h

Mount Logical Volumes掛載邏輯卷

永久掛載

現在,這些邏輯卷是臨時掛載上去的,要永久掛載,我們需要添加條目到fstab中。要達到這個目的,讓我們使用下面的命令來獲取掛載條目

# cat /etc/mtab

在輸入來自mtab中的掛載條目內容時,我們需要在fstab中做些小小的改變,修改rw為默認。

# vim /etc/fstab

我們的fstab條目應該和下面的類似,使用wq!保存並退出fstab。

/dev/mapper/tecmint_add_vg-tecmint_documents    /mnt/tecmint_documents  ext4    defaults 0 0
/dev/mapper/tecmint_add_vg-tecmint_public       /mnt/tecmint_public     ext4    defaults 0 0
/dev/mapper/tecmint_add_vg-tecmint_manager      /mnt/tecmint_manager    ext4    defaults 0 0

Get mtab Mount Entry獲取mtab掛載條目Open fstab File打開fstab文件Add Auto Mount Entry添加自動掛載條目*
重啟前,執行mount -a命令來檢查fstab條目。

# mount -av

Verify fstab Entry驗證fstab條目
這裡,我們已經了解了怎樣來使用邏輯卷構建靈活的存儲,從使用物理磁碟到物理卷,物理卷到卷組,卷組再到邏輯卷。

在我即將奉獻的文章中,我將介紹如何擴展卷組、邏輯卷,減少邏輯卷,拍快照以及從快照中恢復。

via: http://www.tecmint.com/create-lvm-storage-in-linux/

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

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


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

對這篇文章感覺如何?

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

    You may also like

    Leave a reply

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

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

    More in:Linux中國