T10 DIF

来源:互联网 发布:java选择题题库 编辑:程序博客网 时间:2024/04/30 10:20

概述

ANSI T10 标准提供一种方法检查从主机总线适配器 (HBA)通过 SAN 光纤写到磁盘和读取回的数据的完整性。这种检查通过 T10 标准中定义的数据完整性字段来实现。

在 AIX 6.1 TL6 SP5 和 AIX 7.1 SP3 中已经实现了 Type 1 DIF。在 Type 1 实现中,8 字节的 DIF 由 Ref 标签、App 标签和 CRC 组成。Type 1 DIF 定义为包含一个 2 字节的 CRC、一个 2 字节的 App 标签和一个 4 字节的 Ref 标签(包含逻辑块地址的低 32 位)。图 1 给出一个示例。

图 1. Type 1 DIF 定义
Type 1 DIF 定义的示意图

图 1 显示一个数据块(例如一个 512 字节的扇区),末尾有 8 字节的附加部分。8 字节的附加部分包含组成 Type 1 DIF 的字段 — CRC、App 标签和 Ref 标签。

在写数据时,主机总线适配器(HBA)根据块数据和逻辑块地址生成 DIF。把 DIF 字段添加到数据块的末尾,然后把数据通过光纤发送到存储目标。存储目标检查 CRC 和 Ref 标签,如果正确,就在物理介质上存储数据块和 DIF。如果 CRC 与数据不匹配,数据就是在写操作期间损坏了。写操作返回到主机并返回写错误码。主机记录错误并向目标重新传输数据。这样,在写数据时会立即发现数据损坏,不会把损坏的数据提交给物理介质。

在读数据时,DIF 与数据块一起返回到主机,主机检查 CRC 和 Ref 标签。这个检查会给每个 I/O 操作增加非常小的延迟(毫秒以下),可能会影响小于 4K 的块事务的总体响应时间。

图 2 说明数据流经的路径。

图 2. 带 DIF 的数据流
带 DIF 的数据流的示意图

图 2 表明读取数据块从系统处理器/内存/操作系统/应用程序传输到 HBA;HBA 把数据通过 SAN 光纤传输到存储器上的目标端口;在存储器内,数据从目标端口传输到存储处理器/内存/应用程序,再到磁盘。在从系统处理器/内存/操作系统/应用程序到 HBA 的路径上,只传输读取数据块。在 HBA 上,把 DIF 附加到读取数据块的末尾。读取数据和 DIF 一起通过 SAN 光纤发送到存储器上的目标端口,然后到存储处理器/内存/应用程序,最后写到磁盘上。


http://www.ibm.com/developerworks/cn/aix/library/au-T10E2E/


0 0