linux 调整逻辑卷空间大小

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

扩容前,搞清楚自己的分区格式:

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
查看 简单查看 详细查看
逻辑卷 lvs lvdisplay
卷组 vgs vgdisplay
物理卷 pvs pvdisplay

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

二、 扩展逻辑卷

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 :(不带 +) 指定总空间大小

案例:

  • 增加 1G 空间
    [root@localhost /]# lvextend -L +1G /dve/mapper/vg01-lv01
  • 指定总空间 10 G
    [root@localhost /]# lvextend -L 10G /dve/mapper/vg01-lv01
  • 把当前卷组空间全部给逻辑卷
    [root@localhost /]# lvextend -l 100%vg /dve/mapper/vg01-lv01

扩容根据自己的文件系统选择 命令扩容文件系统。

  • xfs 格式 同步文件系统
    [root@localhost /]# xfs_growfs /dve/mapper/vg01-lv01

  • ext2-4 格式 同步文件系统
    [root@localhost /]# resize2fs /dve/mapper/vg01-lv01

不建议 缩小空间

三、 缩小逻辑卷 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步的原因。

posted @ 2021-03-18 10:08  内向是一种性格  阅读(1851)  评论(0编辑  收藏  举报