关于硬盘 RAID 配置的科普与疑问

2021-08-07 09:33:04 +08:00
 LeeReamond

NAS 相关姊妹贴,前情提要

原贴回复过长,单独开一贴询问 RAID 问题。

首先科普部分,如果有老哥完全不清楚 raid 的话,简单描述常见 raid 是什么:

    假设有 n 块硬盘的话,在其中 n-1 块上写入实际数据,在剩下一块上写入对应的 xor 校验数据,
    因此任意一块硬盘的数据即使完全丢失,可通过 xor 结果反向计算出丢失的数据是什么,进行重建。
    技术细节上校验块并不集中于同一物理硬盘,而是平均分布于各盘。
    损失 1/n 的容量。假设有 10 块 10T 机械硬盘,最多可储存 90T 实际数据。
    因为 raid5 只能应对一处错误,如果两处错误同时发生,则会导致所有数据全部丢失的窘境。
    为了修正这个弱点,raid6 在 raid5 基础上将校验块又备份了一份,所以同时两处出错也能完全恢复数据。
    损失 2/n 的容量。另外缺陷是由于每次写入至少有三块硬盘在动,通常速度会比 raid5 更慢。

前贴中老哥回复的总结

有不止一位老哥提到 raid5 容易发生重建失败的问题。因为单个盘掉盘以后插入新盘的重建过程,由于硬盘容量通常很大,重建通常会持续若干天,在这期间发生再次掉盘则全部数据 GG 。

操作上的疑问

很多东西需要问一下,因为我只配过 raid 而确实没发生过数据损毁的情况,可能还是用得少。

个人感想

上文只是作为知识上的好奇,看了各位的回复以后,我觉得我应该会使用两张盘搞 raid1,剩下的都是裸数据的方案。因为即使是 nas 当中,大多数数据也是没有什么保护需求的,只有少部分个人文件、家庭照片、稀缺资源等等需要备份,搞一个专用保护分区应该足够,剩下的数据完全可以随便存放,丢了也就丢了,这应该是一套比较合适的方案。

另外问一下关于硬盘断电,win 有自带的判断硬盘一段时间无活动就会自动断电的功能,通常来说断电可以最大程度上保护硬盘使用寿命,同时还能省电,我想知道有无老哥遇到过频繁断电通电导致磁头损坏之类的问题。

4417 次点击
所在节点    问与答
50 条回复
villivateur
2021-08-07 09:44:47 +08:00
频繁通断电不会导致磁头损坏吧?最多是轴承磨损
KousukeSakurako
2021-08-07 10:10:08 +08:00
我选择 mergerfs,数据安全第一,性能损失都无所谓了
neteroster
2021-08-07 10:14:10 +08:00
目前有块硬盘通电 1000 小时左右,磁头加载卸载循环 1700 左右,没啥问题。以前也比较担心,搜了搜发现没什么大问题,实在担心可以把 APM 关了。
Ariver
2021-08-07 10:23:02 +08:00
https://hdd.userbenchmark.com/

讨论硬盘不能基于个例,必须在统计意义上看才有意义。
另外对于个人用户,每一个硬盘发生问题的可能性又是另外一个问题。

raid5 其实在商业环境是经常使用的,因为一般都会有另外一套对当前 raid5 的备份。
neteroster
2021-08-07 10:31:28 +08:00
关于你说的 RAID5 重建失败的问题,并不是重建发生掉盘才会失败(如果真是这样其实失败率并不高)。而是如果恢复的时候磁盘出现一个 URE (Unrecoverable Read Error),整个重建就会彻底失败,数据全损。磁盘的 URE 率有一些估计值,大约在 10^14 ~ 10^15,已知 URE 率,可以用一些计算工具直接计算重建失败率,例如: https://magj.github.io/raid-failure/
KKLeon
2021-08-07 10:43:36 +08:00
频繁断电通电还不如一直通电。另外休眠状态下硬盘还是保持通电状态,但磁头反复停转会影响寿命,越频繁影响越大。
ryd994
2021-08-07 11:28:54 +08:00
1.差不多是这个意思。也有硬件 RAID 卡。重点在于 RAID 逻辑由 CPU 程序还是由专门的硬件处理。
2.RAID 无法保护坏道和错误数据。RAID 的设计前提假设了硬盘挂就是彻底挂。现实中会有两个问题:1. 数据错了,但硬盘不知道 (冷错误)。2. 硬件工作不正常,卡死了。便宜的 RAID 卡就会傻等。所以企业级 NAS 盘有 TLER 功能。
ZFS 等带校验的文件系统可以解决前者。

4. 真遇到过。我之前的笔记本 bios 默认省电。用了一年,硬盘 SMART 里 load in 健康掉了 40%

乖乖搞远程和离线备份。RAID 救不了手抖和加密病毒。这也是为什么我不在 NAS 上跑乱七八糟的应用。储存就是纯储存。挂机下载放到另一台机器上。NAS 上定时 ZFS snapshot 。只要 NAS 本身不被攻破,就不怕勒索病毒。

RAID 是保护在线率(availability)的,不是保护数据留存率(durability)的
ryd994
2021-08-07 11:32:17 +08:00
频繁通电的问题是磁头会磨损
磁头不是固定在盘片上方,而是靠气动力学在盘片上“飞行”。所以如果盘片转速不对就会磨损磁头。磁头有石墨、钻石涂层,所以正常使用不成问题。但是你要是每几分钟就停一次,那很快就会出问题了。
一直转的话,反而没什么磨损。最多就是磨损电机轴承
dorothyREN
2021-08-07 11:50:53 +08:00
软件层面配置的是软 raid,硬件层面配置就的就是硬 raid,硬 raid 在操作系统看来就是一块普通的硬盘
3dwelcome
2021-08-07 12:13:27 +08:00
说这些技术指标都是虚的,我赌一片全麦面包,楼主最后还是会上 raid5 。
鸡蛋不能放一个篮子里,真重要的数据,不会只保存在一个地方。不重要的数据,丢了也就丢了。
硬盘本身就是消耗品,只要有使用,就会不断有损耗。做好应对措施就是了。
singerll
2021-08-07 13:41:45 +08:00
硬件 raid 是有缓存的,有的还有电容保护,在你掉电时能保证数据写入。软件 raid 的问题是,万一 win 系统挂了怎么办?硬件 raid 无论磁盘还是 raid 卡,挂了换一个都能恢复 raid 信息。
Osk
2021-08-07 14:21:01 +08:00
我来回答第 3 个疑问:
磁盘管理里面组 "软 RAID" (动态磁盘) 这种方式已经不推荐了. 现在 Windows 推荐的是使用存储空间实现, 可以做到类似于 RAID0,1,5,6 的技术.

但是 Windows 的存储空间 RAID5 性能很糟, 写爆缓存后速度相当感人(不知道是不是我配置不对). 可以用 SSD 加速.

Windows 存储空间的优势是灵活不挑硬件, 硬 RAID 需要单独购买 RAID 卡和支持 RAID 卡的主板(通常只有工作站和服务器才有).

使用存储空间时, 建议使用 ReFS 配合.
msg7086
2021-08-07 15:43:29 +08:00
0. 先给你点个赞,把有用的回复整理成帖子,可以方便后人参考,也可以避免楼层过长,方便讨论。

1. RAID 6 并不是把校验数据备份一次,而是用里所码生成校验数据,所以远远比 RAID 5 安全。
RAID 5 用的是奇偶校验,这个校验是很弱的,你只知道数据出错了,但是不知道错在哪。
举个例子,比如我们有 4 块盘,3 块数据扇区,1 块校验扇区。
假如里面存放的比特数据分别是 1 0 1 0,那么奇偶校验通过,说明数据是正确的。
那假如里面存放的是 1 0 0 0 呢?很显然奇偶校验错了。
那么,你知道错的是哪个块吗?
其实不知道。
所以 RAID 5 普遍会直接盲猜数据块是正确的,然后重建错误块,也就是重建成 1 0 0 1 。
如果运气不好,是数据盘上的数据错了,那就永远错了。
但是 RAID 6 遇上这种情况,因为有两个校验块,所以很容易就知道哪块数据坏了。
(顺带一提,RAID 1 也无法解决这个问题。所以 RAID 1 并不是万能良药。)

2. 你提到的 RAID 5 数据全部丢失的情况,只适用于磁盘损坏而非数据错误。
数据错误本身是静默的(也就是说你不知道数据坏了)。
如果是读取失败,反倒相对还好,只要同一个扇区其他块都在,就能救回来。
(比如 1 0 X 0,那直接把 1 写回硬盘 3 就行了。)
如果是读取成功但内容错误,就是上面第一点说的情况。
如果是磁盘直接消失了,才是你帖子里提到的情况。

3. 硬 RAID 一般指正规的硬件阵列卡上配置的 RAID 。
比如你买一片 LSI 企业级阵列卡,插上硬盘,那么阵列卡就能管理到硬盘。
硬盘对你的电脑是不可见的,需要投过阵列卡的配置。阵列卡里可以新建虚拟磁盘,虚拟磁盘可以由多个物理磁盘组成。你的电脑只能看见虚拟磁盘。比如你把 6 块 8TB 硬盘组成了 RAID 6,那电脑就只能看到一个 32TB 的虚拟硬盘。

软 RAID 分硬件软 RAID (比如 Intel 主板提供的 Intel RAID 就是这种)和软件软 RAID (比如动态磁盘,Linux MD,ZFS 就是这种)。一般如果是用软 RAID 的话家用推荐 Linux MD,企业环境推荐 ZFS 。如果要用硬 RAID 的话,就买一张阵列卡( LSI 或者 Adaptec 之类的二手拆机卡)。Windows 下的 RAID 实在推荐不出手,建议还是算了。主板芯片自带的 RAID 少碰。

4. 数据重建只有在严重损坏的时候才需要。
如果只是一个扇区有错误数据,一般阵列卡会直接回写解决。
坏道分逻辑坏道和物理坏道。逻辑坏道是扇区上 bit flip 过多以后 checksum 过不去导致的读取错误,这种情况只要回写数据即可,不是真正的「坏」道。物理坏道一般无法修复,磁盘会自动重映射扇区。不管哪种情况对用户基本都是无感的。
如果是硬盘完全损坏,无法读写甚至无法识别,这时候阵列卡会报警,然后你需要把坏硬盘拔掉,插上新硬盘,然后重建。有些阵列卡支持自动重建,如果自动重建关掉的话就手动重建。软 RAID 也一样,换上硬盘以后用命令告知,然后重建即可。

5. Windows 的 RAID 我不是很放心用。你要用动态磁盘或者存储空间也不是不行,但还是注意做好备份吧。
阵列卡 RAID 相对安全一些,毕竟国际大企业都在用。
msg7086
2021-08-07 15:45:42 +08:00
@Osk 支持 RAID 卡的主板……这不是有手就行么。
PCIe 而已,只要有槽能插就能用。
之前没挖矿的时候一张 RAID 卡也就 20 刀,一百多块钱,随便一张主板插上就能用的。
steptodream
2021-08-07 15:47:33 +08:00
推荐 10
FlyingShark
2021-08-07 16:48:37 +08:00
家用可以不搞 RAID,楼主可以从单盘或者存储池开始折腾,玩明白了再淘一张 RAID 卡玩玩(现在卡涨价了)

如果物理机装群晖系统,直接用 SHR 模式即可

RAID 不是用来备份数据的,切记
Osk
2021-08-07 18:37:03 +08:00
@msg7086 我印象中不是要 BIOS 加载 RAID 卡的 OPROM 来支持吗, 好像有些卡有限制, 要么限制主板厂家, 要么就是不支持 UEFI 什么的, 感觉没软 RAID 那么灵活.

不确定我是不是记错了.
ZRS
2021-08-07 18:41:58 +08:00
家用一律建议上软 RAID,用 ZFS 的 RAIDZ 方案。硬 RAID 卡方案保障的是高可用,而不是数据的安全性,工业场景下也不靠 RAID 来保障数据安全。
ryd994
2021-08-07 19:10:08 +08:00
@singerll
1. 只有 writeback 缓存才有数据安全的问题。硬件 raid 如果没有 bbu 的话是不会使用 writeback 模式的。而且 bbu 保护是保护缓存数据直到来电,而不是驱动硬盘继续写入。
软件 raid 想要高随机写入可以用 ssd 缓存,比如 zfs slog 。硬件缓存撑死了也就那点 ram,ssd 缓存容量大得多

正常用 nas 肯定是要配 ups 的,停电就开始关机。服务器还有双电源。所以不存在你说的突然掉电问题。
2.“硬件 raid 无论磁盘还是 raid 卡,挂了换一个都能恢复 raid 信息。”
前提是你得有同品牌甚至同型号地区。
软件 raid 的配置信息也是保存在盘上啊,你以为保存在系统盘里吗?
软件 raid 的硬盘换个系统,导入一下就可以了。
所以大家用 nas 的时候都是用垃圾 ssd 或者 U 盘做系统盘。就是因为挂了也无所谓。系统配置平时很少动。定期备份到 U 盘就好了。

如果硬件 raid 找不到对应的硬件,救数据还得靠软件。毕竟软件只要知道是什么格式,总能找到支持的软件,性能且不论。
singerll
2021-08-07 20:31:45 +08:00
@ryd994

我想说的是硬件 raid 和软件 raid 的区别,而不是个人 nas 中硬件 raid 和软件 raid 的区别。

1 、如果硬件 raid 找不到对应的硬件,我觉得这种事情几乎不会发生,我们公司最老的 2012 年的服务器 raid 卡还能买到,我亲自跟供应商打的电话,供应商用了不到 10 分钟就给我确认有货。

2 、软件 raid 的配置信息也是保存在盘上。我的意思是硬件 raid 比软件 raid 可靠性高的多,保存 raid 的盘坏了怎么办,你还要异地备份,网络故障,备份高可用都要考虑。就好像数据库做备份,家用可能 mysqdump 就够了,像银行,不但备份文件,连硬件磁头的信息都要备份。

3 、硬件 raid 如果没有 bbu 。服务器带超级电容几乎是标配,而且硬盘缓存和 raid 缓存并不冲突,我们生产环境不但上了 pcie 的固态(数据盘全 pcie ),也上了 raid 卡做直通。

4 、双电源+UPS 不会掉电。UPS 坏了咋办?别说双电源,服务器四个电源,结果电源管理模块崩了的我都见过。而且我们机房三路市电,两套 UPS,最惨的一次三路市电全掉,在 UPS 马上到底的最后两个小时,调来了发电车。


另外,我就是想说下软硬 raid 的优劣,并没有说哪种方案就是最完美的,实际中肯定是看钱包。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/794221

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX