CN103164293B - 扩展计数密钥数据的基于块的端到端数据保护方法和系统 - Google Patents
扩展计数密钥数据的基于块的端到端数据保护方法和系统 Download PDFInfo
- Publication number
- CN103164293B CN103164293B CN201210305566.6A CN201210305566A CN103164293B CN 103164293 B CN103164293 B CN 103164293B CN 201210305566 A CN201210305566 A CN 201210305566A CN 103164293 B CN103164293 B CN 103164293B
- Authority
- CN
- China
- Prior art keywords
- data
- information unit
- block
- eckd
- field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
Abstract
公开了扩展计数密钥数据的基于块的端到端数据保护方法和系统。提供了计算环境中的对于扩展计数密钥数据(ECKD)的基于块的端到端数据保护的例证方法、系统和计算机程序产品实施例。在一个实施例中,仅仅作为例子,按照块边界格式对齐信息单元(IU)。向每个IU添加块保护报尾数据。公开了另外的系统和计算机程序产品实施例并提供相关优点。
Description
技术领域
本发明涉及计算机,更具体地说,涉及计算存储环境中的扩展计数密钥数据(ECKD,extendedcountkeydata)的基于块的端到端数据保护。
背景技术
在当今社会中,计算机系统常见。在工作场所、在家庭或者在学校都可见到计算机系统。计算机系统可包括处理和保存数据的数据存储系统或者磁盘存储系统。数据存储系统或者磁盘存储系统被用于处理和保存数据。存储系统可包括一个或多个磁盘驱动器。在企业级计算环境中,数据存储系统(或者存储控制器)通常与计算机系统分离,经由网络(或者存储网络)连接。经由网络访问这种数据存储系统的计算机系统通常被称为服务器或主机。
在一些计算环境中,可按ECKD(扩展计数密钥数据)格式来组织数据。数据可被保存在磁道序列中的多个卷上,其中每个磁道包含一个或多个ECKD记录。每个ECKD记录由固定长度计数字段、可选的可变长度密钥字段、和可变长度数据字段组成。当从服务器向待写入的数据的存储控制器发送数据时,或者当在读取操作期间从存储控制器向服务器发送数据时,也可以使用这种ECKD格式。对服务器和存储控制器之间的传送来说,可以使用FICON或者高性能FICON(HPF)协议。这两者都是由负责定义光纤信道标准组的INCITST11委员会定义的光纤信道(FC)层4协议的个别实现。利用ECKD协议定义的数据实体(它可以是一个或多个ECKD记录,这种记录的各个字段,或者整个ECKD格式磁道)借助FICON或者HPF协议在服务器和存储控制器之间传送。FICON和HPF按照与其它光纤信道协议,比如最广泛使用的SCSI光纤信道协议(FCP)相同的方式,利用基础的光纤信道层。
发明内容
如前所述,当从服务器向待写入的数据的存储控制器发送数据时,或者当在读取操作期间从存储控制器向服务器发送数据时,可以使用ECKD格式。对服务器和存储控制器之间的传送来说,可以使用FICON或者高性能FICON(HPF)协议。ECKD数据实体被嵌入FICON或HPF信息单元(IU)中,以便在服务器和存储控制器之间传送。然而,FICON和HPF协议的当前定义有限,并且不能被用于采用和实现其它标准,比如用于保护可变长度ECKD数据的T10-DIF标准,因为T10-DIF标准是为基于固定长度块的I/O方案定义的基于块的端到端数据保护。结果,效率和生产率被降低。
因而,并且鉴于上面所述,提供了计算环境中的扩展计数密钥数据(ECKD)的基于块的端到端数据保护的各种例证方法、系统和计算机程序产品实施例。在一个实施例中,只是作为例子,按块边界格式使信息单元(IU)对齐。向每个IU中添加块保护报尾数据。
除了上这例证的方法实施例之外,还提供其它例证的系统和计算机产品实施例,所述其它例证的系统和计算机产品实施例带来有关的优点。提供上述发明内容是为了简要地介绍下面在具体实施方式中进一步说明的概念的选择。发明内容部分并不意图确定要求保护的主题的关键特征或者基本特征,也不意图用于帮助确定要求保护的主题的范围。要求保护的主题并不局限于解决背景技术中提到的任意或者所有缺点的实现。
附图说明
为了易于理解本发明的优点,将参考在附图中图解说明的具体实施例,提供上面简要描述的发明的更具体说明。显然这些附图描述本发明的实施例,于是不应视为对本发明范围的限制,将利用附图,更具体和详细地说明和解释本发明,附图中:
图1图解说明具有其中可实现本发明的各个方面的例证存储设备的计算存储环境;
图2是示出其中可实现本发明的各个方面的计算存储环境中的主机和存储控制器的硬件结构的例证方框图;
图3A-B是图解说明基于第一种实现的接收扩展计数密钥数据(ECKD)的写入请求的例证方法的流程图;
图4A-B是图解说明基于第一种实现的接收扩展计数密钥数据(ECKD)的读取请求的例证方法的流程图;
图5A是图解说明基于第二种实现的接收扩展计数密钥数据(ECKD)的写入请求的例证方法的流程图;
图5B是图解说明基于第二种实现的接收扩展计数密钥数据(ECKD)的读取请求的例证方法的流程图;
图6图解说明示出可变长度ECKD数据的基于块的端到端数据保护的例证方框图;
图7图解说明示出借助小型计算机系统接口(SCSI)标准数据保护报尾的可变长度ECKD数据的基于块的端到端数据保护的例证方框图;
图8图解说明示出基于第一种实现的扩展计数密钥数据(ECKD)的传送的例证方框图;
图9图解说明示出基于第二种实现的扩展计数密钥数据(ECKD)的传送的例证方框图;
图10图解说明示出基于第一种实现,传送扩展计数密钥数据(ECKD)以便对齐ECKD数据的硬件结构的例证方框图;
图11图解说明示出基于第二种实现,传送扩展计数密钥数据(ECKD)以便对齐ECKD数据的硬件结构的例证方框图;
图12图解说明示出就第一种或第二种实现来说,用于防止丢失和/或错位块的参考标记的例证方框图;
图13图解说明示出就第二种实现来说,用于防止丢失和/或错位块的参考标记的例证方框图;
图14是图解说明利用第一种实现,进行扩展计数密钥数据(ECKD)的写入操作的例证方法的流程图;
图15是图解说明利用第二种实现,进行扩展计数密钥数据(ECKD)的写入操作的例证方法的流程图;
图16A图解说明示出在主机内存和存储介质中的扩展计数密钥数据(ECKD)的对齐的例证方框图;
图16B图解说明示出基于第一种实现,只对IU进行的扩展计数密钥数据(ECKD)的传送的对齐的例证方框图;以及
图16C图解说明示出基于第二种实现,扩展计数密钥数据(ECKD)的传送的对齐的例证方框图。
具体实施方式
在系统z大型机上,数据一般是按照ECKD(扩展计数密钥数据)格式组织的。数据可被保存在磁道序列中的多个卷上,其中每个磁道包含一个或多个ECKD记录。每个记录由固定长度计数字段、可选的可变长度密钥字段和可变长度数据字段组成。
当从服务器向待写入的数据的存储控制器发送数据时,或者当在读取操作期间从存储控制器向服务器发送数据时,可以使用这种ECKD格式。对服务器和存储控制器之间的传送来说,可以使用FICON或者高性能FICON(HPF)协议(FICON也是IBM考虑到大型计算机的数据存储要求而开发的实现FICON协议的I/O信道的名称)。FICON和HPF都是由负责定义光纤信道标准组的INCITST11委员会定义的光纤信道(FC)层4协议的个别实现。FICON和HPF按照与其它光纤信道协议,比如最广泛使用的SCSI光纤信道协议(FCP)相同的方式,使用基础的光纤信道层。
就FC协议来说,可以按信息单元(IU)在逻辑上组织要传送的数据,通过利用由较低的FC层提供的设施,在服务器和存储控制器之间交换所述IU。就利用FICON或HPF协议传送的ECKD数据来说,FCIU可包含一个或多个ECKD记录和/或所述记录的一个或多个字段。较低的FC层还防止光纤信道链路上的数据损坏。然而,由于这种保护信息可被检查,并且可能被存储区域网(SAN)中的组件(例如,被主机总线适配器(HBA)和光纤信道交换机)去除和再生,FICON和HPF协议以IU为基础在FC层4上提供额外的端到端保护。为此,保护数据可由服务器添加到每个IU中,并在出站数据传送的情况下由存储控制器再次检查和去除,反过来对入站传送来说也是一样。这种方案防止可由上述SAN组件引起的数据损坏。保护信息由关于IU中的所有数据计算的被添加到每个IU的结尾的循环冗余检验(CRC)字段组成。可选的是,就出站传送来说,也可存在保护IU的各个片段的中间循环冗余检验(CRC)。这种选项可用于在IU包含多个ECKD记录或字段的情况下,保护单独的ECKD记录或字段。当使用中间CRC时,可以利用指定CRC字段在数据流内的位置的目录结构,所述目录结构是以也作为IU的一部分的元数据的形式传送的。如果没有该信息,那么接收存储控制器不能区分用户数据和保护数据,因此不能完成中间CRC的必需检验。
在分布式(无大型机)世界中,可按固定长度的块来组织数据,在这种情况下,块长度通常为512字节,或者512字节的倍数,比如4K或8K字节。相同的固定块格式(例如,在块边界上对齐的数据)可被用于服务器和存储控制器之间的数据传输,也可被用于把数据保存在设备介质上。设备介质是按用逻辑单元编号(LUN)寻址的逻辑单元(设备)来组织的,这种逻辑单元上的固定尺寸块是按简单的顺序次序来组织的,每个块是通过在0到某个最大整数(取决于逻辑单元的尺寸(存储容量))的范围内的逻辑块地址(LBA)来寻址的。
利用光纤信道组的FCP的分布式系统(有时也称为“开放”系统)过去一直不支持如上对FICON和HPF所述的端到端数据保护。然而近年来,专有机制试图填补该空白。此外,定义SCSI标准组的INCITST10委员会通过向每个数据块添加8字节数据完整性字段(DIF),提出了一种端到端数据保护标准。因此,通常512字节块的长度会被增大到520字节。根据ANSI委员会T10和该保护数据字段的名称(DIF),这种保护机制被称为T10-DIF。T10-DIF可被用于保护传输中的数据(data-in-flight)和保护静止的数据(dataatrest),这意味着在写入操作的情况下,存储控制器不剥离保护数据和添加专用保护数据以便把数据保存在设备介质上。相反,T10-DIF保护数据与用户数据一起被写入设备介质。因而,在读取的情况下,用户数据连同保护数据一起被再次发送给服务器。因此,服务器接收它最初生成的相同保护数据。T10DIF将假定保护数据在服务器和设备介质之间的路径上,比如在交换机中和在存储控制器中被检查。特别地,重要的是存储控制器在数据被写入介质之前检查所述数据,以避免损坏的数据被写入,只有当再次读回数据时(可能在晚得多的时刻),才检测损坏。
然而,就利用FICON和HPF协议传送的ECKD数据来说,不能利用分布式系统中的这些进展。即使存储控制器支持T10DIF,IU级保护数据也需要被转换成存储控制器特有的保护数据,然而通常,当被记录在设备介质上时,ECKD记录被映射到固定块。
为了解决上述低效率和性能问题,图解说明的实施例提供各种机制,所述各种机制用于提供可变长度ECKD数据的基于块的端到端数据保护协议。例如,所述各种机制以块边界格式对齐信息单元(IU)。具有保护数据的小型计算机系统接口(SCSI)标准报尾被添加到IU的每个块中。
所述各种机制以块边界格式(例如,固定块)对齐信息单元(IU)。如果需要,可通过向IU添加填充数据,独立地对齐IU。具有保护数据的小型计算机系统接口(SCSI)标准报尾被添加到IU的每个块中。至少一个请求连同IU一起被发送给存储控制器。所述请求至少是写入请求和/或读取请求。响应于存储控制器收到所述请求,对写入请求来说,IU被保存在存储设备上,而对读取请求来说,IU被转换成IU序列。具有保护数据的SCSI标准报尾被添加到所述IU序列的每个IU的每个块中。
此外,在一个实施例中,所述各种机制改变FICON和HPF协议,以使用基于块的T10-DIF保护方案,而不是专用的基于IU的保护方案。这意味着当存储组织的基于块的概念被应用于存储控制器上大型机类数据时,存储组织的基于块的概念被传播到服务器侧。这是有利的,尤其是当存储控制器使用T10DIF方案来保护静止的数据时更是如此,使得在一些情况下,在主机生成并在从主机到存储控制器的数据传送期间用于数据的保护(传输中的数据的保护)的基于块的T10DIF保护数据也可被用于保护保存在设备介质上的数据,以及当该数据再次被读回时在从存储控制器到主机的后续数据传送期间,用于再次保护该数据。所述各种机制提供真实的端到端数据保护,其中在服务器上创建的保护数据连同用户数据一起被保存在设备介质上,并在后续读取时被送回服务器以便核实。因此,避免了从FICONCRC到T10-DIFCRC和从T10-DIFCRC到FICONCRC的高成本转换。对于大型机类数据,本发明的机制还在SAN组件(例如,主机总线适配器(HBA)和光纤信道交换机)中采用对T10-DIF的支持。
在一个实施例中,T10DIF报尾包含可用于防止丢失块或错位块的其它字段(除了保持CRC的保护字段之外)。这些字段也可被用于对于大型机数据的类似种类的保护。
此外,本发明的机制有助于容易地建立允许ECKD的控制单元(例如,包括端到端(E2E)检验),和允许已把本发明的相同数据格式用于其固定块磁盘上的存储布局的新的ECKD控制单元避免传输中的数据和静止的数据的保护数据之间的高成本转换。
图1图解说明了具有其中可以实现本发明的各个方面的例证存储设备的计算环境10。服务器24包括中央处理单元(CPU)12,CPU12连接到通信端口18和内存设备16。通信端口18与通信网络20和/或存储网络30通信。通信网络20和存储网络30可被配置成与服务器(主机)24和存储系统通信,所述存储系统包括存储控制器40和存储设备50。存储系统(例如,存储设备50)可包括按独立磁盘冗余阵列构成的硬盘驱动器(HDD)设备,固态设备(SSD)等。下面说明的操作可在位于系统10中或者其他地方的设备50上执行,可包括相互结合地或者独立地运行,以便实现本发明目的的独立内存设备16。内存设备16可包括诸如电可擦可编程只读存储器(EEPROM)之类的内存,或者相关设备的主机。内存设备16和存储设备50经由信号承载介质连接到CPU12。另外,CPU12通过通信端口18连接到通信网络20,通信网络20具有附接的多个额外的计算机主机系统24。
注意,计算存储环境10内的计算机系统可以是企业级(或者大型机类)系统。在这些系统内,大型机可被称为主机或服务器24,并且可不包括大容量存储设备。相反,大容量存储设备50可由利用存储网络30连接到主机的存储控制器40管理。多个主机24和存储控制器40可以连接到存储网络30,使得主机可以访问多个存储控制器40,而存储控制器40可被多个主机24访问。存储设备50可被集成到存储控制器40,和/或可以是同样经由某种外部点对点连接或者存储网络30(可被连接并用于从存储控制器40到存储设备50的通信)连接的独立实体。可以存在存储控制器40和存储设备50被物理集成到主机中,从而存在互连多个主机的通信网络20的情况。
图2是示出其中可以实现本发明的各个方面的计算存储环境中的主机和存储控制器的硬件结构的例证方框图200。参见图2,图中示出了主计算机210、220、225,主计算机210、220、225都包括作为计算存储环境200的一部分用于进行数据处理的中央处理单元。主机(物理或虚拟服务器)210、220和225可以是在计算存储环境200中实现本发明目的的一个或多个新的物理服务器或虚拟服务器。存储网络连接260可以是光纤信道架构,光纤信道点对点链路,光纤信道仲裁环路,以太网光纤信道架构或点对点链路,FICON或ESCONI/O接口,任何其它I/O接口种类,无线网络,有线网络,LAN,WAN,异构、同构、公共(即,因特网)、专用网络,或者它们的任意组合。主机210、220、225可在本地或者分布在一个或多个位置,并且可以配有任意种类的网络适配器(或者主机总线适配器)(图2中未示出),以连接到存储网络260并与存储控制器240通信,比如光纤信道,FICON,ESCON,以太网,光纤,无线或同轴适配器。存储控制器240相应地配有适当的网络适配器或者主机总线适配器241,以连接到存储网络260,从而与主机210、220和225通信。图2中描述了计算存储环境200内的数据存储系统290,包括存储控制器240和存储器230。在一个实施例中,只是作为例子,存储控制器240可被实现成SystemStorageTMDS8000TM。
为了便于更清楚地理解这里说明的各种机制,在图2中,存储控制器240被示出为单个处理单元,包括将在下面更详细说明的微处理器242、系统内存243和非易失性存储器(“NVS”)216。注意在一些实施例中,存储控制器240由多个处理单元构成,每个处理单元具有它们自己的处理器复合体和系统内存,并由计算存储环境200内的专用网络互连。存储器230可以由一个或多个存储设备,比如通过直接(点对点)连接、存储网络或者某种其它种类的连接(比如总线)连接到存储控制器240的存储阵列构成,或者可被集成到存储控制器240中。
在一些实施例中,包括在存储器230中的设备可被连接成环路结构。存储控制器240管理存储器230并便利预定给存储器230的写入和读取请求的处理。存储控制器240的系统内存243保存程序指令和数据,微处理器242可以访问所述程序指令和数据以便执行与管理存储器230相关的功能和方法步骤,和执行本发明的关于计算存储环境中的扩展计数密钥数据(ECKD)的基于块的端到端数据保护的步骤和方法。在一个实施例中,系统内存243包括用于计算存储环境中的扩展计数密钥数据(ECKD)的基于块的端到端数据保护的操作软件250(包括这里说明的方法和操作)、与所述操作软件250相关联、或者与所述操作软件250通信。如图2中所示,系统内存243还可包括或者与用于存储器230的高速缓存245通信,这里,高速缓存245也被称为“高速缓冲存储器”,用于缓存“写入数据”和“读取数据”,“写入数据”和“读取数据”分别指的是写入/读取请求及其相关数据。在一个实施例中,高速缓存245分配在系统内存243之外的设备中,然而仍然能够被微处理器242访问,除了实现这里所述的操作之外,还可用于提供防止数据丢失的额外安全性。
在一些实施例中,高速缓存245是用易失性存储器和非易失性存储器(NVS)实现的,并经由局域总线(图2中未示出)耦接到微处理器242,以便提高计算存储环境200内的数据存储系统290的性能。包括在存储控制器240中的NVS216能够被微处理器242访问,并用于为在其它附图中说明的本发明的操作和执行提供额外的支持。NVS216也可被称作“永久”高速缓存或者“高速缓冲存储器”,并且是用可利用或者可不利用外部电源来保持保存于其中的数据的非易失性存储器实现的。出于适合于实现本发明的目的的任何意图,NVS可被保存在高速缓存245内。在一些实施例中,诸如电池之类的备用电源(图2中未示出)向NVS216供给足够的电力,以便在计算存储环境200内的数据存储系统290失去电力的情况下,保持保存在其中的数据。在一些实施例中,NVS216的容量小于或等于高速缓存245的总容量。
存储器230可物理地由一个或多个存储设备,比如存储器阵列构成。存储器阵列是诸如硬盘之类的单独存储设备的逻辑分组。在一些实施例中,存储器230由JBOD(磁盘簇)阵列或者RAID(独立磁盘冗余阵列)阵列构成。物理存储器阵列的集合可被进一步结合以形成区块(rank),区块使物理存储器和逻辑结构分离。区块中的存储空间可被分配成逻辑卷,逻辑卷定义在写入/读取请求中规定的存储位置。
在一个实施例中,只是作为例子,如图2中所示的存储系统可包括逻辑卷,或者简称为“卷”,逻辑卷可具有不同种类的分配。存储器230a、230b和230n被示出为计算存储环境200内的数据存储系统290中的区块,并在这里被称为区块230a、230b和230n。区块可以在计算存储环境200内的数据存储系统290的本地,或者可以位于物理上的远程位置。换句话说,本地存储控制器可以与远程存储控制器连接,并管理远程位置的存储器。区块230a被示出配置有两个完整卷234和236以及一个部分卷232a。区块230b被示出具有另一个部分卷232b。从而,卷232是跨区块230a和230b分配的。区块230n被示出被完全分配给卷238-即,区块230n指的是卷238的整个物理存储器。根据上面的例子,会理解区块可被配置成包括一个或多个部分卷和/或完整卷。卷和区块可被进一步分成所谓的“磁道”,磁道代表固定的存储块。因此,磁道与给定卷相关联,并且可能与给定区块相关联。
存储控制器240可包括控制器ECKD块保护单元255。所述控制器ECKD块保护单元255可包括传送块保护单元247、IU对齐单元260、字段对齐单元264、存储块保护单元266和块保护核实单元268,以帮助计算存储环境中的扩展计数密钥数据(ECKD)的基于块的端到端数据保护。控制器ECKD块保护单元255及其子组件,即传送块保护单元247、IU对齐单元260、字段对齐单元264、存储块保护单元266和块保护核实单元268可以与存储控制器240,主机210、220、225以及存储设备230的每个组件一起工作。控制器ECKD块保护单元255及其子组件,即传送块保护单元247、IU对齐单元260、字段对齐单元264、存储块保护单元266和块保护核实单元268在结构上可以是一起协同工作以便实现计算存储环境中的扩展计数密钥数据(ECKD)的基于块的端到端数据保护的一个完整组件,或者可以是多个单独的组件。控制器ECKD块保护单元255及其子组件,即传送块保护单元247、IU对齐单元260、字段对齐单元264、存储块保护单元266和块保护核实单元268也可以位于存储控制器240的高速缓存245或其它组件中,以便实现本发明的目的。
存储控制器240可由用于控制对于主计算机210、220、225的光纤信道协议的网络适配器(或主机总线适配器)241、用于执行操作软件250的指令的微处理器242、内存243、用于保存控制存储控制器240的操作的微程序(操作软件)250、控制数据和后面说明的每个表格的非易失性存储器216、用于临时保存(缓冲)数据的高速缓存245、用于帮助高速缓存245读写数据的缓冲器244、用于控制对往来于存储设备230的数据传送进行控制的协议的设备适配器270、包括其子组件,即,传送块保护单元247、IU对齐单元260、字段对齐单元264、存储块保护单元266和块保护核实单元268在内的控制器ECKD块保护单元255构成。本发明可以实现多个缓冲器244,以帮助计算存储环境中的扩展计数密钥数据(ECKD)的基于端到端的数据保护。微处理器242可被配置成执行多种算法/操作,操作软件250可被配置成定义算法/操作协议,以及内存243可被配置成保存数据程序和数据程序的数据。缓冲器244可被配置成传送数据。高速缓存245和NVS216可被酌情使用,但并不是这里说明的各种机制的操作所必不可少的。
在一个实施例中,只是作为例子,主计算机或一个或多个物理或虚拟服务器21、220、225和存储控制器240通过存储网络(这可以是光纤信道)260连接,存储网络260也被称为“架构”,它包括一个或多个网络交换机、导向器或者其它连网组件。在一个实施例中,只是作为例子,将说明图2中所示的系统的操作。微处理器242控制内存243保存来自主服务器(物理或虚拟)210的命令信息和用于识别主服务器(物理或虚拟)210的信息。网络适配器241,缓冲器244,高速缓存245,操作软件250,微处理器242,内存243,NVS216,和包括其子组件247、260、264、266、268在内的控制器ECKD块保护单元255以及设备适配器270相互通信,并且可以是独立的或者一个单独组件。另外,几个组件(如果不是所有组件的话),比如操作软件250可包含在内存243内,以便传送计算存储环境中的扩展计数密钥数据(ECKD)。考虑到适合于本发明的目的,存储设备内的每个组件可以链接在一起,并且相互通信。
如前所述,图解说明的实施例提供用于计算存储环境内的扩展计数密钥数据(ECKD)的基于块的端到端数据保护的各种机制。可以为可变长度ECKD数据的基于块的端到端数据保护建立各种协议。在一个实施例中,信息单元(IU)被排列成块边界格式。这些信息单元(IU)可包含一个或多个ECKD数据字段和记录。块边界格式可以是IU的固定边界格式。IU可包含ECKD数据和控制数据(元数据),并且可以对控制数据连同ECKD数据一起,或者如果需要,单独地进行本发明的一些或者所有机制。通过添加填充数据,可作为信息单元(IU)的一部分,独立地对齐ECKD数据和控制数据。在一些情况下,可能不需要填充数据。填充数据可以在IU的结尾,并且另外在IU内的控制数据部分或ECKD数据部分的结尾。块保护数据(例如,带有保护数据的小型计算机系统接口(SCSI)标准报尾)可被添加到IU的每个块。带有保护数据的SCSI标准报尾可以是T10DIF数据,并且可被添加到IU的每个块的结尾。写入和/或读取请求可以与IU一起被发送。如果接收的请求(例如,存储控制器接收的请求)是写入请求,那么包含在IU中的ECKD数据可被保存在存储设备上。当被保存在存储设备上时,包含在IU中的ECKD数据可被重新组装。另一方面,如果请求不是写入请求,那么可确定接收的请求(例如,存储控制器接收的请求)是否是读取请求。如果是,IU可被转换成IU序列,所述IU序列把从设备读取的ECKD数据传送给服务器。
带有保护数据的SCSI标准报尾可以用所述IU序列的每个块传送。当被放入IU中以便传送时,从设备读取的ECKD数据可被重新组装。另外应当注意,为了使SCSI标准报尾(例如,块保护数据)被添加到IU中,IU的数据流被逻辑地切成块尺寸的组块(例如,512字节的组块)。在最后一个组块小于块尺寸的情况下,附加填充数据,直到到达块尺寸为止。随后,把块保护数据(比如8字节的T10DIF报尾)附加到每个块。图3A和3B更详细地描述了按照第一种实现,用于接收写入请求(图3A)和读取请求(图3B)的处理。
在一个实施例中,主机可以只进行IU的对齐(与包含在IU中的每个ECKD字段的对齐相比),在这种情况下,存储控制器进行以下操作。对于写入请求/操作,各种机制核实每个块的块保护报尾,从每个块中剥除块保护数据报尾,以及从IU的结尾剥除填充数据,并重排ECKD数据,使得通过向每个ECKD字段的结尾添加适当的填充数据(如果需要的话)而使每个ECKD字段被块对齐。所述各种机制可以向这种新的数据结构的每个块添加块保护报尾,然后将其保存在存储介质上。
对于读取请求/操作,各种机制核实从存储介质读取的数据的每个块的块保护报尾,重排数据,使得通过从ECKD字段的每个块除去块保护数据而仅仅整个IU被块对齐,从每个ECKD字段的结尾除去填充数据,向IU的结尾添加新的填充数据,向这种新的数据结构的每个块添加块保护数据,然后把IU发送给主机。
当主机对每个ECKD字段进行对齐时,存储控制器进行以下操作。各种机制可对写入请求/操作进行接收的IU的每个块的块保护数据的核实,随后把数据按照从主机接收时的相同格式,包括块保护数据,保存在存储介质上。
对于读取请求/操作,各种机制可核实从存储介质读取的每个块的块保护数据,随后把相同格式的数据,包括块保护数据放入IU中,然后把IU发送给主机。更准确地说,在存储控制器进行数据的重排的第一种情况下,必须遵循的是对于读取和写入来说,它都首先核实保护数据,然后剥除保护数据,并创建新的保护数据。在不进行重新对齐的第二种情况下,这种核实步骤是可选的。
图3A-B是图解说明了按照图解说明的实施例的各种机制,基于第一种实现的接收扩展计数密钥数据(ECKD)的写入请求的例证方法300的流程图。通过把写入数据保存在IU的数据区中(步骤304),开始方法300(步骤302)。方法300将判定IU数据的结果长度是否是块尺寸的倍数(步骤306)。如果否,那么方法300将向IU数据添加填充字节,使得所述长度变成块尺寸的整数倍(步骤308)。如果是,那么跳过步骤308。现在块保护数据被添加到IU数据的每个块中(步骤310)。IU被发送给存储控制器(步骤312)。方法300将从主机接收指示写入请求的IU,并核实所有块保护数据(步骤314)。任何错误可被发送以便进行错误通知处理,并且可以停止处理而不保存数据,并向主机发送通知。方法300将判定IU数据是否由单个ECKD字段组成(步骤316)。如果是,那么方法300将把该数据写入磁盘(步骤348)。如果否,那么“需要调整指示符”被初始化为假(步骤318)。把“当前字段指示符”设定到IU数据区中的第一个ECKD字段(步骤320)。现在方法300进入关于IU中的所有ECKD字段的循环。就该循环中的第一个操作来说,方法300检查“需要调整指示符”是否为假(步骤322)。如果否,那么方法300将取回属于当前ECKD字段的数据,并将其附加到I/O缓冲器中的数据(如果有的话)(步骤324)。随后向I/O缓冲器中添加填充字节,使得ECKD字段被块对齐(步骤326)。为ECKD字段中的每个块创建和添加块保护数据(步骤328)。
返回步骤322,如果“需要调整指示符”(仍然)为假,那么方法300将判定ECKD字段是否结束于块边界(步骤330)。如果否,那么为属于该ECKD字段的所有各个块(最后一个块除外)生成块保护数据,然后把包括其块保护数据的这些块附加到已在I/O缓冲器中的数据(如果有的话)(步骤332)。属于当前ECKD字段的最后一个块的数据被取出并保存到I/O缓冲器中(步骤334)。向I/O缓冲器中的所述最后一个块添加填充字节,使得它被块对齐(步骤336)。为所述最后一个块创建和添加块保护数据(步骤338)。“需要调整指示符”被设定成为真(步骤340)。
返回步骤330,如果ECKD字段确实结束于块边界(步骤330),那么可为每个块生成块保护数据(未示出),包括其块保护数据的所有块被附加到已在I/O缓冲器中的数据(如果有的话)(步骤342)。在步骤328和342之后,方法300都将检查ECKD字段是否是IU中的最后一个ECKD字段(步骤344)。如果否,那么方法300将把“当前字段指示符”设定到IU数据区中的下一个ECKD字段(步骤346),然后返回步骤322。如果是,那么方法300将把数据写入磁盘中(步骤348),然后方法300结束(步骤349)。
图4A-B是图解说明以按照图解说明的实施例的机制的第一种实现为基础,接收扩展计数密钥数据(ECKD)的读取请求的例证方法350的流程图。通过把IU发送给存储控制器(步骤354),开始方法350(步骤352)。存储控制器从主机接收指示读取请求的IU(步骤355)。方法350将从磁盘读取数据,然后首先把数据保存在内部I/O缓冲器中(步骤358)。“需要调整指示符”被初始化为假(步骤360)。把“当前字段指示符”设定到I/O缓冲器中的第一个ECKD字段(步骤362)。方法350现在进入关于I/O缓冲器中的所有ECKD字段的循环。作为所述循环中的第一个操作,将判定当前ECKD字段是否是IO缓冲器中的最后一个(或者唯一的)字段(步骤363)。如果否,那么将判定“需要调整指示符”是否为假(步骤364)。如果是(即,所述指示符仍然被设定为假),那么方法350将判定当前ECKD字段是否结束于块边界(步骤374)。如果是,那么方法350将把包括填充数据和块保护数据的所有块附加到IU数据区(步骤375),随后转移到步骤368。
如果ECKD字段不结束于块边界(步骤374),那么除包括块保护数据的最后一个块之外的所有各个块被附加到已在IU数据区中的数据(步骤378)。IO缓冲器中的该ECKD字段的最后一个块的数据部分(但无填充数据和块保护数据)也被取回和保存在IU数据区中(步骤380)。随后,“需要调整指示符”被设定为真(步骤382),然后方法350进入步骤368。
返回步骤364,如果“需要调整指示符”不为假,那么方法350将取回属于当前ECKD字段的数据(无任何填充数据和块保护数据),并将其附加到已在IU缓冲器中的数据。为因该操作而变得完全充满的IU缓冲器中的每个块创建和添加块保护数据(步骤366)。在步骤366、375和382之后,方法350现在将使“当前字段指示符”前进到I/O缓冲器中的下一个ECKD字段(步骤368),然后返回步骤363。
现在返回步骤363,如果这是IO缓冲器中的最后一个(或者唯一的)ECKD字段,那么对于这种情况下,方法350也判定“需要调整”指示符是否仍然为假(步骤384)。如果“需要调整指示符”不为假,那么方法350将取回属于该最后一个ECKD字段的数据(无任何填充数据和块保护数据),并将其附加到IU缓冲器中的数据。另外,为因该操作而变得完全充满的IU缓冲器中的每个块创建和添加块保护数据(步骤386)。在IU缓冲器中的最后一个块还未完全充满数据的情况下,还将向所述最后一个块添加填充数据,以便块对齐,另外对所述最后一个块创建和添加块保护数据(步骤388)。返回步骤384,如果需要调整指示符仍然被设定为假,那么方法350将把包括填充数据和块保护数据的所有各个块附加到IU数据区(步骤385)。在步骤385和388之后,方法350都将把响应数据IU发送给主机(步骤390)。现在在服务器侧继续方法350,在服务器侧,服务器从存储控制器接收响应数据IU(步骤392)。核实并去除所有的块保护数据(步骤394)。如果需要,方法350最后将从IU的结尾除去填充字节(步骤396)。然后结束方法350(步骤399)。
在备选实施例中,对于和用户数据一起传送的元数据(控制数据)部分(如果有的话)以及对于IU的整个用户数据段,即使存在一个或多个ECKD记录或字段,也可以利用第一种实现来进行对齐。在单个ECKD数据字段和/或记录的传送期间,相同的保护数据被用于传输中的数据和用于静止的数据。然而,当IU包含多个ECKD记录或字段时,存储控制器可从它从服务器接收的IU的每个块中剥除T10DIF报尾,并为存储控制器写入设备介质的用户数据块生成新的T10DIF报尾(对读取操作来说则反过来)。
图5A是图解说明以按照图解说明的实施例的机制的第二种实现为基础,接收扩展计数密钥数据(ECKD)的写入请求的例证方法3000的流程图。通过把“当前字段指示符”设定到要被写入的数据区中的第一个ECKD字段(步骤3004)在服务器侧开始方法3000(步骤3002)。方法3000将从主机内存取回属于当前ECKD字段的数据的连续块尺寸的组块,向最后一个组块(块)添加填充数据(如果需要的话),为每个块创建块保护数据,并将块保护数据添加到每个块的结尾,以及把结果附加到内部IU缓冲器(步骤3006)。方法3000将判定该ECKD是否是要被写入的数据的最后一个ECKD字段(步骤3008)。如果不是,那么把“当前字段指示符”设定到下一个ECKD字段(步骤3010),然后返回步骤3006。如果是,那么方法3000将把该IU发送给存储控制器(步骤3012)。现在,在存储控制器侧继续方法3000。接收指示来自主机的写入请求的IU(步骤3014)。核实每个块的块保护数据(步骤3016)。任何错误可被发送以便进行错误通知处理,并且可以停止处理而不保存数据,通知可被发送给主机。方法3000将按照与在来自主机的IU中接收数据时相同的格式(包括所有的块保护数据和ECKD字段填充数据),把数据写入磁盘中(步骤3018),然后方法3000将结束(步骤3020)。
图5B是图解说明以按照图解说明的实施例的机制的第二种实现为基础,接收扩展计数密钥数据(ECKD)的读取请求的例证方法3100的流程图。通过向存储控制器发送读取请求(步骤3104),在服务器侧开始方法3100(步骤3102)。现在在存储控制器侧继续方法3100,从主机接收读取请求(步骤3106)。方法3100将从磁盘读取请求的ECKD字段,核实每个块的块保护数据,按照与从存储介质读取数据时相同的格式,包括所有的块保护数据和可能的ECKD字段填充数据,把数据放入IU缓冲器中(步骤3108)。响应数据IU被发送给主机(步骤3110)。现在再次在主机侧继续方法3100。从存储控制器接收响应数据IU(步骤3112)。把“当前字段指示符”设定到IU数据区中的第一个ECKD字段(步骤3114)。方法3100将从IU数据区,取回属于当前ECKD字段的数据的连续块尺寸的组块,核实并从每个块剥除块保护数据,从最后一个块除去填充数据(如果有的话),然后把结果附加到主机存储缓冲器(步骤3116)。方法3100将判定该ECKD字段是否是IU的最后一个ECKD字段(步骤3118)。如果不是,那么把“当前字段指示符”设定到IU数据区中的下一个ECKD字段(步骤3120),然后返回步骤3116。如果是,那么方法3100结束(步骤3122)。
在备选实施例中,对齐是按照每个ECKD字段的第二种实现进行的。存储控制器可以把相同的T10DIF报尾用于传输中的数据和静止的数据。然而,存储控制器可仍然利用不同的方案更紧凑地记录计数字段和密钥字段,在这种情况下,对于这些类型的字段,可能需要调整保护数据。从性能的观点来看,这不是关键性的,因为密钥字段很少使用,而在ECKD卷的特定磁道被格式化之后,计数字段通常不再被访问。
应注意的是这里说明的方法仅仅举例图解说明了在单个IU中传送数据的情形,然而图解说明的实施例的各种机构可被容易地扩展和适用于其中要传送的数据分布在IU序列中,和/或其中(在写入操作的情况下)IU包含不被写入设备的元数据的状况和情形。
如下所述,在一个实施例中,各种机制试图提供利用基于块的端到端数据保护来传送可变长度扩展计数密钥数据(ECKD)的能力。图6图解说明了示出当可变长度ECKD数据被记录在存储介质上以及按照第二种实现在主机和存储控制器之间被传送时,可变长度ECKD数据的基于块的端到端数据保护的例证方框图400。方框图400示出由计数字段402、密钥字段408和数据字段410组成的ECKD记录。计数字段402和密钥字段408都小于512字节的典型块长度。这些字段都被保存在单独的块中,同时添加填充数据404以便块对齐。数据字段410的尺寸大于2个块的尺寸,但是小于3个块。因此,数据字段410分布在3个块内,同样向这些块中的最后一个块附加填充数据404。最后,向所有各个块附加数据保护报尾406(表示成“T”)。
进一步图解说明如图6中所述的具有数据保护的各个块,图7图解说明示出具有小型计算机系统接口(SCSI)标准数据保护报尾的可变长度ECKD数据的基于块的端到端数据保护的例证方框图500。在一个实施例中,与图6中所述类似,各种机制包括具有512字节的典型块尺寸的按照固定块格式(例如,块边界格式)传送的ECKD数据。这种格式可被用于传送和保存SCSI数据。数据保护报尾(表示成“T”)被添加到用户数据的每个块。通过利用在INCITSSCSI标准中定义的T10DIF方案,可向每个块添加8字节报尾。这把典型的512字节块尺寸增大到520字节。数据保护报尾可包括在数据保护报尾的0-1字节中的块保护(CRC)、字节2-3中的应用标记、以及字节4-7中的参考标记(这些字节用作例子,不应被解释成对本发明的限制,可按照本发明的用途而被变更、调整或改变)。
图8图解说明了基于第一种实现的扩展计数密钥数据(ECKD)的传送的例证方框图800。图8图解说明了3种情况;情况1:ECKD记录的单个数据字段,情况2:多个ECKD记录的数据字段,以及情况3:包含密钥、计数和数据字段的ECKD记录。对于每种情况,举例说明了3个独立的阶段:在服务器存储器中的数据,传送期间的数据,以及记录在520B块设备上的数据,其中每个512B数据块被8B的T10-DIF报尾扩展。在情况1中,使元数据(M)在块边界与ECKD数据(D)对齐,如首先在数据在服务器存储器中时所示。在ECKD数据的传送期间,填充数据(P)被添加到元数据(M)和ECKD数据(D)的结尾以便块对齐,向元数据(M)和ECKD数据(D)的每个块添加T10DIF数据(T)。然而,元数据将用于管理用途(例如,供存储控制器使用),从而只有ECKD数据(D)将被记录在介质(存储)设备上。添加有填充数据的ECKD数据将总是开始和结束于块边界。记录在520B块设备上的数据现在示出其中保存单个ECKD数据字段的数据的2个块,并且每个块包含数据保护报尾。在这种情况下,存在与在传送期间使用的数据保护报尾相同的数据保护报尾。在情况2中,图解说明了多个ECKD数据字段,如在服务器存储器中所示。在这种情况下,以及在下面的情况3下,未示出任何元数据字段,尽管元数据也可以是这些情形的一部分。在通常情况下,第一和第二ECKD数据(D)字段由块内的边界分隔,并且在传送期间,可向每个块添加数据保护报尾(T),其中,每个块可包含属于一个或多个ECKD数据(D)字段的数据。第一个块包含第一ECKD数据(D)字段的数据,并且具有添加到该块的数据保护报尾(T)。第二个块包含第一个ECKD数据字段的剩余部分和第二个ECKD数据字段的开始。从而,这两个ECKD数据字段未被块对齐。数据保护报尾被添加到该第二个块的结尾,并与属于两个不同的ECKD数据(D)字段的数据有关。最后一个块包含第二个ECKD数据(D)字段的剩余部分加上填充数据(P)和数据保护报尾(T)。在把数据记录在520B块设备上时,第一个块包含第一个ECKD数据(D)字段的数据和相关的数据保护报尾(T)。第二个块包含第一个ECKD数据(D)字段的剩余部分加上填充数据(P)和数据保护报尾(T)。应当注意,在存储时,存储器中的第一个块包含ECKD数据的相同部分和最初创建的相同保护数据,而其它各个块包含ECKD数据的不同部分、填充数据、和重新计算的保护数据。在情况3中,在数据传送期间,计数(C)(例如,ECKD计数字段)、密钥(K)(例如,ECKD密钥字段)和一部分ECKD数据(D)被包含在第一个块中,并且具有添加到整个块的数据保护报尾(T)。第二个块包含ECKD数据(D)字段的剩余部分,具有添加在结尾的填充数据(P),和最后再次的数据保护报尾(T)。在把数据保存在介质(例如,520B块设备)上时,计数(C)字段和密钥(K)字段被保存在独立的块中,具有添加的填充数据,并且具有添加到它们上的重新计算的数据保护报尾(T)。包含ECKD数据(D)字段的第一部分(例如,在密钥字段之后)的第一个块还包含重新计算的数据保护报尾(T),以及包含ECKD数据(D)字段的剩余部分的最后块包含填充数据(P)和重新计算的数据保护报尾(T)。作为一般规则,对于无相关计数字段和密钥字段的单个ECKD数据字段的数据传送,和/或多个自然块对齐的只有ECKD数据字段的传送(它们是最常见的情形),不需要保护数据的重新计算。另外,如下在图10中所述,可在IU对齐单元(例如,服务器和/或控制器中的IU对齐单元)中进行这种对齐处理。
图9图解说明示出基于第二种实现的扩展计数密钥数据(ECKD)的传送的例证方框图900。图9图解说明了三种情况;情况1:ECKD记录的单个数据字段,情况2:两个ECKD记录的数据字段,以及情况3:包含密钥、计数和数据字段的单个ECKD记录。对于每种情况,举例说明了3个独立的阶段:在服务器存储器中的数据,传送期间的数据,和记录在512B块设备上的数据。在情况1中,使元数据(M)在块边界与ECKD数据(D)对齐,如首先在数据在服务器存储器中时所示。在数据的传送期间,向元数据(M)的最后一个块添加填充数据(P),以及向元数据(M)的每个块添加T10DIF数据(T)。然而,元数据将用于管理用途(例如,供存储控制器使用),从而只有ECKD数据(D)将被记录在介质设备上。ECKD数据(D)现在也开始于块边界。同样向ECKD数据(D)字段的结尾添加填充数据,使得它也结束于块边界,并向ECKD数据(D)的每个块添加T10DIF数据(T)。记录在存储介质上的ECKD数据和传送期间的ECKD数据相同。ECKD数据在512B块设备上被记录在2个块上,每个块包含ECKD数据字段的相同部分、相同的填充数据(只有最后一个块)、和在传送期间使用的相同数据保护报尾。情况1与图8中的情况1类似。
在情况2中,如在服务器存储器中所示,图解说明了多个ECKD数据字段。在这种情况中,以及在下面的情况3中,未示出元数据字段,然而,元数据也可以是这些情形的一部分。如前所述,服务器存储器中的第一和第二ECKD数据(D)字段由块内的边界分隔。在传送期间,第一个块包含第一ECKD数据(D)字段的第一部分,并具有添加到该块的数据保护报尾(T)。第二个块包含第一ECKD数据(D)字段的剩余部分,还包含后面是数据保护报尾(T)的填充数据(P)。第三个块包含第二ECKD数据(D)字段的第一部分,并且具有数据保护报尾(T)。最后一个块包含第二ECKD数据(D)字段的剩余部分,并且包含填充数据(P)和数据保护报尾(T)。从而,每个ECKD数据字段总是开始于块边界,并且没有任何一个块包含两个不同ECKD数据字段的片段。在把数据记录在512B块设备上时,按照与所述传送数据的相同方式,把数据保存和记录在介质上。另外,每个块只属于单个ECKD数据(D)字段,并且每个ECKD数据字段是基于单个块对齐的。对于任何数据字段,都不需要保护数据的重新计算。如图9中图解所示,与第一种实现所需的填充数据相比,基于第二种实现的扩展计数密钥数据(ECKD)的传送需要更多的填充数据。
在情况3中,在数据传送期间,第一个块包含计数(C)(例如,ECKD计数字段),以及第二个块包含密钥(K)(例如,ECKD密钥字段),第一个块和第二个块都具有添加到该块中的填充数据(P)和数据保护报尾(T)。第三个块包含ECKD数据(D)字段的第一部分和添加在该块的结尾的数据保护报尾(T),最后一个块包含ECKD数据(D)字段的剩余部分以及填充数据(P)和添加在结尾的数据保护报尾(T)。从而,3种不同的ECKD字段都总是开始于块边界,没有任何一个块包含两个不同ECKD字段的片段。在把数据保存在介质(例如,512B块设备)上时,如前关于传送期间的数据所述,记录计数(C)字段、密钥(K)字段和ECKD数据(D)字段。在计数(C)字段、密钥(K)字段和/或数据(D)字段的传送期间,不存在数据保护报尾(T)的重新计算。另外,如下在图10中所述,可在服务器中的IU对齐单元中进行这种对齐处理。
参见图10,图10图解说明示出基于第一种实现,传送扩展计数密钥数据(ECKD),以便对齐ECKD数据的硬件结构的例证方框图1000。图10示出具有与服务器ECKD块保护单元1022通信的ECKD数据生成器/使用器1020的服务器1010。在服务器ECKD块保护单元1022内,描述了信息单元(IU)对齐单元1024和块保护单元1026。IU对齐单元1024可如前在图8中所述实现各种功能和操作。此外,服务器(主机侧)可对齐IU。IU对齐单元1024可以添加/剥除填充字节用于在块边界的IU对齐。块保护单元1026可以在块基础上生成、检查(核实)和剥除数据保护报尾(例如,T10DIF数据保护报尾)。服务器1010可以与存储区域网络(SAN)设备(例如,交换机)1028通信。交换机1028可以连接到存储控制器1030,以允许从主机(例如,服务器)1010到存储控制器1030的通信。在存储控制器内,描述了控制器ECKD块保护单元1040。控制器ECKD块保护单元1040包含传送块保护单元1042、IU对齐单元1044、字段对齐单元1046和存储块保护单元1048。存储控制器1030的各个组件可以相互协同工作,从而好像它们是一个完整单元似地工作,或者它们可以单独起作用,从而实现本发明的目的。传送块保护单元1042可核实(在写入操作的情况下)或者生成(在读取操作的情况下)用于传输的数据保护报尾(例如,T10DIF保护数据)。IU对齐单元1044在写入操作的情况下,除去IU对齐,改为进行字段对齐(例如,在存储控制器进行字段对齐),因为在一个IU中,可能存在不是结束于块边界的多个字段,并且在读取操作的情况下,除去字段对齐,而在IU基础上添加对齐。如果存在单个记录/单个字段,那么在块基础上检查和核实数据保护报尾。如果存在多个记录/字段,那么对于写入操作,可以在块基础上检查(核实)和剥除保护数据(例如,T10DIF字段)。对于读取操作,可以在块基础上生成保护数据(例如,T10DIF保护数据)。可以除去填充数据,以便IU对齐。对于读/写操作时的ECKD字段对齐,可以添加填充数据。对于静止的数据,可以在块基础上检查(核实)和剥除保护数据(例如,T10DIF保护数据)。
图11图解说明示出基于第二种实现,传送扩展计数密钥数据(ECKD)以便对齐ECKD数据的硬件结构的例证方框图1100。图11示出具有与服务器ECKD块保护单元1114通信的ECKD数据生成器/使用器1112的服务器1110。在服务器ECKD块保护单元1114内,描述了字段对齐单元1116和块保护单元1118。字段对齐可在主机侧进行。可以为在块边界的ECKD字段对齐添加和/或剥除填充数据(例如,填充字节)。块保护单元1118可以在块基础上生成、检查(核实)和剥除数据保护报尾(例如,T10DIF数据保护报尾)。服务器1110可以与SAN设备(例如交换机)1132通信。SAN设备1132可以连接到存储控制器1120,以允许从主机(例如,服务器)1110到存储控制器1120的通信。在存储控制器1120内,块保护核实单元1130可以核实用于传输的保护(字段)数据(例如,T10DIF保护数据),和相对于存储设备1140写入和/或读取未更改和/或未改变的数据。
如前所述,本发明的机制防止丢失和/或错位块。图12图解说明示出在第一种或第二种实现中,用于防止丢失和/或错位块的参考标记的例证方框图1200。数据保护报尾(例如,T10DIF保护数据)可包含参考标记字段1224,参考标记字段1224用于携带序号或者逻辑块地址(LBA)的低位32比特,以防止错位。在ECKD数据的情况下,在服务器侧可能不知道LBA,因此,可以使用4字节的参考标记1224作为备选方案,以携带IU内的数据块的相对序号。这种4字节参考标记1224可被用于防止不改变IU的长度的重排块和/或丢失/复制块。这是最关键的情况,因为当在IU报头中以及在较低的光纤信道协议层所使用的分组报头中包含长度指示符时,导致IU的长度发生变化的问题能够被容易地检出。图12描述了3个块,每个块具有数据区1210和数据保护报尾,数据区1210可包含一个或多个ECKD字段或者ECKD字段的多个片段,可能带有填充数据,数据保护报尾由顺序添加到每个块的数据区1210的保护字段(CRC)1220、应用标记1222、和参考标记1224组成。具有其数据区和相关数据保护报尾的这3个块构成块对齐IU。
图13图解说明示出就第二种实现来说,防止丢失和/或错位块的参考标记的例证方框图1300。为了在第二种实现期间防止丢失和/或错位块,可以通过5字节的记录标识符柱面-磁头-记录CCHHR来唯一地识别逻辑卷的每个ECKD记录,CCHH可以是磁道号,R可以是相对于该磁道的起点的记录编号。当映射到512字节块时,每个ECKD记录一般被映射到最多112个块。从而,CCHHR可被扩展一个字节,所述一个字节包含识别记录的每个520字节块的7比特相对块编号(B)(加上一个保留比特)。合成的6字节CCHHRB编号可被保存在每个保护数据报尾(例如,T10DIF报尾)的联合参考和应用标记字段1330中。另一方面,CCHHRB的4字节散列值可被保存在参考标记字段中,搁置应用标记字段供其它用途之用。图13图解说明了3个块,每个块包含数据字段1310、顺序添加到每个数据字段1310的保护字段(CRC)1320和与参考标记合并的应用标记1330。具有其数据区和相关的数据保护报尾的这3个块构成块对齐IU,数据将被保存在(或者读取自)磁道0002A108,记录4的前3个块。
图14是图解说明利用第一种实现,进行扩展计数密钥数据(ECKD)的写入操作的例证方法1400的流程图。在一个实施例中,方法1400可以利用如图10中所述的硬件组件。在如果需要,那么IU对齐单元(服务器中的如图10中图解所示的IU对齐单元)向IU的结尾添加填充字节,以便进行块对齐的情况下(步骤1410),开始方法1400(步骤1402)。块保护单元(服务器中的如图10中图解所示的块保护单元)可向每个块的结尾添加具有保护数据(例如,T10DIF保护数据)的报尾(步骤1420)。此时,数据可通过存储区域网络(SAN)传送。当收到传送的数据时,传送块保护单元(存储控制器中的如图10中图解所示的传送块保护单元)检查保护数据,以判定是否存在任何错误(步骤1430)。如果是,那么用信号通知所述错误,并把错误发送给错误处理器(步骤1435)。主机(服务器)可被通知所述错误,从而不保存所述数据。如果没有错误,那么传送块保护单元判定IU是否只包含单个ECKD字段(步骤1440)。如果是,那么方法1400将把数据发送给磁盘(例如,存储磁盘)(步骤1490)。如果存在多个字段和/或多个记录,IU对齐单元(存储控制器中的如图10中图解所示的IU对齐单元)可剥除块保护数据(步骤1450)。字段对齐单元(存储控制器中的如图10中图解所示的字段对齐单元)可酌情向每个ECKD记录的每个字段的结尾添加填充字节(步骤1460)。存储块保护单元(存储控制器中的如图10中图解所示的存储块保护单元)可向每个块的结尾添加具有保护数据(例如,T10DIF保护数据)的报尾(步骤S1480)。该数据随后被发送给磁盘(例如,存储磁盘)(步骤1490)。
图15是图解说明用第二种实现,进行扩展计数密钥数据(ECKD)的写入操作的例证方法1500的流程图。在一个实施例中,方法1500可利用如图11中描述的硬件组件。通过IU对齐单元(服务器中的如图11中图解所示的IU对齐单元)酌情向每个ECKD记录的每个字段的结尾添加填充字节(步骤1510),开始方法1500(步骤1502)。块保护单元(服务器中的如图11中图解所示的块保护单元)可向每个块的结尾添加具有保护数据(例如,T10DIF保护数据)的报尾(步骤1520)。数据随后被传送给存储控制器。块保护核实单元(存储控制器中的如图11中图解所示的块保护核实单元)将核实和检查保护数据,以判定是否存在任何错误(步骤1530)。如果是,那么用信号通知所述错误,并把错误发送给主机,以便处理错误(步骤1540)。如果没有错误,那么把所述数据发送给磁盘(步骤1550)。
为了进一步解释和提供布局和对齐的基本理解,图16A-C是描述ECKD数据的介绍性布局的例证方框图,图16A示出在主机内存中和存储介质上的数据的布局,图16B和图16C同样示出在主机内存中的布局,以及在传送期间(例如,作为嵌入式IU的一部分)ECKD数据的结构布局,和在存储介质上的布局。只是作为例子和更好地解释图3A-B和4A-B的流程图,这些附图在图中未区分不同种类的ECKD字段(计数、密钥和数据)。图16A图解说明示出主机内存和存储介质中的扩展计数密钥数据(ECKD)的对齐的例证方框图1600。图16A描述主机内存和存储介质两者中的3个ECKD字段。所述ECKD字段可以是计数字段、密钥字段和数据字段。在主机内存中可以连续地分配这些字段。ECKD字段的尺寸可以变化;例如,ECKD字段1可以小于一个块的尺寸。ECKD字段2的尺寸可以大于2个块,但是小于3个块。ECKD字段3的尺寸可以大于1个块,但是小于2个块。块尺寸可以是各种尺寸(例如,512字节加上数据保护报尾)。
就存储介质上的数据来说,ECKD字段可被左对齐地分配在块序列中。在字段尺寸不是块尺寸的整数倍的情况下,可向用于ECKD字段的最后一个块中的数据的结尾附加填充数据(表示成“Pad”),一直到所述块的结尾为止。可向每个块附加具有块保护数据(T)的SCSI标准报尾。从而,如图16A中所示,ECKD字段(例如,ECKD字段1、2和3)还具有部分1、部分2和部分3。
图16B图解说明示出基于第一种实现,只对IU进行的扩展计数密钥数据(ECKD)的传送的对齐的例证方框图1650。图16B描述主机内存和存储介质两者中的3个ECKD字段。所述ECKD字段可以是计数字段、密钥字段和数据字段。在主机内存中可以连续地分配这些字段。在数据传送(嵌入IU中)期间,主机可以仅仅基于IU进行对齐,并且每个块地添加和/或剥除数据保护报尾。传送期间的数据图解说明了具有随着位置添加的块保护数据和/或填充数据的这3个ECKD字段。各个字段可具有部分1、部分2和部分3(例如,ECKD字段示出(2,2)作为传送期间的数据中的字段2和部分2,或者它仅仅被标记成部分1、部分2和/或部分3)。
关于存储介质上的数据,就写入来说,存储控制器在块边界对齐每个ECKD字段。在一些情况下,在把数据写入存储介质之前,要求从IU剥除块保护数据和填充数据,并生成新的块保护数据和填充数据。就读取请求来说,存储控制器可通过级联保存在介质上的各个字段、向IU的结尾附加填充数据以便块对齐、以及向IU的每个块附加块保护数据,来构建IU。在许多情况下,这要求从接收自存储介质的数据中剥除块保护数据和填充数据,并为将被传送给主机的IU生成和附加新的块保护数据和填充数据。在图16中,“T”表示块保护数据,而“PAD”表示填充数据。
图16C图解说明示出以第二种实现为基础,扩展计数密钥数据(ECKD)的传送的对齐的例证方框图1675。图16C描述在主机内存和存储介质两者中的3个ECKD字段。ECKD字段可以是计数字段、密钥字段和数据字段。在主机内存中,字段可以是连续分配的。在数据传送(嵌入IU中)期间,主机可以进行每个单独的ECKD字段的对齐,以及每个块地添加和/或剥除数据保护报尾。传送期间的数据图解说明了具有随着位置添加的块保护数据和/或填充数据的这3个ECKD字段。主机可进行对齐,和添加/剥除块保护数据,使得传送期间的数据格式和存储介质上的数据格式匹配。关于存储介质上的数据,在写入操作的情况下,存储控制器按照与从主机收到所述数据时相同的格式把数据保存在存储介质上,以及在读取操作的情况下,存储控制器按照与在介质上保存数据时相同的格式把数据传送给主机。
本领域的技术人员会理解,本发明的各个方面可被具体体现成系统、方法或计算机程序产品。因而,本发明的各个方面,尤其是控制器的形式可以采取纯硬件实施例,纯软件实施例(包括固件、驻留软件、微代码等),或者结合这里通常都可被称为“电路”、“模块”或“系统”的软件和硬件特征的实施例的形式。此外,本发明的各个方面,比如方法可以采取包含在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质具有包含于其中的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如(但不限于)电、磁、光、电磁、红外或半导体系统、设备或装置,或者它们的任意适当组合。计算机可读存储介质的更具体例子(非穷举列表)可包括:具有一条或多条导线的电连接、可移植计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪速存储器)、光纤、可移植光盘只读存储器(CD-ROM)、光存储装置、磁存储装置,或者它们的任意适当组合。在本文的上下文中,计算机可读存储介质可以是能够包含或保存供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的程序的任何有形介质。
包含在计算机可读介质上的程序代码可利用任何适当的媒体传送,包括(但不限于)无线、有线、光缆、RF等,或者它们的任何适当组合。可用一种或多种编程语言,包括诸如Java、Smalltalk、C++之类的面向对象编程语言,和诸如“C”编程语言或类似编程语言之类的常规过程编程语言的任意组合,编写执行本发明的各个方面的操作的计算机程序代码。程序代码可完全在用户的计算机上运行,部分在用户的计算机上运行,作为独立的软件包,部分在用户的计算机上运行并且部分在远程计算机上运行,或者完全在远程计算机或服务器上运行。在后一情况下,远程计算机可通过任意类型的网络,包括局域网(LAN)或广域网(WAN),连接到用户的计算机,或者可实现与外部计算机的连接(例如,利用因特网服务提供商,经因特网实现与外部计算机的连接)。
上面参考按照本发明的各个实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图,说明了本发明的各个方面。要明白流程图和/或方框图的每个方框,以及流程图和/或方框图中的各个方框的组合可用计算机程序指令实现。这些计算机程序指令可被提供给通用计算机,专用计算机或者其它可编程数据处理设备的处理器,从而产生机器,以致借助计算机或其它可编程数据处理设备的处理器运行的指令产生实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。
这些计算机程序指令也可被保存在计算机可读介质中,所述计算机可读介质能够指令计算机、其它可编程数据处理设备或者其它装置按特定方式运行,以致保存在计算机可读介质中的指令产生制成品,所述制成品包括实现在示意流程图和/或示意方框图的一个或多个方框中指定的功能/动作的指令。计算机程序指令也可被加载到计算机,其它可编程数据处理设备或其它装置上,使得在计算机,其它可编程设备或其它装置上执行一系列的操作步骤,从而产生计算机实现的处理,以致在计算机或其它可编程设备上执行的指令提供实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的处理。
上面的附图中的流程图和方框图图解说明按照本发明的各个实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这方面,流程图或方框图中的每个方框可代表包含实现指定逻辑功能的一个或多个可执行指令的模块、程序段或一部分代码。另外应注意,在一些备选实现中,在方框中表示的功能可不按照附图中所示的顺序发生。例如,接连表示的两个方框事实上可以基本同时地执行,或者各个方框有时可按照相反的顺序执行,取决于所涉及的功能。另外要注意方框图和/或流程图的每个方框,以及方框图和/或流程图中的各个方框的组合可用实现指定功能或动作的基于专用硬件的系统,或者专用硬件和计算机指令的组合实现。
尽管详细说明了本发明的一个或多个实施例,然而有经验的技术人员会理解可以做出对这些实施例的变形和修改,而不脱离在以下权利要求中陈述的本发明的范围。
Claims (18)
1.一种由计算存储环境中的处理器设备执行的对于扩展计数密钥数据ECKD的基于块的端到端数据保护方法,所述计算存储环境利用光纤信道层4协议在所述处理器设备和由所述处理器设备操作的存储控制器之间通信,所述方法包括:
按照块边界格式对齐多个光纤信道协议信息单元中的至少一个信息单元;和
向所述多个信息单元中的所述至少一个信息单元的每个块添加块包括块保护数据的报尾。
2.按照权利要求1所述的方法,进一步包括:向所述多个信息单元中的所述至少一个信息单元添加填充数据。
3.按照权利要求1所述的方法,进一步包括进行下述至少之一:
把所述多个信息单元中的所述至少一个信息单元的扩展计数密钥数据的多个字段中的至少一个字段对齐成块边界格式,
向扩展计数密钥数据的多个字段中的所述至少一个字段添加填充数据,以及
向扩展计数密钥数据的多个字段中的所述至少一个字段的每个块添加包括块保护数据的报尾。
4.按照权利要求1所述的方法,进一步包括进行下述至少之一:
核实所述多个信息单元中的所述至少一个信息单元的每个块上的包括块保护数据的报尾,
剥除所述多个信息单元中的所述至少一个信息单元的每个块上的包括块保护数据的报尾,以及
在所述多个信息单元中的所述至少一个信息单元的每个块上放置所述包括块保护数据的报尾的替换报尾。
5.按照权利要求1所述的方法,其中,对于扩展计数密钥数据的多个字段中的至少一个字段,添加到所述多个信息单元中的所述至少一个信息单元的每个块的包括块保护数据的报尾对于传输中的数据和静止的数据都相同。
6.按照权利要求1所述的方法,进一步包括:按照块边界格式对齐所述多个信息单元中的所述至少一个信息单元的控制数据,向控制数据的结尾添加填充数据,以及向控制数据的每个块添加包括块保护数据的报尾。
7.按照权利要求1所述的方法,进一步包括向所述包括块保护数据的报尾添加参考标记字段,其中,所述参考标记字段防止所述多个信息单元中的所述至少一个信息单元被丢失、复制或错位。
8.按照权利要求7所述的方法,进一步包括:响应于向包括块保护数据的报尾添加参考标记字段,进行下述之一:
把参考标记字段用于下述之一:
携带用于防止包括块保护数据的报尾错位的序号,
提供扩展计数密钥数据记录标识,和
利用参考标记字段中的4字节散列码来防止重排块、丢失块或复制块。
9.按照权利要求1所述的方法,进一步包括进行下述之一:
把关于所述多个信息单元中的所述至少一个信息单元的至少一个请求发送给存储控制器,所述至少一个请求是写入请求和/或读取请求,
响应于存储控制器收到所述至少一个请求:
对于写入请求,把所述多个信息单元中的所述至少一个信息单元保存在存储设备上,以及
对于读取请求,把所述多个信息单元中的所述至少一个信息单元转换成所述多个信息单元中的所述至少一个信息单元的序列,包括块保护数据的报尾被添加到所述多个信息单元中的所述至少一个信息单元的序列中的每一个的每个块,以及
把多个信息单元中的数据重新组装到扩展计数密钥数据中。
10.一种计算存储环境中的对于扩展计数密钥数据ECKD的基于块的端到端数据保护系统,所述系统包括:可在计算存储环境中工作的至少一个处理器设备,以及可由所述至少一个处理器设备操作的存储控制器,所述计算存储环境利用光纤信道层4协议在所述处理器设备和由所述处理器设备操作的存储控制器之间通信,其中,所述至少一个处理器设备适合于:
按照块边界格式对齐多个光纤信道协议信息单元中的至少一个信息单元;和
向所述多个信息单元中的所述至少一个信息单元的每个块添加包括块保护数据的报尾。
11.按照权利要求10所述的系统,其中,所述至少一个处理器设备进一步适合于向所述多个信息单元中的所述至少一个信息单元添加填充数据。
12.按照权利要求10所述的系统,其中,所述至少一个处理器设备进一步适合于进行下述至少之一:
把所述多个信息单元中的所述至少一个信息单元的扩展计数密钥数据的多个字段中的至少一个字段对齐成块边界格式,
向扩展计数密钥数据的多个字段中的所述至少一个字段添加填充数据,以及
向扩展计数密钥数据的多个字段中的所述至少一个字段的每个块添加包括块保护数据的报尾。
13.按照权利要求10所述的系统,其中,所述至少一个处理器设备进一步适合于进行下述至少之一:
核实所述多个信息单元中的所述至少一个信息单元的每个块上的包括块保护数据的报尾,
剥除所述多个信息单元中的所述至少一个信息单元的每个块上的包括块保护数据的报尾,以及
在所述多个信息单元中的所述至少一个信息单元的每个块上放置所述包括块保护数据的报尾的替换报尾。
14.按照权利要求10所述的系统,其中,对于扩展计数密钥数据的多个字段中的至少一个字段,添加到所述多个信息单元中的所述至少一个信息单元的每个块的包括块保护数据的报尾对于传输中的数据和静止的数据都相同。
15.按照权利要求10所述的系统,其中,所述至少一个处理器设备进一步适合于:按照块边界格式对齐所述多个信息单元中的所述至少一个信息单元的控制数据,向控制数据的结尾添加填充数据,以及向控制数据的每个块添加包括块保护数据的报尾。
16.按照权利要求10所述的系统,其中,所述至少一个处理器设备进一步适合于向包括块保护数据的报尾添加参考标记字段,其中,所述参考标记字段防止所述多个信息单元中的所述至少一个信息单元被丢失、复制或错位。
17.按照权利要求16所述的系统,其中,所述至少一个处理器设备进一步适合于响应于向包括块保护数据的报尾添加参考标记字段,进行下述之一:
把参考标记字段用于下述之一:
携带用于防止包括块保护数据的报尾错位的序号,
提供扩展计数密钥数据记录标识,以及
利用参考标记字段中的4字节散列码来防止重排块、丢失块或复制块。
18.按照权利要求10所述的系统,其中,所述至少一个处理器设备进一步适合于进行下述之一:
把关于所述多个信息单元中的所述至少一个信息单元的至少一个请求发送给存储控制器,所述至少一个请求是写入请求和/或读取请求,
响应于存储控制器收到所述至少一个请求:
对于写入请求,把所述多个信息单元中的所述至少一个信息单元保存在存储设备上,以及
对于读取请求,把所述多个信息单元中的所述至少一个信息单元转换成所述多个信息单元中的所述至少一个信息单元的序列,包括块保护数据的报尾被添加到所述多个信息单元中的所述
至少一个信息单元的序列中的每一个的每个块,以及
把多个信息单元中的数据重新组装到扩展计数密钥数据中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/219,510 | 2011-08-26 | ||
US13/219,510 US8527724B2 (en) | 2011-08-26 | 2011-08-26 | Blocked based end-to-end data protection for extended count key data (ECKD) |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164293A CN103164293A (zh) | 2013-06-19 |
CN103164293B true CN103164293B (zh) | 2016-08-03 |
Family
ID=46981528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210305566.6A Active CN103164293B (zh) | 2011-08-26 | 2012-08-24 | 扩展计数密钥数据的基于块的端到端数据保护方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8527724B2 (zh) |
CN (1) | CN103164293B (zh) |
GB (1) | GB2494037B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2486346B (en) * | 2010-12-08 | 2015-07-08 | Christopher Paul Carroll | Systems and methods for file loading |
US8527724B2 (en) * | 2011-08-26 | 2013-09-03 | International Business Machines Corporation | Blocked based end-to-end data protection for extended count key data (ECKD) |
KR102146037B1 (ko) | 2013-11-14 | 2020-08-19 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
US9830094B2 (en) * | 2015-06-23 | 2017-11-28 | Netapp, Inc. | Dynamic transitioning of protection information in array systems |
US9817589B2 (en) | 2015-09-08 | 2017-11-14 | International Business Machines Corporation | Volume integrity in a shared-resource environment |
US9996272B2 (en) | 2015-09-08 | 2018-06-12 | International Business Machines Corporation | Controller-mediated volume transformation in a shared-resource environment |
US10802740B2 (en) | 2016-04-21 | 2020-10-13 | Netapp, Inc. | Systems, methods, and computer readable media providing arbitrary sizing of data extents |
CN107870727B (zh) * | 2016-09-23 | 2021-01-01 | 伊姆西Ip控股有限责任公司 | 用于存储数据的方法和设备 |
CN106775463B (zh) * | 2016-11-30 | 2019-08-13 | Oppo广东移动通信有限公司 | 数据存储方法、装置及移动终端 |
CN106851545B (zh) * | 2017-03-06 | 2020-05-12 | 北京理工大学 | 一种面向mtc应用的系统帧计时方法 |
US11372772B2 (en) * | 2018-06-20 | 2022-06-28 | EMC IP Holding Company LLC | Content addressable storage system configured for efficient storage of count-key-data tracks |
US11429517B2 (en) * | 2018-06-20 | 2022-08-30 | EMC IP Holding Company LLC | Clustered storage system with stateless inter-module communication for processing of count-key-data tracks |
US11115340B2 (en) * | 2018-06-26 | 2021-09-07 | International Business Machines Corporation | Guaranteed delivery in receiver side overcommitted communication adapters |
US11630579B2 (en) * | 2020-02-14 | 2023-04-18 | Micron Technology, Inc. | Memory sub-system performance shaping including adding a delay to particular data traffic |
WO2022155928A1 (en) * | 2021-01-22 | 2022-07-28 | Alibaba Group Holding Limited | End to end check code protection in storage engine |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6516385B1 (en) * | 1999-01-06 | 2003-02-04 | Hitachi, Ltd. | Data sharing method and system between information processing systems with variable length block format to fixed length block format conversion |
US6697866B1 (en) * | 2000-02-17 | 2004-02-24 | Hitachi, Ltd. | Access control method for data stored in fixed-block length format in computer configurations utilizing variable length data format interfaces |
US6742146B2 (en) * | 2001-02-14 | 2004-05-25 | Emc Corporation | Techniques for providing data within a data storage system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4437953B2 (ja) | 2004-12-10 | 2010-03-24 | 富士通株式会社 | データ書込み方法とチャネルアダプタ |
US9141477B2 (en) | 2007-10-12 | 2015-09-22 | International Business Machines Corporation | Data protection for variable length records by utilizing high performance block storage metadata |
US8230317B2 (en) * | 2008-04-09 | 2012-07-24 | International Business Machines Corporation | Data protection method for variable length records by utilizing high performance block storage metadata |
US8819450B2 (en) | 2008-11-25 | 2014-08-26 | Dell Products L.P. | System and method for providing data integrity |
US8190832B2 (en) | 2009-01-29 | 2012-05-29 | International Business Machines Corporation | Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata |
US8046533B2 (en) * | 2009-03-10 | 2011-10-25 | Emulex Design & Manufacturing Corporation | System and method for sector remapping |
US8527724B2 (en) * | 2011-08-26 | 2013-09-03 | International Business Machines Corporation | Blocked based end-to-end data protection for extended count key data (ECKD) |
-
2011
- 2011-08-26 US US13/219,510 patent/US8527724B2/en active Active
-
2012
- 2012-06-27 US US13/534,223 patent/US8762681B2/en active Active
- 2012-08-15 GB GB201214520A patent/GB2494037B/en active Active
- 2012-08-24 CN CN201210305566.6A patent/CN103164293B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6516385B1 (en) * | 1999-01-06 | 2003-02-04 | Hitachi, Ltd. | Data sharing method and system between information processing systems with variable length block format to fixed length block format conversion |
US6697866B1 (en) * | 2000-02-17 | 2004-02-24 | Hitachi, Ltd. | Access control method for data stored in fixed-block length format in computer configurations utilizing variable length data format interfaces |
US6742146B2 (en) * | 2001-02-14 | 2004-05-25 | Emc Corporation | Techniques for providing data within a data storage system |
Non-Patent Citations (1)
Title |
---|
End-to-end data protection;Dan Colegrove;《http://www.hgst.com/tech/techlib.nsf/techdocs/ 328DB53FC65C4DF18625742C00562B92/$file/End-to-end_Data_Protection.pdf》;20080430;第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
GB201214520D0 (en) | 2012-09-26 |
CN103164293A (zh) | 2013-06-19 |
GB2494037A (en) | 2013-02-27 |
US8527724B2 (en) | 2013-09-03 |
US20130054918A1 (en) | 2013-02-28 |
US8762681B2 (en) | 2014-06-24 |
GB2494037B (en) | 2014-10-22 |
US20130054916A1 (en) | 2013-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103164293B (zh) | 扩展计数密钥数据的基于块的端到端数据保护方法和系统 | |
US11662915B2 (en) | Parity in a vast storage system using alternate memory | |
US10083081B2 (en) | Responding to a maintenance free storage container security threat | |
US9921910B2 (en) | Virtual chunk service based data recovery in a distributed data storage system | |
CN103793182B (zh) | 用于可扩展存储保护的系统和方法 | |
US9122596B2 (en) | Updating a set of memory devices in a dispersed storage network | |
US20160062833A1 (en) | Rebuilding a data object using portions of the data object | |
CN101982816B (zh) | 用于保护高速缓存数据完整性的方法和装置 | |
JP2008071209A (ja) | ストレージ管理プログラム、ストレージ管理装置、およびストレージ管理方法 | |
CN104272300A (zh) | 通过加密在数据去重复系统中保留冗余性 | |
US10067833B2 (en) | Storage system | |
US20180052632A1 (en) | Storage system and storage control method | |
US7243190B2 (en) | Apparatus and method to rebuild an NVS image using cache data | |
JP2006040011A (ja) | ディスクアレイシステム | |
WO2015085802A1 (zh) | 数据存储方法及存储装置 | |
US20180074905A1 (en) | Storage container reassignment based on dynamic parameters | |
JP5146357B2 (ja) | データ診断装置、データ診断システム、データ診断方法及びデータ診断プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |