前言:由于在安装centos7的时候默认选择的是自动分区,导致默认会给root分区50G,然后剩下的空间会全部划分给home。而我们在使用docker容器时并不能限制容器使用分区容量的大小,这就会导致我们如果将docker缓存在root目录,当缓存越来越大时会将root的50G空间全部占用满。

卸载home分区

由于需要对磁盘进行调整,所以必须先对分区进行卸载才能操作。

umount /home

1、缩小home分区容量

由于我的硬盘是240G的,默认给root分了50G,而剩下的180G容量就在home分区上,现在我想要将home的容量分出100G给我的甜糖容器作为缓存目录使用。我们可以使用lvreduce命令进行操作。

lvreduce -L -100G /dev/mapper/centos-home

-100G:将home分区的容量减少100G

/dev/mapper/centos-home:LVM (Logical Volume Manager)逻辑卷

如果需要分出更多的空间请自行调整。

如果分区的不是home,而是想对其他分区进行操作,则可以使用以下命令查看分区路径

fdisk -l

或者

df -h

以我的分区为例,使用df -h 命令查看如下:

文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 3.8G 9.2M 3.8G 1% /run
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 50G 6.8G 44G 14% /
/dev/sda1 1014M 152M 863M 15% /boot
/dev/mapper/centos-nodetemp 100G 545M 100G 1% /nodetemp
/dev/mapper/centos-home 80G 33M 80G 1% /home

可以根据挂载点查看文件系统,我们看到挂载点为/home的文件系统为/dev/mapper/centos-home

2、将剩余空间创建一个文件系统路径

lvcreate -L 100G -n nodetemp centos

100G:新建文件系统的容量

nodetemp:文件系统命名,新建后会生成一个/dev/mapper/centos-nodetemp文件系统

3、格式化新建分区和旧分区

需要注意的是文件系统创建后并没有指定格式,所以需要重新格式化一次指定分区格式为xfs或ext4.而home分区后也要重新格式化一遍,避免因为分区导致无法挂载的情况

mkfs.xfs /dev/centos/nodetemp
mkfs.xfs /dev/centos/home

nodetemp是我上面创建新分区的名字,如果你的不是叫这个请自行更改。

4、新建文件系统挂载路径

我就想把新的分区挂载到根目录的nodetemp文件夹,就直接在更目录下创建一个nodetemp文件夹就可以了

新建文件夹:

mkdir /nodetemp

测试手动挂载:

mount /dev/mapper/centos-nodetemp /nodetemp

如果没有报错则挂载成功。

5、开机自动挂载

编辑开机挂载文件:

vi /etc/fstab

在最底部新增如下命令:

/dev/mapper/centos-nodetemp /nodetemp xfs defaults 0 0

6、重启

init 6

或者

reboot