Raid、Serveraid 和 CRC 校验

Raid、Serveraid 和 CRC 校验

在 Serveraid 控制器的 bios 界面中可以设置 PHY 速度。除此之外,还有一个名为 CRC 校验的参数,可以设置为 true 或 false。

知道这一点,有几个问题:

  1. CRC 到底是做什么的?根据维基百科,它应该是一个完整性检查,但它是如何工作的呢?

  2. 我发现将此参数设置为 false 后,我的磁盘最终被识别为 sata2 而不是 sata1,速度确实提高了。为什么?

  3. 我发现IBM 论文中写道:“CRC 校验——(默认:否)确定控制器是否验证串行总线上数据传输的准确性。如果控制器支持的任何设备不支持 CRC 校验,则应在控制器和所有设备上禁用 CRC 校验。”如何发现硬盘是否支持 CRC?

  4. 如果禁用 CRC 并且发生突发事件,是否存在风险?

答案1

  1. CRC 是一种基本的完整性检查,它是 MD5 和 SHA1 等哈希的非安全版本。

  2. 计算 CRC 可能会导致速度减慢,控制器或磁盘需要以 1.5gbit 模式工作

  3. 不知道。

  4. 可能风险仅比关闭时稍微大一点。

答案2

磁盘 I/O 中的 CRC 校验主要围绕在向磁盘写入操作期间生成唯一的校验字,并在读取操作期间正确读回该校验字。

扇区是磁盘上磁道的细分。扇区是我们存储信息的地方。较新的硬盘使用 4096 字节扇区大小。

写入操作。想象一个代表扇区的 4096 字节缓冲区,以及一个包含校验字的 2 或 4 字节缓冲区 [最初包含所有零,这很重要]。当我们将 4096 字节写入磁盘上的扇区时,一串 1 和 0 会流入 4096 字节写入缓冲区。同时,同一串 1 和 0 会流入小校验字缓冲区。此校验字寄存器是独一无二的,因为它有选择地将寄存器的某些位位置与自身进行 AND 和 OR 运算,从而有效地创建一个唯一的校验字,并且完全依赖于相同的、精确的数据流来重现它。因此,在将所有 4096 字节移入校验字寄存器后,我们得到了一个小的复数。4096 字节磁盘记录被写入,小校验字被附加到扇区的末尾(在所谓的后同步中)。

读取操作。让我们在两周后逆转这个过程。和以前一样,我们有一个 4096 字节的磁盘缓冲区和将包含校验字的 2 或 4 字节缓冲区。两个缓冲区最初都是零。我们从磁盘将 4096 字节扇区读入磁盘缓冲区。和以前一样,同一串 1 和 0 会同时流入小校验字缓冲区。在扇区读取结束时,校验字缓冲区包含一些疯狂的数字,哦,什么,可能需要添加什么序列才能使其全部变为零?你猜对了,即将读入缓冲区的校验字。在读入时,缓冲区的位全为零。如果缓冲区的位测试全为零,则磁盘验证检查完成,数据将发送到系统。如果 CRC 缓冲区最终不是全为零,则在写入原始数据扇区或校验字或读取数据扇区或校验字时出现故障。无论如何,数据都被视为已损坏。

相关内容