一、背景
安装了Centos7之后,发现root分区不够用,而大部分分区都在home。磁盘是通过LVM进行管理,可以在线将home分区缩减,并将root分区扩容。由于LVM的特性,逻辑卷扩容时不需要卸载分区,可以实现不停机扩容。
二、知识
1、LVM介绍
LVM 是一种可用在Linux内核的逻辑分卷管理器;可用于管理磁盘驱动器或其他类似的大容量存储设备。LVM独立于物理磁盘,可以实现存储空间的抽象化并在上面建立虚拟分区,可以更加简易地扩大和缩小分区,可以增删分区时无需担心某个物理硬盘上没有足够的连续空间,避免为正在使用的磁盘重新分区的麻烦。
LVM的基本组成如下:
物理卷 (PV)
一个可供存储LVM的块设备,也就是物理硬盘。如果新加入的一块硬盘要作为正在使用的分区的扩充,就需要先把硬盘创建成物理卷。
卷组 (VG)
物理卷的一个组,作为存放逻辑卷的容器。 不同硬盘的物理卷可以组成同一个卷组,然后可以把卷组的空间分配给逻辑卷,这样不同硬盘也可以被分配到同一个分区,并且可以动态的扩大和缩小。
逻辑卷 (LV)
“虚拟/逻辑卷”存放在一个卷组中并由物理块组成。是一个类似于物理设备的块设备,例如,你可以直接在它上面创建一个文件系统文件系统。
物理块 (PE)
一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。
示例:
1 | `物理硬盘` |
2、System Storage Manager介绍
System Storage Manager是一个用来管理各种文件系统的命令行工具,可以管理包括LVM、btrfs和加密卷等文件系统,可以简化存储管理。通过ssm可以自动完成lvm自动完成LVM的创建,文件系统创建和挂载。下面,我们通过ssm工具将home分区空间转移到root分区。
三、实践
1、查看分区情况
在root空间不够用时,笔者尝试过其他教程,将home空间缩小,其中的一部分给root,但是失败了,从资料3得知可能home的文件系统不支持缩减,故直接删除。
执行lsblk命令,查看磁盘分区,磁盘sda2被分成了三个逻辑卷,类型都是LVM,大部分磁盘空间都分给了home。
1 | [root@master ~]# lsblk |
如果/home下有数据,请按需备份,新装系统或无文件,可以直接删除。
2、通过System Storage Manager删除home分区,把空间增加到root里。
⭐安装System Storage Manager
1 | yum -y install system-storage-manager |
⭐查看分区
1 | ssm list |
发现root分区只有50G空间,home分区有237G空间。
⭐卸载home
1 | umount /home |
⭐删除逻辑卷home
1 | ssm remove /dev/centos/home |
⭐查看释放出来的空间
1 | ssm list |
home逻辑卷已经成功被删除,卷组centos有237.18G的空余,可以分配给root分区。
⭐将剩余空间全部加入root分区
1 | ssm resize -s +100%FREE /dev/centos/root |
root逻辑卷已经从50G增加到287.18G,由于此时操作的是LVM,文件系统并未更新分区信息,centos7还需要执行xfs_growfs同步文件系统。
⭐同步文件系统
1 | xfs_growfs /dev/centos/root |
⭐查看修改后的卷信息
1 | ssm list |
此时,home逻辑卷已经被删除,腾出的空间都增加到root逻辑卷,目标完成。由于home分区已经被删除,还需要修改/etc/fstab文件,将挂载home的一行注释或者删除掉。
⭐取消挂载home
1 | vim /etc/fstab |
将红框那一行注释或者删除,wq保存退出,大功告成。
三、资料
1、archlinux-文档:LVM_(简体中文)
2、哔哩哔哩-部分原理和操作:LInux LVM分区于应用详解
3、csdn:CentOS7 LVM管理 把/home空间转移给/