在运行时重新创build文件系统(需要更多的inode)

我在一台有3HDD的数据中心上运行了一台机器,运行着Debian Wheezy,其中一台机器上装有一个ext4文件系统,里面的数据已经用完了inode(我在安装时select了一个不合适的inode大小,预期)。

分区内容复制到另一个分区是没有问题的,但是我想知道在“生产环境”中应该采取哪些预防措施(没有什么严重的btw)。

我需要避免重新启动机器,并启动新的文件系统–recreated – 可挂载

谢谢! -Rodrigo

如果你不能添加/replace磁盘(在这种情况下,如果你使用LVM,你可以增长你的ext4,因此它的数量inode),你最好的path是:

  1. 备份数据到其他具有足够可用空间的分区(使用tar(1),或者如果您需要最小化访问数据的停机时间:rsync(1))
  2. 这一步,只有当你需要最小化停机时间:rsync再次,然后closures对该分区的访问,再次做rsync(这将是快速的,因为它只传输更改),并指向/符号链接到您的数据目录到新的分区目录,然后重新启用对新(临时)分区目录的访问。
  3. 用更多的inode重新格式化现在未使用的分区
  4. 恢复数据(如果需要尽量减less停机时间,请使用(2)中的相同技巧)
  5. 删除临时的.tar.gz / rsync目录(或保留为免费备份)

在生产中,您将使用LVM,因此您可以调整文件系统的大小(ext4也将在resize时增加inode)。 而且你总是会在太多的inode(或一般的空间)上犯错,而不是太less。 和/或使用具有dynamicinode而不是ext4的XFS 。