LVM
一、简介
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
二、原理
LVM通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。
三、特点
LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
四、相关管理工具命令
pv管理工具:
pvs:简要pv显示信息
pvdisplay:显示pv的详细信息
pvcreate /dev/DEVICE:创建pv
vg管理工具:
vgs:简要vg显示信息
vgdisplay:显示vg的详细信息
vgcreate [-s #[mMgGtT]] VolumeGroupNAME PhysicalDevicePath[PhysicalDevicePath…]:创建VG
vgextend VolumeGroupNAME PhysicalDevicePath[PhysicalDevicePath…]:扩展VG
vgreduce VolumeGroupNAME PhysicalDevicePath[PhysicalDevicePath…]:缩减VG
注意:对VG做减法时,先做pvmove:将需要移除的pv上的pe先移到同一卷组中其他pv上
vgremove :移除VG
lv管理工具:
lvs:简要LV显示信息
lvdisplay:显示LV的详细信息
lvcreate -L #[mMgGtT] -n NAME VolumeGroup:创建LV
lvremove /dev/VG_NAME/LV_NAME:移除LV
扩展逻辑卷:
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
-L #:扩展到#大小;
-L +#:扩展了#大小;
resize2fs /dev/VG_NAME/LV_NAME:重新定义文件系统的大小
缩减逻辑卷:
umount /dev/VG_NAME/LV_NAME:卸载文件系统
e2fsck -f /dev/VG_NAME/LV_NAME :文件系统的强制检测和修复
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]:缩减逻辑边界
lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME:缩减LV大小
mount
快照:snapshot
lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name
五、实验
实验目的:熟悉LV创建,扩展和缩减的流程及相关命令。试验中我们用/dev/md5、/dev/sdf1、/dev/sdg 来完成LVM实验。
步骤:1、创建PV:pvcreate /dev/md5 /dev/sdf1 /dev/sdg(NOTE:此实验中的/dev/md5在上一个实验中被创建且挂载,需要先卸载才能进行PV的创建否则会报错)
2、分别用pvs和pvdisplay来查看刚刚创建的PV信息
3、创建VG:vgcreate vg0 /dev/md5 /dev/sdf1 /dev/sdg
4、用vgdisplay来查看刚刚创建的VG信息
主要信息说明:VG Name VG的名称
VG Size VG的总大小
PE Size PE的大小,默认为4MB
Total PE PE的总数量,5114 x 4MB = 19.98GB
Free PE / Size 剩余空间大小
5、创建大小为5G的LV:lvcreate -L 5G -n lv0 vg0
6、用lvdisplay来查看刚刚创建的LV信息
主要信息说明:LV PATH LV的路径,全名
LV NamE LV的名称
VG NAME 所属的VG
LV SIZE LV的总大小
7、创建LV后再使用命令查看VG情况,此时VFree的大小减少了5G分给了刚刚创建的LV
8、对刚刚创建的lv0格式化:mkfs.ext4 /dev/vg0/lv0
9、在/下创建/testlv目录,并将格式化后的lv0挂载上去
10、将lv0信息写入配置文件/etc/fstab
11、至此,lv0的创建过程结束,下面对创建好的lv0进行扩容,要求扩容到10G
# lvextend -L10G /dev/vg0/lv0
# resize2fs /dev/vg0/lv0
12、查看磁盘信息,发现已经扩容到10G
13、下面对lv0进行缩减,要求缩减到2G,注意:对lv进行缩减时需要离线操作,否则容易出现问题
首先,我们需要卸载lv0:umount /dev/vg0/lv0
然后,强制检查文件系统,确认没有坏块:e2fsck -f /dev/vg0/lv0
接着,缩小文件系统大小到2G:resize2fs /dev/vg0/lv0 2G
最后,缩减lv大小到2G并挂载:# lvreduce -L 2G /dev/vg0/lv0
# mount /dev/vg0/lv0 /testlv/
14、lv0缩减成功
原创文章,作者:Net18-天津-康康,如若转载,请注明出处:http://www.178linux.com/14724