用 LVM 管理 CentOS 7 掛載的資料碟
好的,現在的狀況是我們有一台 Linux Server 上面有兩顆作過 RAID 的虛擬硬碟 (VD,Virtual Disk),我們已經把 OS 灌在容量較小的 VD 當作系統碟 ,要掛載另一顆 VD 當作資料碟,往後的用途就是拿來掛虛擬機的映象檔(image),所以會掛在根目錄下的 /image
我們會使用 LVM 來管理硬碟空間,LVM 是什麼?使用 LVM 的好處是什麼?請參考鳥哥或是這篇也寫得不錯,使用 LVM 的原因主要是著眼未來「動態調整 file system 大小的能力」,這邊就不講原理了,以實作筆記為主
總之在掛這顆資料碟之前,對下列提示要有些了解
- 超過 2TB 的硬碟不能使用 MBR 分割表,要用 GPT
- 知道 LVM 裡 PV、PE、VG、LV 的階層與意義(底下會稍微描述一下)
- 知道 mount point 是什麼概念
- 對 file system 裡的 ext 家族與 xfs 有一點概念
實驗環境
- Dell PowerEdge R710 * 1
- 系統碟:450GB 3.5吋 SAS HDD * 2 (RAID 1)
- 資料碟:2TB 3.5吋 SAS HDD * 4 (RAID 10)
- 作業系統: CentOS 7 (其它發行版掛載的步驟應該大同小異)
流程
所以我們要做的事,就是把另一顆(/dev/sdb)大概 3.7TB 做好硬體 raid 的硬碟
- 建立 GPT 分割表,不切 partition
- 使用 LVM 管理 logic volume
- 標示 PV(Physical Volume)
- 集成 VG(Volume Group)
- 分割 LV(Logical Volume)
- 格式化成 xfs
- 掛在 /image 目錄下
如果確定未來不會動態調整 partition ,可以不用 LVM ,直接跳過 2 就可以了。LVM 的概念,我自己的理解是每顆 VD 可以標示成 PV 為 LVM 所用,一個或多個 PV 可以結合成 VG,在此基礎上可以分割粒度更小的 LV
因為我們目前規劃是整顆 VD 都要拿來放 image ,所以空間的粒度是一樣大的, VD=PV=VG=LV ,假設未來需要 resize ,就把屬於 image 的 LV 縮小,來容納新的 LV
LVM 與 非 LVM 系統概念上的對應
- PV <-> RAID
- VG <-> disk
- LV <-> partition
使用 parted 建立 GPT 分割表
|
|
這樣就建完了,print
一下看結果
查看 block device
使用 LVM
PV
|
|
VG
這裡我把 VG 的 name 叫做 vg-image
LV
-n: name 這裡命名為 lv-image
-l: 該 LV 所佔 VG 比例
-L: fixed size
|
|
到這就做完 LVM 的設定,可以 $ sudo lvdisplay <vg name>/<lv name>
檢視 detail
- 檢視 list:pvs、vgs、lvs
- 檢視 detail:pvdisplay、vgdisplay、lvdisplay
格式化
這時候 LV 的路徑在 /dev/<vg name>/<lv name>
,所以就直接
過個幾秒應該就格式化好了
掛載(mount)
我們要把 lv-image
掛到 /image
目錄,然後寫進 /etc/fstab
讓系統開機自動 mount,這邊的 UUID 要看個別的系統而定
|
|
如果要 $ sudo echo "some words" > /<priviledged file path>
,是行不通的,該技巧可見討論
df
一下
到這邊,就成功把資料碟以 LVM 管理的方式掛載起來了