因此,我们 Nova 计算节点的最新配置是使用原始 /dev/sdX 设备(没有标签或分区)作为md0
(raid0) 阵列的组件,并在该阵列上托管 XFS 文件系统。当其中一个底层硬盘发生故障时,raid 仍然对此一无所知。
其他案例也证实了这一点mdadm 没有注意到 raid0 中的故障磁盘
然后问题出现了。更换故障硬盘后,我们如何重新组装该阵列而不被迫执行新的操作mkfs
?或者这对文件系统来说是否足够fsck
,并让它重新发现(不再是“坏”块)?这是真的吗?(如果操作系统尝试使用故障设备上的块,我假设驱动程序只需返回整个范围的“坏块”。传统上,在 Unix 文件系统中,后备块是永久的……您永远不会尝试回收它们。是否有开关可以xfs_repair
强制它重新评估坏块?
我是否误解了这里的基本机制?
答案1
不行。正如你之前所说,raid0 不提供冗余,不管它是交错式还是顺序式。raid0 中的一个磁盘仍在运行,而另一个磁盘则无法运行。这基本上和你清除了非 raid0 磁盘的 [第二] 一半时的情况相同:你仍然可以读取并可能写入某些扇区,因为它们仍包含格式和有效数据,但只要你想对其他扇区执行某些操作,操作系统就会失败。
因此,如果您坚持继续使用 raid0 故障的未记录背面,将它们作为设计优势,您有两种选择:自己编写一些额外的软件 [层] 或面对厄运,因为没有现成的方法可用。