您的位置:首页 > 其它

lvm的扩容及缩小

2009-07-01 16:43 435 查看
LVM是Logical Volume Manager(逻辑卷管理)的简写,它由HeinMauelshagen在Linux2.4内核上实现。与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)。LVM也允许按用户组对存储卷进行管理,允许管理员用更直观的名称(如"sales'、'development')代替物理磁盘名(如'sda'、'sdb')来标识存储卷。
LVM的结构如下:
hda1 hdc1 sdc (PV:s 物理卷,一般为分区或整个硬盘)
\ | /
\ | /
diskvg (VG 卷组由物理卷组成)
/ | \
/ | \
usrlv rootlv varlv (LV:s 逻辑卷在卷组上创建)
| | |
ext2/3 reiserfs xfs (建立在逻辑卷上的文件系统)

LVM的扩容

接好盘之后执行一下fdisk -l 会列出盘的识别的设备名例如是/dev/sdc 的一个设备
然后做如下操作:
1)pv创建
#pvcreate /dev/sdc

2)把pv加入到vg中,以加入vg0为例。
#vgcreate vg0 /dev/sda

3) LVM提供了方便调整逻辑卷大小的功能,扩展逻辑卷大小的命令是“lvextent”

例如,将“lvtest2”的空间大小调整到 160M,操作如下:
# lvextend -L 160M /dev/vgtest/lvtest2
Extending logical volume lvtest2 to 160.00 MB
Logical volume lvtest2 successfully resized
也可以在原来的基础增加相应的大小,如下:
# lvextend -L +40M /dev/vgtest/lvtest2
Extending logical volume lvtest2 to 160.00 MB
Logical volume lvtest2 successfully resized
逻辑卷扩展后并不会马上生效,需要使用“resize2fs”命令重新加载逻辑卷的大
小,该命令只针对ext2/ext3的文件系统(若是 reiserfs的文件系统,则使用
“resize_reiserfs”命令),如果该逻辑卷正在使用中,就应该先将该逻辑卷卸载
后再执行 “resize2fs”命令,操作如下:
# umount /dev/vgtest/lvtest2
# resize2fs /dev/vgtest/lvtest2
resize2fs 1.35 (28-Feb-2004)
The filesystem is already 163840 blocks long. Nothing to do!
# mount /dev/vgtest/lvtest2 /mnt/lvtest2/
以上这些操作可以通过“ext2online”命令直接来实现,这样就不用做卸载逻辑卷等
操作了,如下:
# ext2online /dev/vgtest/lvtest2
ext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5b

方法2:

1.对新硬盘分区建立物理卷
pvcreate /dev/sdc
2.把新物理卷加入到原有的卷组中
vgextend VolGroup00 /dev/sdc
3.扩展分区前先卸载(例如您要扩展的是/opt)
umount /opt
4.扩展硬盘的空间到原有的逻辑卷中(比如您的sdc是120的盘)
e2fsadm -L +120G /dev/VolGroup/LogGroup02
5.重新挂载分区
mount /opt
即可完成扩容。

逻辑卷可扩展同样也可缩小,lvm的缩小方法如下:
1、如果单纯的缩小LV,以vg0中的lv1为例,方法如下:
缩小lv可能导致数据丢失,先备份数据。

首先卸载lv
# umount /dev/vg0/lv1

减小lv 以减少1G为例
# lvreduce -L-1G /dev/vg0/lv1
WARNING: Reducing active logical volume to 1.00 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv1? [y/n]: y
Reducing logical volume lv1 to 1.00 GB
Logical volume lv1 successfully resized

逻辑卷减小后并不会马上生效,需要使用“resize2fs”命令重新加载逻辑卷的大小,该命令只针对ext2/ext3的文件系统(若是eiserfs的文件系统,则使用“resize_reiserfs”命令),如果该逻辑卷正在使用中,就应该先将该逻辑卷卸载
后再执行 “resize2fs”命令,操作如下:
# umount /dev/vg0/lv1
# resize2fs /dev/vg/lv1
resize2fs 1.35 (28-Feb-2004)
The filesystem is already 163840 blocks long. Nothing to do!
# mount /dev/vg0/lvt1 /test/
以上这些操作可以通过“ext2online”命令直接来实现,这样就不用做卸载逻辑卷等
操作了,如下:
# ext2online /dev/vg0/lv1
ext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5b

但是空闲的这个空间可能在一个pv的一部分这样是不能动态的重新把这部分空间分给另一个vg的,一个pv是不能同属于多个vg但可以把这个空间在lv之间划分。

2、想把这个vg上的空间化到另一个vg中,需要缩小lv的时候缩小的空间要是中的一个pv的大小,然后把其中的pv重新划到另一个 vg 中。
例如中的一个pv的大小是10G, 名称为pv2,对应的设备是sdc1,把他从 /vg0/lv1
中挪到vg1中其过程如下:
1)、根据上面的方法减小lv

2)、把pv2移出/dev/vg0/lv1
vgreduce vg0 /dev/hdc1

注:此操作的前提是pv2上没有数据并且lvm没有在使用,并不在挂载状态。

3)、把这个pv加到vg2中
vgextend vg2 /dev/hdc1本文出自 “开始就是未来” 博客,请务必保留此出处http://desert.blog.51cto.com/779694/171837
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: