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-lv01ext2-4 格式 同步文件系统
[root@localhost /]# resize2fs /dve/mapper/vg01-lv01
不建议 缩小空间
三、 缩小逻辑卷 ext4
——— lvreduce
重要提示: 减小空间操作有风险!请备份好数据!!
# xfs不支持缩容 , 如要尝试,请备份数据
# 虽然xfs文件系统只支持增加,不支持减少。但并不是说在xfs系统文件下不能减小,只是减小后,需要重新格式化才能挂载上。这样原来的数据就丢失了!
- 以下操作为 ext2-4 格式文件系统
离线裁剪逻辑卷容量
做好数据备份 通过一些 备份方法对数据进行备份
思路:
- 备份文件
 - 卸载逻辑卷
 - 先剪裁文件系统
 - 剪裁逻辑卷
 - 查看
 - 从新挂载使用
 
- 卸载逻辑卷
 
# 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 
- 裁剪的注意点:
 
裁剪前 最好 做个数据备份
裁剪 后的容量大小 一定要 大于 数据的容量大小
四、 缩小或增加逻辑卷
lvresize 命令
离线剪裁 缩小逻辑卷空间
思路:
- 备份文件
 - 卸载逻辑卷
 - 剪裁逻辑卷
 - 查看
 - 格式化
 - 从新挂载使用
 
语法格式: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步的原因。
                    
                
                
            
        
浙公网安备 33010602011771号