天天看点

Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)

一、逻辑卷

pv:物理卷,被处理过的物理分区;

pe :物理扩展,设定存储最小单元;

vg :物理卷组,捆绑pv到一个组中;

lv :逻辑卷,分配最终的使用设备;

  • LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。Linux用户安装Linux操作系统时遇到的一个常见问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。

    普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。

    随着Linux的逻辑卷管理功能的出现,用户在无需停机的情况下可以方便地调整各个分区大小LVM动态管理容量。

  • 使用 fdisk /dev/vdb 命令,已经建立好一个物理分区,并挂载到 /westosdir 目录;

    /westosdir 目录挂载的是数据目录,当数据不断写入数据目录,可能会使数据目录的容量填满;

    解决方法:在数据目录上挂载一个可以被拉伸的设备。当真正的物理设备无法被拉伸,只能通过建立物理分区,作LVM

    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    选择分区类型为8e(LVM)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    分区建立完成,大小为1G
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    监控建立过程:watch -n 1 “pvs;echo ====;vgs;echo =====;lvs;echo =====;df -h /westosdir”
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
  • lvm设备建立

    pvcreate /dev/vdb1:创建pv;

    vgcreate westosvg -s 2M /dev/vdb1 :创建vg, -s:设定pe(存储最小单元)大小为2M。

    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    可以看到已经pv,vg建立成功
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    显示LVM卷组的信息,此时 pe 为2M
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    删除创建好的vg ,不指定 pe 大小;(默认vg最小存储单元大小为4M)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)

    创建lvm ,-L指定大小 ,-n指定名称(westoslv0);

    将设备格式化

    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    可以看到创建好的LV
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    挂载设备
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)

二、lvm拉伸

  • 1.当vg中的容量充足时:

    lvextend -L 200M /dev/westosvg/westoslv0 :拉伸设备到200M

    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    此时lvm 已经被拉伸,但文件系统仍然没变
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)

    拉伸文件系统,在rhel7中可以用设备或挂载点;在rhel8.0中只能用挂载点

    (resize2fs /dev/westosvg/westoslv0 :当文件系统为ext时使用此命令)

    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)

    2.当vg中的容量不足时:

    无法拉伸到1500M,因为建立的分区大小只有1G

    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    所以还需要再划分一个分区
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)

    创建pv、vg;

    vgextend:动态扩展LVM卷组,向卷组中添加物理卷来增加卷组的容量

    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    此时创建好了两个pv,第一个空余820M、第二个完全空余
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    此时就可以拉伸设备到1500M
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    拉伸文件系统
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)

三、lvm缩减

  • LVM支持缩减,但XFS文件系统不支持缩减,所以先卸载 /westosdir ,然后设定/dev/westosvg/westoslv0 为mkfs.ext4 使其可以缩减;
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    设定完成之后重新挂载到 /westosdir 目录;(虚拟设备(用软件制作出来的设备):显示在/dev/mapper )
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)

    拉伸设备;

    拉伸ext4文件系统。

    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
  • 缩减步骤

    首先卸载设备

    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    e2fsck 检测设备上有多大的数据
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    将ext4文件系统缩减到500M,之后重新挂载
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    缩减lv
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    由于/dev/vdb2 分区完全空闲
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    通过删除LVM卷组中的物理卷 /dev/vdb2 来减少卷组容量
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)

    vgextend:动态扩展LVM卷组,向卷组中添加物理卷来增加卷组的容量;

    重新将/dev/vdb2 物理卷添加到卷组中;

    无法删除删除LVM卷组中的物理卷 /dev/vdb21,因为该卷组还在使用

    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    pvmove命令的作用可以将源物理卷 /dev/vdb1 上的物理盘区移动到 /dev/vdb2 物理卷
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    此时 /dev/vdb1 物理卷组westosvg删除成功
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    删除物理卷
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)
    Linux高级存储管理【1】(lvm设备建立、拉伸、缩减)