前言:由于在安装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