存储系统的制作方法

文档序号:6458209阅读:116来源:国知局
专利名称:存储系统的制作方法
技术领域
本发明涉及存储计算机使用的数据的存储装置系统(以下称为存储系 统),特别涉及在具有控制部和由控制部控制的记录媒体的存储系统中,控制 部处理的数据块尺寸和记录媒体处理的数据块尺寸不同的存储系统。
技术背景在与计算机连接的存储系统的一种中,有磁盘阵列系统。磁盘阵列系统 也称为RAID(Redundent Array of Inexpensive Disks)系统,是有被配置成阵列 状的多个磁盘装置和控制它们的控制部的存储系统。在磁盘阵列系统中,通 过多个磁盘装置的并行动作,能高速处理数据的读出请求(以下称为读请求) 和数据写入请求(以下称为写请求),也能对数据附加冗余度。磁盘阵列系统, 如非专利文献1所公开的那样,根据附加的冗余数据的种类和其构成,被分 类成5级。在磁盘阵列系统中,制作冗余数据,以便在磁盘装置发生故障时也能复 原数据,将该冗余数据保存在和数据不同的磁盘装置上。可是,因提高磁盘 阵列系统全体的可靠性的目的,还有在各磁盘装置保存的逻辑块上附加保证 代码的情况。关于保证代码,例如专利文献1和专利文献2有记载。在专利 文献1中,作为保证代码,在存取逻辑块时对计算机指定的该逻辑块的逻辑 地址(以下称为LA(Logical Address)和逻辑块的数据实施"异一或"逻辑演 算,在逻辑块附加求出的LRC(Longitudinal Redundancy Check),在磁盘装置 保存保证代码和逻辑块。为了检测写入逻辑块数据的存储区域的地址的错误, 使用LA,作为用于检测逻辑块数据错误的错误检测代码使用LRC。专利文献1美国专利第5819054号公报专利文献2美国专利第5706298号公报非专利文献i亍i 一 "夕一 乂 > (D.Patterson),等2名「少一^ 7 才一 ij夕' > 卜 t< 才y 4 >工夕《> -〉7" 于"Y义夕(A Case for Redundant Arrays of Inexpensive Disks(RAID))」,工一.^ 一.工厶.〉夕乇?卜' - > 7 " > ^ 7。 口 -〉 一r < >夕'(ACM SIGMOD Conference Proceeding), 1988年6月,p.l09 U6作为存储系统使用的记录媒体的一种,有为个人计算机用设计的低成本 ATA(AT Attachment)磁盘装置。为了降低开发成本、零件成本,有ATA磁盘 装置构造被简略化的情况,在ATA磁盘装置中,作为处理数据的单位的块(扇 区)的尺寸是固定长的场合多。在将ATA磁盘装置那样的块长(扇区长)固定的记录媒体用于存储系统 时,存储系统的控制部对记录媒体进行数据的输入输出处理时的数据单位, 可存在和记录媒体进行数据的输入输出处理时的数据单位不同的情况。而且, 在有这样的场合,有数据不能向记录媒体输入输出处理的问题。即使记录媒 体处理的数据单位不固定,但在有不能将控制部对记录媒体进行数据的输入 输出处理时的数据单位和记录媒体处理的数据单位做成相同尺寸的情况的场 合,也能产生同样的问题。作为能产生这样的问题的具体一例,例如,可以考虑这样的场合即磁 盘阵列系统的控制部,使用专利文献1等公开的技术等,在从计算机接收的 数据上附加保证代码后在记录媒体写入数据的场合。即,在计算机存取磁盘 阵列系统内的数据时,即使作为处理数据的单位的逻辑块的尺寸和ATA磁盘 装置的扇区长是相同尺寸,磁盘阵列系统的控制部在从计算机接收到的逻辑 块上再附加保证代码后在ATA磁盘装置写入数据,所以,有这样的的情况, 即在控制部将数据写入到ATA磁盘装置时处理的数据单位和ATA磁盘装置 的扇区长不同。在这样的场合,有控制部在扇区长固定的ATA磁盘装置不能 写入带保证代码的数据的情况。因而,在存储系统的控制部对记录媒体进行数据的输入输出时处理的数 据单位和记录媒体处理的数据单位不同时,也要求用于控制部能进行向记录 媒体的数据输入输出处理的技术。 发明内容200810008806.X说明书第3/17页一种存储系统,具有从计算机接收读命令和写命令的磁盘控制器;和 与上述磁盘控制器连接并根据该磁盘控制器的控制读出或写入数据的多个磁 盘装置。在上述磁盘控制器根据上述读命令或上述写命令对上述磁盘装置实 行数据的输入输出处理时作为处理数据的单位的第一块的尺寸,和在上述多 个磁盘装置每个实行从上述磁盘控制器接收到的数据的输入输出处理时作为 处理数据的单位的第二块的尺寸不同。上述磁盘控制器,用有上述第一块的 尺寸和上述第二块的尺寸的公倍数尺寸的第三块单位,对磁盘装置指示数据 的写入。在存储系统的控制部对记录媒体进行数据的输入输出时处理的数据单位 和记录媒体处理的数据单位不同时,也能进行对记录媒体的数据的输入输出 处理。一种磁盘阵列系统,具有从计算机接收写命令的磁盘控制器;和根据 从该磁盘控制器来的指示实行数据的输入输出处理的m+n台磁盘装置,其中 m》1、 n^1。 m个数据块和从该m个数据块生成的n个冗余数据块各自存储 在上述m+n台磁盘装置的其中之一,在上述磁盘控制器根据上述写命令实行 针对上述m+n台磁盘装置进行的数据写入处理时用的第一块的尺寸和上述 m+n台磁盘装置的每个实行从上述磁盘控制器接收到的数据的写入处理时用 的第二块的尺寸不同。上述第一块的尺寸的M倍是上述第一块的尺寸和上述 第二块的尺寸的公倍数,其中M^2。上述磁盘控制器,在根据上述写命令从 上述计算机接收到的写数据不满M个第一块的尺寸时,从写入该写数据的磁 盘装置读出不足部分的数据,集中将合并接收的上述写数据和从该磁盘装置 读出的数据后的M个第一块的数据,写入到该磁盘装置。上述磁盘控制器, 为了用上述写数据生成冗余数据,从磁盘装置读出包含由上述写数据更新的 旧数据的第二块的数据,从磁盘装置读出包含由生成的冗余数据更新的旧冗 余数据的第二块的数据,用上述写数据、读出的旧数据和旧冗余数据生成冗 余数据,进而上述磁盘控制器,从存储生成的冗余数据的磁盘装置读出M个 不满第一块的尺寸的冗余数据后,将合并生成的冗余数据和从该磁盘装置读 出的冗余数据后的M个第一块的冗余数据,集中起来写入到该磁盘装置。一种磁盘阵列系统,具有从计算机接收写命令的磁盘控制器;和根据从该磁盘控制器来的指示实行数据的输入输出处理的m+n台磁盘装置,其中 m》l、 n》1。 m个数据块和从该m个数据块生成的n个冗余数据块各自存储 在上述m+n台磁盘装置的其中之一。在上述磁盘控制器根据上述写命令实行 针对上述m+n台磁盘装置进行的数据写入处理时用的第一块的尺寸和上述 m+n台磁盘装置的每个实行从上述磁盘控制器接收到的数据的写入处理时用 的第二块的尺寸不同。上述第一块的尺寸的M倍等于上述第二块的尺寸的N 倍,其中M>2、 N>1,上述磁盘控制器,在根据上述写命令从上述计算机 接收到的写数据不满M个第一块的尺寸时,从写入该写数据的磁盘装置读出 包含用该写数据更新的旧数据的M个第一块的数据后,用该写数据更新旧数 据,将更新后包含该写数据的M个第一块的数据写入到该磁盘装置。上述磁 盘控制器为了用上述写入数据生成冗余数据,从存储生成的冗余数据的磁盘 装置,读出包含用生成的冗余数据更新的旧冗余数据的M个第一块的冗余数 据,用上述写数据、读出的冗余数据包含的上述旧冗余数据和上述旧数据, 生成冗余数据,用生成的冗余数据更新上述旧冗余数据,将包含更新后生成 的冗余数据的M个第一块的冗余数据写入到该磁盘装置。 附图的简单说明

图1是表示磁盘阵列系统构成的一例的图;图2是表示扩展逻辑块和物理块的对应关系一例的图;图3是表示大尺寸块另外一例的图;图4是表示大尺寸块其他一例的图;图5是表示数据的写入处理一例的图;图6是表示在磁盘装置写入数据时的处理详细例的图;图7是表示大尺寸写入处理一例的图;图8是表示小尺寸写入处理一例的图;图9是表示读出处理一例的图;图10是表示针对RAID5构成LU的写入处理一例的图; 图11是表示用大尺寸块单位写入冗余数据时的的冗余数据生成处理和 写入处理一例的图;图12是表示用大尺寸块单位写入冗余数据时的的冗余数据生成处理和写入处理另外一例的图。符号说明100:主机110:磁盘阵列系统200:磁盘阵列控制器300:磁盘群400:管理终端500:扩张逻辑块510:物理块520:逻辑块530:扩张逻辑块具体实施方式
以下,表示本发明的实施形态的一例。本发明不受以下表示的实施方式 的限定。实施例1实施例1,表示存储系统的控制部对记录媒体进行数据的输入输出时处 理的数据单位与记录媒体处理的数据单位不同时的、从控制部向记录媒体的 数据输入输出处理的一例。在实施例1中,作为存储系统的一例使用磁盘阵 列系统说明本发明的一实施形态,但实施例1的存储系统不仅能适用如非专 利文献1记载的如磁盘阵列系统那样有冗余数据的存储系统,而且也能适用 没有冗余数据的存储系统。 (1)系统构成的说明图1是表示本实施形态的磁盘阵列系统构成一例的图。磁盘阵列系统iio与主计算机(以下称为主机)100连接,是存储有主机100使用的数据的存 储系统。磁盘阵列系统110具有磁盘阵列控制器200和与其连接的磁盘群300, 磁盘阵列控制器200中连接着将管理信息输入给磁盘阵列系统110或输出磁 盘阵列系统110状态的管理终端400。磁盘阵列控制器200,具有实行磁盘阵列系统IIO控制处理的CPU201、 存储器202、缓冲存储由主机100存取的数据的超高速缓冲存储器203、控制超高速缓冲存储器203的超高速缓冲存储器控制器204、在和主机100之间 进行数据发送接收的主机接口控制部(以下称主机FC I/F) 205、在和构成 磁盘群300的磁盘装置之间进行数据发送接收的磁盘接口控制部(以下称磁 盘I/F) 206、在和管理终端400之间进行控制信息发送接收的管理接口控制 部(以下称管理I/F) 207,各自通过通信线连接。另外,超高速缓冲存储器控制器204,具有对数据附加保证代码或从 数据消除保证代码的保证代码附加/消除电路240、用保证代码进行数据检查 的保证代码检查电路260、和进行冗余数据生成处理的冗余数据生成电路 250。在本实施形态,作为主接口控制部205的一例,表示根据FC(Fibre Channel) 通信规定的FC接口控制部,但主接口控制部205也可以是根据iSCSI接口等 其他通信规定的接口控制部。存储器202,记录着为了控制磁盘阵列系统110而由CPU201实行的RAID 控制程序210和为了进行和管理终端400通信而由CPU201实行的管理终端 通信程序220。磁盘群300,有磁盘装置301、 302、 303、 304。由磁盘装置301 304内 的存储区域,构成成为主机100的存取对象的逻辑存储区域(逻辑容量)的 LU(LobicalUnit)310。磁盘I/F206,和磁盘装置301~304连接。另外,如图1 所示的与磁盘I/F206连接的磁盘装置301~304的台数、磁盘I/F206和磁盘装 置301-304的连接形态是一例,不限于图1的构成。管理终端400,具有在磁盘阵列系统110的用户或维修人员进行对磁 盘阵列控制器200的设定时,被用于向磁盘阵列控制器200输入信息的输入 部401;和输出从磁盘阵列控制器200取得的磁盘阵列系统110信息的输出 部402。输入部是键盘和鼠标器等,输出部是显示器等。 (2)块尺寸的对应关系图2是表示磁盘阵列控制器200处理的数据单位和磁盘装置301 304处 理的数据单位间的对应关系一例的图。图2的上层表示磁盘阵列控制器200对磁盘装置输入输出数据时处理的 数据单位,将该数据单位定义为「扩展逻辑块500」。扩展逻辑块500是有520 字节长的尺寸的块。扩展逻辑块500,由作为主机100对磁盘阵列系统110输入输出数据时的单位的、由520字节长的数据构成的逻辑块、和由对该逻 代码构成。下层是表示磁盘装置301~304在数据输入输出时处理的数据单位,定义 为「物理块510」。物理块510是有512字节长尺寸的块。另外,若扩展逻辑块500的尺寸和物理块510的尺寸不同,则各块的实 际尺寸不限于图2所示的例子。另外,若扩展逻辑块500的尺寸和物理块510 的尺寸不同,即使扩展逻辑块500没有保证代码(即,在扩展逻辑块由从主 机100输入输出的数据构成的场合)本发明也可适用。在图2所示的例子中,扩展逻辑块500和物理块510比较,尺寸大8字 节,但在排列多个两块的场合,若排列64个扩展逻辑块、65个物理块,两 块的尺寸的差的合计正好是和物理块的尺寸相等的512字节,所以64个扩展 逻辑块500和64个物理块510的各自的合计尺寸一致。这样,将两块的合计 尺寸一致的状态,即将排列了扩展逻辑块500的尺寸和物理块510尺寸的公 倍数、多个扩展逻辑块500或多个物理块510的状态定义为「边界一致」。另 外,将扩展逻辑块500尺寸和物理块510尺寸的公倍数的尺寸的数据单位, 以后称为「大尺寸块」。在成为向磁盘装置301-304的写入对象的多个扩展逻辑块500处于边界 一致状态时,这些扩展逻辑块500能作为多个物理块510写入到磁盘装置 301-304。即在图2的例子中,若成为向磁盘装置301 304的写入对象的多个 扩展逻辑块500集中64XN (N是1以上的整数)个,则这些扩展逻辑块500 能作为65XN个物理块510写入到磁盘装置301 304。因而,能吸收扩展逻 辑块500和物理块510之间的数据块的尺寸的差异。因此,在本实施例中, 在从磁盘阵列控制器200向磁盘装置301~304写入数据时,假定用大尺寸块 写入数据。(3)块尺寸对应关系的另外一例图2表示排列扩展逻辑块500构成大尺寸块的例子,但大尺寸块的构成 不限于图2所示的例子。因此,图3和图4表示大尺寸块的其他例子。图3是表示大尺寸块第2例子的图。在图3所示的例子中,作为主机100存取磁盘阵列系统110时使用的数据单位的、有512字节长的尺寸的逻辑块 520、和该逻辑块520所附加的8字节长的保证代码,被配置在离开大尺寸逻 辑块的位置。即,在大尺寸逻辑块内首先配置64个512字节长的逻辑块520, 然后配置集中了 64个针对64个逻辑块520的64个保证代码的保证代码块(由 于赋予每1逻辑块520的保证代码的尺寸是8字节,所以保证代码块有8字 节X64个-512字节长的尺寸)。另外,以和构成大尺寸块的逻辑块520相同 的配置顺序,将与各逻辑块520对应的保证代码配置在保证代码块内。但, 若用超高速缓冲存储器控制器204管理逻辑块520和与其对应的保证代码的 对应关系,则在保证代码块内的保证代码配置不限于此。在图3的例中,将64个逻辑块520和其后配置的保证代码块合起来,能 作为65个物理块510处理,在该状态能符合边界一致的条件。图4是表示大尺寸块第3例子的图。在图4所示的例子,和图2所示的 例子同样,排列64个520字节长的扩展逻辑块500来构成大尺寸块。可是, 扩展逻辑块500构成与图2的例和图4的例是不同的。g卩,在图2所示的扩 展逻辑块500中,在512字节长的扩展逻辑块的后面附加了 8字节长的保证 代码,但在图4所示的扩展逻辑块530则不限于在辑块的后面附加保证代码。在图4所示的扩展逻辑块530中,调整扩展逻辑块530内的保证代码位 置,以便在物理块510逐个存储保证代码。其结果,由于保证代码全部存在 64个,在构成大尺寸块的65个物理块510内、第65个物理块510中不存储 保证代码,但在其他物理块510逐个存储保证代码。因而,在图4所示的例 中,关于大尺寸块中第64个扩展逻辑块530,在逻辑块之前附加针对该逻辑 块的保证代码,而对于其他扩展逻辑块530,将逻辑块的数据512字节分割 成2个数据,在被分割的2个数据之间插入针对该逻辑块的保证代码。另外,图4表示了对于构成大大小块的物理块510中从第1个到第64个 物理块,调整扩展逻辑块530内的保证代码位置,以便在物理块510的末尾 存储保证代码的例子,但决定扩展逻辑块530内的保证代码位置的方法,不 限于图4所示的方法。以后,在实施例1和实施例2中,根据图2所示的大尺寸块构成、即图 2所示的扩展逻辑块500和物理块510的对应关系,说明本发明的实施例。可是,若是在边界一致的状态形成的组合,则大尺寸块构成以可以是从图2 到图4所示的例子以外的构成。例如,扩展逻辑块500、扩展逻辑块530、逻 辑块520、保证代码块、物理块510的尺寸可以是任意的尺寸。另外以后边 界一致的状态,磁盘阵列控制器200在磁盘装置写入数据时的数据单位和物 理块510的尺寸的差的合计,也可以是物理块510的N (N是1以上的整数) 倍的状态。另外,扩展逻辑块500、扩展逻辑块530、逻辑块520、保证代码 块等,也可以是尺寸比物理块510小的情况。综上所述,边界若是一致的状态,则扩展逻辑块500、扩展逻辑块530、 逻辑块520或保证代码块等和物理块510的尺寸的组合是任意的,成为边界 一致的扩展逻辑块500、扩展逻辑块530、逻辑块520、或保证代码块等的个 数和物理块510的个数组合也是任意的。 (4)写处理接着,说明从本实施例的磁盘阵列控制器200向各磁盘装置的数据写入 处理。图5是表示本实施例的磁盘阵列控制器200写入处理时动作一例的流程图。当主机100向磁盘阵列系统110发行写命令时,磁盘阵列控制器200用 主机FC 1/F205接收该写命令(步骤IOOI)。另外,主机100将512字节长 的逻辑块作为1单位,发行逻辑块N倍(N是1以上的整数)数据的写命令, 在写命令中包含用写命令写入的数据最前面的LA和写数据的尺寸(表示是 多少逻辑块的数据的逻辑块数)。CPU201,实行RAID控制程序210,根据写命令包含的LA,决定写数 据的写入目的地的磁盘装置(步骤1002),再者,在超高速缓冲存储器203 内确保根据写命令接收的写数据的缓存目的地和对于该写数据生成的冗余数 据存储目的地(步骤1003)。另外,这时CPU201还在超高速缓冲存储器203内确保附加在写数据的保证代码的存储目的地。接着,CPU201,通过主FC I/F205,将已完成数据接收准备通知主机 100 (步骤1004)。主机100,将用写命令指定的逻辑块数的写数据发送给主 机FC 1/F205。用主机FC I/F205接收的写入数据被送到超高速缓冲存储器控制器204,在保证代码附加/消除电路240,在每512字节长的逻辑块生成 保证代码(即,该逻辑块的最前面LA和LRC),逻辑块和保证代码被存储在 步骤1003确保的超高速缓冲存储器203内的存储区域(步骤1005)。 LA和 LRC的生成方法已在专利文献1详述。进而,主FC I/F205通知CPU201接收到写入数据。CPU201接收从主 FC I/F205来的通知后,当检测已接收写入数据时(步骤1006),控制冗余 数据生成电路250,用RAID控制程序210生成与接收到的写入数据对应的冗 余数据,冗余数据生成电路250生成冗余数据(步骤1007)。生成的冗余数 据存储在由步骤1003确保的超高速缓冲存储器203内的区域。接着,CPU201指示磁盘I/F206,磁盘I/F206根据从CPU201来的指示, 将存储在超高速缓冲存储器203的写入数据和保证代码、或冗余数据写入在 磁盘装置301到304的任一个中(步骤1008)。接着,用图6,详细说明在图5的步骤1008中,在磁盘装置写入数据时 处理的例子。磁盘阵列控制器200,在各磁盘装置写入数据时,以大尺寸块为单位实 行写入处理。因此,首先CPU201,判定存储在超高速缓冲存储器203的、要 向磁盘装置写入的数据,在和物理块的对应关系中是否存在成为边界一致的 状态的部分(步骤2001)。即,判定在图5的步骤1005写入到超高速缓冲存 储器203的逻辑块和保证代码,是否仅存在构成大尺寸块的部分。该判断根 据在图5的步骤1001 CPU201从主机100接收的写命令进行。即,由于写入 命令中包含表示从主机写入的写入数据的尺寸相当于几个逻辑块520的逻辑 块数,若该逻辑块数是64以上,则可知在超高速缓冲存储器203中扩展逻辑 块500存在是边界一致的状态的部分。若写命令包含的逻辑块数是63以下, 则可知超高速缓冲存储器203中不存在扩展逻辑块500是边界一致的状态的 部分。另外,在本实施例中,从主机IOO接收到的逻辑块的数据,在图5的步 骤1007用磁盘阵列控制器200生成的冗余数据,都用同样的方法写入到磁盘 装置。因而,用图6所示的处理写入到磁盘装置的也可以是冗余数据,在这 样的场合,在步骤2001,判定冗余数据是否写入到构成大尺寸块部分超高速缓冲存储器。在超高速缓冲存储器203存储并要向磁盘装置写入数据,成为边界一致 的状态时,磁盘阵列控制器200,通过磁盘I/F206,将大尺寸块的数据向其中 1个磁盘写入(步骤2002)。另一方面,在超高速缓冲存储器203存储并要向磁盘装置写入的数据, 在未成为边界一致的状态时,即构成大尺寸块的数据一部分不聚齐在超高速 缓冲存储器203内时,磁盘阵列控制器200从磁盘装置读出构成大尺寸块的 数据中不足的部分(即没有存储在超高速缓冲存储器203的部分)的数据, 用存储在超高速缓冲存储器203的数据和新读出的数据,构成大尺寸块(步 骤2002),通过磁盘I/F206将大尺寸块的数据写入到其中1个磁盘(步骤 2003)。以上是向图5的步骤1008的磁盘装置写入处理的一例。接着,在图6的步骤2001,判断写入到超高速缓冲存储器203的逻辑块 和保证代码为存在构成大尺寸块的尺寸部分的场合的、关于向图6的步骤 2003的磁盘装置写入处理,称为大尺寸写入,并用图7进行说明。磁盘装置301 304各自将图7的下层所示的物理块510作为一单位处理 数据。另夕卜,CPU201,将写入到磁盘装置301 304中一个的数据作为图7的 上层所示的扩展逻辑块500来管理。因此,CPU201指示磁盘I/F206,将集中 了 64个存储在超高速缓冲存储器203的扩展逻辑块500的数据的集合,作为 集中了65个物理块510的数据的集合,写入到磁盘装置。接收到指示的磁盘 I/F206,用磁盘装置301-304处理的1个写入命令,将65个物理块510的数 据(这相当于64个扩展逻辑块500的数据)写入到磁盘装置301-304中的1 个。艮卩,CPU201,将与磁盘装置301 304的物理块510边界一致的单位为最 小单位,在磁盘装置301-304写入扩展逻辑块500。另一方面在图6的步骤2001,判断写入到超高速缓冲存储器203的逻辑 块和保证代码为不存在构成大尺寸块的尺寸部分的场合的、关于向图6的步 骤2003的磁盘装置写入处理,称为小尺寸写入,并用图8进行说明。小尺寸 写入是一并记录相当于图6的步骤2002、步骤2003的处理和从主机100来 的写入的图。接收从主机100来的写入数据的磁盘阵列控制器200 (Stepl),在超高速 缓冲存储器203存储该写入数据和关于该写入数据生成的保证代码(图5的 步骤1005)的同时,生成与该写入数据对应的冗余数据,也将其存储在超高 速缓冲存储器203 (图5的步骤1007)。在图6的步骤2001, CPU201判断为要写入到磁盘装置的数据在大尺寸 块的尺寸部分超高速缓冲存储器203不存在时,CPU201指示磁盘I/F206,从 成为数据写入目的地的磁盘装置读出不足尺寸部分的数据(即,逻辑块的数 据和保证代码(Step2)。而后,CPU201合并存储在超高速缓冲存储器203内 的数据和在Step2从磁盘装置读出的不足尺寸部分的数据,准备大尺寸块的 数据集合(Step3)。而后,CPU201指示磁盘I/F206,以大尺寸块单位在磁盘 装置写入在Step3准备的大尺寸块的数据组。 (5)读出处理接着,用图9说明本实施例的读出处理。从主机100接收读出命令的磁盘阵列控制器200的CPU201(步骤3001 ), 检查用读出命令指定的读出对象数据的最前面LA和表示读出对象数据尺寸 的逻辑块数。而后,CPU201从该最前面LA和逻辑块数确定应从磁盘装置读 出的逻辑块520和附加给该逻辑块的保证代码。进而,CPU201确定存储有确 定的逻辑块和保证代码的物理块510,决定从哪个磁盘装置读出数据(步骤 3002)。 CPU201由于掌握扩展逻辑块500和物理块510的对应关系,所以能 根据该对应关系决定应读出数据的物理块510。例如,在大尺寸块有图2和图4所示的构成的场合,若由读出命令指定 的逻辑块数是1,则与包含指定的逻辑块的扩展逻辑块对应的物理块510的2 个部分(这2个物理块在图2和图4的例子是连续的物理块)成为数据的读 出源物理块510。另外,在大尺寸块有图3所示的构成的场合,与用读出命 令指定的读出对象逻辑块520对应的物理块510和与保证代码对应的物理块 510成为数据的读出源物理块510。为了减少从磁盘阵列控制器200向磁盘装置的命令发行次数,关于用读 出命令指定的读出对象逻辑块和与给其附加的保证代码对应的物理块以外的 物理块,也可以事先用1命令一起读出数据,仅使用读出数据内的必要信息。例如,在应读出的数据存储在分散的逻辑块520的场合,也可以用l命令从 包含该分散的逻辑块520的连续的多个物理块读出数据。在这样场合,在步 骤3002, CPU201读出许多物理块并作为读出源的物理块510来进行确定。接着,CPU201在超高速缓冲存储器203确保存储读出的逻辑块数据和 保证代码的存储区域(步骤3003)。CPU201给磁盘I/F206发指示,接收到该指示的磁盘I/F206,对于从 CPU201指定的磁盘装置,发行读出命令,以读出由CPU201指定的物理块数 据。而后,磁盘I/F206将从磁盘装置读出的数据保存在用步骤3003确保的超 高速缓冲存储器203内的存储区域(步骤3004)。当从磁盘装置将数据读出到超高速缓冲存储器203时,保证代码检查电 路260,用专利文献1记载的方法检查保证代码。而后,当确认读出的数据 没有错误时,将存储在超高速缓冲存储器203的数据中、除去保证代码的逻 辑块数据发送给主机IOO (步骤3005)。 (6)效果若使用本实施方式,用磁盘装置处理的数据块(即物理块510)的边界 和磁盘阵列控制器200处理的数据块(即扩展逻辑块520)的边界一致的单 位(即大尺寸块),磁盘阵列控制器200向磁盘装置写入数据。其结果,即使 磁盘阵列控制器200处理数据时的数据单位和磁盘装置处理数据时的数据单 位不同,也能将数据从磁盘阵列控制器200写入到磁盘装置。另外,对于数据块的尺寸固定的磁盘装置,能附加数据的保证代码后读 入数据,能提高磁盘阵列系统110的可靠性。 实施例2在第2实施例中,要说明对磁盘阵列系统110以大尺寸块单位写入冗余数据 的方法。另外,磁盘阵列系统110的构成可以是和、图1所示的例子相同。但 在实施例2中,假定是LU310是RAID5构成的LU。当然,若LU310是有冗 余数据的LU,则也可以是RAID3和RAID6等RAID5以外的构成。 (1)对RAID5构成的LU的写入处理图IO表示根据从主机IOO来的写入命令,对RAID5构成的LU310写入 数据时处理的一例。在图10的例,用数据A、数据B和数据C计算"异一或"逻辑的结果为冗余数据D。这里,若是根据从主机100来的写入命令全 部更新数据A、数据B和数据C,则磁盘阵列控制器200能用写入数据(即 用新数据A、新数据B和新数据C)生成新的新冗余数据D。可是,在仅由 从主机100接收的写入数据不能生成新冗余数据时,例如,如图10所示,在 仅将新数据A发送给磁盘阵列控制器200并用新数据A仅更新数据A时,如 非专利文献1公开的那样,会发生针对磁盘装置读出/修改/写入处理。即在这样的场合,当磁盘阵列控制器200从主机100接收新数据A时 (Stepl),磁盘阵列控制器200为生成新冗余数据D读出数据A (旧数据) (Step2 ),而且,为了生成新冗余数据D也读出数据D(旧冗余数据)(Step3 )。 而后,磁盘阵列控制器200用新数据A、数据A、冗余数据D计算"异一或" 逻辑,生成新冗余数据D (St印4)。然后,磁盘阵列控制器200将新数据A 写入到磁盘装置(Step5 )的同时,也将新冗余数据D写入到磁盘装置(Step6)。另外,对于新数据,也可以生成在实施例1叙述的保证代码,将带保证 代码的新数据A写入到磁盘装置。这点,在以下所示的图11和图12的处理 也是同样的。(2)以大尺寸块单位读出/修改/写入处理的一例也如第1实施形态说明的那样,以大尺寸块单位从磁盘阵列控制器200 向磁盘装置进行数据的写入。这不仅是从主机100接收到的写入数据的写入, 而且对于有RAID5构成的LU的冗余数据也同样。于是,用图11表示用于 以大尺寸块单位写入冗余数据的、冗余数据的生成处理和写入处理的一例。当磁盘阵列控制器200从主机100接收到写入命令时,根据写入命令包 含的逻辑块数,可识别从主机100接收的新数据(写入数据)的尺寸。因此, 在磁盘阵列控制器200从主机IOO接收到新数据时,在判断为仅用新数据不 能生成新冗余数据的场合,为了从旧数据、旧冗余数据、新数据生成新冗余 数据,实行读出/修改/写入处理。具体地说,磁盘阵列控制器200为了生成新冗余数据,将包含旧数据及 其保证代码的物理块(Stepl)、包含旧冗余数据的物理块(Step2),读出到超 高速缓冲存储器203。该旧数据和保证代码、及冗余数据的读出处理,各自 是如图9所示的处理。接着,磁盘阵列控制器200,由读出的旧数据和旧冗余数据、及从主机100接收到的新数据,生成新冗余数据。接着,由磁盘阵列控制器200分别将新数据和新冗余数据写入磁盘装置。 这里,在新数据及其保证代码、和新冗余数据的尺寸小于大尺寸块的尺寸时, 就对新数据和新冗余数据的各自实行用图8说明的小尺寸写入。首先,为了在磁盘装置写入新数据,磁盘阵列控制器200从新数据写入 目的地的磁盘装置读出不足部分的数据(Step3)。而后,磁盘阵列控制器200 在己读出的数据上合并新数据及其保证代码,构成大尺寸块,在磁盘装置写 入该大尺寸块(Step4)。接着,新冗余数据也同样地被写入到磁盘装置。即,磁盘阵列控制器200 从新冗余数据写入目的地的磁盘装置,读出不足部分的数据(Step5)。而后, 磁盘阵列控制器200在已读出的数据上合并新冗余数据,构成大尺寸块,在 磁盘装置写入该大尺寸块(Step6)。根据以上的处理,磁盘阵列控制器200,对构成RAID的多个磁盘装置, 能以大尺寸块单位写入写入数据和冗余数据。(3)以大尺寸块单位的读出/修改/写入处理的其他一例在在图11表示的写入处理中,为了在磁盘装置写入新数据和新冗余数 据,从磁盘阵列控制器200向磁盘装置的存取合计发生6次。因此,用图12说明能进一步减少向磁盘装置的存取次数的写入处理例子。在图12的例子中,在读出/修改/写入处理中读出旧数据和旧冗余数据时,以大尺寸块单位读出旧数据和旧冗余数据。艮P,在读出/修改/写入处理时,磁盘阵列控制器200首先从磁盘装置将包含旧数据的卞尺寸块的数据(Stepl)读出到超高速缓冲存储器203,接着从磁盘装置将包含旧冗余数据的大尺寸块的数据读出到超高速缓冲存储器203 (Step2)。接着磁盘阵列控制器200从已读出的旧数据和旧冗余数据、及从主机100接收到的新数据进行"异一或"逻辑计算,生成新冗余数据。接着,磁盘阵列控制器200,用这些数据更新在Stepl读出的大尺寸块数据中、与新数据及其保证代码相当的部分,在磁盘装置写入更新后的大尺寸块数据(Step3)。关于新冗余数据也同样地,磁盘阵列控制器200,用该新冗余数据更新 在Step2读出的大尺寸块数据中、与新冗余数据及其保证代码相当的部分,在磁盘装置写入更新后的大尺寸块数据(Step4)。在图12所示的读出/修改/写入处理的例子中,与图11所示的例子比较, 由于以大尺寸块单位写入新数据和新冗余数据,事前没有必要读出不足部分 的数据。即,这样的读出处理,在冗余数据生成所必要的旧数据和旧冗余数 据的读出处理时一起实行(Stepl和Step2)。因而,图12所示的例子与图11 所示的例子比较,能将读出/修改/写入处理需要的从磁盘阵列控制器200向磁 盘装置的存取次数减低到4次。其结果,由于能削减处理从主机100接收到的1个写命令所需要的向磁 盘装置的存取次数,所以,与磁盘装置具有的存取性能比较,每单位时间能 处理的写入命令的数量将增加。因此,能提高磁盘阵列系统110的性能。 (1)效果若使用本实施方式,能以大尺寸块单位将新数据和新冗余数据写入到磁 盘装置。另外还能减低为此所必要的向磁盘装置的存取次数,能削减为处理 1个写入命令所需要的向磁盘装置的存取次数。其结果能提高磁盘阵列系统 110的写入性能。本实施形态中,是假定为以大尺寸块单位将新数据和新冗余数据写入到 磁盘装置,但实际上在应写入的数据(新数据和保证代码的组或新冗余数据) 的尺寸是大尺寸块的尺寸以下时,也可以以物理块的倍数单位将数据写入到 磁盘装置。这时,磁盘阵列控制器200从磁盘装置读出存储着被重写的予定数据和 保证代码(或冗余数据)的物理块数据,用新数据和保证代码(或新冗余数 据)更新已读出的物理块数据的一部分,以物理块的倍数单位在磁盘装置写 入更新后的数据。而且,在读出/修改/写入处理必要的场合,在用于生成新冗余数据的旧数 据读出或旧冗余数据读出时,通过进行「从磁盘读出存储着被重写的予定数 据和保证代码(或冗余数据)的物理块数据」这样处理,和第2实施例同样, 能削减向磁盘装置的存取次数。另外,在实施例2中,作为采用冗余构成的磁盘阵列系统110具有的RAID 构成的例子,列举了 RAID5,但也可以是RAID3、或附加2类冗余代码的 RAID6等其他的构成。这点实施例1也同样。另外,在实施例1和实施例2中,用超高速缓冲存储器控制器204实施 对数据的保证代码的附加/消除/检查和冗余数据生成,但也可以在其他部位实 施,例如,CPU也可以用位于存储器202上的程序实施这些处理。再者,在实施例1和实施例2中,作为磁盘装置301 304的一例,列举 了数据块的尺寸被固定的ATA磁盘装置,但也可以是其他种类的磁盘装置。 另外,即使磁盘装置处理的数据块尺寸可变,若磁盘装置和磁盘阵列控制器 200处理的数据块的尺寸不能相同时,实施例1和实施例也有效。
权利要求
1.一种存储系统,其特征在于,具有从计算机接收读命令和写命令的磁盘控制器;和与上述磁盘控制器连接并根据该磁盘控制器的控制读出或写入数据的多个磁盘装置;在上述磁盘控制器根据上述读命令或上述写命令对上述磁盘装置实行数据的输入输出处理时作为处理数据的单位的第一块的尺寸,和在上述多个磁盘装置每个实行从上述磁盘控制器接收到的数据的输入输出处理时作为处理数据的单位的第二块的尺寸不同,上述磁盘控制器,用有上述第一块的尺寸和上述第二块的尺寸的公倍数尺寸的第三块单位,对磁盘装置指示数据的写入。
2. 如权利要求1所述的存储系统,其特征在于, 上述磁盘控制器,具有超高速缓冲存储器,通过上述磁盘控制器,在根据从上述计算机来的写命令上述磁盘控制器 接收的写数据中,对每一定尺寸附加写数据的保证代码,在上述超高速缓冲 存储器存储该一定尺寸的写数据和赋予它的保证代码,在上述第一块中,包含上述一定尺寸的写数据和保证代码, 上述第一块的尺寸的M倍是上述第三块的尺寸,其中M》2, 上述磁盘控制器,指示该磁盘装置,将上述超高速缓冲存储器存储的M 个第一块的数据,集中起来用1个命令写入到磁盘装置。
3. 如权利要求2所述的存储系统,其特征在于,上述存储系统,具有将从上述计算机接收到的写数据传送到上述超高速 缓冲存储器的超高速缓冲存储器控制器,上述超高速缓冲存储器控制器,对每上述一定尺寸给写数据附加保证代码。
4. 如权利要求2所述的存储系统,其特征在于, 上述磁盘控制器,有控制数据输入输出处理的处理器,该处理器对每上述一定尺寸给写数据附加保证代码。
5. 如权利要求2所述的存储系统,其特征在于,上述保证代码,包含有用于检测上述一定尺寸的数据的误差的误差检测 代码。
6. 如权利请求2所述的存储系统,其特征在于,在上述保证代码中,包含用于检测写入上述一定尺寸的数据的存储区域 的地址的错误的地址信息。
7. 如权利要求1所述的存储系统,其特征在于, 上述第一块的尺寸的M倍是上述第三块的尺寸,其中M^2, 上述磁盘控制器,有超高速缓冲存储器,根据从上述计算机来的写命令上述磁盘控制器接收的写数据,被存储在 上述超高速缓冲存储器,上述磁盘控制器,在上述超高速缓冲存储器内存在应写入到磁盘装置的 M个或M个以上的上述第一块的数据时,指示该磁盘装置,对其中M个第 一块的数据,集中起来用1个命令将数据写入到该磁盘装置。
8. 如权利要求1所述的存储系统,其特征在于, 上述第一块的尺寸的M倍是上述第三块的尺寸,其中M》2, 上述磁盘控制器有超高速缓冲存储器,根据从上述计算机来的写命令上述磁盘控制器接收的写数据,被存储在 上述超高速缓冲存储器,上述磁盘控制器,在上述超高速缓冲存储器内存在比应写入到磁盘装置 的M个少的N个第一块的数据时,指示该磁盘装置,从磁盘装置读出不足的 M-N个第一块的数据,将在上述超高速缓冲存储器内存储的N个第一块的数 据和己读出的M-N个第一块的数据,集中起来用1个命令写入到该磁盘装置, 其中N》1。
9. 如权利要求1所述的存储系统,其特征在于, 上述第一块尺寸的M倍是上述第三块的尺寸,其中M》2, 上述磁盘控制器有超高速缓冲存储器,根据从上述计算机来的写命令上述磁盘控制器接收的写数据,被存储在上述超高速缓冲存储器,上述磁盘控制器,根据上述写命令包含的块数的值,判断上述超高速缓冲存储器内是否存在应写入到磁盘装置的M个或M个以上的上述第一块的 数据,在上述超高速缓冲存储器内存在M个或M个以上的上述第一块的数据 时,指示该磁盘装置,对其中M个第一块的数据,集中起来用l个命令将数 据写入到上述磁盘装置,在存在比上述超高速缓冲存储器内的M个少的N个第一块的数据时,指 示该磁盘装置,从磁盘装置读出不足的M-N个第一块的数据后,将在上述超 高速缓冲存储器内存储的N个第一块的数据和已读出的M-N个第一块的数 据,集中起来用1个命令写入到上述磁盘装置,其中N^1。
10. 如权利要求9所述的存储系统,其特征在于,在上述磁盘控制器从上述计算机接收到读命令时,指示从磁盘装置读出 与包含读数据的第一块对应的多个第二块的数据。
11. 如权利要求10所述的存储系统,其特征在于,上述第一块中,包含有上述磁盘控制器从计算机接收到的数据和在该数 据上每一定尺寸附加的保证代码,上述磁盘控制器,在从上述计算机接收到读命令时,指示从磁盘装置读 出包含读对象的数据的第二块的数据和包含给该读对象的数据附加的保证代 码的第二块的数据。
12. —种磁盘阵列系统,其特征在于, 具有从计算机接收写命令的磁盘控制器;和根据从该磁盘控制器来的指示实行数据的输入输出处理的m+n台磁盘装 置,其中m^1、 n>l;m个数据块和从该m个数据块生成的n个冗余数据块各自存储在上述 m+n台磁盘装置的其中之一,在上述磁盘控制器根据上述写命令实行针对上述m+n台磁盘装置进行的 数据写入处理时用的第一块的尺寸和上述m+n台磁盘装置的每个实行从上述磁盘控制器接收到的数据的写入处理时用的第二块的尺寸不同,上述第一块的尺寸的M倍是上述第一块的尺寸和上述第二块的尺寸的公 倍数,其中M^2,上述磁盘控制器,在根据上述写命令从上述计算机接收到的写数据不满 M个第一块的尺寸时,从写入该写数据的磁盘装置读出不足部分的数据,集 中将合并接收的上述写数据和从该磁盘装置读出的数据后的M个第一块的数 据,写入到该磁盘装置,上述磁盘控制器,为了用上述写数据生成冗余数据,从磁盘装置读出包 含由上述写数据更新的旧数据的第二块的数据,从磁盘装置读出包含由生成 的冗余数据更新的旧冗余数据的第二块的数据,用上述写数据、读出的旧数 据和旧冗余数据生成冗余数据,进而上述磁盘控制器,从存储生成的冗余数据的磁盘装置读出M个不满 第一块的尺寸的冗余数据后,将合并生成的冗余数据和从该磁盘装置读出的 冗余数据后的M个第一块的冗余数据,集中起来写入到该磁盘装置。
13. 如权利要求12所述的磁盘阵列系统,其特征在于, 上述第一块的尺寸的M倍等于上述第二块的尺寸的N倍,其中M>2、写入上述M个第一块的数据的磁盘装置,将该M个第一块的数据作为N 个第二块的数据,写入到该磁盘装置内的存储区域,写入上述M个第一块的冗余数据的磁盘装置,将该M个第一块的冗余 数据,作为N个第二块的数据,写入到该磁盘装置内的存储区域。
14. 一种磁盘阵列系统,其特征在于, 具有-从计算机接收写命令的磁盘控制器;和根据从该磁盘控制器来的指示实行数据的输入输出处理的m+n台磁盘装 置,其中m^1、 n》l;m个数据块和从该m个数据块生成的n个冗余数据块各自存储在上述 m+n台磁盘装置的其中之一,在上述磁盘控制器根据上述写命令实行针对上述m+n台磁盘装置进行的数据写入处理时用的第一块的尺寸和上述m+n台磁盘装置的每个实行从上述 磁盘控制器接收到的数据的写入处理时用的第二块的尺寸不同,上述第一块的尺寸的M倍等于上述第二块的尺寸的N倍,其中M>2、上述磁盘控制器,在根据上述写命令从上述计算机接收到的写数据不满 M个第一块的尺寸时,从写入该写数据的磁盘装置读出包含用该写数据更新 的旧数据的M个第一块的数据后,用该写数据更新旧数据,将更新后包含该 写数据的M个第一块的数据写入到该磁盘装置,上述磁盘控制器为了用上述写入数据生成冗余数据,从存储生成的冗余 数据的磁盘装置,读出包含用生成的冗余数据更新的旧冗余数据的M个第一 块的冗余数据,用上述写数据、读出的冗余数据包含的上述旧冗余数据和上 述旧数据,生成冗余数据,用生成的冗余数据更新上述旧冗余数据,将包含 更新后生成的冗余数据的M个第一块的冗余数据写入到该磁盘装置。<化学式2><formula>formula see original document page 2</formula>15.如权利要求14所述的磁盘阵列系统,其特征在于,写入上述M个第一块的数据的磁盘装置,将该M个第一块的数据,作 为N个第二块的数据写入到该磁盘装置内的存储区域,其中M》2、 N》1,写入上述M个第一块的冗余数据的磁盘装置,将该M个第一块的冗余 数据,作为N个第二块的冗余数据写入到该磁盘装置内的存储区域。
全文摘要
在存储系统的控制部处理的数据单位和记录媒体处理的数据单位不同时,探求用于使其控制部也能进行向记录媒体的数据输入输出处理的技术。存储系统,具有从计算机接收写命令的磁盘控制器和根据磁盘控制器的控制写入数据的多个磁盘装置。在磁盘控制器根据写命令实行数据的输入输出处理时作为处理数据单位的第一块的尺寸、和在多个磁盘装置的各个实行数据输入输出处理时作为处理数据单位的第二块的尺寸不同。而且,磁盘控制器用具有第一块的尺寸和第二块的尺寸的公倍数的尺寸的第三块单位,对磁盘装置指示数据的写入。
文档编号G06F12/08GK101231572SQ20081000880
公开日2008年7月30日 申请日期2005年12月14日 优先权日2005年1月17日
发明者八木泽育哉, 松并直人 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1