![将软件 raid 卷从 ext3 转换为 ext4(或 ext2)?](https://linux22.com/image/561855/%E5%B0%86%E8%BD%AF%E4%BB%B6%20raid%20%E5%8D%B7%E4%BB%8E%20ext3%20%E8%BD%AC%E6%8D%A2%E4%B8%BA%20ext4%EF%BC%88%E6%88%96%20ext2%EF%BC%89%EF%BC%9F.png)
我的 ubuntu linux 11 机器中有一个 mdadm 创建的软件 raid 卷。它不是启动驱动器。它是由 3 个大型 sata 驱动器组成的软件 raid 5 配置。
最初创建它时,我将其设为 ext3。后来我了解到,将其转换为 ext4(或 ext2)可能会对我有益。
首先,我想确认这是否有意义,转换为例如 ext4 会给我带来更好的性能(搜索后发现这似乎是 ext4 相对于 ext3 的一个共同优势)。
接下来,是否有理由考虑转向 ext2 - 或者这实际上是一个坏主意?
最后,我该怎么做呢?
据我所知(来自这站点为例),我需要卸载卷,然后执行一些命令来转换卷。我的 fstab 当前将文件系统类型设置为“自动”。
答案1
各种 ext[0-9] 文件系统之间的差异更多在于功能,而不是结构。优点是它们彼此相当兼容。例如,您可以挂载 ext3 分区作为ext2 和一切应该都正常工作。同样,您可以将 ext3 分区挂载为 ext4。无论何时执行这些操作,您都无法访问特定于版本的功能。例如,如果您将 ext3 分区挂载为 ext2,您将无法访问日志。同样,将 ext3 分区挂载为 ext4 不会让您使用较新的功能,例如减少 fsck 时间和扩展而不是位图。
为了实现转换,你需要做的是
- 卸载分区
- 运行转换
- 挂载分区
因此,只要这不是您的主磁盘,您就可以在不关闭系统的情况下执行此操作,只需预计目标分区会关闭一段时间即可。并且,与往常一样,在摆弄文件系统之前,您应该对数据进行完整备份,以防万一丢失数据。
执行此操作应运行的确切命令如下。出于我的目的,我假设您的目标设备是/dev/md0
umount /dev/md0
fsck.ext3 -pf /dev/md0
tune2fs -O extents,uninit_bg,dir_index /dev/md0
fsck.ext4 -yfD /dev/md0
第一个 fsck 是为了确保在我们进行转换之前您的文件系统处于干净且正常状态。否则,转换过程可能会失败,甚至更糟,可能会成功但留下不一致。该tune2fs
命令用于调整文件系统设置。它最初是为 ext2 创建的,因此名称中有“2fs”部分,但它用于修改 ext 文件系统的所有版本。在本例中,我们启用了 ext3 和 ext4 之间添加的额外功能。最后一个 fsck 执行两项操作。首先,它确保转换过程中的任何必要清理都已完成,其次,它将创建或重建目录索引。
完成所有这些后,您将需要编辑/etc/fstab
以确保它已作为 ext4 安装,但事实上该auto
选项应该正确识别它。
恭喜,只要在此过程中没有发生火灾/爆炸/大规模种族灭绝/谋杀妻子的事件,那么您应该是 ext4 分区的幸福拥有者。
答案2
是的,转换为 ext4 应该会为您带来更好的性能,原因包括延迟分配。ext4 在防止文件碎片方面也做得更好,这也有助于提高性能。此外,关于 ext4 模块如何处理 ext3 文件系统的讨论非常多,因此即使您继续使用 ext3,您也很可能很快就会使用相同的代码(TM)。
转向 ext2 不是一个好主意。你会转向旧代码,而没有辛勤工作的文件系统开发人员在过去十年左右的时间里对 ext3 和 ext4 所做的所有改进(ext3 于 2001 年秋季推出)。
如何转换?有两种方法:
- 就地转换。您找到了正确的程序,Scott Pack 也在他的答案中给出了它。
- 备份,从头创建一个 ext4 并恢复。
第一个麻烦少得多,但是对于文件系统中已经存在的文件,你无法获得 ext4 的一些好处(即它们不是基于范围的)。
Backup-mkfs-restore 将为您提供所有文件的所有功能,而 mkfs.ext4 将确保数据对齐与您的底层软件 RAID 配合良好。如果您在创建 ext3 文件系统时对齐正确,则不会有任何收获。如果您犯了一个错误,您可能会收获很多。
选择哪种方法?由你决定。如果你的文件系统现在运行良好,而你只想运行当前文件系统,则可以就地转换。如果你遇到性能问题并希望文件系统更改能帮助你解决这些问题,我会选择方法 2。
答案3
ext3
基本上是ext2
+ 日志。维护日志会给常规操作增加一定量的开销(取决于日志选项集),但可以提高文件系统的可靠性并减少系统崩溃或断电后的 fsck 时间。对于快速变化的瞬时数据和/或很少变化的数据(或对于具有电池备份和/或愿意在电源恢复后等待 fsck 完成的系统),速度的差异可能意义重大。
将 ext3 更改为 ext2 只需将文件系统类型更改为 ext2 并重新启动即可。您将收到有关将 ext3 文件系统安装为 ext2 的警告,但您可以通过禁用日志并强制执行 fsck 来消除这些警告:tune2fs -O ^has_journal /dev/whatever
ext4
基本上是ext3
+ 很多新功能。其中最主要的是范围它用连续的内存分配取代了以前的旧“块映射”,从而减少了碎片并提高了线性读取性能,尤其是对于大文件而言。此外,目录索引等 ext3 选项默认处于启用状态。
转换为 ext4可以即时完成通过确保您的系统正确支持 ext4,然后使用最新版本的 tune2fs 启用各种 ext4 选项,将文件系统类型更改为 ext4 并重新启动,但是这种转换方法不会将任何现有文件转换为使用扩展区。为了充分利用 ext4,最好备份所有内容,重新格式化并恢复。
无论你往哪个方向走,基准支持你的想法,你可以做得比 ext3 更好。