Linux 磁盘空间 - 分区

Linux 磁盘空间 - 分区
$df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_app001-lv_root
                       32G   30G     0 100% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             485M   51M  409M  12% /boot
/dev/mapper/vg_app001-lv_home
                       17G  295M   16G   2% /home

我有一块 70GB 的硬盘,空间已经不够了,但 /home 似乎还有很多空间。我该如何重新分区?我真的必须手动管理吗?

答案1

您必须通过两个步骤来减小 /home 的大小:减小文件系统的大小,减小逻辑卷的大小。此操作无法在线完成,因此请确保先卸载 /home(我假设您使用某些 ext 文件系统):

看看这个例子:

umount /lvm-test
e2fsck -f /dev/volg1/logv1
resize2fs /dev/volg1/logv1 512000
lvreduce -L-800M /dev/volg1/logv1
mount /dev/volg1/logv1 /lvm-test

如果你不想计算,你可以将文件系统调整为最小大小,然后减小 lv,并通过调用resize2fs /dev/volg1/logv1without size 将文件系统扩展到最大大小 ;) 但要小心。如果 lv 小于文件系统,数据将丢失

完成后,您应该会在 中看到一些空闲的 PE vgdisplay。然后您可以扩展lv_root。扩展可以在线完成,因此无需卸载:

lvextend -L +800M /dev/mapper/vg_app001-lv_root
resize2fs /dev/mapper/vg_app001-lv_root

答案2

根据我的经验,空间不足通常是由于对管理存储的信息量这一一般问题缺乏关注。在您的示例中,您使用了 30Gb 的分区(挂载为 /),而挂载为 /home 的分区中还剩下 16Gb。短期修复可能是将一些相当大的数据从其当前位置移动到 /home 的子文件夹;您可能能够使用符号链接来保持对它的访问。但是,如果您在过去六个月内积累了(比如说)20Gb 的数据,那么四个月后您将再次陷入困境。

我访问过许多企业,客户抱怨服务器空间不足,我发现文件夹里满是公司野餐的照片或某人 iPod 的内容,通常与早已离职的员工有关。这类数据可以丢弃或移动到其他存储介质(如 DVD)。

另一方面,如果您现在确实需要超过 30Gb 的在线存储空间,那么 70Gb 的硬盘可能无法长期满足您的需求。

我想说的另一点是,在构建 Linux 服务器时,我通常的做法是只将一个分区用作交换空间,将驱动器的其余部分用作 /。这样,在填满整个磁盘之前,您不会用尽分区空间。

答案3

为了快速解决问题,请使用 du --max-depth=1 / 检查占用大量空间的内容(可能您会在 /var :) 中找到某些内容,然后将其移动到 /home 的子目录中,并将其绑定挂载/符号链接到根文件系统中。

顺便说一句,您确定 vg 中没有可分配的范围吗 - 在这种情况下,您可以创建另一个文件系统,将东西移动到那里并挂载它。

相关内容