在30TB的体积上使用fsck要花多长时间?

・4 分钟阅读

问题:

在11月中旬,我从托管公司租用的VPS停止响应。当我联系支持时,他们解释说数据中心停电会导致强制重启和fsck。最后,我问为什么花了这么长时间,并被告知卷的大小是30 TB。

我知道fsck对于某些文件系统来说可能会非常慢,但是,在30 TB的容量上fsck有没有可能要耗费6个月时间,或者,是不是托管公司对我撒谎,以便我继续支付每月的账单?


回答 1:

fsck速度主要取决于文件的数量以及它们在各个目录中的传播方式,也就是说fsck6个月绝对是荒谬的: 它应该在几个小时内完成,特别是在使用xfs作为快速xfs_repair工具时,在这里你可以找到一些规模的fsck - 全部在一小时(3600s)内完成。所以,你的fsck可能还没有运行呢。

无论如何,一个意外的掉电不会导致完全爆炸fsck,而只是一个非常快的(几秒钟)journal replay ,但是,如果某些密钥文件损坏,操作系统就无法启动。

你应该立即停止付款,请求解释,并且申请退款。


回答 2:

在最糟糕的情况下,它可能要读取整个磁盘,如果你知道硬盘的速度,可能需要几天时间(如果你知道硬盘的速度你可以计算size/speed),对于一个使用100 MB/s复制的普通消费者硬盘,几个TB可能需要更多的时间,比大多数人预期要长,对于大多数文件系统,它会更快,即使存在错误,通常只检查元数据。

当它是你的服务器时,你可能会遇到引导的问题,然后在fsck询问你是否要修复错误时挂起。但是,数据中心管理员在所有VPS都处于离线状态时,不会让fsck挂6个月。

所以,他们要么对你撒谎,要么有一个巨大的误解,或者他们前段时间运行fsck,并且在完成后,没有回复你的新问题。


回答 3:

使用以下2个参数去进行计算通常是简单的: 你的硬盘的速度和它的大小。

例如:让我们说你的30TB卷是由RAID 0中的3 WD 10 TB组成的,30 TB在实际空间意味着有27.28 TB。理想的RAID 0速度是747 MB/s ,所以,读取检测一下,理论上就是38294秒,也就是10.63小时,实际的文件数或它大小不应与常规驱动器检查相关,因为您实际检查驱动器的扇区状态,而不是以逻辑文件方式读取的文件内容。

现在,如果您的RAID类似于JBOD,而不是相同的3个驱动器,那么时间当然是上面的那个(~32h)。所以,这意味着你可以获得接近1TB/小时的良好性能。

但是,可以显著降低测试性能的主要因素是发现实际的坏扇区,一旦发现,坏扇区可能需要花费大量时间进行测试,因此根据他们的实际状态和数量,您确实要更多的测试时间(您的6个月)。

但是,在这种情况下,我建议停止,并且更换驱动器,因为在开始显示坏驱动器坏扇区之后,扫描坏驱动器几天或更多没有意义。


讨论
Xuanlv profile image