1,635 瀏覽數

LVM-工具

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)
LVM-mapping
LVM-snapshot

3 個網友的想法 “LVM-工具

  1. 自動參照通知: 放大縮小 Linux 磁區 – Benjr.tw

  2. 自動參照通知: RHEL5 – LVM(Logical Volume Manager) | Benjr.tw

  3. 自動參照通知: LVM(Logical Volume Manager) | Benjr.tw

發表迴響