LVM(Logical Volume Manager)
Step 1:PV 的建立
# pvcreate /dev/hdi1 /dev/hdi2 /dev/hdi3
Step 2:VG 的建立
# vgcreate -s 32M volume00 /dev/hdi1 /dev/hdi2 /dev/hdi3
Step 3:LV 的建立
#lvcreate -L 15G -n LVOL1 volume00
Step 4:動態縮放VG,LV磁碟系統大小
# lvextend -L +10G /dev/volume00/LVOL1
# ext2online -L +10G /dev/volume00/LVOL1
Step 5:移除 LV,VG
# vgremove volume00
Step 6:其他常用指令
Step 1:PV 的建立
PV 的建立如同切割 partition 假設我要建立 3 個 PV,請行建立 3 個 partition ,最重要的是要將他的 type 改成 8e(LVM 磁區型態代號)
[root@benjr ~]# fdisk /dev/hdi Command (m for help): p Disk /dev/hdi: 120.0 GB,120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hdi1 1 1217 9775521 83 Linux /dev/hdi2 1218 2434 9775552+ 83 Linux /dev/hdi3 2435 3651 9775552+83 Linux Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 8e Changed system type of partition 2 to 8e (Linux LVM) Command (m for help): p Disk /dev/hdi: 120.0 GB,120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hdi1 1 1217 9775521 8e Linux LVM /dev/hdi2 1218 2434 9775552+ 8e Linux LVM /dev/hdi3 2435 3651 9775552+ 8e Linux LVM Command (m for help): w The partition table has been altered!
因為 /etc/lvmtab 一開始並不存在所以我們會先用 "#vgscan" 來自己建立.
[root@benjr ~]# vgscan vgscan — reading all physical volumes (this may take a while…) vgscan — "/etc/lvmtab" and "/etc/lvmtab.d" successfully created vgscan — WARNING: This program does not do a VGDA backup of your volume group
我們還需要將剛剛建立的 partition 做 LVM 的初始化
[root@benjr ~]# pvcreate /dev/hdi1 /dev/hdi2 /dev/hdi3 pvcreate — physical volume "/dev/hdi1" successfully created pvcreate — physical volume "/dev/hdi2" successfully created pvcreate — physical volume "/dev/hdi3" successfully created
如果你不確定是否建立成功,你可以使用下面指令來察看
[root@benjr ~]# pvscan PV /dev/hdi1 lvm2 [9.32GB] PV /dev/hdi2 lvm2 [9.32GB] PV /dev/hdi3 lvm2 [9.32GB] Total:3[27.97GB] / in use:0[0GB] /in no VG:3[27.97 GB]
還可以用pvdisplay來察看.
Step 2:VG 的建立
現在我要將剛剛建立好的3個 PV集合成一個 VG
[root@benjr ~]# vgcreate -s 32M volume00 /dev/hdi1 /dev/hdi2 /dev/hdi3 vgcreate — INFO: using default physical extent size 32 MB vgcreate — INFO: maximum logical volume size is 2 Terabyte vgcreate — doing automatic backup of volume group "volume00" vgcreate — volume group "volume00" successfully created and activated
關於PE限制住VG的大小,這裡就可以考慮將PE設大一點.使用參數 -s (只要是2的倍數在8k-16GB都是可以的範圍),看一下 VG 是否建立了 volume00 .
[root@benjr ~]# vgscan vgscan — reading all physical volumes (this may take a while…) vgscan — found active volume group "volume00" vgscan — "/etc/lvmtab" and "/etc/lvmtab.d" successfully created vgscan — WARNING: This program does not do a VGDA backup of your volume group
再來看看 volume 的詳細資料
[root@benjr ~]# vgdisplay -v volume00 — Volume group — VG Name volume00 VG Access read/write ……….略………………. — No logical volumes defined in "volume00" — — Physical volumes — PV Name (#) /dev/hdi1 (1) PV Status available / allocatable Total PE / Free PE 297 / 297 ……….略……………….
Step 3:LV 的建立
[root@benjr ~]# lvcreate -L 15G -n LVOL1 volume00 lvcreate — doing automatic backup of "volume00 lvcreate — logical volume "/dev/volume00/LVOL1" successfully created
note:如果你沒設定名字,系統會直接幫你取名為LVOL1,LVOL2….
看一下 LV 是否建立了 LVOL1
[root@benjr ~]# lvscan lvscan — ACTIVE "/dev/volume00/LVOL1" [15 GB] lvscan — 1 logical volumes with 15 GB total in 1 volume group lvscan — 1 active logical volumes
再來看看 LVOL1 的詳細資料
[root@benjr ~]# lvdisplay /dev/volume00/LVOL1 — Logical volume — LV Name /dev/volume00/LVOL1 VG Name volume00 LV Write Access read/write ……….略……………….
最後, 我們把這個利用lv模式建立的分割區格式化就可以使用了.:
[root@benjr ~]# mkfs.ext3 /dev/volume00/LVOL1 mke2fs 1.32 (09-Nov-2002) Filesystem label= ……….略………………. Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 25 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
掛載在你想要的目錄上就可以使用了
[root@benjr ~]# mount /dev/volume00/LVOL1 /mnt
Step 4:動態縮放VG,LV磁碟系統大小
I.LV 動態縮放磁碟系統
下面所使用的指令適用於LVM1,但要先 umount 才能動態縮放磁碟系統.
[root@benjr ~]# umount /mnt/
動態縮放磁碟系統的指令為 e2fsadm
[root@benjr ~]# e2fsadm -L +10G /dev/volume00/LVOL1 e2fsck 1.32 (09-Nov-2002) ……….略………………. The filesystem on /dev/volume00/LVOL1 is now 6553600 blocks long. e2fsadm — ext2fs in logical volume /dev/volume00/LVOL1 successfully extended to 25 GB
檢查一下的確 "/dev/volume00/LVOL1" 變成 25 GB 了(原先的)
[root@benjr ~]# lvscan lvscan — ACTIVE "/dev/volume00/LVOL1" [25 GB] lvscan — 1 logical volumes with 25 GB total in 1 volume group lvscan — 1 active logical volumes
相對的將剛才的指令改為 "-" 就可以縮小
[root@benjr ~]# e2fsadm -L -10G /dev/volume00/LVOL1
掛載在你想要的目錄上就可以使用了
[root@benjr ~]# mount /dev/volume00/LVOL1 /mnt
LVM2不再需要將磁碟umount了可以直接放大. 所以要將指令改成.
[root@benjr ~]# lvextend -L +10G /dev/volume00/LVOL1
[root@benjr ~]# ext2online -L +10G /dev/volume00/LVOL1
II.VG 動態縮放磁碟系統
如果你的 VG 已經沒有空間,則剛剛的方法也無用武之地,所以現在要將 VG 加大.請建立 1 個 partition ,最重要的是要將他的 type 改成 8e(LVM 磁區型態代號),我們還需要將剛剛建立的 partition 做 LVM 的初始化
[root@benjr ~]# pvcreate /dev/hdi4 pvcreate — physical volume "/dev/hdi1" successfully created
將 /dev/hdi4 加入 volume00
[root@benjr ~]# vgextend volume00 /dev/hdi4 vgextend — INFO: maximum logical volume size is 2 Terabyte vgextend — doing automatic backup of volume group "volume00" vgextend — volume group "volume00" successfully extended
[root@benjr ~]# vgdisplay volume00 — Volume group — VG Name volume00 VG Access read/write VG Status available/resizable VG # 0 MAX LV 256 Cur LV 1 Open LV 0 MAX LV Size 2 TB Max PV 256 Cur PV 4 Act PV 4 VG Size 37.12 GB ……….略……………….
很明顯的 VG Size 變大了,接下來你可以再用 #e2fsadm 來動態縮放 LV 檔案系統
Step 5:移除 LV,VG
要移除 LV要先將他 umount
[root@benjr ~]# umount /mnt
接下來就可以移除 LV 了
[root@benjr ~]# lvremove /dev/volume00/LVOL1
要移除 VG 要先將他 deactive
[root@benjr ~]# vgchange -a n volume vgchange — volume group "volume00" successfully deactivated
接下來就可以移除 VG 了
[root@benjr ~]# vgremove volume00 vgremove — volume group "volume00" successfully removed
Step 6:其他常用指令
下面是LVM相關的指令,方法就不多說明了.請參考 manpage
I. PV 常用指令
pvchange pvdata pvm pvscan
pvcreate pvdisplay pvmove pv.sh
II. VG 常用指令
vgcfgbackup vgcreate vgmerge vgscan
vgcfgrestore vgdisplay vgmknodes vgscan.static
vgchange vgexport vgreduce vgsplit
vgchange.static vgextend vgremove vgwrapper
vgck vgimport vgrename
III.LV 常用指令
lvchange lvdisplay lvmchange lvmsadc lvreduce lvrename
lvcreate lvextend lvmdiskscan lvmsar lvremove lvscan
- LVM (Logical Volume Manager) – https://benjr.tw/7364
- LVM mapping – https://benjr.tw/7358
- LVM snapshot – https://benjr.tw/7353
3 thoughts on “LVM – 工具”