fsck占用30 TB卷需要多长时间?


17

11月中旬,我从托管公司租用的VPS停止响应。当我联系支持人员时,他们解释说,数据中心断电会导致强制重启和fsck。最终,我问为什么要花这么长时间,并被告知该卷的大小为30 TB。我上次收到更新是在2月,他们没有回复我最近的询问。

我知道fsck对于某些文件系统可能非常慢,但是对于30 TB的卷,fsck可能需要6个月的时间,还是我应该假设这家托管公司在骗我,以便我继续为每笔账单支付费用月?


39
他们可能从一开始就在骗你。我希望那需要几个小时。您应该在12月停止付款。
迈克尔·汉普顿

15
即使他们没有撒谎,也要选择可能需要FSCK 的硬件和软件设置,这表明他们很不称职。不管是什么原因,他们都不提供您要付费的服务。
彼得·科德斯

34
听起来像是真正的集群fsck!
-JMK,

2
@JMK现在,我希望有一种方法来标记评论以提​​高自己的功绩,也许会加进名人堂。

2
@PeterCordes所说的是关键。您正在为服务付费。听到他们遇到问题,您真的很抱歉,但是您正在打电话询问要付款但仍未获得的服务。
罗伯·摩尔

Answers:


31

fsck速度主要取决于文件的数量以及它们在相应目录中的传播方式。就是说,一个月六个月fsck是绝对荒谬的:它最多应该在几个小时内完成,特别是如果使用xfs具有快速xfs_repair实用性的工具。在这里,您可以找到一些fsck规模运行-全部在一小时(3600秒)内完成。因此,您的机器不可能fsck仍在运行。

无论如何,意外的功率损耗不会导致全速运行fsck,而只会导致非常快速(几秒钟)的日志重放。但是,如果某些密钥文件已损坏,则操作系统可能无法启动。

但是他们可能只是对你撒谎。您应该立即停止付款,寻求解释并申请全额退款。


8
如果他们使用ext2,则电源故障将需要充满电fsck,并且如果30 TB的大量使用卷需要几天的时间,我也不会感到惊讶。另一方面,如果它们使用ext2的是30TB卷,那么这本身就是寻找其他地方托管服务的原因。
标记

14
ext2使用32位块计数器,在x86和x86_64上最大块大小为4096字节(即:一页)。这意味着ext2(和ext3)限于8TB的卷,因此不能,OP不能使用ext2 / 3。无论如何,在30 TB的卷上使用任何非日志文件系统绝对是疯狂的
shodanshok,

我认为,如果拥有包含大量微型文件的30Tb FS,ext4 fsck可能会更好。Lunacy创造了它,所以仍然有理由去其他地方。
nigel222 '19

7

猜想:他们的系统使用无BBU / FBWC的RAID(甚至是软件RAID),并且所有可能的写缓存(包括硬盘本身中的写缓存)均设置为最激进的设置,以便以最低的成本获得最高的性能。在这种设置上发生的严重停电可能会使日记文件系统处于无法信任日记且无法用于恢复的状态。问题在于,这样的系统会主动重新排序并推迟写入,这意味着可以在丢失数据操作的情况下写入日记条目,或者在随后的数据操作中丢失日记条目。

从最坏的情况下中断恢复这样的系统可能意味着您必须执行“慢速” fsck /修复,以实际检查所有文件系统结构,这实际上可能需要一两天才能达到30TB。您不太可能必须运行多个修复周期。此外,可能并不总是有人员来监视此情况,因此您很容易每周只能执行一次fsck。他们可能放弃了,忘记了。


1

对于大多数文件系统,即使存在错误,它也会更快,因为通常只检查元数据。

在最坏的情况下,它可能会读取整个磁盘(例如,类似的磁盘,fsck.ext4 -cc /dev/sda会对每个块进行无损写测试),这可能需要花费30 TB的几天时间。如果您知道驱动器的速度,则可以计算大小/速度。对于复制速度约为100 MB / s的消费类硬盘,数TB的存储可能比大多数人预期的要花费更多的时间。

如果它是您的服务器,则可能会出现问题,它会在fsck询问您是否要修复错误时启动然后挂起。但是,fsck当所有VPS都离线时,数据中心管理员不会被搁置6个月。

因此,他们要么对您说谎,要么存在巨大误解。或者他们前一段时间正在运行fsck,并且在完成新问题后没有更新您的信息。


4
fsck遍历所有文件系统结构,这主要意味着执行随机I / O。因此,基于顺序传输速率的上述计算不是很有用。
shodanshok,

正如我刚才在回答中所解释的,@ shodanshok的文件结构确实与常规驱动器检查无关。
凌驾于

@shodanshok我最坏的假设是基于非常广泛的fsck。例如,典型的xfs fsck并没有做太多事情。ext2具有长期运行的广泛检查功能,当以全模式运行它时,旧的MS-DOS scandisk对每个硬盘驱动器块都进行了读写测试。因此,您需要确定磁盘大小的上限。
allo

1
@Overmind您的答案与关于fsck的问题无关,而不是一般的驱动器检查。
BlackJack,

请注意,以典型的磁盘吞吐量为指标可能会产生误导。一次重新同步数组时,我已经完成了数学运算,(我认为)应该花了不到一天的时间,并且花了两周的时间!搜索是总时间的一个主要因素,即使您认为自己正在执行严格的顺序操作,有时也不是。现在fsck严格来说是非顺序的,所以...从常规的磁盘吞吐量到操作的长度,您无从判断(仍然,几个月是荒谬的……这显然是谎言)。
戴蒙
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.