2007年5月9日 星期三

LPI心得筆記簿 ─ 硬碟規劃(LVM)

介紹完RAID之後,現在來說說預設會使用的硬碟規畫模式(LVM

什麼是LVM呢?

LVM(Logical Volume Manager):
原先運用於IBM AIX Unix系統,是一種分配硬碟空間到邏輯磁區的方法,這種方式比傳統Partition分配容易做容量調整,可動態放大檔案系統的機制,在說明之前要先解釋一些名詞

名詞解釋:
1. PV(Physical Vloume)實體磁區
Linux 中,可想成原先的一個partition就是一個PV

2. VG(Logical Volume Group)邏輯磁區群組
Linux中的視為一顆硬碟,但是實際上是由一個或多個Partition組成,也就是所VG是一個以上的PV所組成的群組

3. LV(Logical Volume)邏輯磁區
就是指在VG中每一個區塊的大小,就類似原先我們會把/HOME掛載在/HDAx,而利用LVM後,就是掛載在某個LV的區域

注意事項:
1. 無論那一個區域,都可做為PV
2. 指定好數個Partition為PV,再把數個PV架為一個VG,啟動成可用的空間,並分割所要的LV,但是大小不能超過VG的大小(就類似兒子的年紀比父親大= =+)
3.只有Boot Partition不設置為LVM

使用套件:
利用rpm來做檢查

#rpm -qa | grep lvm
如果有出現lvm2-x.xx.xx-x.x.x就代表已安裝(預設會有)

如果沒有再利用yum自行安裝
#yum -y install lvm

開始建立:
1. 已有三顆大小不同的實體硬碟的Partition(hda、hdb、hdc)

2. 指定分割區為PV
#pvcreate /dev/hda
#pvcreate /dev/hdb
#pvcreate /dev/hdc

#pvdisplay (可列出目前所指定的分割區)

3. 指定數個PV成為VG
#vgcreate vg0 /dev/hd[a-c](將hda、hdb、hdc的PV建為一個名為VG0的VG)

#vgdisplay (檢視目前VG的設定)

4. 啟動VG
#vgchange -a y vg0(啟動vg0為可用磁區,-a為active之意)

5. 建立LV的大小(以-L來指定大小,例1.5GB 為-L 1500)
#lvcreate -L 100000 vg0(建立VG0中的LV大小為100GB)
(+100為加大100MB、-100為縮小100MB、100為指定大小)

6. 會自動建立一個/dev/vg0的目錄,且目錄下會建立一個LogVo01的連結(LV),所要指定LV,使用-n即可
#lvcreate -L 1000 vg0 -n testlg1(指定vg0 中的中的testlg1的LV大小為1GB)

#lvdisplay vg0(檢視目前設定)
--Logical volume--
LV name /dev/vg0/LogVo01
....(略)
--Logical volume--
LV name /dev/vg0/testlg1

7.格式化及掛載
#mkfs -j /dev/vg0/testlg1
(以ext3格式化/dev/vg0/testlg1,原本mkfs是以ext2,加上-j為ext3)
#mkdir /mnt/test(在/mnt下建立test資料夾)
#mount /dev/vg0/testlg1 /mnt/test(掛載/dev/vg0/testlg1在/mnt/test下)

經過了以上的步驟,基本上就可使用了,但是如果不敷使用時,可以加入新的硬碟,也就是LVM最大的特性,可「動態」變動磁碟大小,建立方式如下:

加入一個實體的硬碟Partition(/dev/hdd)

1. 加入PV
#pvcreate /dev/hdd

2. 擴充VG
#vgextend vg0 /dev/hdd

3. 將原先掛載的vg0卸載
#umount /dev/vg0/testlg1

4. 擴充LV的大小(從原先的1GB擴充為2GB)
#lvextend -L 2000 /dev/vg0/testlg1

5. 磁碟檢查
#fsck -f /dev/vg0/testlg1(若為ext2則改用e2fsck)

6. 重新格式化
#resize2fs /dev/vg0/testlg1(因新增之磁碟區尚未格式化)

7. 重新掛載後即可使用(重開機)

ps:其實Linux中有個指令不需重開機,即可讓硬碟分割區及格式化直接生效(可以減少許多等待的時間),就是#partprobe

(筆者:雖然網路上有更多詳盡的文章,這是我的心得筆記,所以還是上來獻個醜,雖然已經有謎之聲說不需要寫這個了啦!= =+)