一、 LVM 介紹
LVM (Logical Volume Manager),中文為邏輯捲軸管理員。LVM的重點在於『可以彈性的調整filesystem的容量』。使其可以更容易利用、管理映碟。當磁區空間不足時,可透過「VG」和「LV」來做硬碟空間的調整,調整時不會影響到原先存放的資料。
有關VG和LV等相關說明可參考以下說明
Physical Volume (PV)
經由硬碟切割出來的實體partition
Volume Group (VG)
VG就是由多個 PV建立出的磁區再組合成一個虛擬的磁碟,此虛擬磁碟的容量大小和PE有關。每個VG最多僅能包含65534個PE。若以LVM預設參數來說,一個CG最大可達256GB的容量。
Physical Extent (PE)
PE就如同是檔案系統裡的block大小.而 PE在LVM系統預設大小為4M,一個VG最多可以擁有65534個PE,所以當系統預設時,一個VG最大尺寸為65534*4M大概為256G.對於現在大硬碟 的狀況下很快就無法再延伸了.所以建議在設定PE時指定大小.除了預設的4M外只要是2的倍數在8k-16GB都是可以的範圍.
Logical Volume (LV)
最後VG還是會切成LV,而這個LV就是最後被使用的部份。至於LV的大小,也是和PE的總數有關。為了方便管裡系統,LV的裝置檔名通常指定為「/dev/vgname/lvname」
名詞
|
意義
|
系統對應的位置
|
PV
|
實體分割區(Partition)
|
/dev/sda
|
VG
|
虛擬硬碟(磁區群組)
|
/dev/VGname/目錄
|
PE
|
實體延伸區塊
|
|
LV
|
虛擬分割區(邏輯群組)
|
/dev/VGname/LVname
|
二、LVN設定
1. 切partition
1.1 在還沒有開始設定PV之前要先切partition。至於要切幾個partition,就看個人而定了。在這邊切4個
partition每個容量為2G
[root@localhost ~]# fdisk /dev/sda #先查看分割表的情況 Command (m for help): p Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 666 5245222+ 83 Linux /dev/sda3 667 797 1052257+ 82 Linux swap / Solaris #由於目前已經有3個partition,如果還要在分割4個的話必須要使用extended Command (m for help): n Command action e extended p primary partition (1-4) e Selected partition 4 First cylinder (798-2610, default 798): #直接按ENTER Using default value 798 Last cylinder or +size or +sizeM or +sizeK (798-2610, default 2610): #按ENTER #全給extended Using default value 2610 Command (m for help): p Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 666 5245222+ 83 Linux /dev/sda3 667 797 1052257+ 82 Linux swap / Solaris /dev/sda4 798 2610 14562922+ 5 Extended #開始切PV要用的partition請切4個 Command (m for help): n First cylinder (798-2610, default 798): #直接按ENTER Using default value 798 Last cylinder or +size or +sizeM or +sizeK (798-2610, default 2610): +2000M #設定好後離開輸入w Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks. #離開後會告知需要重開機才會生效 [root@localhost ~]# partprobe #強制核心重新抓取partition table,就可不用重新開機 [root@localhost ~]# fdisk -l Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 666 5245222+ 83 Linux /dev/sda3 667 797 1052257+ 82 Linux swap / Solaris /dev/sda4 798 2610 14562922+ 5 Extended /dev/sda5 798 1041 1959898+ 83 Linux /dev/sda6 1042 1285 1959898+ 83 Linux /dev/sda7 1286 1529 1959898+ 83 Linux /dev/sda8 1530 1773 1959898+ 83 Linux |
以上的/dev/sda5,6,7,8為等等PV要使用的partition
2. PV設定
2.1常用的指令
指令
|
說明
|
pvscan
|
搜尋目前系統裡面任何具有 PV 的磁碟
|
pvcreate
|
將實體 partition 建立成為 PV
|
pvdisplay
|
顯示目前系統 PV的狀態
|
pvremove
|
將 PV 屬性移除,讓該 partition 不具有 PV 屬性。
|
2.2 查詢系統上有無PV
[root@localhost ~]# pvscan No matching physical volumes found #表示無任何的PV |
2.3 將四個partition建立PV
[root@localhost ~]# pvcreate /dev/sda{5,6,7,8} Physical volume "/dev/sda5" successfully created Physical volume "/dev/sda6" successfully created Physical volume "/dev/sda7" successfully created Physical volume "/dev/sda8" successfully created |
2.4 查看建立後是否有問題
[root@localhost ~]# pvscan PV /dev/sda5 lvm2 [1.87 GB] PV /dev/sda6 lvm2 [1.87 GB] PV /dev/sda7 lvm2 [1.87 GB] PV /dev/sda8 lvm2 [1.87 GB] Total: 4 [7.48 GB] / in use: 0 [0 ] / in no VG: 4 [7.48 GB] #[整體PV的容量] [已被使用到VG的PV容量] [剩餘的PV量] [root@localhost ~]# pvdisplay "/dev/sda5" is a new physical volume of "1.87 GB" --- NEW Physical volume --- PV Name /dev/sda5 #實際的partition名稱 VG Name #還沒分配,所以空白 PV Size 1.87 GB #容量大小 Allocatable NO #是否已被分配 PE Size (KByte) 0 #PV內的PE大小 Total PE 0 #共分割的PE數 Free PE 0 #沒被LV使用的PE數 Allocated PE 0 #還可分配的PE數 PV UUID gXmwpU-0oP0-YSmt-rpSd-qj5H-cEYf-1xBcky |
目前這邊的PE數為0是正常的,因為PE是由VG建立時才會設定的參數。
3. VG設定
3.1常用的指令
指令
|
說明
|
vgcreate
|
建立 VG 的指令
|
vgscan
|
搜尋系統上面是否有 VG 存在
|
vgdisplay
|
顯示目前系統 VG的狀態
|
vgextend
|
在 VG 內增加額外的 PV
|
vgreduce
|
在 VG 內移除 PV
|
vgchange
|
設定 VG 是否啟動 (active)
|
vgremove
|
刪除一個 VG
|
3.2 建立一個VG
# vgcreate -s 16M [VG名稱] [PV名稱] [root@localhost ~]# vgcreate -s 16M faqvg /dev/sda{5,6,7} #參數-s後面接的是PE的大小,單位可為m,g,t /dev/cdrom: open failed: Read-only file system /dev/cdrom: open failed: Read-only file system /dev/cdrom: open failed: Read-only file system /dev/cdrom: open failed: Read-only file system Volume group "faqvg" successfully created |
3.3 查看建立的VG是否有問題
[root@localhost ~]# vgscan Reading all physical volumes. This may take a while… Found volume group "faqvg" using metadata type lvm2 #確實有建立成功 [root@localhost ~]# pvscan PV /dev/sda5 VG faqvg lvm2 [1.86 GB / 1.86 GB free] PV /dev/sda6 VG faqvg lvm2 [1.86 GB / 1.86 GB free] PV /dev/sda7 VG faqvg lvm2 [1.86 GB / 1.86 GB free] PV /dev/sda8 lvm2 [1.87 GB] Total: 4 [7.45 GB] / in use: 3 [5.58 GB] / in no VG: 1 [1.87 GB] #查詢是否已用掉/dev/sda5,6,7 [root@localhost ~]# vgdisplay --- Volume group VG Name faqvg System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size 5.58 GB #整個VG容量大小 PE Size 16.00 MB #內部每個PE的大小 Total PE 357 #總共PE數 Alloc PE / Size 0 / 0 Free PE / Size 357 / 5.58 GB VG UUID e2lS1t-7Rop-YHU4-qygQ-tDFq-LjVn-jOnv0h |
3.4新增VG的大小。(把剩下的/dev/sda8加進去)
[root@localhost ~]# vgextend faqvg /dev/sda8 /dev/cdrom: open failed: Read-only file system /dev/cdrom: open failed: Read-only file system Volume group "faqvg" successfully extended #增加後再檢查一下VG容量大小是不是有改變 [root@localhost ~]# vgdisplay --- Volume group --- VG Size 7.44 GB PE Size 16.00 MB Total PE 476 Alloc PE / Size 0 / 0 Free PE / Size 476 / 7.44 GB VG UUID e2lS1t-7Rop-YHU4-qygQ-tDFq-LjVn-jOnv0h |
4. LV設定
4.1 常用的指令
指令
|
說明
|
lvscan
|
查詢系統上面的 LV
|
lvcreate
|
建立 LV
|
lvdisplay
|
顯示系統上面的 LV 狀態
|
lvextend
|
在 LV 裡面增加容量
|
lvreduce
|
在 LV 裡面減少容量
|
lvremove
|
刪除一個 LV
|
lvresize
|
對 LV 進行容量大小的調整
|
4.2 建立一個LV
建立的方式有兩種請選一種建立即可
#方法一 : [root@localhost ~]# lvcreate -l 476 -n faqlv faqvg Logical volume "faqlv" created #方法二 : [root@localhost ~]# lvcreate -L 7.44G -n faqlv faqvg Logical volume "faqlv" created 參數說明: -L 後面接容量大小,單位可為M,G,T。最小單位為PE此數量必須為PE的倍數,要不系統會以 最相近的容量為主。 -l 後面接的為PE的個數,可參考vgdisplay所顯示出的PE數。 -n 後面接的為LV的名稱 |
4.3 查看建立的LV是否有問題
#查看是否有建立成功 [root@localhost ~]# ll /dev/faqvg/faqlv lrwxrwxrwx 1 root root 23 Nov 1 17:30 /dev/faqvg/faqlv -> /dev/mapper/faqvg-faqlv #查看系統上的LV狀態 [root@localhost ~]# lvdisplay --- Logical volume LV Name /dev/faqvg/faqlv #LV的全名 VG Name faqvg LV UUID QMOpsQ-3k87-BHSx-7crB-Wrlh-Zx11-Hn332K LV Write Access read/write LV Status available # open 0 LV Size 7.44 GB #LV的容量大小 Current LE 476 Segments 4 Allocation inherit Read ahead sectors auto – currently set to 256 Block device 253:0 |
5. 掛載使用LV
[root@localhost ~]# mkfs -t ext3 /dev/faqvg/faqlv #格式化 [root@localhost ~]# mkdir /mnt/lvm #建立要mount的資料夾 [root@localhost ~]# mount /dev/faqvg/faqlv /mnt/lvm/ #掛載 [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 4.9G 1.2G 3.5G 25% / /dev/sda1 99M 12M 83M 13% /boot tmpfs 506M 0 506M 0% /dev/shm /dev/mapper/faqvg-faqlv 7.4G 145M 6.9G 3% /mnt/lvm #多出此行就表示掛載成功 |
6. 最後把指令的部份統整一下
|
PV
|
VG
|
LV
|
搜尋(scan)
|
pvscan
|
vgscan
|
lvscan
|
建立(create)
|
pvcreate
|
vgcreate
|
lvcreate
|
列出(display)
|
pvdisplay
|
vgdisplay
|
lvdisplay
|
增加(extend)
|
|
vgextend
|
lvextend (lvresize)
|
減少(reduce)
|
|
vgreduce
|
lvreduce (lvresize)
|
刪除(remove)
|
pvremove
|
vgremove
|
lvremove
|
改變容量(resize)
|
|
|
lvresize
|
改變屬性(attribute)
|
pvchange
|
vgchange
|
lvchange
|
設定到這邊LVM的基本設定已經完成了,將LV掛載上後就可以開始使用了。
相關文章
評論
此文章尚無評論。