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@unsvr root]# 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@unsvr root]# 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@unsvr root]# 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@unsvr root]#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@unsvr root]# 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@unsvr root]# 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@unsvr root]# 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@unsvr root]# 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@unsvr root]# 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@unsvr root]# lvdisplay /dev/volume00/LVOL1
--- Logical volume ---
LV Name /dev/volume00/LVOL1
VG Name volume00
LV Write Access read/write
..........略...................

最後, 我們把這個利用lv模式建立的分割區格式化就可以使用了.:

[root@unsvr root]# 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@unsvr root]#mount /dev/volume00/LVOL1 /mnt

Step 4:動態縮放VG,LV磁碟系統大小
I.LV 動態縮放磁碟系統
下面所使用的指令適用於LVM1,但要先 umount 才能動態縮放磁碟系統.
[root@unsvr root]# umount /mnt/
動態縮放磁碟系統的指令為 e2fsadm
[root@unsvr root]# 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@unsvr root]# 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@unsvr root]#e2fsadm -L -10G /dev/volume00/LVOL1
掛載在你想要的目錄上就可以使用了
[root@unsvr root]#mount /dev/volume00/LVOL1 /mnt

LVM2不再需要將磁碟umount了可以直接放大. 
所以要將指令改成
[root@unsvr root]# lvextend -L +10G /dev/volume00/LVOL1
[root@unsvr root]# ext2online -L +10G /dev/volume00/LVOL1

II.VG 動態縮放磁碟系統
如果你的 VG 已經沒有空間,則剛剛的方法也無用武之地,所以現在要將 VG 加大.
請建立 1 個 partition ,最重要的是要將他的 type 改成 8e(LVM 磁區型態代號)

我們還需要將剛剛建立的 partition 做 LVM 的初始化
[root@unsvr root]# pvcreate /dev/hdi4
pvcreate -- physical volume "/dev/hdi1" successfully created
將 /dev/hdi4 加入 volume00
[root@unsvr root]# 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@unsvr root]# 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@unsvr root]# umount /mnt
接下來就可以移除 LV 了
[root@unsvr root]# lvremove /dev/volume00/LVOL1
要移除 VG 要先將他 deactive 
[root@unsvr root]# vgchange -a n volume
vgchange -- volume group "volume00" successfully deactivated
接下來就可以移除 VG 了
[root@unsvr root]# 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

完整版內容請參考 http://benjr.tw/?q=node/55

阅读更多
换一批

没有更多推荐了,返回首页