【摘 要 】硬盘空间伴随着用户的长期使用和怎么写作器的需求增大,难免会有空间不足的情况发生.做为管理人员,既要保证原有数据不受破坏,又要动态增大或减少某些分区的容量.本文从Linux的LVM动态扩容和缩容两方面探讨方法和过程.
【关 键 词 】Linux;LVM;LV;动态
1.引言
磁盘和文件系统的规划、管理是系统管理员的重要工作之一.Linux的磁盘分区和文件系统在规划阶段就要求根据需求建立,但评估和分配的结果往往不能适应后期容量的要求.利用Linux的LVM方案,可以比较从容地应对磁盘空间动态调整的需求.磁盘空间的调整有两个相反的过程,一个是扩容,一个是缩容.但/boot分区比较特殊,其中存放的是引导文件,不允许基于LVM创建.
2.LVM
LVM(Logical Volume Manager)是指逻辑卷管理[1、2],它是建立在硬盘和分区之上,文件系统之下的一个逻辑层.一般过程是首先将普通分区或整个硬盘进行物理卷(PV)的创建,然后在PV上建立卷组(VG),再在VG上划分出逻辑卷(LV).三者之间的关系(以两块物理盘为例)如图1所示.
创建LV的基本步骤如下.
(1)使用fdisk工具创建分区并修区的类型为“8e”.
(2)创建PV#pvcreate设备名1[设备名2等]
#pvcreate/dev/sdb1/dev/sdc1
创建基于PV的VG,指定VG名称.
创建基于VG的LV,指定LV的名称及大小.
(5)创建后的LV,要挂载后才能使用.而挂载之前,要格式化逻辑卷.
挂载后的检测:
3.LV的动态增容
LV建立在VG之上,对于已经建立的LV,可以根据VG的大小动态增容.动态增容可以在线完成,不需要卸载设备、不需要停任何怎么写作,也不需要重启系统.
增容的命令
(2)更新系统识别的文件系统大小.#resi ze2fs/dev/VG名/LV名
增容后需要更新文件系统的大小后才能查看到挂载点的容量变化.
4.LV的缩容
逻辑卷可增容同样也可缩容,但应在缩小LV之前首先缩小文件系统,否则将可能导致数据丢失.与动态增容不同,一般不建议对LV进行容量的缩减,而且这种缩减并不支持动态缩容.使用lvreduce命令不当时容易造成现有数据的破坏,如果执行过程中遇到一些错误提示,则可能就需要重新格式化文件系统.
4.1 进行缩容之前
在进行缩容之前,要明确的几个问题.
(1)缩容后的大小不能随意指定,要至少满足已经使用空间的需求.
(2)resize2fs只能缩小umount的非在线文件系统.
(3)收缩LV有可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认.
(4)与增容不同,缩容要求先缩小文件系统的大小,再缩小LV的大小.
4.2 缩容基本步骤
(1)卸载挂载设备:#umount挂载设备名
指令:# umount/stu
(2)强制检查文件系统:#e2fsck-f LV名
指令:# e2fsck-f/dev/hzbgroup/stu
(3)调整文件系统的大小:#resize2fs/dev/VG名/LV名指定大小
指令:# resize2fs/dev/hzbgroup/stu 4G
(4)缩减LV的大小
可以使用lvresize重新指定LV的大小.
命令格式是:
#lvresize-size指定大小/dev/VG名/LV名
//这里指定的大小要与resize2fs命令中的指定大小保持一致
# lvresize-size 4G/dev/hzbgroup/stu
WARNING:Reducing active logical volume to 4.00 GB等
Do you really want to reduce stu?[y/n]:y//这里要确定(y)进行缩减操作
Reducing logical volume stu to 4.00 GB等
也可以使用lvreduce指令缩小LV指定大小的空间.
命令格式是:#lvreduce-L-大小/dev/VG名/LV名
缩容后的检测:需要重新挂载再检测.
5.小结
LVM是Linux系统默认的方式,它提高了磁盘管理的灵活性,使用起来很方便.LVM方式下的动态增容是在线增加,缩容则是离线缩减.调整好LV的大小后,一般要求设置开机后的自动挂载,通过修改/etc/fstab文件可以实现.上例中,可添加一行: