转自:http://blog.chinaunix.net/uid-20696246-id-1892246.html
http://lzw.me/a/linux-lvm.html
本文介绍了LVM的概念、作用以及使用方法,旨在帮助您了解LVM,并能够使用LVM对您的磁盘系统进行灵活的管理。
一、 什么是LVM
二、LVM的作用
三、LVM相关基本概念
四、安装LVM
五、创建和管理LVM
VG Name lvm_test
PV Size 1.53 GB / not usable 868.00 KB
Allocatable yes
PE Size (KByte) 4096
Total PE 392
Free PE 392
Allocated PE 0 ( 表示未被使用)
PV UUID jAiils-1vRz-Td9k-1AiD-kIJs-191z-YMz09H
Rounding size (125 extents) up to stripe boundary size (126 extents)
Logical volume "test" created
Logical volume "test" successfully removed
Logical volume test successfully resized
Logical volume test successfully resized
ext2online v1.1.18 – 2001/03/18 for EXT2FS 0.5b
/dev/mapper/VolGroup00-LogVol01 16G 11G 3.6G 76% /
/dev/sda1 494M 18M 451M 4% /boot
none 506M 0 506M 0% /dev/shm
/dev/mapper/lvm_test-test 13G 63M 13G 1% /mnt/test
#e2fsck -f /dev/lvm_test/test
# resize2fs /dev/lvm_test/test 11G
# lvreduce -L -1.992G /dev/lvm_test/test (少2个PE的大小)
# resize2fs /dev/lvm_test/test (通过此命令确认是否文件系统大小与收缩后的逻辑卷大小匹配)
# mount /dev/lvm_test/test /mnt/test
#lvscan
#lvs -o +devices
LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0)
LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92)
test lvm_test -wi-ao 52.00M /dev/sdb1(0)
LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0)
LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92)
test lvm_test -wi-ao 52.00M /dev/sdc1(0)
Logical volume "test" successfully removed
VolGroup00 1 2 0 wz–n- 3.88G 0 /dev/sda2(0)
VolGroup00 1 2 0 wz–n- 3.88G 0 /dev/sda2(92)
lvm_test 2 2 0 wz–n- 1016.00M 896.00M pvmove0(0)
lvm_test 2 2 0 wz–n- 1016.00M 896.00M /dev/sdb(0),/dev/sdc(0)
Failure parsing mirror status fraction: 1 core
Failure parsing mirror status fraction: 1 core
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0)
LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92)
[pvmove0] lvm_test p-C-ao 60.00M /dev/sdb /dev/sdb(0),/dev/sdc(0)
test lvm_test -wI-a- 60.00M pvmove0(0)
六、LVM操作的相关命令
五、 总结
根据上面的讨论可以看到,LVM具有很好的可伸缩性,使用起来非常方便。可以方便地对卷组、逻辑卷的大小进行调整,更进一步调整文件系统的大小,还能方便的进行数据迁移,数据完整性保护。如果希望了解更多信息,请参考LVM-HOWTO。
ps:
关于卷迁移的整理
最近在学习HP UNIX,发现HP UNIX中卷的迁移过程和其它的如LINUX,AIX有些不同,所以抽空将三种操作系统的操作步骤做了个整理:
###
linux
###
在redhat Linux中LVM信息是同时保存在磁盘上和/etc/lvm.conf里,可以通过vgexport命令来实现vg的迁移。
vgexport只是把/etc/lvm.conf中关于这个VG的信息删除,而不会更改磁盘上的任何数据。磁盘挂到新的机器
上后,只需要修改/etc/lvmconf,这个可以通过vgimport完成。
源端:
1,将源端文件系统umount
umount /test
2,将lv和lv inactive
lvchange -an /dev/vg_test/lv_test
vgchange -an vg_test
3,导出vg
vgexport vg_test
目标端:
1,用kudzu检测新的盘
2,导入vg
vgimport vg_test
3,激活vg
vgchange -ay vg_test
4,mount文件系统
###
HP UNIX
###
在HP UNIX上,vgexport只是在/etc/lvmtab里把相关vg的entry删除,重新vgimport就会重新生成,map文件除了能记录
原来lv的名字之外没有任何用处,如果不用map,vgimport后所有lv会使用默认值如:lvol1,lvol2…但不会影响vg中的数据。
源端:
1,将源端文件系统umount
umount /test
2,将vg inactive
vgchange –a n vg_test
3,在源端产生map文件
vgexport -p -s -m /tmp/vg_exp_bak/vg_test.map /dev/vg_test
4,将map文件拷贝到目标端
可以通过在源端export vg 前后通过 strings /etc/lvmtab观察发生的变化.
目标端:
1,用ioscan检测新的盘并识别
ioscan -fnCdisk
insf -e
2,建立vg的相关信息
mkdir /dev/vg_test
mknod /dev/vg_test/group c 64 0×100000
3,import vg
vgimport -s -m /tmp/vg_exp_bak/vg_test.map /dev/vg_test
4,激活vg
vgchange -a y /dev/vg_test
5,挂载文件系统
###
AIX
###
在AIX中,exportvg就是在系统中把这个vg的定义从ODM中删除,在vg上的lv、fs、pv的定义也都从系统中删除
了.这些信息都保存这个vg的VGDA中.importvg就是系统从这个vg的VGDA中读取这个vg的信息,把它们加入到系
统当中,这样系统就可以正常使用这个vg了.两个命令都不对VG做操作的而是对ODM库的操作.
源端:
1,将vg inactive
varyoff testvg
2,导出vg(从ODM中导出vg)
exportvg testvg
目标端:
1,用cfgmgr检测新的盘并识别
lspv
lsdev –Cc disk
cfgmgr
2,导入vg
importvg testvg
3,挂载文件系统
最后记住,在确认目标端正常后,将源端将磁盘的信息清除掉。