在 Centos Stream 8 上扩展 /var 分区

Raf*_*fik 2 partition filesystems lvm centos docker

在安装我的centos Stream 8操作系统期间,我给/var设置了10GB的大小,认为这已经足够了,但是在我开始使用docker之后,我发现它在/var分区上占用了太多空间,如下所示df 命令:

\n
[root@compute-07 ~]# df -h\nFilesystem           Size  Used Avail Use% Mounted on\ndevtmpfs              28G     0   28G   0% /dev\ntmpfs                 28G     0   28G   0% /dev/shm\ntmpfs                 28G  179M   28G   1% /run\ntmpfs                 28G     0   28G   0% /sys/fs/cgroup\n/dev/mapper/cs-root  371G  8.2G  363G   3% /\n/dev/mapper/cs-home  100G  2.0G   98G   2% /home\n/dev/mapper/cs-var    10G  9.0G  1.1G  90% /var\n/dev/sda2            2.0G  412M  1.6G  21% /boot\n/dev/sda1            2.0G  7.3M  2.0G   1% /boot/efi\n/dev/mapper/cs-tmp    10G  105M  9.9G   2% /tmp\ntmpfs                5.5G   16K  5.5G   1% /run/user/42\noverlay               10G  9.0G  1.1G  90% \n\n/var/lib/docker/overlay2/77f74478297ca61595f0003d35c7323ec627adb44d94cef92c2b4a3c97319a66/merged\noverlay               10G  9.0G  1.1G  90% /var/lib/docker/overlay2/5eeb399ce4a3c0d8065d63123985269a359fa66f4d20a8486326e466a48a0128/merged\noverlay               10G  9.0G  1.1G  90% /var/lib/docker/overlay2/08d42ca66e3a5974bc305b502bca2aa4d22aa7ddcab6ea14c6af300b3abb3a70/merged\noverlay               10G  9.0G  1.1G  90% /var/lib/docker/overlay2/1a45cb32b127fdf8f5c1483385139a865fdc69260ec20f3dcd4c56ad6890f909/merged\noverlay               10G  9.0G  1.1G  90% /var/lib/docker/overlay2/ebb9af8edee824a4013dcd526e33e22272283bdee508fd43208fade557def728/merged\noverlay               10G  9.0G  1.1G  90% /var/lib/docker/overlay2/41d55822108d04c85f348dc134fe6929b0e67f6b3bd7e0af147633bfd3a252c1/merged\noverlay               10G  9.0G  1.1G  90% /var/lib/docker/overlay2/5cf3e8e06e9b4c2e6ed65164d91aed19f63d55e91524d6563e9f16b6709d29be/merged\noverlay               10G  9.0G  1.1G  90% /var/lib/docker/overlay2/1d1eda94e68596b00d0cabcc75a7c91999a1c845ebd02c733bb9f00ac66a26f0/merged\noverlay               10G  9.0G  1.1G  90% /var/lib/docker/overlay2/bc9e9a28c6761ad89a9457110642156ebd2b4d77de841f2a3ac9ffbaa90e4b63/merged\n\ntmpfs                5.5G     0  5.5G   0% /run/user/0\n
Run Code Online (Sandbox Code Playgroud)\n

这是 lsblk 命令的输出,因为 /var 位于单独的分区中,然后 / 和 /home 我找不到调整其大小或创建另一个分区然后将其链接到 /var 的方法

\n
[root@compute-07 ~]# lsblk\nNAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT\nsda           8:0    0 558.4G  0 disk \n\xe2\x94\x9c\xe2\x94\x80sda1        8:1    0     2G  0 part /boot/efi\n\xe2\x94\x9c\xe2\x94\x80sda2        8:2    0     2G  0 part /boot\n\xe2\x94\x94\xe2\x94\x80sda3        8:3    0 554.4G  0 part \n  \xe2\x94\x9c\xe2\x94\x80cs-root 253:0    0 370.4G  0 lvm  /\n  \xe2\x94\x9c\xe2\x94\x80cs-swap 253:1    0    64G  0 lvm  [SWAP]\n  \xe2\x94\x9c\xe2\x94\x80cs-tmp  253:2    0    10G  0 lvm  /tmp\n  \xe2\x94\x9c\xe2\x94\x80cs-home 253:3    0   100G  0 lvm  /home\n  \xe2\x94\x94\xe2\x94\x80cs-var  253:4    0    10G  0 lvm  /var\nsr0          11:0    1  1024M  0 rom  \n
Run Code Online (Sandbox Code Playgroud)\n

有什么方法可以调整该分区的大小而不丢失任何数据。

\n

Nik*_*nov 6

不会。实际上,系统中的大部分空间总是被可变数据/var通常所在的位置\xe2\x80\x94 数据库、Docker、日志等占用,而 Linux/很少使用超过 10 GiB 的空间,当系统得到妥善管理。

\n

不仅您的 LVM 不是最理想的:我会将整个 Debian 安装以及一些服务放入您在 ESP 和/boot. (我习惯创建虚拟机并为系统分配 4GiB。绰绰有余。)

\n

那么,最好的解决方案是减少过大的根文件系统,但这无法在线完成。您需要启动一些救援介质,激活 VG,然后缩小文件系统和逻辑卷,考虑到分区的大小,这可能会消耗大量时间。也有可能把事情弄乱。如果你很着急,你可以做一个改变:在根目录中创建一些目录,将 Docker 数据移入其中,然后将其绑定挂载回 Docker 数据所在的 var 中。您需要暂时停止 Docker 和所有容器。像这样的东西:

\n
systemctl stop docker.service\nmkdir /var-lib-docker\nmv /var/lib/docker/* /var-lib-docker\nmount --bind /var-lib-docker /var/lib/docker\nsystemctl start docker.service\n
Run Code Online (Sandbox Code Playgroud)\n

这样,Docker 将使用超大根文件系统上的空间,同时在通常位置可用。/etc/fstab您需要添加以下条目,以便此配置在重新启动后仍然有效:

\n
/var-lib-docker /var/lib/docker none bind 0 0\n
Run Code Online (Sandbox Code Playgroud)\n

但请记住,这是一个相当丑陋的黑客行为,它可以为您赢得一些时间,但也会带来一些问题,因此寻找机会从根回收空间并将其/var正确分配。

\n

让我们吸取教训:永远不要从一开始就分配所有可用空间。保留其中一些(大部分)未分配。您始终可以轻松地添加空间并在线执行此操作,而回收空间非常困难、耗时且容易出错,并且需要停机。最好管理该空间,这样您就不需要回收它。

\n

  • 风险并不比任何其他分区高。我想说数据总是比系统更有价值,尤其是当您准备重新安装它时。不过,它可能会比重新安装更快。根据您使用的文件系统,它可能会或多或少地消耗时间(例如“xfs”在设计时考虑了“无回收”,因此虽然这是可能的,但它并不适合)。您可以随时将这 8.2 GiB 备份到某个地方,以防万一。 (2认同)
  • 我会将 root 和 var 分别设置为 20 GiB。我再说一遍,您将能够在线放大所有这些内容,而不会造成任何停机和影响。只需监控系统并及时添加空间,例如,当超过 75% 已满或剩余可用空间少于 5-10 GiB 时。(var 使用*会*增长,root 不太可能增长) (2认同)