Raid,Serveraid和CRC检查

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

知道这一点,一些问题:

  1. CRC究竟做了什么? 因此,维基百科应该是一个完整性检查,但它是如何工作的?

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

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

  4. 如果CRC被禁用且发生中断事件,是否有风险?

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

  2. 计算CRC可能会导致足够的减速,无论是控制器还是磁盘都希望在1.5gbit模式下工作

  3. 不知道。

  4. 当它closures时,可能只有稍微多一点的风险。

磁盘I / O中的CRC检查是在对磁盘写入操作期间生成一个唯一的校验字,并在读取操作期间正确地读取该校验字。

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

写操作。 想象一下代表扇区的4096字节的缓冲区,以及一个2或4字节的缓冲区[最初包含所有的零,重要的],它将包含检查字。 当我们向磁盘上的一个扇区写入4096个字节时,1和0stringstream入4096字节的写入缓冲区。 同时,同一串“零”和“零”stream入小的校验字缓冲区。 这个校验字寄存器是独一无二的,因为它有select地将寄存器的某些比特位置AND和OR置回自己,有效地创build一个唯一的并且完全依赖于相同的确切的数据stream来重现它的校验字。 所以,在全部4096字节移入校验寄存器后,我们得到一个小的复数。 写入4096字节的磁盘logging,并在扇区的末尾附加小的校验字(在某些称为后置码的东西中)。

阅读操作。 让我们在两周后改变这个过程。 像以前一样,我们有一个4096字节的磁盘缓冲区和2或4字节的缓冲区,它将包含检查字。 两个缓冲区最初都是零。 我们从磁盘读取4096字节的扇区到磁盘缓冲区。 和以前一样,同一串1和0stream入小的校验字缓冲区。 在读取扇区的末尾,checkword缓冲区包含一些疯狂的数字,可能需要添加序列以使其全部变为零。 你猜对了,即将被读入缓冲区的校验码。 读入时,缓冲区的位全部为零。 如果缓冲区的位全部为零,则磁盘validation检查完成并将数据发送到系统。 如果CRC缓冲区没有结束全零,那么在原始数据扇区或校验字的写入或读取数据扇区或校验字的某处出现故障。 无论如何,这些数据都被认为是腐败的。