1 LVM介绍
LVM(Logical Volume Manager)逻辑卷管理,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,
逻辑卷管理器的技术结构
2 LVM的优缺点
优点:
1. 文件系统可以跨多个磁盘,因此文件系统大小不会受物理磁盘的限制。
2. 可以在系统运行的状态下动态的扩展文件系统的大小。
3. 可以增加新的磁盘到LVM的存储池中。
4. 可以以镜像的方式冗余重要的数据到多个物理磁盘。
5. 可以方便的导出整个卷组到另外一台机器。
缺点:
1. 在从卷组中移除一个磁盘的时候必须使用reducevg命令(这个命令要求root权限,并且不允许在快照卷组中使用)。
2. 当卷组中的一个磁盘损坏时,整个卷组都会受到影响。
3. 因为加入了额外的操作,存贮性能受到影响。
3 LVM基础概念
1. 物理卷……PV(Physical Volume):物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
2. 卷组……VG(Volumne Group):卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个LVM系统中可以只有一个卷组,也可以拥有多个卷组。
3. 逻辑卷……LV(Logical Volume):逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。
4. 物理区域……PE(Physical Extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。
5. 逻辑区域……LE(Logical Extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
6. 卷组描述区域……VGDA(Volume Group Descriptor Area):卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。
4 LVM管理命令
PV:Physical(物理卷)
pvcreate、pvs 、pvdisplay 、pvremove、pvmove、pvscan
VG:Volume Group(卷组)
vgcreate、vgs、vgdisplay、vgremove、vgrename、vgreduce、vgextent
LV:logical Volume(逻辑卷)
lvs、lvdisplay、lvremove、lvextend、lvresize、lvscan、lvrename
功能命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay /pvs | vgdisplay /vgs | lvdisplay /lvs |
删除 | pvremove | vgremove | lvremove |
扩展 | | vgextend | lvextend |
缩小 | | vgreduce | lvreduce |
5 LVM的配置
部署逻辑卷创建过程:
1.创建物理卷, 添加物理磁盘
2.创建卷组, 添加物理卷加⼊到该卷组
3.在卷组中划分逻辑卷
操作步骤:
1、部署逻辑卷
1. 准备物理磁盘
[root@lvm ~]# lsblk |grep "sd[bcd]"
2. 将磁盘加⼊pv
[root@lvm ~]# pvcreate /dev/sdb
3. 检查pv创建情况
[root@lvm ~]# pvs
4. 创建名为datavg的卷组
vgcreate
-s 指定PE大小
[root@lvm ~]# vgcreate datavg /dev/sdb
5. 检查卷组
[root@lvm ~]# vgs
6. 查看卷组组信息
[root@lvm ~]# vgdisplay test
7. 创建逻辑卷, 分配名称, 以及⼤⼩, 指定卷组
[root@lvm ~]# lvcreate -L 200M -n data test
8. 检查逻辑卷
[root@lvm ~]# lvscan
9. 查看逻辑卷信息
[root@lvm ~]# lvdisplay /dev/test/data
10. 格式化⽂件系统
[root@lvm ~]# mkfs.xfs /dev/test/data
11. 挂载并使⽤
[root@lvm ~]# mkdir /data
[root@lvm ~]# mount /dev/test/data /data/
[root@lvm ~]# df –h
2、卷组池管理
1. 新硬盘加⼊pv
[root@lvm ~]# pvcreate /dev/sdc
2. 查看pv信息
[root@lvm ~]# pvdisplay /dev/sdc
3. 扩展卷组VG, 扩⼤VG卷组使⽤vgextend扩展
[root@lvm ~]# vgextend test /dev/sdc
4. 查看vg信息
[root@lvm ~]# vgdisplay test
5. 移除卷组VG, 移除vg组中某⼀块硬盘
[root@lvm ~]# vgreduce datavg /dev/sdb
6. 查看vg信息
[root@lvm ~]# vgdisplay test
7.数据迁移卷组VG, 同⼀卷组的磁盘才可以进⾏在线迁移
检查当前逻辑卷VG中PV使⽤情况
[root@lvm ~]# pvs
8. pvmove在线数据迁移⾄其他pv
[root@lvm ~]# pvmove /dev/sdb
9. 检查是否将sdb数据迁移⾄sdc
[root@lvm ~]# pvs
3、扩容逻辑卷
逻辑卷的扩展, 取决于vg卷中剩余多少容量, 扩展容量不能超过卷组VG
xfs扩容 lv逻辑卷
1. 增加800M分配给逻辑卷 {注意: 800M +800M 不⼀样;直接800M是扩展到800M,+800M是在原有基础+800M。}
[root@lvm ~]# lvextend -L +800M /dev/test/data
2. 刷新磁盘分区
[root@lvm ~]# xfs_growfs /dev/test/data
3. 查看磁盘大小
[root@lvm ~]# df –Th
4. ext扩容分配磁盘池中多少百分⽐给逻辑卷
[root@lvm ~]# lvextend -l +50%FREE /dev/test/nfs
[root@lvm ~]# resize2fs /dev/test/nfs
5. 查看磁盘大小
[root@lvm ~]# df –Th
4、缩⼩逻辑卷
ext4 离线减小逻辑卷
1. 取消挂载/dev/test/nfs
[root@lvm ~]# umount /dev/test/nfs/
2. 扫描信息 (把空的数据补齐)
[root@lvm ~]# e2fsck -f /dev/test/nfs
3. 减小文件系统到600M
[root@lvm ~]# resize2fs /dev/test/nfs 600M
4. 减小逻辑卷为600M
[root@lvm ~]# lvreduce -L 600M /dev/test/nfs
5. 重新挂载磁盘,并查看挂载信息
[root@lvm ~]# mount /dev/test/nfs /nfs/
[root@lvm ~]# df –Th
xfs只能扩大文件系统大小,不能减小文件系统大小。
5、删除逻辑卷
当生产环境中想要重新部署LVM或者不再需要使用LVM时,则需要执行LVM的删除操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。若你写入自动挂载配置文件中,首先取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。
1. 删除逻辑卷设备,需要输入y来确认操作
[root@lvm ~]# lvremove /dev/test/nfs
2. 删除卷组,此处只写卷组名称即可,不需要设备的绝对路径。
[root@lvm ~]# vgremove test
3. 删除物理卷设备。
[root@lvm ~]# pvremove /dev/sdb /dev/sdc
4. 在上述操作执行完毕之后,再执行lvdisplay、vgdisplay、pvdisplay命令来查看LVM的信息时就不会再看到信息了(前提是上述步骤的操作是正确的)。
[root@lvm ~]# pvdisplay /dev/sdb
[root@lvm ~]# vgdisplay test
[root@lvm ~]# lvdisplay /dev/test/nfs