使用 T10 标准数据完整性字段实现端到端数据保护

本文概要介绍通过实现 T10 标准数据完整性字段 (DIF) 提供的端到端数据保护。另外,基于 Power System 的当前实现提供了配置信息和限制。本文提供在当前限制之下为 T10 DIF 设置 Power System 时所需的信息,并将概述 T10 DIF 是如何实现的。

Medha Fox, 第三方存储关系经理, IBM

Medha Fox 是 SAN I/O 开发方面的第三方存储关系经理。他的主要专业领域是硬件测试代码开发、SAN 服务以及测试和项目管理。



2011 年 7 月 13 日

概述

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 光纤发送到存储器上的目标端口,然后到存储处理器/内存/应用程序,最后写到磁盘上。

对于最初的 T10 DIF 实现,有以下限制:

  • AIX 是 POWER 上带有 T10 DIF 实现的惟一主机。
    • 支持 Type 1 DIF。
    • App 标签总是 0x4149 (ASCII “AI”)。
    • 需要 AIX 6.1 TL6 SP5 或 AIX 7.1 SP3。
    • 在虚拟光纤通道设备上不受支持。
  • 必须使用两端口的 8Gb PCIe Fibre Channel Adapter。
    • 需要 200307 或更高的固件级别。
    • 需要 feature code 5735 或 low profile feature code 5273。
    • 在 Power Blades 上不支持。
  • 必须使用 IBM DS3950、DS5020、DS5100 或 DS5300 作为目标存储器。

后续版本会将更多的软硬件扩展为整个 Power System 端到端数据保护计划的一部分。


设置

以下设置步骤假设系统满足所有限制条件。

  1. 寻找到磁盘的所有路径。
    1. 对需要 DIF 保护的所有磁盘运行 lspath -l hdisk#。这个命令返回 fscsi# 设备(FC 协议设备)。
    2. 运行 lsdev -l fscsi# -F'name parent' 以寻找 fscsi# 设备的父设备。
  2. 在 FC 适配器上启用保护(fcs 设备的 DIF_enabled 属性)。应该在有到目标磁盘的路径的所有 FC 适配器上执行步骤 2。
    1. 运行命令 rmdev –Rdl fscsi# 以允许修改 fcs 上的属性。
    2. 为了在 FC 适配器上启用保护,运行 chdev -l fcs# -a DIF_enabled=yesDIF_enabled=no 禁用保护)。
    3. 运行命令 cfgmgr 以重新发现磁盘。
    4. 还可以使用 smit fcsa 命令在 fcs# 上启用/禁用保护。
  3. 在磁盘上启用 T10 保护。要想在磁盘上启用保护,磁盘也必须支持 "Type 1" T10 保护。
    1. 为了在磁盘上启用 T10 保护,运行 chdev -l hdisk# -a DIF_protection=yesDIF_protection=no 禁用保护)。
    2. 还可以使用 smit disk 命令在 hdisk# 上启用/禁用保护。
    3. 启用保护之后,用户必须使用 lsattr -El hdisk# 命令检查这个属性的当前值。
    4. 如果这个属性的值是 unsupported,就意味着以下情况之一:
      1. 到磁盘的某些或所有路径不支持保护。
      2. 磁盘不支持保护。

参考资料

学习

  • 通过 T10 Technical Committee 了解关于 I/O 接口的更多信息。
  • 阅读 Martin K. Petersen 的文章 Proactively preventing data corruption
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。
  • developerWorks 技术活动网络广播:随时关注 developerWorks 技术活动和网络广播。

讨论

  • 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=733012
ArticleTitle=使用 T10 标准数据完整性字段实现端到端数据保护
publish-date=07132011