星期六我必须重新分区我的硬盘。在我的服务器上,我有 72GB 硬盘空间,这并不是很多。
目前我的系统分区如下:
分区大小:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_web-lv_root
50G 5.8G 41G 13% /
tmpfs 1.9G 16K 1.9G 1% /dev/shm
/dev/cciss/c0d0p1 485M 93M 367M 21% /boot
/dev/mapper/vg_web-lv_home
14G 8.7G 4.1G 68% /home
索引节点:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg_web-lv_root
3.2M 125K 3.1M 4% /
tmpfs 179K 5 179K 1% /dev/shm
/dev/cciss/c0d0p1 126K 50 125K 1% /boot
/dev/mapper/vg_web-lv_home
869K 559K 311K 65% /home
我想将 /home 目录增加 ± 20 - 30 GB,并减少根目录 (/)。
在我擦除包含 340.000 个文件的目录之前,我的服务器确实已经耗尽了 Inode。我每天收到 ± 15.000 个 1kb 的小文件。
现在我想确保周六不会遇到任何问题。我应该重新安装/格式化硬盘并重新安装系统吗?或者我应该对硬盘重新分区以及如何执行此操作?
答案1
您无需重新安装/格式化硬盘。
这个问题的答案取决于文件系统 - 具体来说,如果您的文件系统支持在线调整大小。我假设您在所有分区上都使用 ext3/ext4,但如果没有,您将必须使用更多详细信息编辑您的问题。
由于我们必须减少根分区,因此您需要使用 Live CD 或救援 CD 来启动系统,例如。系统救援光盘
注意:尝试此操作之前,请备份所有重要数据。始终假设调整分区大小时可能会丢失所有数据。
这是将分区从 50 GB 减少到 30 GB 的示例。
缩小文件系统,然后是 LVM
检查文件系统。如果此操作失败或出现错误,您应该重新启动到 Live CD 并修复您的文件系统,然后继续此处。
确保应卸载该分区
# umount /dev/mapper/vg_web-lv_root
然后检查文件系统
# e2fsck -yc /dev/mapper/vg_web-lv_root
调整文件系统的大小。 (50 GB - 20 GB,最终卷 30 GB)
# resize2fs /dev/mapper/vg_web-lv_root 20G
减小逻辑卷的大小。
# lvreduce -L 20G /dev/mapper/vg_web-lv_root
扩大其他文件系统和 LVM 卷
我们将添加 20G,因为这是我们从根文件系统中删除的数量。
# lvextend -L +20G /dev/mapper/vg_web-lv_home
# resize2fs /dev/mapper/vg_web-lv_home
答案2
添加大小也会增加一些 inode,但不会改变 inode 与空间的比率。如果您存储大量小文件,将来可能会再次耗尽 inode,因此您可能需要使用更高的 inode 与空间比率来备份和重新格式化该卷。另外,如果您有那么多 1kb 文件,您可能需要使用不同的文件系统,因为 ext[234] 将分配至少 4k,每个文件浪费 3k。作为替代方案,如果您运行的最新内核能够在 inode 中内联文件数据,则可以为这些具有非常高的 inode 空间比和 2k inode 大小的 1k 文件专用一个 fs。这也将提高性能,因为它消除了索引节点和数据块之间的查找。