首页
学习
活动
专区
圈层
工具
发布

Raid1问题
EN

Server Fault用户
提问于 2009-06-06 22:40:02
回答 6查看 1.1K关注 0票数 2

假设我有一个来自两个分区的软件raid1数组。我从计算机中取出一个硬盘,并将其放入另一台计算机,并将一些数据复制到镜像分区。

当我把硬盘放回原来的地方会发生什么?新的数据会被镜像到另一个驱动器吗?如果是,控制器如何检查/注意驱动器上有新数据?当然,它不能检查每个引导上的整个分区。

此外,当我删除与上面相同的场景中的文件时,会发生什么情况?它是从另一个驱动器中删除,还是被复制回来?

这是在一台Ubuntu机器上,我的意思是,在执行这个任务时,计算机会被完全关闭,只有当驱动器回到原来的位置时才会打开。

如果raid控制器在执行此操作时由于电源关闭而无法识别更改,是否有方法指示其重建数组?例如,假设raid是从/dev/sda1 1和/dev/ sdb 1构造的,我关闭计算机,取出sdb驱动器,将数据复制到它,并将其放回,现在我希望指示控制器使用/dev/sdb 1“作为主服务器”来重构数组。

EN

回答 6

Server Fault用户

回答已采纳

发布于 2009-06-07 00:48:10

关于它被标记为失败和重建的两个答案是正确的,希望这就是将要发生的事情。这是最好的情况。

另一种可能是,软件没有注意到,然后它仍然会认为驱动器是同步的。(例如,如果您在关闭电源时执行此特技,则可能发生此情况)最终结果很可能是损坏,唯一的解决方法是格式化并从备份恢复。

记住,RAID在磁盘级别工作,它不知道上面的文件系统。只是一些部门。当文件系统请求块10时,RAID层知道块10存储在disk1和disk2的块10上。不知怎么的,它选择一个或另一个磁盘并读取块10。除了您在背后修改磁盘之外,disk1和disk2上的块10是不同的。糟了。您可以期望在每个块的基础上混合使用disk1和disk2,包括用于存储文件系统元数据的块。

修复烂摊子

考虑到这种格式和从备份中恢复不是一种选择,我建议您最好的选择是从这种状态恢复:

(a)立即对两个驱动器进行成像。备份很重要。或者,您可能希望只在副本上工作。

(b)如果数组在此错误后未处于读/写模式,只需拔出修改过的驱动器即可。重建一个新的,空白驱动器。

(c)如果数组处于读/写模式,则选择一个驱动器并将其丢弃。重建到一个新的驱动器。

(d)如果您完全不关心哪个驱动器,那么只需要(当然用数组号替换X):这会强制重新同步。

代码语言:javascript
复制
echo repair > /sys/block/mdX/md/sync_action 

(e)在现在重建的数组上强制一个fsck。

(f)尽你所能核实你的数据。例如,运行debsums来检查OS的完整性,为没有MD5和的东西提供所有所需的包文件。

请注意,驱动器需要为空白,或至少所有RAID信息从其中删除,否则重建将无法正常工作。

票数 3
EN

Server Fault用户

发布于 2009-06-06 23:30:51

当从活动RAID数组断开驱动器时,它将在其配置中将驱动器视为失败。当您插入一个新驱动器(或同一驱动器)时,它将将其视为数组的“新”,并从已知的好的剩余驱动器中重新构建内容,因此对内容所做的任何更改都将被覆盖。如果在数组脱机时对驱动器执行此操作,则所做的更改将破坏数组控制器用于跟踪更改的校验和,并再次将驱动器视为失败并尝试重新构建。

如果要将文件复制到数组中,则需要通过控制器进行复制(无论是软件还是硬件)。

票数 4
EN

Server Fault用户

发布于 2009-06-06 22:44:13

这是Linux还是Windows问题?您的具体实现是什么?

通常情况下,删除的驱动器失败,当将其添加回时,您将不得不“排除”它。这通常意味着,失败的磁盘将使用工作磁盘中的所有数据重新初始化。因此,从本质上说,在这种情况下,对您删除的磁盘所做的所有更改都可能会丢失。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/21284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档