Linux系统磁盘管理之LVM逻辑卷管理器----------(If winter comes ,can spring be far behind?)
LVM逻辑卷管理器
简介
LVM的产生是因为传统的分区一旦分区好后就无法在线扩充空间,也存在一些工具能实现在线扩充空间但是还是会面临数据损坏的风险;传统的分区当分区 空间时,一般的解决办法是再创建一个更大的分区将原分区卸载然后将数据拷贝到新分区,但是在企业的生产系统往往不允许停机或者允许停机的时间很短,LVM就能很好的解决在线扩充空间的问题,而且不会对数据造成影响。
逻辑卷是一种device mapper技术,即可以将一个或者多个底层块设备组织成一个逻辑设备,从而提供动态改变大小,不停机情况下添加磁盘,快照以及备份 等功能,使得对于磁盘的管理更加方便。
Logical Volume Manager (LVM),逻辑卷管理LVM是一个多才多艺的硬盘系统工具,无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦,但是LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘,可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷,LVM并不需要重启就可以让内核知道分区的存在。
逻辑卷组成结构
从上图中可以看出,整个逻辑卷的体系分为3个层次:
底层的PV
中层的VG
最外层的LV
最底层的PV作为整个逻辑卷体系的最底层,可以理解为打上了可以被纳入逻辑卷管理体系的标签的整块磁盘或者磁盘上的某个分区;中间层的VG是逻辑卷的卷组,由一个或者多个PV组成,并且用同一标准进行分块,每一块被称为PE(Physical Extent)或者PP(Physical Partition),作为LVM的最小寻址单元;最上层的LV是从VG中划分出来的卷,并且作为设备文件,可以在其上面创建各种linux支持的文件系统。在LV层面也有一个概念LE(Logical Extent)。LE与PE一一对应。
常用LVM部署命令
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvmove | vgmove | lvmove |
扩展 | --------- | vgextend | lvextend |
缩小 | --------- | vgreduce | lvreduce |
部署xfs格式逻辑卷
1.xfs格式只能扩容,不能减小
2.xfs格式无需卸载,支持在线扩容
1、添加两块磁盘
2、让两块磁盘支持lvm技术
[root@lu~]# pvcreate /dev/sdb /dev/sdc
3、创建卷组
[root@lu~]# vgcreate meng /dev/sdb /dev/sdc
4、创建逻辑卷(切割出一个100M的逻辑卷设备)
在对逻辑卷进行切割时有两种计量单位。第一种是以容量为单位,所使用的参数为-L。例如,使用-L 150M生成一个大小为150MB的逻辑卷。
另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为4MB。例如,使用-l 37可以生成一个大小为37×4MB=148MB的逻辑卷。
[root@lu~]# lvcreate -n meng1 -L 100M meng
5、生成好的逻辑卷格式化
[root@lu~]# mkfs.xfs /dev/meng/meng1
6、挂载使用
[root@lu~]# mkdir /test1 [root@lu~]# mount /dev/meng/meng1 [root@lu~]# df -h
7、扩容至600M
[root@lu~]# lvetend -L 600M /dev/meng/meng/lv_xfs
[root@lu~]# xfs_growfs /dev/meng/lv_xfs
linux缩小逻辑卷
相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产环境中执行相应操作时,一定要提前备份好数据。另外Linux系统规定,在对LVM
逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。在执行缩容操作前记得先把文件系统卸载掉。
[root@lu~]# umount /test1/ #卸载 [root@lu~]# e2fsck -f /dev/meng/meng1 #检查系统完整性 [root@lu~]# resize2fs /dev/meng/meng1/ 200M #大小重置 [root@lu~]# lvreduce -L 200M /dev/meng/meng1 #缩小到200M [root@lu~]# mount /dev/meng/meng1 /test1/ #重新挂载使用
linux删除逻辑卷
[root@lu~]# umount /test1/ #卸载 [root@lu~]# lvremove /dev/meng/meng1 #删除逻辑卷设备 [root@lu~]# vgremove meng #删除卷组 [root@lu~]# pvremove /dev/sdb /dev/sdc #删除物理卷