调整逻辑卷空间大小和缩小空间时需要谨慎,因为它有可能导致数据丢失。

扩容前,搞清楚自己的分区格式:
xfs   ------------ ext2、ext3、 ext4
# df -hT
或者
# mount | grep /dev/mapper/centos-root(分区关键字)


特别注意的是:

  • resize2fs 更新文件系统命令 针对的是ext2、ext3、ext4文件系统
  • xfs_growfs 更新文件系统命令 针对的是xfs文件系统

一、 创建逻辑卷

要想理解好LVM的原理,我们必须首先要掌握3个基本的逻辑卷概念。

PV  (Physical Volume)  物理卷

VG  (Volume Group)  卷组

LV  (Logical Volume)  逻辑卷

顺序不能乱 : 底层物理设备 ------> 创建成 PV -------> 创建 VG --------> 创建成LV ------> 格式化挂载使用

思路

  • 物理磁盘
  • 创建 PV
  • 创建 VG
  • 创建 LV
  • 格式化挂载使用

1. 准备物理磁盘

# sdb
#路径 /dev/sdb

2. 创建 PV

# pvcreate /dev/sdb
创建物理卷

3. 创建 VG

# vgcreate vg01 /dev/sdb
创建卷组vg01, 并把物理卷添加到卷组中

4. 创建 LV

#  lvcreate  -l 100%vg  -n lv01  vg01
创建大小为卷组100%空间的 名字为lv01  来源卷组为vg01 的逻辑卷
# 或
# lvcreate  -L 3G  -n lv01  vg01
创建名字为lv01的逻辑卷 -L 大小 3G  来源卷组vg01

-n指定逻辑卷的名字-L指定逻辑卷的大小-l指定逻辑卷的大小( 根据PE 指定大小,PE默认4M , 也可以根据百分比)-l 100%vg # 分配卷组空间百分比-l 100%free # 分配剩余空间百分比-l 100 # 分配空间为100PE ,默认400M空间,(PE 大小可以更改,在创建卷组时 -s 8M 指定

5. 格式化挂载使用

逻辑卷最终在系统中保存为以下两个路径:

/dev/卷组名/逻辑卷

/dve/mapper/卷组名-逻辑卷

格式化
# mkfs.xfs /dev/vg01/lv01

挂载使用
# mount /dev/vg01/lv01 /app     # 临时挂载,重启后丢失

写到文件中,永久挂载
# cat /etc/fstab

/dev/vg01/lv01  /app                         xfs    defaults        0 0

查看简单查看详细查看逻辑卷lvslvdisplay卷组vgsvgdisplay物理卷pvspvdisplay

------------------------------------------创建逻辑卷到此(完结)----------------------------------------------------------------

二、 扩展逻辑卷

extend命令 用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。

使用lvextend命令动态在线扩展磁盘空间,整个空间扩展过程对于应用程序来说是完全透明的。

首先查看卷组(VG剩余空间),如果足够,直接扩展逻辑卷。

  • 如果卷组有足够的剩余空间,可以直接从第四步开始操作

完整思路:

  • 添加物理磁盘
  • 创建 pv (创建物理卷)
  • 扩容 vg (扩容卷组)
  • 扩容 lv (扩容逻辑卷)
1. 准备物理磁盘(略)

2. 创建物理卷
# pvcreate /dev/sdc

3. 扩容卷组
# vgextend vg01 /dev/sdc

4. 扩容逻辑卷
# lvextend -L +5G /dev/mapper/vg01-lv01
# 在原有的容量大小上面 +5G

5. xfs_growfs /dve/mapper/vg01-lv01
# 更新文件系统

6. df -h 
# 查看挂载目录大小变化

-------------------------第 4 步 扩展------------------------

lvextend -L 5G ( 指定大小数字前面带 + 号 和不带 + 号 的区别)
+5 : 在原有的基础上增加容量
5 :(不带 +) 指定总空间大小

案例:

    不建议 缩小空间

    三、 缩小逻辑卷 ext4

    ——— lvreduce

    重要提示: 减小空间操作有风险!请备份好数据!!

    # xfs不支持缩容 , 如要尝试,请备份数据
    
    # 虽然xfs文件系统只支持增加,不支持减少。但并不是说在xfs系统文件下不能减小,只是减小后,需要重新格式化才能挂载上。这样原来的数据就丢失了!
    
    - 以下操作为 ext2-4 格式文件系统

    离线裁剪逻辑卷容量

    做好数据备份 通过一些 备份方法对数据进行备份

    思路:

    1. 备份文件
    2. 卸载逻辑卷
    3. 先剪裁文件系统
    4. 剪裁逻辑卷
    5. 查看
    6. 从新挂载使用
    • 卸载逻辑卷
    # umount  /root/stu1
    • 先裁剪文件系统(同步文件系统)

    区别 扩容 操作中,先扩容再同步文件系统,裁剪逻辑卷是先 裁剪文件系统

    # resize2fs  /dev/vg01/lv01 1G   
    ---裁剪到 1G 的容量
    
    #  e2fsck  -f  /dev/vg01/lv01     
    ---检查 磁盘
    • 裁剪逻辑卷
    - 剪裁 减少 1G 的空间
    #  lvreduce -L -1G  /dev/vg01/lv01
    
    
    --- 或者
    - 剪裁后的总空间为 1G
    # lvreduce -L 1G  /dev/mapper/vg01-lv01
    • 查看
    # lvs
    - lvs 对 逻辑卷信息查看,如果没有问题的话
    • 重新挂载使用
    #  mount  /dev/vg1/lv01  /root/stu1
    • 裁剪的注意点:
    1. 裁剪前 最好 做个数据备份

    2. 裁剪 后的容量大小 一定要 大于 数据的容量大小

    四、 缩小或增加逻辑卷

    lvresize 命令

    离线剪裁 缩小逻辑卷空间

    思路:

    1. 备份文件
    2. 卸载逻辑卷
    3. 剪裁逻辑卷
    4. 查看
    5. 格式化
    6. 从新挂载使用

    语法格式:lvresize [参数]

    以下操作基于场景:

    同卷组中的两个逻辑卷, app 和 root

    挂载路径 app 挂载 /app , root 挂载在 /

    从app 中剪裁3G 空间 给 root

    1.缩小app磁盘

    - 缩小逻辑卷空间
    
    - 1. 备份文件 
    # cp 文件  到另一个地方
    
    - 2. 取消挂载逻辑卷
    # umount /app
    
    - 3. 剪裁逻辑卷 让逻辑卷减小 3G 空间
    # lvresize -L -3G /dev/mapper/app
    
    - 4. 查看
    # lvs   - 查看逻辑卷
    # vgs   - 查看卷组
    # df -h 
    # lsblk
     
    - 5. 格式化   -f 强制格式化
    # mkfs.xfs -f /dev/mapper/app
    
    - 6. 挂载使用
    # mount /dev/mapper/app /app
    
    - 7. 恢复备份

    2.扩展root磁盘

    # lvresize -L +3G /dev/mapper/myvg-root

    3.扩展rootlv文件系统

    - 格式为 ext2-4文件系统操作
    # resize2fs /dev/mapper/myvg-root
    
    - 格式为 xfs 文件系统操作
    # xfs_growfs /dev/mapper/myvg-root

    说明:扩展完磁盘后使用lsblk查看的结果变了而使用df -h结果大小却没变,这是因为前者查看的是磁盘的大小而后者查看的是文件系统的大小。磁盘和文件系统在不严格区分时可视为同一个东西,但追究起来确实是两样东西。这也是需要第3步的原因。