如果您想要数据持久性,请进行备份。您可能还想使用 RAID 来提高正常运行时间并防止在线数据丢失。您可以使用软件 RAID、板载/主板 RAID 或单独的 RAID 控制器。
RAID 在物理磁盘上存储数据的方式是否有任何标准?如果没有,那么为什么不呢?
除非存在“通用”标准,否则什么使得 RAID 实现可以互操作呢?
答案1
是否有任何字节级 RAID 标准?如果没有,为什么?
磁盘是块级设备,这意味着您无法从磁盘读取和写入单个字节,而只能读取和写入整个块。传统上,这个块是 512 字节,但 4096 字节正变得越来越普遍。
与硬件设备通信几乎总是有开销的 - 如果您请求的数据量非常小,那么您在开销上花费的时间将比获取数据的时间更多。由于磁盘是一种大容量存储介质,用于存储大量数据而不是单个字节,因此在大多数情况下,在字节级别上工作可能不值得。
至于最佳值 - 512 已经使用了很长时间。4096 之所以存在,只是因为硬盘需要更高的物理密度来存储更多数据。对于可以像块设备一样工作的旧磁带驱动器,我相信您可以更改块大小。IBM 最初选择 128 的块大小是因为它是 80 以上的下一个最大 2 的幂 - 而 80 是标准打字行上的字符数。
数据在物理磁盘上的存储方式是否有任何标准
对于硬件 RAID,可能没有,除非供应商在某处发布了此信息,并且他们可能不想由于以下原因公开它。
对于软件 RAID:我不知道有关 Windows 动态卷格式(可用于实现软件 RAID)的任何信息来源,但可能在 Microsoft 文档中有所介绍。Linux 用于lvm
/md
磁盘的格式至少在源代码中有记录,并且可能在其他易于 Google 的地方有说明。
如果不是这样,那为什么不呢?
悲观的答案是,供应商有动力将你锁定 - 如果你有一个 RAID 控制器坏了并且需要尽快更换,因为你的所有磁盘都格式化为与该控制器一起使用,你将再次从供应商那里购买。
乐观的答案是,这允许硬件供应商针对硬件优化磁盘结构,和/或软件/固件设计人员针对所涉及的算法或技术优化磁盘结构。
除非存在“通用”标准,否则什么使得 RAID 实现可以互操作呢?
关于物理磁盘上的哪些块/区域代表什么含义的协议。
答案2
是否有任何字节级 RAID 标准?如果没有,为什么?
不可能。我们为什么要使用字节?我们倾向于使用位或位集合。这些集合往往是某个数字,例如 4096 位(512 字节),这是传统硬盘扇区的大小,或者更大的数量。这是因为硬盘通信标准(如 SATA)倾向于允许硬盘一次读取一个扇区。设计 RAID 标准的人可能会关注速度,并使用 512 字节或 4 千字节等“条带大小”。他们不太可能选择“8 位”这样的值,因为他们的重点不一定是“让我们为需要简单技术的人提供便利”。
我忽略了问题的第一段,因为它似乎是在试图描述场景的背景,并没有实际的问题。
数据如何存储在物理磁盘上是否有任何标准?如果没有,那么为什么没有呢?
当然。标准包括 FAT32、Ext2、NTFS、Btrfs 等。
除非存在“通用”标准,否则什么使得 RAID 实现可以互操作呢?
一些 RAID 实现是可互操作的。RAID 1 可能尤其有可能……如果它不起作用(在简单的双磁盘设置上),问题可能只是不兼容的标头,而不是巨大的技术问题。非标准化的原因可能只是没有比已经完成的更多的令人信服的标准化理由。
RAID5 可能兼容性较好,如果条带大小相同。不同的条带大小意味着一个系统可能认为某个位应被视为奇偶校验位,而另一个系统可能认为该位应被视为数据位。
引用我自己的网站:
“存储网络行业协会”(“SNIA”) 对“独立磁盘冗余阵列”(“RAID”) 6 的定义是“任何形式的 RAID,在任意两个磁盘同时发生故障的情况下,都可以继续对 RAID 阵列的所有虚拟磁盘执行读写请求。”该定义继续(在单独的段落中)说:“已使用多种方法来实现 RAID 级别 6,包括双校验数据计算(奇偶校验和 Reed Solomon)、正交双奇偶校验数据和对角奇偶校验。”
因此,就 RAID6 而言,有一个标准。该标准只是能够承受磁盘故障的能力。这就是我们定义“RAID 6”的方式,并且存在完全不同(且不兼容)的方法。
这可能是解决任何其他 RAID 级别不兼容问题的好办法。术语“RAID 1”描述了一种通用方法和功能集,但普遍支持的 RAID 规范并不会要求为了实现更好的互操作性而需要匹配的特定细节。
哎呀,人们甚至无法就 RAID10 是什么达成一致。显然,它与 RAID 1+0 是同一回事,是 RAID 1 和 RAID 0 这两个通用概念的组合。显然,RAID0+1 也是 RAID 1 和 RAID 0 这两个通用概念的组合。显然,其中一个是“镜像条带”,而另一个是“条带镜像”。但是,哪个术语(RAID10 或 RAID0+1)是“镜像条带”?答案取决于供应商。并非所有供应商都同意这一点(根据以下来源:有关多个 RAID 级别的 PC 指南文章)。如果对“RAID10”的确切含义没有达成普遍共识,我们又怎么能指望对更具体的细节(例如特定位的用途)达成普遍共识呢?(这种级别的细节对于实现互操作性是必需的。)
这就是情况。至于“为什么”没有更精确地处理这个问题,基本原因是典型的使用情况是将一堆驱动器塞进一个系统,因此一切都只在一个 RAID 控制器的控制之下。在稍微复杂一点的情况下,一家大公司可能有多个 RAID 控制器,他们通常可以通过确保使用相同型号的 RAID 控制器来避免互操作性问题。除此之外的互操作性并不是大多数人不太关心的功能。由于缺乏巨大的市场需求,市场根本就懒得去关心提供它。