简介
在DIY NAS上下文中处理存储时,会出现两个重要的主题:
- 不可恢复的读错误(ure)或像我这样的老人所说的“坏扇区”
- 无声数据损坏(存储层不注意的数据损坏)
我有一个强烈的印象,人们倾向于混淆这些概念。然而,当人们想要购买或构建自己的diy NAS时,他们经常会在评估他们的选择时出现。
在本文中,我想明确区分这两者并评估其风险。这可以帮助你评估这些风险,并做出明智的决定。
不可恢复的读错误(由于坏扇区)
当硬盘遇到“坏ob体育下载扇区”时,这意味着它不能再读取该特定扇区的内容。
如果硬盘在多次ob体育下载尝试后仍无法读取该数据,操作系统将返回一个不可恢复的读取错误(URE)。
这是一个(在Linux上)遇到读取错误的驱动器的例子,从/var/log/syslog中取出(为了可读性剔除了一点):
sd 0:0:0:0: [sda] tag#19 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE sd 0:0:0:0: [sda] tag#19 Sense Key: Medium Error [current] sd 0:0:0:0: [sda] tag#19 Add. Sense:未恢复的读取错误sd 0:0:0:0: [sda] tag#19 CDB: read (10) 28 00 02 1c 8c 00 00 00 00 98 00 blk_update_request: critical Medium Error, dev sda, sector 35425280 op 0x0:(read) sd 0:0:0:0: [sda] tag#16 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE sd 0:0:0:0: [sda] tag#16 Sense Key:Medium Error [current] sd 0:0:0:0: [sda] tag#16 Add. Sense: Unrecovered read Error sd 0:0:0:0: [sda] tag#16 CDB: read (10) 28 00 02 1c 8d 00 00 00 88 00 blk_update_request: critical Medium Error, dev sda, sector 35425536 op 0x0:(read)
如果无法读取扇区,则该扇区内的数据将丢失。根据我的经验,如果你遇到一个坏区,很快就会有更多坏区出现。所以如果发生这种情况,是时候更换硬盘了。ob体育下载
我们使用RAID来防止驱动器故障。RAID(无论实现)也可以处理“部分故障”,如驱动器遇到坏扇区。
在RAID阵列中,遇到不可恢复的读取错误的驱动器只是被踢出阵列,所以它不会“挂起”或“暂停”整个RAID阵列。
请注意,这种行为取决于所选择的特定RAID解决方案1.问题的关键是坏扇区或ure是一个常见的事件,RAID解决方案可以正确地处理它们。
坏扇区(导致ure)的真正问题是,它们可能一直未被发现,直到为时已晚。所以在早期发现它们,这是非常重要的运行常规数据擦洗。我写一篇文章特别是关于这个话题。欧宝体育直播官网
无声数据损坏
不可恢复的读取错误意味着我们不能读取文件的(一部分)。虽然这是不幸的-因为我们最好有一个完整的备份文件-我们也很幸运。
我们为什么幸运?
我们很幸运,因为存储系统(硬盘和操作系统)报告了一个错误。ob体育下载我们能够诊断出问题并采取行动。
但有可能在你的硬盘、SATA控制器或操作系统不注意的情况下,比特和字节被损坏了。ob体育下载在某个地方,以某种方式,一个位被读取或传输为1,而它本应该是0。
这是非常糟糕的,因为数据损坏是未被发现,它是'沉默,没有通知。
因为想象一下会发生什么:损坏的文件愉快地由备份软件备份,因为它没有意识到有任何错误。当您发现数据损坏时,原始的原始文件已经不再是备份的一部分了。您将留下一个损坏文件的大量备份。我们遇到了数据丢失。
这是最可怕的一种数据丢失。因为它很难被发现。你必须不断地计算一个文件的校验和,并验证它仍然是正确的。
这就是——尽管很简单——确切地说ZFS(在许多其他事情中)。ZFS在块级使用校验和,因此每次读取时确保块中包含的数据是否仍然有效。ZFS是少数几个具有这种强大特性的文件系统之一(BTRFS是另一个例子)。
常规RAID阵列(无论是基于硬件的还是基于软件的)无法检测静默数据损坏(尽管RAID6可以做到)。因此,必须清楚ZFS能够抵御“常规”RAID无法应对的风险。
无声的数据损坏是家庭DIY NAS建设者的重大威胁吗?
虽然无声的数据损坏是一个非常可怕的威胁,但据我所知,这并不严重独立的风险证据沉默数据损坏是如此之高,以至于普通家庭DIY NAS建设者应该考虑到这种风险吗2.
也许我错了,但我认为许多人错误地混淆了ure或不可恢复的读错误(由坏扇区引起)沉默数据损坏。我认为这是错误的,因为根本没有沉默欧宝体育直播官网关于一个不可恢复的读错误。
事实是,硬盘驱动器实际上是非常可靠的ob体育下载沉默数据损坏,因为他们大量使用错误检测和修正算法。硬盘驱动器的很大一部分原始容量被牺牲来存储冗余信息,以帮助检测和纠正数据损坏。ob体育下载根据维基百科、使ob体育下载用的硬盘Reed-Solomon纠错在过去和更现代的驱动器使用方法,.
这些错误修正代码确保了数据的完整性。虽然“软”读错误可能发生,但硬盘驱动器上存储了足够多的额外冗余信息来检测错误,甚至重构数据(在某种程度上)。ob体育下载你的硬盘自ob体育下载己处理这些,这是正常操作的一部分。
所以这就是我的观点:重要的是要理解,在硬盘驱动器中有很多防止无声数据损坏的保护措施。ob体育下载因此,无声数据损坏的风险很小3..
有时读取的数据是如此的乱码,即使是错误纠正代码也不能重建数据,因为它是最初存储的,这就是我们所经历的不可恢复的读取错误。但是磁盘注意到了!它会报告的!这一点都不安静!
要真正产生无声的数据损坏,需要发生一些非常特殊的事情。需要明确的是:这样的事情确实会发生.但它们非常罕见。
以某种方式,一个比特必须翻转,这个事件没有被错误修正算法检测到。也许是从硬盘读取数据时,硬盘缓存中的比特翻转了。ob体育下载也许它在通过SATA电缆传输时翻转了。
但有趣的是,SATA协议还在协议中嵌入了错误检测,以实现可靠的数据传输。这是错误检测和纠正一直往下.
风险是沉默因此,数据损坏的发生是非常小的,特别是对于家庭用户。
同样,毫无疑问:风险是真实存在的,对于拥有数百、数千或数万个驱动器的大规模存储解决方案(san /存储阵列),确实必须考虑到无声数据损坏的风险。在规模上,即使是非常小的风险也会成为必然。
企业存储解决方案通常使用自己的专有解决方案来防止无声数据损坏。尽管它取决于特解4在美国,它通常是存储阵列的一部分。ZFS是革命性的,因为他们把数据完整性检查放在文件系统本身。
因此,如果您认为无声数据损坏的风险仍然很高,应该保护自己免受它的侵害,我建议您考虑使用ECC内存防止内存中的数据损坏。坦率地说:我认为非ecc内存比存储子系统更有可能导致静默数据损坏,存储子系统已经采用了所有这些错误检测和纠正算法。非ecc内存完全不受保护。
Anekdote我自己经营一家24-drive NAS基于ZFS,它已经连续6年坚如磐石。
有时,我确实会运行磁盘“擦洗”,这可能需要相当长的时间。尽管我有许多tb的数据受到ZFS的保护,但是没有检测到一个无声的数据损坏实例。我演过那么多手术我读过的不止是拍字节有价值的数据。
Anekdote:有人犯了一个错误,用了电缆类型错误将硬盘连接到HBA卡。ob体育下载这导致了实际的无声数据损坏。因为此人正在运行ZFS,所以ZFS检测到了他的数据。在这个例子中,ZFS确实保护了一个人不受无声数据损坏的影响。
评价
我希望不可恢复的读取错误和静默数据损坏之间的区别是明确的,并且我们不应该混淆这两者。它们有不同的风险概况。
此外,我认为无声的数据损坏是真正的这是一个很严重的问题在规模,这是相应的处理。
但是,我还认为,除非您是在地下室运行小型数据中心的家庭用户,否则无声数据损坏的风险非常小合理的作为DIY NAS构建者接受风险,而不寻求针对它的特定保护。
由你来决定。如果您希望使用ZFS并防止隐式数据损坏,您还应该了解并接受ZFS成本.我自己已经接受了我自己NAS的成本,但如果你不接受也没关系。如果你那么在意静默数据损欧宝体育直播官网坏,也请考虑使用纠错码存储器.
但在我看来,你是不如果你选择Unraid, Snapraid, Linux内核RAID, Windows存储空间或其他相同的选项,就会冒不合理的风险。我会说这是合理的由你决定。
请记住:家庭用户NAS盒的著名供应商似乎都使用常规的Linux内核RAID在引擎盖下面。他们似乎认为这没什么。
最后,真正重要的是一个解决方案能满足您的需求,也符合您的预算和专业水平。当出现问题时,你能解决问题吗?
我注意到,在使用这个特定的驱动器进行测试时,该驱动器没有被踢出阵列,它只是一直试图读取,使Linux软件RAID阵列停止运行。从阵列中移除驱动器修复了这个问题。有一个“快速故障”选项,只适用于RAID1或RAID10。↩
我不想以任何方式暗示它会是错误的将无声的数据损坏考虑在内,但我想说的是,我认为这并不是强制性的。↩
最大的风险是企业级硬盘使用板载ECC缓存内存,而消费者硬盘使用ob体育下载non-ECC高速缓冲存储器。因此,驱动器高速缓存中的数据被悄悄损坏可能是一种风险。↩
存储供应商通常选择重新格式化较大的硬盘部门的大小5.这些较大的扇区还包含额外的校验和数据,以更好地防止数据损坏或不可恢复的读取错误。↩
https://www.seagate.com/files/staticfiles/docs/pdf/whitepaper/safeguarding-data-from-corruption-technology-paper-tp621us.pdf↩
评论