LVM Logical Volume Manager 逻辑卷管理
LVM – Logical Volume Manager
LVM 就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。
四个概念
- PE (Physical Extend) 物理拓展
- PV (Physical Volume) 物理卷
- VG (Volume Group) 卷组
- LV (Logical Volume) 逻辑卷
特点
LVM 最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。我们如果新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性!
工作原理
- 物理磁盘被格式化为 PV,空间被划分为一个个的 PE
- 不同的PV加入到同一个 VG 中,不同 PV 的 PE 全部进入到了 VG 的 PE 池内
- LV 基于 PE 创建,大小为 PE 的整数倍,组成 LV 的 PE 可能来自不同的物理磁盘
- LV 现在就直接可以格式化后挂载使用了
- LV 的扩充缩减实际上就是增加或减少组成该 LV 的 PE 数量,其过程不会丢失原始数据
操作
查看
-
查看 PE 的大小 (pes == pescan)
pes
pedisplay
-
查看物理卷
pvs
pvdisplay
-
查看卷组
vgs
vgdisplay
-
查看逻辑卷
lvs
lvdisplay
-
查看磁盘分区
fdisk -L
创建
-
创建物理卷
pvcreate 物理卷 [root@localhost ~]# pvcreate /dev/hda{6,7,8,9} Physical volume "/dev/hda6" successfully created Physical volume "/dev/hda7" successfully created Physical volume "/dev/hda8" successfully created Physical volume "/dev/hda9" successfully created
- 物理卷:指定要创建的物理卷对应的设备文件名
-
创建卷组
vgcreate 卷组名 物理卷列表 [root@localhost ~]# vgcreate vg1000 /dev/sdb1 /dev/sdb2 # 创建卷组 "vg1000" Volume group "vg1000" successfully created
- 卷组名:要创建的卷组名称
- 物理卷列表:要加入到卷组中的物理卷列表
-
创建逻辑卷
lvcreate -n 逻辑卷 -L 大小 卷组名 [root@localhost ~]# lvcreate -n lvol0 -L 100G vg1000 # 创建大小为 100G 的逻辑卷 Logical volume "lvol0" created
- 逻辑卷:指定要创建的逻辑卷名称
- 卷组名:VG 卷组名称
- 创建成功后,新的逻辑卷 “lvol0”,将通过设备文件
/dev/vg1000/lvol0
进行访问
-
格式化
mkfs.xfs 逻辑卷完整路径 [root@localhost ~]# mkfs.xfs /dev/vg1000/lvol0
-
挂载
mount 逻辑卷完整路径 挂载点 [root@localhost ~]# mount /dev/vg1000/lvol0 /data
- 也可以使用
/etc/fstab
进行挂载
- 也可以使用
逻辑卷删除
-
卸载
umount -v 逻辑卷完整路径 [root@localhost ~]# umount -v /dev/vg1000/lvol0 /dev/vg1000/lvol0 umounted
或者
umount -v 挂载点 [root@localhost ~]# umount -v /data /data umounted
-
删除逻辑卷
lvremove 逻辑卷 [root@localhost ~]# lvremove /dev/vg1000/lvol0 # 删除逻辑卷"lvol0" Do you really want to remove active logical volume "lvol0"? [y/n]: y # 确认删除 Logical volume "lvol0" successfully removed
- 逻辑卷:指定要删除的逻辑卷
-
删除卷组
vgremove 卷组 [root@localhost ~]# vgremove vg1000 # 删除卷组 "vg1000" Volume group "vg1000" successfully removed
- 卷组:指定要删除的卷组名称
-
删除物理卷
pvremove 物理卷 [root@localhost ~]# pvremove /dev/sdb2 # 删除物理卷 Labels on physical volume "/dev/sdb2" successfully wiped
- 物理卷:指定要删除的物理卷对应的完整路径设备文件名
逻辑卷扩展
-
扩展物理卷
相当于创建物理卷
-
扩展卷组
vgextend 卷组 物理卷列表 [root@localhost ~]# vgextend vg2000 /dev/sdb2 # 将物理卷 "/dev/sdb2" 加入卷组 "vg2000" Volume group "vg2000" successfully extended
- 卷组:指定要操作的卷组名称
- 物理卷列表:指定要添加到卷组中的物理卷列表
-
扩展逻辑卷
lvextend -L 扩展量 逻辑卷 [root@localhost ~]# lvextend -L +100M /dev/vg1000/lvol0 # 为了解决增加 100M 空间 Extending logical volume lvol0 to 300.00 MB Logical volume lvol0 successfully resized
- 逻辑卷:指定要扩展空间的逻辑卷
- -L:指定逻辑卷的大小,单位为
kKmMgGtT
-
刷新文件系统 (非
xfs
格式)resize2fs 设备文件名 [root@localhost ~]# resize2fs /dev/vbirdvg/vbirdlv resize2fs 1.39 (29-May-2006) Filesystem at /dev/vbirdvg/vbirdlv is mounted on /mnt/lvm; on-line resizing Performing an on-line resize of /dev/vbirdvg/vbirdlv to 2191360 (4k) blocks. The filesystem on /dev/vbirdvg/vbirdlv is now 2191360 blocks long.
- 设备文件名:要调整大小的文件系统所对应的设备文件名
-
刷新文件系统 (
xfs
格式)XFS 是一个开源的(GPL)日志文件系统,最初由硅谷图形(SGI)开发,现在大多数的 Linux 发行版都支持。事实上,XFS 已被 CentOS/RHEL 7 采用,成为其默认的文件系统。在其众多的特性中,包含了 “在线调整大小” 这一特性,使得现存的 XFS 文件系统在已经挂载的情况下可以进行扩展。然而,对于XFS文件系统的缩减却还没有支持。
要扩展一个现存的 XFS 文件系统,你可以使用命令行工具
xfs_growfs
,这在大多数Linux发行版上都默认可用。由于 XFS 支持在线调整大小,目标文件系统可以挂在,也可以不挂载。虽然 XFS 文件系统只支持增加,不支持减少。但并不是说 XFS 文件系统不能减小,只是减小后,需要重新格式化才能挂载。
xfs_growfs info /dev/centos/root # 检查数据块大小和数量 xfs_growfs /dev/centos/root -D 1986208 # 将 XFS 文件扩展到 1986208 xfs_growfs /dev/centos/root # 自动扩展 XFS 文件系统到最大的可用大小
注: 一般情况下使用
xfs_growfs
自动扩展 XFS 文件系统大小即可
逻辑卷缩小
由于 xfs
系统减小后需要格式化才能挂载使用,应尽量避免缩小 xfs
文件系统的操作,所以不在此讨论 xfs
文件系统的缩小。
注: 减小需谨慎,文件系统的减小后大小一定要和逻辑卷最终大小相等
-
卸载
umount -v 逻辑卷完整路径 [root@localhost ~]# umount -v /dev/vg1000/lvol0 /dev/vg1000/lvol0 umounted
或者
umount -v 挂载点 [root@localhost ~]# umount -v /data /data umounted
-
减少文件系统
resize2fs 设备文件名 减小到的大小
- 设备文件名:要调整大小的文件系统所对应的设备文件名
-
减少逻辑卷大小
lvreduce -L -减少量的大小 逻辑卷 [root@localhost ~]# lvreduce -L -50M /dev/vg1000/lvol0 # 将逻辑卷的空间大小减少 50M ......省略部分输出内容...... Do you really want to reduce lvol0? [y/n]: y # 确认操作 Reducing logical volume lvol0 to 252.00 MB Logical volume lvol0 successfully resized
- 逻辑卷:指定要操作的逻辑卷对应的设备文件
-
挂载使用
mount 逻辑卷完整路径 挂载点 [root@localhost ~]# mount /dev/vg1000/lvol0 /data
- 也可以使用
/etc/fstab
进行挂载
- 也可以使用