我有几个系统在 SLES 10 集群中运行了十多年(现在早已过了 EOL)。我们正在迁移到 CentOS 6 64 位。我完成了所有工作,但最后的数据同步却出乎意料,磁盘空间用完了……只不过是在 inode 表中,而不是原始容量。ReiserFS(在 SLES 机器上使用)没有强制限制 - 事实上,我甚至不知道有多少 inode 在使用,因为它不仅没有强制,甚至没有跟踪/报告它们。我可以用一行代码得到这个数字,没问题。
我的问题可能主要围绕 LVM。这是我的弱点。我对它还很陌生,自 1993 年以来主要使用原始设备。
我有一台新机器,带有一个逻辑卷组,包含一个交换分区和两个卷的根文件系统。它有 100GB 之多,但需要有超过 650 万个 inode...我用完了大约 640 万个。
我完全理解我需要创建一个全新的 ext4 文件系统,因为你根本无法增加 inode 数量。
我在 VMWare 下工作,这很有帮助。我可以根据需要简单地添加/删除虚拟驱动器。
我想用一个具有更适合我们使用的 inode 比率的文件系统来替换根文件系统。我不确定如何处理其中的 LVM 部分,以及实际的“恢复数据而不恢复文件系统 [即保存 inode 表的部分等] 本身”。我基本上需要将数据传送到备用虚拟驱动器,根据需要重新格式化根分区,然后恢复驱动器。从知识上讲,LVM 妨碍了我。我在某种程度上熟悉了 lvcreate、lvchange 等,但我可以使用详细的描述来正确使用哪些工具来处理整个文件系统(它是一个文件系统,全部驻留在 / 上,因此它包括 /dev 等)就备份和恢复而言,尤其是 LVM 换出。
如果它有助于编写命令等,则假设 vg_webserver4c6 作为逻辑卷组,并将 lv_root 和 lv_swap 作为逻辑卷名称。lv_root 是问题子项。
非常感谢任何帮助 - 越详细越好!
谢谢!
答案1
使用 tar 或 rsync 备份整个文件系统。无需包含 /dev/、/proc 或 /sys:这些是在启动时创建的。
不需要使用任何 lv 命令,因为您不需要调整 lv_root 的大小,您只需要重新创建具有 1000 万个 inode 的文件系统:
mkfs.ext4 -N 10000000 /
使用 tar 或 rsync 恢复文件
修复你的引导加载程序(重新运行 grub-install)
就是这样。