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

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

我在数据中心有一台带有 3 个 HDD 并运行 Debian Wheezy 的机器,其中一台机器上安装了一个在 /data 上的 ext4 文件系统,它的 inode 已经用完了(我在安装时选择了不合适的 inode 大小/有比预期更多的小文件)。

将分区内容复制到另一个分区没有问题,但我想知道在“生产环境”中执行此过程应该采取哪些预防措施(顺便说一下没有什么严重的问题)。

我需要避免重新启动机器,并使新的文件系统 - 重新创建 - 在启动时可挂载

谢谢!-罗德里戈

答案1

如果你无法添加/更换磁盘(这种情况下,如果你使用了 LVM,你可以增加 ext4 的数量,从而增加其上的 inode 数量),最好的路径是:

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

在生产中,您将使用 LVM,以便调整文件系统的大小(ext4 也会在调整大小时增加 inode)。而且您总是会犯 inode 过多(或一般空间过大)的错误,而不是太少的错误。和/或使用西弗斯它具有动态 inode 而不是 ext4。

相关内容