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\nRun 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 \nRun Code Online (Sandbox Code Playgroud)\n有什么方法可以调整该分区的大小而不丢失任何数据。
\n不会。实际上,系统中的大部分空间总是被可变数据/var通常所在的位置\xe2\x80\x94 数据库、Docker、日志等占用,而 Linux/很少使用超过 10 GiB 的空间,当系统得到妥善管理。
不仅您的 LVM 不是最理想的:我会将整个 Debian 安装以及一些服务放入您在 ESP 和/boot. (我习惯创建虚拟机并为系统分配 4GiB。绰绰有余。)
那么,最好的解决方案是减少过大的根文件系统,但这无法在线完成。您需要启动一些救援介质,激活 VG,然后缩小文件系统和逻辑卷,考虑到分区的大小,这可能会消耗大量时间。也有可能把事情弄乱。如果你很着急,你可以做一个改变:在根目录中创建一些目录,将 Docker 数据移入其中,然后将其绑定挂载回 Docker 数据所在的 var 中。您需要暂时停止 Docker 和所有容器。像这样的东西:
\nsystemctl 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\nRun Code Online (Sandbox Code Playgroud)\n这样,Docker 将使用超大根文件系统上的空间,同时在通常位置可用。/etc/fstab您需要添加以下条目,以便此配置在重新启动后仍然有效:
/var-lib-docker /var/lib/docker none bind 0 0\nRun Code Online (Sandbox Code Playgroud)\n但请记住,这是一个相当丑陋的黑客行为,它可以为您赢得一些时间,但也会带来一些问题,因此寻找机会从根回收空间并将其/var正确分配。
让我们吸取教训:永远不要从一开始就分配所有可用空间。保留其中一些(大部分)未分配。您始终可以轻松地添加空间并在线执行此操作,而回收空间非常困难、耗时且容易出错,并且需要停机。最好管理该空间,这样您就不需要回收它。
\n| 归档时间: |
|
| 查看次数: |
796 次 |
| 最近记录: |