Windows 存储空间 - RAID6 的有用替代品?

cry*_*rth 10 linux windows storage raid6 storage-spaces

// 底部的简短更新

// 另一个更新在底部附近以回复建议的编辑

所以,一开始我有这个想法:找一个虚拟驱动程序在windows上设置和使用软件raid。结果:即使有开发人员的支持也失败。

在观看了有关虚拟化的 YouTube 视频后,我想到了下一个想法:为运行裸机的 linux 系统安装第二个相当便宜的 gpu,并通过直通在我的主 gpu 的 VM 中设置我的窗口。通过这种方式,我可以使用 mdadm/lvm 并让 linux 完成所有软件突袭任务。结果:失败 - 由于我的主板的一些奇怪问题根本不喜欢第二个 gpu。

然后我阅读了一些关于 Windows 存储空间的内容,并且它能够提供与软件 RAID6 相当的容错(据我所知,它是通过分布在物理驱动器上的文件系统卷影副本完成的)。所以我试了一下,让它运行起来(尽管它需要在 powershell 中手动输入一些行,因为 gui 版本没有公开一些高级设置)。

由于这只是在虚拟机中,测试性能相当糟糕,但我注意到数据被多次写入,有时最终会导致驱动器使用不均匀。例如:其中一个虚拟磁盘仅写入了大约 2GB,而另一个驱动器写入了大约 4GB。因此,无论使用什么分发算法(它看起来不像循环,而是更像是大多数可用的物理空间),它与我期望的软件 RAID6 的行为方式相去甚远。

我还注意到使用物理磁盘空间相当浪费。我的测试是使用 8 个磁盘,每个磁盘 50GB。一个 mdadm 软件 RAID6 导致大约 300GB 的可用空间不足,存储空间只有大约 250GB - 所以另外 15% 的“惩罚”。好吧,我想这就是所有的开销等等,但即使是从软件 RAID 中,我也希望能更好地利用我的物理磁盘空间。

然后我测试了如果我开始移除驱动器会发生什么,并且当我使用 -PhysicalDiskRedundancy 2 设置它时,它能够存活下来并且所有测试数据仍然可用。

因此,总体而言,它似乎符合我对支持类似 raid6 的容错能力的 windows 上的软件突袭的需求,以在双重故障中幸存下来(即:在重建第一个失败的驱动器的同时使第二个驱动器失败)。关于性能:嗯,这是软件突袭 - 由于我目前正在使用 fakeRAID(基本上是由 bios 遮蔽的特定于驱动程序的软件突袭),因此不会像我现在那样对系统性能产生更大的影响。

真正让我三思的原因是:目前有两个主要问题:a) 无法安装在 linux 系统上(我还没有测试它是否以及如何安装在恢复环境中)和 b)在当前的 win10 2004 中,有很多问题已经导致数据丢失,正如一些用户在不同论坛上报告的那样。

我为什么要问这个:主要的“问题”是我目前没有投资新/更好硬件的财务选择。我只需要保留我目前拥有的东西。因此,我正在寻找软件解决方案。我尝试了 WinBTRFS,因为它声称支持其卷的软件 RAID,但即使在其开发人员的帮助下,我也无法正确设置它。因此,基本问题归结为:如果无法负担硬件 RAID 或虚拟化等其他解决方案(由于硬件不兼容),使用存储空间是否是一种可行的选择?当然,我有许多“非常重要”的数据备份在外部驱动器上,但仍然:我宁愿构建一些可靠的系统,而不是“我相信不会发生任何事情”的方式。

// 更新

正如关于是否以及如何通过 WinPE 访问此类虚拟磁盘的一个小更新:我刚刚下载了当前的 2004 ADK 并创建了一个新的 WinPE 映像。由于我必须使用 PowerShell 来访问信息,因此我只是复制了 ADK PE 文档中的说明。之后我创建了一个 ISO 并在 VM 中启动它。无需任何进一步的命令,它就可以直接从引导中使用。正如我在 MSDN 论坛上读到的那样,这仅适用于 Windows 的客户端版本。在服务器版本上,存储空间以只读和分离状态启动(我猜是为了安全)。因此,为了从中读取,必须手动附加它。显然,要写入它,必须将其从只读更改为可读写 - 但因为我的问题是关于如何在恢复环境中读取数据以便我不需要写入这样的卷。

// 补充回复

正如 DarcyThomas 在他的评论中所建议的那样,这是我目前使用 RAID5 的背景以及为什么我认为需要迁移到更安全的风格,如 RAID6:

  1. 我这样做是为了获得较小的读取速度优势吗:虽然我注意到该阵列能够以比其中一个驱动器本身更快的速度传输数据,但它仅在我复制大文件时才真正显示,从而导致长顺序读取. 当我处理大量小文件时,会导致大量随机 I/O,与单个驱动器相比,性能有时会变得更糟。至于写入速度,情况大致相同。所以,要回答这个问题:不,速度优势肯定不是我的目标,因此我可以接受 RAID6 所暗示的更糟糕的“惩罚”。

  2. 我这样做是作为廉价的备份吗?人们肯定会试图争辩说是的。如果其中一个驱动器出现故障,我肯定会利用所有数据仍然可用。当然,我在另一个离线驱动器上确实有非常重要的数据,因此在阵列发生灾难性损失时(即由于硬件故障或板子冒烟),我仍然可以确保重要数据的安全。但我确实利用了便利性,不必担心驱动器出现故障,就像我将它们用作单个驱动器(或者可能在其他配置中)一样。我已经有两个驱动器出现故障(移动后的时间都很短 - 因此可能两次都是物理运输损坏而不是驱动器磨损)并且重建时间很长(仅 3 TB 大约需要 14 小时)。

  3. 我真的需要那个大卷吗?尽管另一个有争议的问题要简短,但我会简单地回答:是的,至少为了方便起见。我的阵列已经填满了超过 1/3,跨多个驱动器/卷管理如此大量的数据会导致混乱(至少对我而言)。另一个巧妙的副作用:如果有人带来了类似的新东西(音乐、电影等),我可以将它“转储”到阵列上,以后可以重新组织和删除重复数据,而不必担心堵塞驱动器。我是一个大脑像苍蝇一样的人:几个小时后我会忘记我已经把数据放在另一个驱动器上,然后再找另一个驱动器。把这一切都集中在一个地方对我来说。

  4. 至于“在线”备份解决方案:是的,我知道它们就在那里。是的,我也知道有些人可以免费或至少便宜地获得。并且确定我有能力为自己编写一些小的加密器/解密器代码,使用非对称密钥来保护对称密钥而不是使用密码短语。而且我也不是不信任他们。但同样适用于数字 3:随着时间的推移,我只会简单地忘记其中的一些。尽管我有一个相当快的连接(250/50),但我并不希望通过网络传输我的所有数据。但我想这只是个人的事情。

所以,总结一下:对我来说,从 5 驱动器 RAID5 转移到 8 驱动器 RAID6 只是下一个合乎逻辑的步骤。投资将相当低(仅用于额外的驱​​动器 + 一两个简单的 HBA)并且正确完成它不应该依赖于像我现在使用的那样的专有东西。是的,我想出了如何从恢复环境访问存储空间,但这需要它的专有规范保持不变,而不会突然发生变化导致不兼容(例如只有办公室文档的混乱)。也许这个添加可以帮助其他人将来回复。

Bar*_*958 11

Windows Parity Spaces 很慢,并且(根据 Microsoft 的说法)不是为存档工作负载之外的任何东西设计的。微软一直在努力提高写入性能,比如硬件 RAID 中缺少已实现的日志,但是缺少电池供电的回写缓存会带走所有的乐趣。但是,您可以通过告诉 Spaces 您有 UPS 来尝试改进写入。

https://docs.microsoft.com/en-us/windows-server/storage/storage-spaces/deploy-standalone-storage-spaces

Set-StoragePool -FriendlyName -IsPowerProtected $True

另一点是使用 ReFS 和存储空间组合成所谓的镜像加速奇偶校验,写入将在 SSD 层内结束,稍后在 HDD 层上死亡。

https://docs.microsoft.com/en-us/windows-server/storage/refs/mirror-accelerated-parity

http://knowledgebase.45drives.com/kb/kb450193-creating-mirror-accelerated-parity-volumes-and-storage-tiers-in-storage-spaces-windows-server-2019/

不幸的是,这不是 100% 支持的场景,除了 Storage Spaces Direct(它本身就是另一种蠕虫)。

如果您绝对需要坚持使用 Windows Server 操作系统,我建议您使用 Linux MDRAID+XFS,因为它具有出色的稳定性和大量经过验证的部署或来自 eBay 的旧库存 LSI 硬件 RAID 卡。

  • Windows 2019 中的 S2D 有一个初始问题,即小型 2 节点集群中的仲裁丢失,在一台服务器上启用维护模式以进行修补或正常重启后,很有可能使所有存储脱机。这个问题可能已经在一些冬季补丁中解决了。我为客户的小型集群部署 Starwind VSAN 作为 S2D 的替代方案,因为它是为此类用途而开发的。PS ReFS 也没有承诺的那么“有弹性” - https://bit.ly/2XqpJGC。 (4认同)
  • 这是一个客户端操作系统,没有服务器。我已经有了使用 linux 裸机并作为 VM 运行 win 的想法,但是要通过直通使用我的主 gpu,它需要第二个用于 linux - 我的董事会根本不喜欢(它甚至不使用第二个GPU)。当我在游戏中使用装备时,我被困在 win 平台上,因为它们中的很多都不是在 linux 上本地运行的——而且 wine 性能更差。它也不应该是高性能的,操作系统在它自己的驱动器上运行,但它必须是可靠的。它也应该可以通过救援系统访问(仍在测试这个)。抱歉回复太短,但您知道评论长度限制。 (3认同)
  • 我们对存储空间直通(节点锁定、ReFS 数据损坏、各种性能问题等)有非常不同的体验,并且没有计划在短期内重新实施它。 (3认同)
  • Storage Spaces Direct(S2D?AzSHCI?)绝不是可靠的技术。ReFS 在重负载下或在达到特定卷容量后将自己变成 RAW 是人们在野外看到的。https://forums.veeam.com/veeam-backup-replication-f2/windows-2019-large-refs-and-deletes-t57726-150.html (3认同)

Cho*_*er3 6

“Windows 存储空间 - RAID6 的有用替代品?”

如果“RAID6”的意思是“我讨厌我的数据并希望以尽可能慢的方式获取它”,那么是的,当然 - 我们有一次丢失了 62TB 的数据,幸运的是备份了所有数据再也不。

编辑:不要相信 Windows 软件 RAID,不要相信大容量的双奇偶校验硬件 RAID,始终遵循 3-2-1 备份规则和“我们信任备份”。

  • Disc = 光盘,旋转生锈的英文称为“Disk”。Chopper3 明确声明“我们从备份中恢复”,因此您的“RAID 不是备份”的话毫无意义。 (5认同)
  • 这不是一个有用的答案,而是个人轶事。请编辑以提供一些背景和原因 (4认同)
  • 我试图用简短的总结来改进 Chopper3 的回复,但总的来说,我同意他的观点,并认为他可能有点情绪化的回复就是一个答案。和平!:) (4认同)
  • 这个关于 3-2-1 备份规则的链接应该会有所帮助。https://www.vmwareblog.org/3-2-1-backup-rule-data-will-always-survive/ (3认同)
  • 我不确定我是否可以遵循这一点,但要回答:通过 RAID6,我的意思是由 6 个或更多物理驱动器组成的阵列一起工作,以承受双重故障,例如在重建第一个故障驱动器期间第二个驱动器故障。我知道这仍然不是单独备份的借口,但即使是我的消费级 fakeRAID 也已经两次避免了数据丢失。另外:再说一遍,因为这不是服务器,而只是用于运行游戏的私人计算机,所以性能并没有那么高。在没有嵌套的情况下,如何在单个 RAID6 中获得 62TB 的容量?对我来说,这听起来更像是一个多重错误。 (2认同)