存储控制装置以及虚拟卷的控制方法.pdf

上传人:a2 文档编号:973478 上传时间:2018-03-22 格式:PDF 页数:50 大小:1.47MB
返回 下载 相关 举报
摘要
申请专利号:

CN200980157684.3

申请日:

2009.03.18

公开号:

CN102334093A

公开日:

2012.01.25

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 3/06申请日:20090318|||公开

IPC分类号:

G06F3/06

主分类号:

G06F3/06

申请人:

株式会社日立制作所

发明人:

岩满幸治; 大平良德; 内海胜广

地址:

日本东京都

优先权:

专利代理机构:

北京银龙知识产权代理有限公司 11243

代理人:

曾贤伟;曹鑫

PDF下载: PDF下载
内容摘要

本发明的存储控制装置,以具备多个页的区块为单位对虚拟卷分配RAID组内的实际存储区域。根据来自主机(2)的写访问,对虚拟卷(5)分配池内的实际存储区域。池内的RAID组(6)具有多个区块(7)。各区块(7)具备多个页(8)。以区块(7)为单位,对虚拟卷(5)分配了实际存储区域。从被分配的区块(7)中使用写数据的写入所需要的页(8)。

权利要求书

1: 一种存储控制装置, 其特征在于, 具备 : 虚拟地形成的虚拟卷 ; 池部, 其管理多个第一实际存储区域, 该第一实际存储区域是跨越构成 RAID 组的多个 存储装置条带状地形成的, 包含多个第二实际存储区域 ; 以及 控制部, 其根据向所述虚拟卷的写请求, 使所述第一实际存储区域中包含的所述各第 二实际存储区域中的预定的第二实际存储区域对应于所述写请求所对应的所述虚拟卷内 的预定区域, 使一个所述虚拟卷对应于一个所述第一实际存储区域。
2: 根据权利要求 1 所述的存储控制装置, 其特征在于, 设置有多个所述 RAID 组, 在对所述各 RAID 组中包含的所述各第一实际存储区域进行格式化时, 按照预定的顺 序从所述各 RAID 组选择所述各第一实际存储区域并与未分配队列连接, 所述控制部在生成所述虚拟卷时, 使所述虚拟卷内的各虚拟存储区域与别的预定的第 二实际存储区域对应, 由此确认是否正常地生成了所述虚拟卷, 并且, 所述控制部在接受到用于释放与所述虚拟卷对应的所述第二实际存储区域的释 放指示时, 释放通过所述释放指示所指定的所述第二实际存储区域, 并且, 所述控制部, (1) 在具有当前正在使用的所述第一实际存储区域时, 选择所述当前正在使用的所述 第一实际存储区域中包含的所述各第二实际存储区域中的、 与上次选择的所述第二实际存 储区域连接的未使用的第二实际存储区域, 使其与所述写请求所对应的所述虚拟存储区域 对应, (2) 当在所述当前正在使用的所述第一实际存储区域内没有所述未使用的所述第二实 际存储区域时, 选择所述当前正在使用的所述第一实际存储区域中包含的所述各第二实际 存储区域中的、 根据所述释放指示被释放的所述第二实际存储区域, 使其与所述写请求所 对应的所述虚拟存储区域对应, (3) 当在所述当前正在使用的所述第一实际存储区域内不存在所述被释放的所述第二 实际存储区域时, 选择在所述当前正在使用的所述第一实际存储区域之前使用的已使用过 的第一实际存储区域中包含的所述各第二实际存储区域中的、 根据所述释放指示被释放的 所述第二实际存储区域, 使其与所述写请求所对应的所述虚拟存储区域对应, (4) 当在所述已使用过的所述第一实际存储区域内没有所述被释放的所述第二实际存 储区域时, 选择与所述未分配队列连接的所述各第一实际存储区域中的先头的所述第一实 际存储区域, 并选择该第一实际存储区域内的最初的第二实际存储区域, 使其与所述写请 求所对应的所述虚拟存储区域对应。
3: 根据权利要求 1 所述的存储控制装置, 其特征在于, 设置有多个所述 RAID 组, 所述控制部按照预定的顺序, 使所述各 RAID 组中包含的所述各第一实际存储区域与 所述虚拟卷对应, 以便均等地使用所述各 RAID 组。
4: 根据权利要求 3 所述的存储控制装置, 其特征在于, 所述控制部, (1) 在对所述各 RAID 组中包含的所述各第一实际存储区域进行格式化时, 按照所述预 2 定的顺序, 将所述各 RAID 组中包含的所述各第一实际存储区域与一个未分配队列连接, (2) 在使用已经格式化的所述第一实际存储区域时, 选择与所述未分配队列连接的所 述各第一实际存储区域中的、 先头的所述第一实际存储区域。
5: 根据权利要求 3 所述的存储控制装置, 其特征在于, 预先对所述各 RAID 组中的每个 RAID 组准备未分配队列, 所述控制部, (1) 在对所述各 RAID 组中包含的所述各第一实际存储区域进行格式化时, 使所述各 RAID 组中的所述各第一实际存储区域分别与所述各 RAID 组所对应的所述未分配队列连 接, (2) 在使用已经格式化的所述第一实际存储区域时, 按照所述预定的顺序取出并使用 与所述各未分配队列连接的所述各第一实际存储区域。
6: 根据权利要求 1 所述的存储控制装置, 其特征在于, 所述控制部在生成所述虚拟卷时, 使所述虚拟卷内的各虚拟存储区域与别的预定的第 二实际存储区域对应。
7: 根据权利要求 6 所述的存储控制装置, 其特征在于, 所述控制部在接收到所述写请求时, 把与所述写请求对应的所述虚拟存储区域的对应 目的地, 从所述别的预定的第二实际存储区域切换为所述预定的第二实际存储区域。
8: 根据权利要求 1 所述的存储控制装置, 其特征在于, 所述控制部把与所述第二实际存储区域连接的未使用的所述第二存储区域作为所述 预定的第二实际存储区域与所述虚拟卷对应, 所述第二实际存储区域根据上次的写请求, 与所述虚拟卷相对应。
9: 根据权利要求 8 所述的存储控制装置, 其特征在于, 所述控制部在接收到用于释放与所述虚拟卷对应的所述第二实际存储区域的释放指 示时, 释放通过所述释放指示所指定的所述第二实际存储区域, 并且, 所述控制部在不存在所述未使用的所述第二实际存储区域时, 把当前正在使用 的所述第一实际存储区域中包含的所述各第二实际存储区域中的、 根据所述释放指示被释 放的所述第二实际存储区域, 作为所述预定的第二实际存储区域与所述虚拟卷对应。
10: 根据权利要求 9 所述的存储控制装置, 其特征在于, 所述控制部当在所述当前正在使用的所述第一实际存储区域内不存在所述被释放的 所述第二实际存储区域时, 选择在所述当前正在使用的所述第一实际存储区域之前使用的 已使用过的第一实际存储区域中包含的所述各第二实际存储区域中的、 根据所述释放指示 被释放的所述第二实际存储区域, 作为所述预定的第二实际存储区域与所述虚拟卷对应。
11: 根据权利要求 10 所述的存储控制装置, 其特征在于, 所述控制部在所述已使用过的所述第一实际存储区域内没有所述被释放的所述第二 实际存储区域时, 从未使用的所述各第一实际存储区域中选择某一个所述第一实际存储区 域, 把该第一实际存储区域内的最初的第二实际存储区域作为所述预定的第二实际存储区 域与所述虚拟卷对应。
12: 根据权利要求 1 所述的存储控制装置, 其特征在于, 存在多个所述虚拟卷, 3 具备 : 别的 RAID 组, 其是与所述 RAID 组不同的 RAID 组, 与所述 RAID 组连号地被管理 ; 以及 通常的逻辑卷, 其根据所述别的 RAID 组而生成, 与所述各虚拟卷连号地被管理, 所述控制部在接收到与所述通常的逻辑卷相关的写请求时, 在所述别的 RAID 组的存 储区域中写入写数据。
13: 根据权利要求 1 所述的存储控制装置, 其特征在于, 在所述虚拟卷中存储的数据中针对每个预定大小设定了保证码, 所述保证码包含用于 识别所述 RAID 组的数据、 用于识别所述第一实际存储区域的数据、 以及用于识别所述第一 实际存储区域内的所述第二实际存储区域的数据。
14: 一种虚拟卷的控制方法, 其用于控制虚拟形成的虚拟卷, 其特征在于, 所述虚拟卷具备多个虚拟存储区域, 生成池部, 该池部管理多个第一实际存储区域, 该第一实际存储区域是跨越构成 RAID 组的多个存储装置条带状地形成的, 每个所述第一实际存储区域包含多个与所述虚拟存储 区域对应的第二实际存储区域, 对所述各第一实际存储区域进行格式化, 使所述各虚拟存储区域分别对应于已格式化的所述各第一实际存储区域中的预定的 第一实际存储区域所具有的初始设定用的第二实际存储区域, 由此生成所述虚拟卷, 将所述虚拟卷与主计算机连接, 在从所述主计算机接收到向所述虚拟卷的写请求时, 不使多个所述虚拟卷对应于一个 所述第一实际存储区域, 使格式化后的所述各第一实际存储区域中的预定的第一实际存储 区域所具有的预定的第二实际存储区域对应于所述写请求所对应的所述虚拟存储区域, 在对应于所述虚拟存储区域的所述预定的第二实际存储区域中, 存储从所述主计算机 接收到的写数据。

说明书


存储控制装置以及虚拟卷的控制方法

    【技术领域】
     本发明涉及存储控制装置以及虚拟卷的控制方法。背景技术 企业等用户使用存储控制装置来管理数据。 存储控制装置在基于 RAID(Redundant Array of Independent Disks) 的存储区域上形成逻辑卷。 该逻辑卷被提供给主计算机 ( 以 下称为主机 )。
     由于用户使用的数据量日益增大, 结合现状来设定的卷大小中, 不久容量会不足。 与此相对, 当预测数据量的增加, 与当前所需要的大小相比过大地设定卷大小时, 不要不急 的盘驱动器变多, 成本增加。
     因此, 提出了准备虚拟的逻辑卷, 根据实际的使用来对该虚拟的逻辑卷分配实际 存储区域的技术 ( 专利文献 1)。
     专利文献 1 : 美国专利第 6823442 号说明书
     发明内容 发明要解决的课题
     在上述文献 (US6, 823, 442B1) 中, 存储服务器系统在接收到与虚拟卷上的块地址 有关的写请求时, 对与该块地址对应的虚拟卷页地址分配逻辑数据页。 然后, 在该逻辑数据 页中写入数据。
     在上述文献中记载了以下管理方法 : 其用于根据从多个物理盘上的区域得到的小 存储区块 (chunklet) 这个概念的区域, 构成具有特定的 RAID 级别的逻辑盘。
     但是, 该管理方法与以物理盘驱动器为单位构成 RAID 组的存储控制装置的物理 区域管理方法完全不同。因此, 无法把在上述文献中记载的管理方法直接用于以物理盘驱 动器为单位构成 RAID 组的存储控制装置。
     假如把上述文献中记载的技术用于上述管理方法时, 在能够提供普通的逻辑卷和 虚拟逻辑卷双方的存储控制装置中, 在普通的逻辑卷和虚拟逻辑卷中, 各个物理区域的管 理方法不同, 产生存储控制装置的结构复杂化的问题。在此, 所谓普通的逻辑卷, 是指在生 成卷时被预先分配了与该卷大小相同容量的物理区域 ( 物理存储区域 ) 的逻辑卷。虚拟逻 辑卷作为将卷大小虚拟化的逻辑卷, 是根据写请求被分配物理区域的逻辑卷。
     即, 如果把上述文献中记载的技术用于以物理盘驱动器为单位构成 RAID 组的存 储控制装置中, 则必须通过不同的多个管理方法管理物理区域, 结构复杂化, 开发成本也增 大。
     并且, 在上述文献中, 在接受写请求时, 在没有分配与虚拟卷页地址对应的表页 时, 存储服务器系统首先最初分配表页, 然后分配逻辑的数据页。因此, 在上述文献中记载 的技术中, 在分配表页之后需要分配数据页, 存在写处理的性能降低的问题。
     并且, 在上述文献中, 为了进行上述那样的分配处理, 需要分别设置数据页专用池
     和表页专用池, 系统结构复杂化。
     因此, 本发明的目的在于, 提供能够考虑 RAID 组的物理结构, 高效地使存储区域 与虚拟卷对应的存储控制装置以及虚拟卷的控制方法。本发明的其他目的在于, 提供能够 均等地使用各 RAID 组来构成虚拟卷的存储控制装置以及虚拟卷的控制方法。本发明的另 一目的在于, 提供能够高效地使存储区域与虚拟卷对应, 并且能够提高虚拟卷的响应性能 的存储控制装置以及虚拟卷的控制方法。根据后述的实施方式的记载, 本发明的更进一步 的目的将会变得清楚。
     用于解决课题的手段
     为了解决上述课题, 遵照本发明的第一观点的存储控制装置具备 : 虚拟地形成的 虚拟卷 ; 池部, 其管理多个第一实际存储区域, 该第一实际存储区域是跨越构成 RAID 组的 多个存储装置条带状地形成的, 包含多个第二实际存储区域 ; 以及控制部, 其根据向虚拟卷 的写请求, 使第一实际存储区域中包含的各第二实际存储区域中的预定的第二实际存储区 域对应于写请求所对应的虚拟卷内的预定区域, 使一个虚拟卷对应于一个第一实际存储区 域。
     第二观点为, 在第一观点中, 设置有多个 RAID 组, 在对各 RAID 组中包含的各第一 实际存储区域进行格式化时, 按照预定的顺序从各 RAID 组选择各第一实际存储区域并与 未分配队列连接, 控制部在生成虚拟卷时, 使虚拟卷内的各虚拟存储区域与别的预定的第 二实际存储区域对应, 由此确认是否正常地生成了虚拟卷, 并且, 控制部在接受到用于释放 与虚拟卷对应的第二实际存储区域的释放指示时, 释放通过释放指示所指定的第二实际存 储区域, 并且, 控制部, (1) 在具有当前正在使用的第一实际存储区域时, 选择当前正在使用 的第一实际存储区域中包含的各第二实际存储区域中的、 与上次选择的第二实际存储区域 连接的未使用的第二实际存储区域, 使其与写请求所对应的虚拟存储区域对应, (2) 当在当 前正在使用的第一实际存储区域内没有未使用的第二实际存储区域时, 选择当前正在使用 的第一实际存储区域中包含的各第二实际存储区域中的、 根据释放指示被释放的第二实际 存储区域, 使其与写请求所对应的虚拟存储区域对应, (3) 当在当前正在使用的第一实际存 储区域内不存在被释放的第二实际存储区域时, 选择在当前正在使用的第一实际存储区域 之前使用的已使用过的第一实际存储区域中包含的各第二实际存储区域中的、 根据释放指 示被释放的第二实际存储区域, 使其与写请求所对应的虚拟存储区域对应, (4) 当在已使用 过的第一实际存储区域内没有被释放的第二实际存储区域时, 选择与未分配队列连接的各 第一实际存储区域中的先头的第一实际存储区域, 并选择该第一实际存储区域内的最初的 第二实际存储区域, 使其与写请求所对应的虚拟存储区域对应。
     第三观点为, 在第一观点中, 设置有多个 RAID 组, 控制部按照预定的顺序, 使各 RAID 组中包含的各第一实际存储区域与虚拟卷对应, 以便均等地使用各 RAID 组。
     第四观点为, 在第三观点中, 控制部, (1) 在对各 RAID 组中包含的各第一实际存储 区域进行格式化时, 按照预定的顺序, 将各 RAID 组中包含的各第一实际存储区域与一个未 分配队列连接, (2) 在使用已经格式化的第一实际存储区域时, 选择与未分配队列连接的各 第一实际存储区域中的、 先头的第一实际存储区域。
     第五观点为, 在第三观点中, 预先对各 RAID 组中的每个 RAID 组准备未分配队列, 控制部, (1) 在对各 RAID 组中包含的各第一实际存储区域进行格式化时, 使各 RAID 组中的各第一实际存储区域分别与各 RAID 组所对应的未分配队列连接, (2) 在使用已经格式化的 第一实际存储区域时, 按照预定的顺序取出并使用与各未分配队列连接的各第一实际存储 区域。
     第六观点为, 在第一观点中, 控制部在生成虚拟卷时, 使虚拟卷内的各虚拟存储区 域与别的预定的第二实际存储区域对应。
     第七观点为, 在第六观点中, 控制部在接收到写请求时, 把与写请求对应的虚拟存 储区域的对应目的地, 从别的预定的第二实际存储区域切换为预定的第二实际存储区域。
     第八观点为, 在第一观点中, 控制部把与第二实际存储区域连接的未使用的第二 存储区域作为预定的第二实际存储区域与虚拟卷对应, 第二实际存储区域根据上次的写请 求, 与虚拟卷相对应。
     第九观点为, 在第八观点中, 控制部在接收到用于释放与虚拟卷对应的第二实际 存储区域的释放指示时, 释放通过释放指示所指定的第二实际存储区域, 并且, 控制部在不 存在未使用的第二实际存储区域时, 把当前正在使用的第一实际存储区域中包含的各第二 实际存储区域中的、 根据释放指示被释放的第二实际存储区域, 作为预定的第二实际存储 区域与虚拟卷对应。 第十观点为, 在第九观点中, 控制部当在当前正在使用的第一实际存储区域内不 存在被释放的第二实际存储区域时, 选择在当前正在使用的第一实际存储区域之前使用的 已使用过的第一实际存储区域中包含的各第二实际存储区域中的、 根据释放指示被释放的 第二实际存储区域, 作为预定的第二实际存储区域与虚拟卷对应。
     第十一观点为, 在第十观点中, 控制部在已使用过的第一实际存储区域内没有被 释放的第二实际存储区域时, 从未使用的各第一实际存储区域中选择某一个第一实际存储 区域, 把该第一实际存储区域内的最初的第二实际存储区域作为预定的第二实际存储区域 与虚拟卷对应。
     第十二观点为, 在第一观点中, 存在多个虚拟卷, 具备 : 别的 RAID 组, 其是与 RAID 组不同的 RAID 组, 与 RAID 组连号地被管理 ; 以及通常的逻辑卷, 其根据别的 RAID 组而生 成, 与各虚拟卷连号地被管理, 控制部在接收到与通常的逻辑卷相关的写请求时, 在别的 RAID 组的存储区域中写入写数据。
     第十三观点为, 在第一观点中, 在虚拟卷中存储的数据中针对每个预定大小设定 了保证码, 保证码包含用于识别 RAID 组的数据、 用于识别第一实际存储区域的数据、 以及 用于识别第一实际存储区域内的第二实际存储区域的数据。
     遵照第十四观点的虚拟卷的控制方法, 其用于控制虚拟形成的虚拟卷, 其中, 虚拟 卷具备多个虚拟存储区域, 生成池部, 该池部管理多个第一实际存储区域, 该第一实际存储 区域是跨越构成 RAID 组的多个存储装置条带状地形成的, 每个第一实际存储区域包含多 个与虚拟存储区域对应的第二实际存储区域, 对各第一实际存储区域进行格式化, 使各虚 拟存储区域分别对应于已格式化的各第一实际存储区域中的预定的第一实际存储区域所 具有的初始设定用的第二实际存储区域, 由此生成虚拟卷, 将虚拟卷与主计算机连接, 在从 主计算机接收到向虚拟卷的写请求时, 不使多个虚拟卷对应于一个第一实际存储区域, 使 格式化后的各第一实际存储区域中的预定的第一实际存储区域所具有的预定的第二实际 存储区域对应于写请求所对应的虚拟存储区域, 在对应于虚拟存储区域的预定的第二实际
     存储区域中, 存储从主计算机接收到的写数据。
     本发明的结构的至少一部分可以作为计算机程序来构成。 可以把该计算机程序固 定在记录介质中来分发, 也可以经由通信网络来分发。 附图说明 图 1 是表示本发明的实施方式的整体概念的说明图。
     图 2 是表示包含存储控制装置的系统的全体结构的说明图。
     图 3 是存储控制装置的方框图。
     图 4 是表示虚拟卷和区块以及页的关系的示意图。
     图 5 是表示用于对分配给虚拟卷的区块以及页进行管理的表组的说明图。
     图 6 是表示虚拟卷生成时的表组的连接情况的说明图。
     图 7 是表示在写入写数据时, 把分配给虚拟卷的页从初始设定用页切换为预定的 页的情况的说明图。
     图 8 是表示存储控制装置的整体动作的流程的说明图。
     图 9 是表示池生成处理的流程图。
     图 10 是表示对数据附加的保证码的结构的说明图。 图 11 是表示区块的状态迁移的说明图。 图 12 是表示用于管理区块的队列的说明图。 图 13 是表示格式化处理的流程图。 图 14 是表示格式化处理的一部分的流程图。 图 15 是表示生成虚拟卷的处理的流程图。 图 16 是表示写处理的流程图。 图 17 是与图 16 连续的流程图。 图 18 是表示对虚拟卷分配区块的处理的流程图。 图 19 是表示对虚拟卷分配页的处理的流程图。 图 20 是表示变更页状态的处理的流程图。 图 21 是表示读处理的流程图。 图 22 是与图 21 连续的流程图。 图 23 是表示使已分配给虚拟卷的页释放的处理的流程图。 图 24 是表示本发明的效果的说明图。 图 25 是包含第二实施例的存储控制装置的系统的全体图。 图 26 是表示在虚拟卷之间进行初始复制的处理的流程图。 图 27 是表示在虚拟卷之间进行更新复制的处理的流程图。 图 28 是表示在第三实施例的存储控制装置中使用的、 用于管理区块的队列的说 符号说明 1: 存储控制装置 ; 2: 主机 ; 3: 控制器 ; 4: 存储装置 ; 5(1)、 5(2) : 虚拟卷 ; 5A : 虚拟存储区域 ; 6a、 6b : RAID 组 ; 7: 区块 ; 8: 页; 10 : 存储控制装置 ; 20 : 主机 ; 30 : 控制器 ;8明图。
     102334093 A CN 102334109
     说明书5/18 页40 : 存储装置 ; 50V : 虚拟卷 ; 50N : 普通卷 ; 60 : 池部 ; 70 : 管理服务器 ; 90 : RAID 组 ; 91 : 区块 ; 92 : 页。具体实施方式
     以下, 根据附图说明本发明的实施方式。最初说明本发明的概要, 然后说明实施 例。如后所述, 本发明以区块 7 为单位进行实际存储区域向虚拟卷 5 的分配。区块 7 由多 个页 8 构成。一个虚拟卷 5 对应于一个区块 7。即, 不存在一个区块 7 与不同的多个虚拟卷 5 对应的情况。所以可以高效率地使用区块 7 的存储区域。
     在生成虚拟卷 5 时, 预先使各虚拟存储区域 5A 与初始设定用的页 8 对应。当从主 机 2 发行向虚拟卷 5 的写请求时, 按顺序使用区块 7 内的页 8, 将其分配给与写请求有关的 虚拟存储区域 5A。在该被分配的页 8 中写入写数据。在写入数据时, 把与写请求有关的虚 拟存储区域 5A 的连接目的地从初始设定用的页 8 切换为区块 7 内的预定的页 8。预定的页 8 是指与在上次的写处理时使用的页连续的页。即, 在写入写数据时, 因为仅把分配给虚拟 存储区域 5A 的页从初始设定用的页 8 切换为预定的页 8 即可, 所以可以提高虚拟卷 5 的响 应性能。
     并且, 当在区块 7 内没有空闲页 8 时, 选择新的区块 7 分配给虚拟卷 5。从别的 RAID 组 6b 内的区块组中选择新的区块 7。由此可以使负荷在各 RAID 组 6a、 6b 之间分散。
     图 1 是表示本发明的实施方式的概要的说明图。与图 1 有关的以下的记载以理 解以及实施本发明所需要的程度表示了本发明的概要, 本发明的范围不限于图 1 所示的结 构。
     图 1 所示的系统具备存储控制装置 1 和主机 2。主机 2 例如构成为服务器计 算机或大型计算机那样的计算机装置。在主机 2 为主计算机时, 例如按照 FICON(Fibre Connection :注 册 商 标 )、 ESCON(Enterprise System Connection :注 册 商 标 )、 ACONARC(Advanced Connection Architecture : 注 册 商 标 )、 FIBARC(Fibre Connection Architecture : 注册商标 ) 等通信协议来进行数据通信。在主机 2 为服务器计算机等时, 例 如 按 照 FCP(Fibre Channel Protocol) 或 iSCSI(internet Small Computer System Interface) 等通信协议来进行数据通信。
     存储控制装置 1 经由通信网络与主机 2 连接。存储控制装置 1 例如具备 : 控制器 3、 存储装置 4、 虚拟卷 5(1)、 5(2)。 在不需要特别进行区别时, 称为虚拟卷 5。 各 RAID 组 6a、 6b 分别由多个存储装置 4 构成。
     作为存储装置 4, 例如可以使用硬盘设备、 半导体存储器设备、 光盘设备、 光磁盘设 备、 磁带设备、 软盘设备等能够读写数据的各种设备。
     在作为存储装置 4 使用了硬盘设备时, 例如可以使用 FC(Fibre Channel) 盘、 SC SI(Small Computer System Interface) 盘、 SATA 盘、 ATA(AT Attachment) 盘、 SAS(Serial Attached SCSI) 盘等。此外, 例如还可以使用闪速存储器、 FeRAM(Ferroelectric Random Access Memory)、 MRAM(Magnetoresistive Random Access Memory)、 相变存储器 (Ovonic Unified Memory)、 RRAM(Resistance RAM) 等各种存储装置 4。并且, 例如还可以是使像闪 速存储器设备和硬盘驱动器那样不同种类的存储装置 4 共存的结构。
     把各 RAID 组 6a、 6b 具有的物理存储区域划分为条带 (stripe) 状的多个区块 7。各区块 7 由连续的多个页 8 构成。区块 7 相当于 “第一实际存储区域” , 页 8 相当于 “第二 实际存储区域” 。为了理解, 对属于一个 RAID 组 6a 的第一区块 7 赋予符号 “a1” , 对属于第 一区块 7(a1) 的各页添加序号。对于另一 RAID 组 6b 也相同。因此, 例如 “a2-3” 表示 RAID 组 6a 的第二区块内的第三页, “b1-1” 表示 RAID 组 6b 的第一区块内的第一页。
     虚拟卷 5 由多个虚拟存储区域 5A 构成。虚拟存储区域 5A 与页 8 的大小相同。在 一个例子中, 一个页 8 的大小为 SZ1 字节 ( 例如 32MB), 一个区块 7 的大小为 SZ2 字节 ( 例 如 1GB), 虚拟卷 5 的大小为 SZ3 字节 ( 例如 10GB)。此时, 一个虚拟卷 5 由 N1 个 ( 例如 10 个 ) 区块 7 构成, 一个区块 7 由 N2( 例如 32 个 ) 页 8 构成。上述括号内的数值只不过是用 于理解的一个例子, 本发明的范围不限于上述的数值。上述的页大小、 区块大小、 虚拟卷大 小等可以可变地设定。
     控制器 3 控制存储控制装置 1 的动作。例如, 控制器 3 根据来自用户的指示, 生成 RAID 组 6a、 6b 以及虚拟卷 5。此外, 控制器 3 根据从主机 2 发行的命令 ( 读命令、 写命令 ) 执行处理, 并把其处理结果发送给主机 2。
     并且, 控制器 3 在接收到写命令时, 判断是否对根据写命令指定的虚拟存储区域 5A 分配了页 8。在没有对指定的虚拟存储区域 5A 分配页 8 时, 控制器 3 把区块 7 内的预定 的页 8 分配给指定的虚拟存储区域 5A。控制器 3 在所分配的预定页 8 中写入写数据。 控制器 3 控制页分配, 仅使一个虚拟卷 5 对应一个区块 7。把一个区块 7 中包含的 各页 8 仅分配给一个虚拟卷 5。在一个区块 7 内不会共同存在分别被分配给不同的多个虚 拟卷 5 的页 8。在一个区块 7 内, 与逻辑地址的值无关地使用连续的页 8。
     当以一个虚拟卷 5(1) 为例来进行说明时, 针对最初的写命令, 使用区块 7(a1) 内 的先头页 8(a1-1), 针对下一个写命令, 使用与该先头页 8(a1-1) 相连的下一个页 8(a1-2), 并且针对别的写命令, 使用下一个页 8(a1-3)。然后, 在使用了最后的页 8(a1-4) 后又接收 到写命令时, 把新的区块 7(b1) 分配给虚拟卷 5(1)。
     对另一虚拟卷 5(2) 分配了 RAID 组 6a 的第二区块 7 内的先头页 8(a2-1)。如果发 行了以虚拟卷 5(2) 为对象的新的写命令时, 把下一页 8 分配给虚拟卷 5(2)。对该页 8 应该 添加 “a2-2” 的符号, 但是在图 1 中省略。
     在如此构成的本实施方式中, 以具有多个页 8 的区块 7 为单位, 对虚拟卷 5 分配实 际存储区域 ( 物理存储区域 ), 并且将一个区块 7 仅分配给一个虚拟卷 5。因此, 如后所述, 能够有效地使用区块 7 内的存储区域。此外, 能够与普通的逻辑卷同样地管理虚拟卷 5, 可 以简化控制结构。
     在本实施方式中, 为了均等地使用多个 RAID 组 6a、 6b, 从各 RAID 组 6a、 6b 中分别 选择区块 7(a1)、 7(b1), 分配给虚拟卷 5(1)。 由此, 可以使各 RAID 组 6a、 6b 的负荷均匀。 以 下详细说明本实施方式。
     ( 实施例 1)
     图 2 是表示包含本实施例的存储控制装置 10 的信息处理系统的全体结构的说明 图。 该信息处理系统例如可以包含 : 至少一个存储控制装置 10、 一个或多个主机 20、 至少一 个管理服务器 70。
     首先说明与图 1 中叙述的实施方式的对应关系。存储控制装置 10 对应于存储控 制装置 1, 主机 20 对应于主机 2, 控制器 30 对应于控制器 3, 存储装置 40 对应于存储装置
     4, 虚拟卷 50V 对应于虚拟卷 5, RAID 组 90 对应于 RAID 组 6a、 6b。尽可能省略与图 1 中的 说明重复的说明。
     主 机 20 与 存 储 装 置 10 经 由 第 一 通 信 网 络 80 连 接。 例 如 像 FC-SAN(Fibre Channel-Storage Area Network) 或 IP-SAN(Internet Protocol_SAN) 那样构成第一通信 网络 80。
     管理服务器 70 是用于对存储控制装置 10 的设定进行变更等的装置。管理服务器 70 例如经由 LAN(Local Area Network) 那样的第二通信网络 81, 与存储控制装置 10 连接。 也可以在主机 20 中设置存储管理功能, 从主机 20 侧进行存储控制装置 10 的设定变更等。
     将在后面叙述存储控制装置 10 的详细情况, 存储控制装置 10 具备虚拟卷 50V 和 普通卷 50N。在图中, 把逻辑卷标记为 “LU” 。 “LU” 是 Logical Unit( 逻辑单元 ) 的缩写。
     如在图 1 中所述那样, 虚拟卷 50V 是虚拟地生成的逻辑卷, 是根据来自主机 20 的 写命令被分配了存储区域的卷。即, 在虚拟卷 50V 中, 提供给主机 20 的卷大小与实际具有 的存储区域的大小不一致。普通卷 50N 是根据 RAID 组 90 具有的存储区域生成的卷。
     池部 60 管理多个 RAID 组 90 具有的存储区域。以区块 91( 参照图 4) 为单位, 把 池部 60 管理的存储区域分配给虚拟卷 50V。 控制器 30 把各卷 50V、 50N 的逻辑地址变更为 RAID 组 90 的物理地址等, 来在存储 装置 40 中写入数据, 或者把从存储装置 40 读出的数据的物理地址变更为逻辑地址等, 把数 据发送给主机 20。
     图 3 是表示控制器 30 的结构的方框图。可以在存储控制装置 10 上连接多个增设 机箱 43。增设机箱 43 收容有多个存储装置 40。用户根据需要来连接增设机箱 4, 由此可以 增大系统的总存储容量。
     存储控制装置 10 具备多个控制器 30(#0)、 30(#1)。即使在某一个控制器 30 由于 故障等而停止的情况下, 也可以通过另一个控制器 30 使动作继续。以下, 在不需要特别区 分时称为控制器 30。
     控制器 30 例如具备第一通信电路 310( 在图 1 中为 FEI/F)、 第二通信电路 320( 在 图中为 SAS)、 数据传输控制电路 330( 在图中为 DCTL)、 高速缓冲存储器 340( 在图中为 CM)、 本地存储器 350( 在图中为 LM)、 微处理器 360( 在图中为 MPU)、 存储器控制器 370( 在图中 为 MC)、 以及扩展器 380( 在图中为 EXP)。
     第一通信电路 310 是用于与主机 20 进行通信的控制电路。第二通信电路 320 是 用于与各存储装置 40 进行通信的控制电路。数据传输控制电路 330 是用于控制存储控制 装置 10 内的数据的流动的电路。各数据传输控制电路 330 相互连接。高速缓冲存储器 340 例如存储从主机 20 接收到的写数据、 从存储装置 40 读出的数据。并且, 有时还在高速缓冲 存储器 340 中存储用于管理存储控制装置 10 的结构或动作的管理用数据等。
     本地存储器 350 例如存储由微处理器 360 使用的多种数据。微处理器 360 从存储 装置 40 或本地存储器 350 读入计算机程序来执行, 由此, 如后所述那样控制存储控制装置 10 的动作。
     存储器控制器 370 是用于将微处理器 360 与本地存储器 350 以及数据传输控制电 路 330 连接的控制电路。扩展器 380 是用于扩展第二通信电路 320 的通信端口的电路。
     图 4 是表示虚拟卷 50V 与区块 91 的关系的说明图。虚拟卷 50V 具有多个虚拟存
     储区域 500。区块 91 具有多个页 92。在图 4 中, 为了方便, 表示了横向地划分条带状的区 块 91 来形成各页 92, 但实际上沿着条带列而形成各页 92。
     在图 4 中, 最初假设对虚拟卷 50V 分配了第一区块 91(#0)。在每次接收到向虚拟 卷 50V 的写命令 ( 写请求 ) 时, 按顺序选择第一区块 91(#0) 内的页 92, 使其与写命令所对 应的虚拟存储区域 500 相对应。把写数据写入到与虚拟存储区域 500 对应的页 92 中。即, 在构成该页 92 的各存储装置 40 的各存储区域中写入写数据。
     在使用了第一区块 91(#0) 的最初的页 92(1-0) 之后, 使用下一个页 92(1-1), 然后 使用再下一个页 92(1-2)。然后, 假定使用到第一区块 91(#0) 的最终页 92(1-4)。由此, 使 用了第一区块 91(#0) 的全部的页 92。
     当从主机 20 发行新的写命令时, 选择第二区块 91(#1), 使用第二区块 91(#1) 的先 头页 92(2-0)。以下, 与在第一区块 91(#0) 中叙述的相同, 按顺序使用第二区块 91(#1) 内 的各页 92。
     如此, 使多个区块 91(#0)、 91(#1) 与虚拟卷 50V 相对应。分别从不同的 RAID 组 90 中选择这些区块 91(#0)、 91(#1)。即, 使从多个 RAID 组 90 中选择出的多个区块 91 与虚拟 卷 50V 对应。对应于主机 20 进行的向虚拟卷 50V 的数据写入, 按顺序使用对应的区块 91 内的页 92。 如后所述, 在主机 20 请求删除虚拟卷 50V 内的数据时, 释放与作为删除对象的数 据的逻辑地址对应的页 92, 将其用于与该虚拟卷 50V 有关的其他写数据的存储。
     图 5 是表示用于管理虚拟卷 50V 的表组的说明图。图 5 所示的表组被设置在高速 缓冲存储器 340 上, 之后被存储在预定的存储装置 40 内的预定的管理区域中。此外, 还把 这些表组复制到本地存储器 350 中, 由微处理器 360 来使用。
     池指数 100 例如是池部 60 管理的 RAID 组 90 的识别号码等、 用于管理与池部 60 的结构 ( 包含状态以及属性 ) 有关的信息的信息。
     虚拟卷指数 101 是用于管理与虚拟卷 50V 的结构有关的信息的信息。虚拟卷指数 101 例如管理分配给虚拟卷 50V 的区块 91 的识别号码以及链接的指数 102 的信息等。
     虚拟地址指数 102 是用于管理向虚拟地址块 103 的指针的信息。虚拟地址块 103 是用于管理向页地址信息 104 的指针的信息。
     例如, 当设虚拟卷 50V 的卷大小为 10GB 时, 虚拟地址指数 102 把虚拟卷 50V 的虚 拟地址区域划分为每个 4GB 的区域来进行管理 ( 最初的两个区域为 4GB, 最后一个区域为 2GB)。虚拟地址块 103 分别能够覆盖 4GB 的范围。如此, 在本实施例中, 把虚拟卷 50V 具有 的虚拟地址区域划分为虚拟地址指数 102 和虚拟地址块 103 这两个阶段来进行层级管理。 由此, 可以缩小范围来进行搜索, 可以迅速地访问相应页 92。上述的数值 (4GB、 10GB、 2GB) 只不过是用于说明的一个例子, 本发明并不限于这些数值。所述各数值可以可变地设定。
     页地址信息 104 是用于管理构成虚拟卷 50V 的各虚拟存储区域 500( 即, 虚拟页 500) 的结构信息的信息。 在页地址信息 104 中, 例如包含表示与虚拟页对应的物理页 92 的 物理地址以及页状态。
     池内 RAID 组指数 110 是用于管理池部 60 管理的各 RAID 组 90 的结构信息的信息。 池内 RAID 组指数 110 例如管理池部 60 内的各 RAID 组 90 具有的各区块 91 的信息等。此 外, 池内 RAID 组指数 110 包含用于分别表示未分配区块队列的先头以及末尾的指针。
     区块指数 120 包含指针, 该指针用于管理对于各虚拟卷 50V 直到何处分配了区块 91。即, 区块指数 120 管理分配给各虚拟卷 50V 的区块的数量等。
     图 6 表示将图 5 所示的表组初始化后的状态。在生成虚拟卷 50V 时, 如图 6 所示 那样将表组初始化。虚拟卷 50V 中包含的各虚拟存储区域 500( 虚拟页 500) 被映射到特定 的区块 91 内的特定的页 92 中。
     例如, 如图 6 所示, 作为用于初始化的特定的页, 使用 RAID 组 90 内的先头区块 91 的最终页 92。在先头区块 91 中存储上述表组等管理信息。作为管理信息的保存区域, 使用 到从先头区块 91 内的先头页 92 开始预定数量的页 92。 虽然根据能够设定的虚拟卷的数量 等而不同, 但是管理信息的合计大小不足区块大小 ( 例如 1GB)。 因此, 至少不会出现在先头 区块 91 的最终页 92 中存储管理信息的情况。即, 不把先头区块 91 的最终页 92 作为管理 信息的存储目的地来使用。
     因此, 预先使先头区块 91 的最终页、 即初始化用的页 92 仅存储零数据。然后, 在 对用于定义虚拟卷 50V 的结构的表组进行初始化时, 使虚拟卷 50V 内的全部的虚拟存储区 域 500 与初始化用的页 92 对应。
     由此, 能够预先确认在定义虚拟卷 50V 时 ( 生成虚拟卷 50V 时 ), 在表组的映射中 没有产生异常。并且, 如图 7 的粗线所示, 在对虚拟卷 50V 发行了写命令时, 仅使通过该写 命令指定的逻辑地址所对应的虚拟存储区域 500 与应该从初始设定用的页 92 写入写数据 的预定的页重新连接即可。因此, 仅仅通过切换虚拟存储区域 500 的对应目标便可以存储 写数据, 可以提高虚拟卷 50V 的响应性能。
     图 8 是表示用于理解存储控制装置 10 的全体动作的流程图。 在该流程图中还包含 用户的步骤。首先, 最初, 用户经由管理服务器 70 对存储控制装置 10 给予预定的指示, 由 此使池部 60 生成 RAID 组 90, 并且使该 RAID 组 90 格式化, 生成未分配区块队列等 (S10)。 在此, 用连续序号管理在池部 60 内管理的、 虚拟卷 50V 用的 RAID 组 90 和普通卷 50N 用的 RAID 组 90。
     然后, 用户从管理服务器 70 对存储控制装置 10 给予其他预定的指示, 由此生成虚 拟卷 50V(S11)。如上所述, 在生成虚拟卷 50V 时, 各虚拟存储区域 500 分别与初始设定用 的页 92 对应。在此, 用连续序号管理虚拟卷 50V 和普通卷 50N, 由此, 可以用共同的管理方 式管理虚拟卷 50V 和普通卷 50N, 可以使虚拟卷 50V 和普通卷 50N 共存于存储控制装置 10 内。
     然后, 用户将主机 20 与虚拟卷 50V 连接 (S12)。用户将虚拟卷 50V 连接在与主机 20 相联系的 LUN(Logical Unit Number) 上, 并且进行 WWN(Logical Unit Number) 的登录 等。
     主机 20 识别虚拟卷 50V(S13), 向虚拟卷 50V 发行写命令等命令。存储控制装置 10 进行与来自主机 20 的命令对应的处理, 将其结果发送给主机 20(S14)。以下, 改换附图 说明各处理的详细内容。
     图 9 是表示池生成处理的流程图。以下叙述的各流程图表示各处理的概要。如果 是所谓的本领域技术人员, 则可以进行图示的步骤的替换、 变更、 删除或新步骤的追加。
     当给予了池生成请求时, 开始图 9 所示的处理。以下, 把动作的主体设为控制器 30。控制器 30 关于作为生成对象的池部 60 的池指数 100, 更新其池状态 (S20), 生成 RAID组 90(S21)。控制器 30 把池内 RAID 组指数 110 的状态变更为 “处理中” (S22)。
     控制器 30 在 RAID 组 90 内设定用于保存管理信息的区域 (S33), 并且, 生成区块指 数 120(S24)。关于池部 60 内的全部区块 91, 分别执行以下的步骤 S26 ~ S28(S25)。
     控制器 30 将与对象区块对应的页地址信息 104 初始化 (S26), 把对象区块的状态 变更为 “格式化等待” (S27)。控制器 30 把管理信息的对比请求入列到用于保存管理信息 的保存请求队列中 (S28)。
     在关于各区块 91 执行了 S26 ~ S28 后, 控制器 30 把池内 RAID 组指数 110 的状态 变更为 “有效” (S29)。然后, 控制器 30 把空数据升级 (staging) 到高速缓冲存储器 340 中 (S30), 然后结束本处理。这是因为, 在请求从没有被写入写数据的虚拟存储区域 500 读出 数据时, 不访问作为物理存储区域的页 92, 而是对主机 20 返回空数据。
     图 10 说明数据以及保证码。如图 10(a) 所示, 在本实施例中, 例如对每个 512 字 节的数据 D10 附加 8 字节的保证码 D11, 并存储在存储装置 40 中。保证码 D11 可以包含用 于验证逻辑地址的部分和用于验证比特错误的部分。以下, 着眼于用于验证逻辑地址的部 分来进行说明。
     图 10(b) 表示对普通卷 50N 中存储的数据附加的保证码的结构。与普通卷 50N 有 关的保证码中用于逻辑地址验证的部分包含 4 比特的预约区域 D110、 12 比特的 LUN 区域 D111、 16 比特的 LBA 区域 D112。LBA 是 Logical Block Address( 逻辑块地址 ) 的缩写。在 LUN 区域 D111 中存储与普通卷 50N 对应的 LUN。在 LBA 区域 D112 中存储数据 D10 的逻辑 地址。
     图 10(c) 表示对虚拟卷 50V 中存储的数据附加的保证码的结构。与虚拟卷 50V 有 关的保证码中用于逻辑地址验证的部分包含 4 比特的预约区域 D110、 8 比特的 RAID 组识别 区域 D113、 4 比特的区块识别区域 D114、 16 比特的区块内 LBA 偏移区域 D115。在 RAID 组识 别区域 D113 中存储用于识别 RAID 组 90 的信息。在区块识别区域 D114 中存储用于识别区 块 91 的信息中的下位 4 比特。在区块内 LBA 偏移区域 D115 中存储在存储有数据 D10 的区 块 91 内从该区块 91 的先头逻辑地址的偏移值。
     根据图 11、 图 12 说明用于管理区块 91 的队列。图 11 是表示队列的使用方法的说 明图。当生成池部 60 时, 把池部 60 管理的各 RAID 组 90 具有的各个区块 91 登录在格式化 等待区块队列 Q10 中来进行管理。当开始格式化时, 把正在格式化的区块 91 转移到处理完 成等待区块队列 Q20 中。然后, 当格式化完成时, 把已完成格式化的区块 91 转移到未分配 区块队列 Q30 中。
     图 12 是示意性地表示各队列 Q10、 Q20、 Q30 的说明图。针对每个 RAID 组 90 准备 格式化等待区块队列 Q10。然后, 在开始格式化处理时, 从格式化等待区块队列 Q10 内的各 RAID 组 90 中按照预定的顺序取出区块 91, 将其与处理完成等待区块队列 Q20 连接。完成 了格式化的区块 91 如上所述, 与未分配区块队列 Q30 连接。因为按照与处理完成等待区块 队列 Q20 相连的顺序完成格式化, 所以在通常的情况下, 处理完成等待区块队列 Q20 内的各 区块 91 的顺序与未分配区块队列 Q30 内的各区块 91 的顺序一致。
     根据图 13、 图 14 说明对区块 91 进行格式化的处理。图 13 表示格式化处理的全 体, 图 14 表示格式化处理的一部分。
     控制器 30 通过确认格式化等待区块队列 Q10 来判定是否具有等待格式化的区块91(S50)。当在格式化等待区块队列 Q10 中登录了区块 91 时 (S50 : 是 ), 控制器 30 对池部 60 内的每个 RAID 组 90, 通过轮转 (round robin) 方式选择区块, 执行以下的步骤 S51 ~ S54。
     当在图 12 所示的例子中说明选择方法时, 在从第一 RAID 组 90(#1) 中选择了一个 区块 91(1-1) 之后, 从第二 RAID 组 90(#2) 中选择另一个区块 91(2-1), 并且, 从第三 RAID 组 90(#3) 中选择又一个区块 91(3-1)。关于被选择的区块 91(1-1)、 91(2-1)、 91(3-1), 分 别执行后述的 S52 ~ S54。关于区块 91(1-2)、 区块 91(2-2)、 区块 91(3-2) 的组合, 也执行 S52 ~ S54。并且, 关于区块 91(1-3)、 区块 91(2-3)、 区块 91(3-3) 的组合, 也执行 S52 ~ S54。以下相同。
     控制器 30 从格式化等待区块队列 Q10 中选择一个对象 RAID 组 90 的区块 91, 使其 从格式化等待区块队列 Q10 出列 (S52)。控制器 30 使被选择的区块 91 入列到处理完成等 待区块队列 Q20(S53), 执行针对被选择的区块 91 的格式化任务 (S54)。关于格式化任务的 详细情况, 与图 14 一起在后面叙述。
     当格式化任务完成时, 控制器 30 使已完成格式化的区块 91 从处理完成等待区块 队列 Q20 出列 (S55), 使该已完成格式化的区块 91 入列到未分配区块队列 Q30(S56)。 图 14 是表示在图 13 中 S54 所示的格式化任务的详细情况的流程图。控制器 30 取得作为处理对象的区块 91 的识别号码 (S60), 决定对对象区块 91 进行格式化的范围 (S61)。然后, 控制器 30 取得与对象区块 91 有关的扩展锁 (Extent Lock)(S62)。由此, 防 止别的程序使用对象区块 91。
     控制器 30 关于对象区块 91 对每个预定大小执行后述的 S64 ~ S70(S63)。即, 控 制器 30 针对预定大小的每个单位区域, 对对象区块 91 进行格式化。
     控 制 器 30 确 保 数 据 用 的 高 速 缓 冲 存 储 区 段 (S64), 接 着, 确保奇偶校验位 (parity) 用的高速缓冲存储区段 (S65)。高速缓冲存储区段是管理高速缓冲存储器 340 的 存储区域的单位。
     控制器 30 计算逻辑地址 (S66), 请求生成零数据 (S67), 并且, 请求生成奇偶校验 位 (S68)。使用在 S64 中确保的高速缓冲存储区段来生成零数据。使用在 S65 中确保的 高速缓冲存储区段来生成奇偶校验位。控制器 30 释放为了数据而确保的速缓冲存储区段 (S69), 并且还释放为了奇偶校验位而确保的速缓冲存储区段 (S70)。
     控制器 30 释放对象区块 91 的扩展锁 (S71), 在确认针对对象区块 91 的格式化完 成后 (S72 : 是 ), 返回图 13 的处理。
     图 15 是表示生成虚拟卷 50V 的处理的流程图。控制器 30 判定池部 60 的状态是 否正常 (S80)。当在池部 60 中发生了故障时 (S80 : 否 ), 因为无法生成虚拟卷 50V, 所以控 制器 30 执行错误处理 (S81)。在错误处理中, 例如因为在池部 60 中发生了异常, 所以向用 户通知无法生成虚拟卷 50V 的意思。
     在池部 60 正常时 (S80 : 是 ), 控制器 30 把虚拟卷指数 101 的状态从 “无效” 变更 为 “处理中” (S82)。对于预先准备的虚拟卷的识别号码, 作为虚拟卷的状态的初始值, 预先 设定了 “无效” 。在生成虚拟卷 50V 的过程中, 其状态从 “无效” 变化为 “处理中” 。当虚拟卷 50V 的生成完成时, 如后所述, 其状态从 “处理中” 变更为 “有效。 ”
     控制器 30 对于状态变更为 “处理中” 的虚拟卷 50V, 生成虚拟地址指数 102(S83),
     并且, 生成与该虚拟地址指数 102 对应的虚拟地址块 103(S84)。并且, 控制器 30 生成与虚 拟地址块 103 对应的页地址信息 104(S85)。
     控制器 30 更新池内 RAID 组指数 110(S86), 把虚拟卷指数 101 的状态从 “处理中” 变更为 “有效” (S87)。控制器 30 确认是否正常地生成了虚拟卷 50V(S88), 在正常地生成了 虚拟卷 50V 的情况下 (S88 : 是 ), 使本处理结束。 在未正常地生成虚拟卷时 (S88 : 否 ), 进行 错误处理 (S89)。在错误处理中, 例如向用户通知未正常地生成虚拟卷 50V 的意思。
     为了方便, 说明了最后判定是否正常地生成了虚拟卷 50V, 但实际上在生成各表 101-104 时分别判定是否正常地生成。并且, 在未正常生成时, 进行错误处理。
     通过进行图 15 所示的处理, 生成图 6 所示的表组, 使虚拟卷 50V 内的各虚拟存储 区域 500 分别与初始设定用的页 92 对应。因此, 确认在正常地生成了虚拟卷 50V 的时刻, 能够正常地进行各虚拟存储区域 500 与实际页 92 的对应。
     图 16 是表示写命令的处理的流程图。控制器 30 当从主机 20 接收到命令时, 判定 该命令是否为以虚拟卷 50V 为对象的写命令 (S90)。
     在该命令是以普通卷 50N 为对象的写命令时 (S90 : 否 ), 控制器 30 执行通常的写 处理 (S91)。在通常的写处理中, 例如在高速缓冲存储器 340 中写入从主机 20 收到的写数 据, 在写数据向高速缓冲存储器 340 的写入完成时, 向主机 20 通知处理完成。之后, 安排恰 当的定时, 把高速缓冲存储器 340 中存储的写数据写入存储装置 40 中。 在收到以虚拟卷 50V 为对象的写命令时 (S90 : 是 ), 控制器 30 关于通过写命令指 定的虚拟卷 50V, 判定是否具有当前正在使用的区块 91(S92)。在具有正在使用的区块 91 时 (S92 : 是 ), 转移到后述的 S96。在没有正在使用的区块 91 时 (S92 : 否 ), 控制器 30 判定 应该新分配给虚拟卷 50V 的区块 91 是否成为初始状态 (S93)。
     在通常的情况下, 通过图 13 所示的格式化处理把新区块设定为初始状态。即便这 样, 在新区块 91 没有成为初始状态时 (S93 : 否 ), 进行错误处理 (S94)。在错误处理中, 例 如经由管理服务器 70 向用户通知不存在初始状态的区块 91 的意思。
     在新区块 91 成为初始状态时 (S93 : 是 ), 控制器 30 进行区块分配变更处理 (S95)。 将在图 18 中叙述区块分配变更处理的详细情况, 先进行简单的说明, 控制器 30 从未分配区 块队列 Q30 中选择一个区块 91, 使其与虚拟卷 50V 对应, 把该区块 91 的状态变更为 “已分 配 ( 正在使用 )” 等。
     控制器 30 判定区块 91 内的各页 92 中要使用的页 92 是否成为初始状态 (S96)。 在要使用的页 92 为初始状态时 (S96 : 是 ), 进行页分配变更处理 (S97)。
     将在图 19 中叙述页分配变更处理的详细情况。先简单地说明, 在页分配变更处理 中, 把分配给虚拟卷 50V 的页 92 的状态变更为 “已分配 ( 正在使用 )” , 更新虚拟地址块 103 以及页地址信息 104。在 S97 后, 转移到 S98。
     在要使用的页 92 不是初始状态时 (S96 : 否 ), 即要使用的页 92 不是初始设定用的 页时, 跳过 S97 转移到 S98。
     控制器 30 确保用于存储写数据的高速缓冲存储区段 (S98), 并且, 生成用于传输 写数据的 DMA(Direct Memory Access) 传输列表 (S99)。然后, 控制器 30 计算保证码的地 址部分 (LA)(S100), 把从主机 20 收到的写数据 DMA 传输到高速缓冲存储器 340(S101)。在 高速缓冲存储器 340 中存储写数据后, 控制器 30 向主机 20 通知写命令的处理已完成的意
     思 (S102)。
     把在写数据向高速缓冲存储器 340 的写入完成后向主机 20 通知处理完成的方式 称为非同步方式。与此相对, 把在等待向存储装置 40 写入写数据后, 向主机 20 通知处理完 成的方式称为同步方式。可以使用非同步方式或同步方式中的某一种。
     转移到图 17。控制器 30 把在写数据中设定的逻辑地址变换为用于存储在存储装 置 40 中的物理地址 (S103)。控制器 30 确保高速缓冲存储区段 (S104)。控制器 30 从存储 装置 40 读出为了生成奇偶校验位所需要的旧数据 (S105), 并且将其存储在在 S104 中确保 的高速缓冲存储区段中。
     控制器 30 根据从主机 20 收到的写数据和从存储装置 40 读出的旧数据, 计算新的 奇偶校验位 (S106)。控制器 30 把存储在高速缓冲存储器 340 中的写数据传输到存储装置 40( 在图 17 中表示为盘 ) 中并存储 (S107)。
     控制器 30 把高速缓冲存储器 340 中存储的写数据的状态从 “脏”变更为 “干 净” (S108)。 “脏” 状态表示仅存储在高速缓冲存储器 340 中的状态。 “干净状态” 表示被写 入到存储装置 40 的状态。最后, 控制器 30 释放在 S98 以及 S104 中确保的高速缓冲存储区 段, 结束本处理 (S109)。
     图 18 是表示在图 16 中 S95 所示的区块分配变更处理的流程图。控制器 30 把处 理对象区块 91 的状态变更为预定的状态 (S110)。
     例如, 在对虚拟卷 50V 分配新区块 91 时, 把新区块 91 的状态从 “未分配 ( 未使用 )” 变更为 “已分配 ( 正在使用 )” 。此外, 例如在释放已分配给虚拟卷 50V 的区块 91 时, 把该 区块 91 的状态从 “已分配 ( 正在使用 )” 变更为 “格式化等待” 。
     控 制 器 30 在 变 更 了 区 块 91 的 状 态 后, 更 新 与 该 区 块 91 对 应 的 虚 拟 地 址 指 数 102(S111)。并且, 控制器 30 更新区块指数 120(S112), 接着, 更新池内 RAID 组指数 110(S113)。
     图 19 是表示在图 16 中 S96 所示的页分配变更处理的流程图。控制器 30 把处理 对象页 92 的状态变更为预定的状态 (S120)。例如, 在把新页 92 分配给虚拟卷 50V 内的虚 拟存储区域 500 时, 把该新页 92 的状态从 “非分配 ( 未使用 )” 变更为 “已分配 ( 正在使 用 )” 。此外, 例如在释放已分配给虚拟卷 50V 的页 92 时, 把该已分配页 92 的状态从 “已分 配 ( 正在使用 )” 变更为 “格式化等待” 。将在图 20 中叙述对虚拟卷 50V 分配新的页 92 的 方法的详细情况。
     在 变 更 页 状 态 之 后, 控 制 器 30 更 新 与 处 理 对 象 页 92 对 应 的 虚 拟 地 址 块 103(S121), 并且, 更新与处理对象页 92 对应的页地址信息 104(S122)。并且, 控制器 30 把 管理信息 ( 图 5 所示的表组 ) 保存在管理信息保存区域 ( 参照图 9 的 S23) 中 (S123)。
     图 20 是表示图 19 中的 S120 所示的处理的一部分的流程图。如上所述, 根据来自 主机 20 的写命令, 以区块为单位对虚拟卷 50V 分配实际存储区域, 按顺序使用该被分配的 区块 91 内的实际页 92。当所分配的区块 91 被用尽时, 对虚拟卷 50V 分配新的区块 91。以 下, 一边参照图 20 一边说明页 92 的使用方法。
     控制器 30 具备用于管理各页 92 的状态的页状态管理表 130。该表 130 例如具备 : 区块识别号码栏 C131、 页识别号码栏 C132、 表示页的状态的栏 C133。
     在页状态栏 C133 中, 例如设定 “正在使用 ( 或已分配 )” 、 “未使用 ( 或未分配 )” 、“释放 ( 或格式化等待 )” 等预先准备的状态中的某一个状态。为了方便说明, 以与页地址 信息 104 不同的信息的方式表示页状态管理表 130, 但实际上可以仅通过页地址信息 104 管 理各页的状态。
     控制器 30 参照表 130, 在当前正在使用的区块 91 内有未使用的页 92 时, 使用该未 使用页 92(S1200)。在当前正在使用的区块 91 内不存在未使用页 92 时, 控制器 30 参照表 130, 在当前正在使用的区块 91 内有释放页 92 时, 使用该被释放的页 92(S1201)。
     当在当前正在使用的区块 91 内未使用页 92 和释放页 92 都不存在时, 控制器 30 参照表 130, 使用已使用区块 91 内的释放页 (S1202)。即, 控制器 30 关于对象的虚拟卷 50V 从已经使用的区块 91 中检测被释放的页 92 来再次使用。
     当在已经使用区块 91 内不存在释放页 92 时, 如在图 16 中所述那样, 控制器 30 使 未使用的区块 91 与虚拟卷 50V 对应, 把该区块 91 的先头页 92 分配给虚拟卷 50V。
     图 21 是表示读命令的处理流程图。控制器 30 判别从主机 20 接收到的命令是否 为以虚拟卷 50V 为对象的读命令 (S130)。
     在从主机 20 收到的命令是向普通卷 50N 的读命令时 (S130 : 否 ), 控制器 30 执行 通常的读处理 (S131)。例如, 控制器 30 判定在高速缓冲存储器 340 中是否存储有主机 20 请求的数据。当在高速缓冲存储器 340 上存在所请求的数据时, 控制器 30 从高速缓冲存储 器 340 中读出数据发送给主机 20。当在高速缓冲存储器 340 上不存在主机 20 请求的数据 时, 控制器 30 从存储装置 40 读出数据, 将其存储在高速缓冲存储器 340 中, 并且将该数据 发送给主机 20。
     在从主机 20 发行的命令是用于从虚拟卷 50V 读出数据的读命令时 (S130 : 是 ), 控 制器 30 关于读对象的虚拟卷 50V 取得扩展锁 (S132)。
     读命令指定数据的读出目的地的逻辑地址。控制器 30 检测与指定的逻辑地址对 应的虚拟存储区域 500, 参照图 5 所示的表组, 取得分配给该虚拟存储区域 500 的页 92 的状 态。控制器 30 判定读对象的页 92 的状态是否为 “初始状态” (S133)。
     在读对象的页 92 为初始状态时 (S133 : 是 ), 控制器 30 判定在高速缓冲存储器 340 中是否存储有应该发送给主机 20 的空数据 (S140), 如在图 9 的 S30 中所述那样, 在生成池 部 60 时, 预先在高速缓冲存储器 340 的预定的高速缓冲存储区段中存储空数据。因此, 在 通常情况下在 S140 中判定为 “是” , 转移到后述的 S141。当在高速缓冲存储器 340 中没有 存储空数据时 (S140 : 否 ), 转移到后述的 S135, 从预定区块的预定页 ( 例如初始设定用页 ) 中读出空数据, 并将其发送给主机 20(S135 ~ S145)。
     返回 S133。在读对象的页 92 不是初始状态时 (S133 : 否 ), 即在读对象页中写入 了写数据时, 控制器 30 计算与读对象数据有关的奇偶校验位 (S134)。 然后, 控制器 30 确保 高速缓冲存储区段 (S135), 向第二通信电路 320 发行读请求 (S136)。控制器 30 把逻辑地 址变换为物理地址 (S137), 计算保证码的地址部分 (LA)(S138)。控制器 30 经由第二通信 电路 320 从存储装置 40 向高速缓冲存储器 340 传输读对象数据 (S139)。
     转移到图 22。控制器 30 设定用于从高速缓冲存储器 340 向第一通信电路 310 进 行 DMA 传输的 DMA 传输列表 (S141)。控制器 30 把在高速缓冲存储器 340 上存储的数据经 由第一通信电路 310 发送给主机 20(S142)。
     当数据的发送完成时, 控制器 30 释放在 S135 中确保的高速缓冲存储区段 (S143),还释放扩展锁 (S144)。最后, 控制器 30 向主机 20 通知读命令的处理完成的意思 (S145), 结束本处理。
     图 23 是表示用于释放被分配给虚拟卷 50V 的页 92 的处理的流程图。控制器 30 从主机 20 收到用于释放已分配的页 92 的命令 (S150)。
     控制器 130 通过参照图 5 所示的表组, 来检索与通过释放命令指定的逻辑地址对 应的页 92(S151)。控制器 30, 对检索出的释放对象页 92 的关联关系进行初始化 (S152)。 即, 将虚拟卷 50V 内的特定的虚拟存储区域 500 所对应的页 92 从该虚拟存储区域 500 中释 放, 使其返回到初始状态。
     控制器 30 向作为命令发行源的主机 20 通知处理已完成的意思 (S153)。接着, 控 制器 30 把释放的页入列到页格式化等待队列中 (S154), 关于释放的页的状态, 更新页状态 管理表 130(S155)。
     在如此构成的本实施例中, 以具备多个页 92 的区块 91 为单位, 对虚拟卷 50V 分配 实际存储区域, 并且, 使与多个虚拟卷 50V 相关的页 92 不共存于一个区块 91 内。即, 仅对 一个虚拟卷 50V 使用一个区块 91。
     因此, 在本实施例中, 如图 24 所示, 可以高效率地使用作为物理存储区域的 RAID 组 90。图 24 是示意性地表示本发明的效果的说明图。图 24(a) 表示不应用本发明的情况, 图 24(b) 表示应用了本发明的情况。
     先说明普通卷 50N 的情况。在为普通卷 50N 时, 可以使用 RAID 组 90 内的连续的 存储区域。因此, 不会在一个条带列中共存与多个普通卷 50N 有关的数据。
     在为虚拟卷 50V 时, 根据需要来分配实际存储区域, 离散地管理数据。如果以页为 单位对虚拟卷分配实际存储区域时, 需要进行控制以便在同一条带列中不共存与多个虚拟 卷有关的数据。 其原因在于, 当在一个条带列中共存多个卷时, 奇偶校验位生成等处理复杂 化, 数据输入输出时的开销增大, 存储控制装置的性能降低。
     因此, 如图 24(a) 所示, 考虑使各页的先头与条带列的先头一致来存储数据的方 法。根据该方法, 不会发生在横一列的条带内共存不同卷的数据的事态。
     但是, 本实施例的存储控制装置 10 因为可以自由地设定构成 RAID 组 90 的存储装 置 40 的台数, 所以页的大小与条带的大小未必一致。在页的大小与条带的大小不一致时, 当使页的先头与条带列的先头一致地配置数据时, 如图 24(a) 中作为空白区域所示, 产生 无用的区域。因此, 在图 24(a) 所示的方法中, 无法有效地使用 RAID 组 90 具有的实际存储 区域, 存在其使用效率低的问题。
     因此, 在本发明中, 如图 24(b) 所示, 不是以页为单位对虚拟卷分配实际存储区 域, 而是以具有多个页的区块 91 为单位对虚拟卷分配实际存储区域。并且, 如上所述, 在每 次接收到与虚拟卷 50V 有关的写命令时, 连续地使用区块 91 内的页 92。使区块 91 内的各 页 92 与同一虚拟卷 50V 对应。与不同的虚拟卷有关的页 92 不会共存于同一区块 91 内。如 此, 根据本实施例, 可以高效率地使用 RAID 组 90 具有的实际存储区域。
     在本实施例中, 如上所述, 不特别区别虚拟卷 50V 的识别号码和普通卷 50N 的识别 号码, 通过连续号码管理各卷 50V、 50N。 此外, 在本实施例中, 不特别区别为了虚拟卷 50V 而 使用的 RAID 组 90 和设置普通卷 50 的 RAID 组 90, 通过连续号码进行管理。因此, 本实施例 的存储控制装置 10 能够通过比较简单的控制结构共同管理虚拟卷 50V 和普通卷 50N, 可以使双方的卷 50V、 50N 共存。
     在本实施例中, 从多个 RAID 组 90 中按顺序选择区块 91 来分配给虚拟卷 50V。因 此, 能够使池部 60 内的各 RAID 组 90 的负荷均匀。
     在本实施例中, 如在图 6、 图 15 中所述, 在生成虚拟卷 50V 时使各表 100-104 之间 相关联, 把虚拟卷 50V 内的全部的虚拟存储区域 500 分配给初始设定用页 92。
     因此, 在本实施例中, 在正常地生成了虚拟卷 50V 的时刻, 能够确认正常地进行各 虚拟存储区域 500 与实际页 92 的对应。即, 在本实施例中, 在接收写命令之前, 区块 91 以 及初始设定用页 92 向虚拟卷 50V 的临时分配已经完成。由此, 可以在接收到写命令之前事 先确认虚拟卷 50V 是否正常地动作, 可靠性以及便利性提高。
     并且, 在本实施例中, 在接收到写命令时, 仅仅把与通过写命令指定的逻辑地址对 应的虚拟存储区域 500 的对应目的地从被临时分配的初始设定用页 92 切换为预定区块 91 内的预定页 92 即可。由此, 可以比较迅速地处理写命令, 能够提高存储控制装置 100 的响 应性能。
     在本实施例中, 从关于同一虚拟卷 50V 已经使用的区块 91 中检测被释放的页 92, 再次用于别的写处理。因此, 可以更加有效地利用 RAID 组 90 具有的实际存储区域。
     在本实施例中, 通过虚拟地址指数 102 以及虚拟地址块 103 这两个阶段来管理虚 拟卷 50V 的地址空间。 由此, 可以缩小通过来自主机 20 的命令指定的逻辑地址的检索范围, 快速地检测与该逻辑地址对应的页 92, 可以提高与虚拟卷 50V 有关的响应性能。
     ( 实施例 2)
     根据图 25 至图 27 说明第二实施例。包含本实施例的以下各实施例相当于第一实 施例的变形例。因此, 主要说明与第一实施例的区别。本实施例说明在存储控制装置 10 内 的多个虚拟卷 50VP、 50VS 之间进行复制的情况。
     图 25 是示意性地表示本实施例的系统的全体结构的说明图。本实施例的存储控 制装置 10 具备多个虚拟卷 50VP、 50VS。一方的虚拟卷 50VP 是正卷, 另一方的虚拟卷 50VS 是副卷。在以下的说明中, 有时称为虚拟正卷 50VP( 或复制源卷 )、 虚拟副卷 50VS( 或复制 目的地卷 )。
     虚拟正卷 50VP 和虚拟副卷 50VS 形成了复制对 (copy pair), 进行控制以使两卷 50VP、 50VS 的存储内容一致。为此, 如后所述, 首先最初执行初始复制, 然后执行更新复制。
     初始复制是指把虚拟正卷 50VP 的存储内容传输并存储在虚拟副卷 50VS 中的复 制。当初始复制完成时, 虚拟正卷 50VP 与虚拟副卷 50VS 的存储内容一致。将在图 26 中详 细叙述初始复制的详细情况。还把初始复制称为形成复制。
     在初始复制完成后, 当更新虚拟正卷 50VP 的存储内容时, 把更新数据传输到虚拟 副卷 50VS 中, 虚拟副卷 50VS 的存储内容也被更新。将该处理称为更新复制。将在图 27 中 叙述更新复制的详细情况。
     图 26 是表示在虚拟卷 50VP、 50VS 之间进行初始复制的处理的流程图。控制器 30 当从主机 20 或管理服务器 70 接收到用于执行初始复制的命令时, 检索复制源卷 50VP 以及 复制目的地卷 50VS(S200)。
     在初始复制命令中, 指定了复制源卷 50VP 以及复制目的地卷 50VS。控制器 30 具 备用于一元地管理虚拟卷 50V 和普通卷 50N 的卷管理表 140。卷管理表 140 例如管理 : 用于识别各虚拟卷 50V 以及各普通卷 50N 的卷号码、 该卷 的状态、 该卷的种类、 构成该卷的存储装置 40 的号码列表等。通过参照卷管理表 140, 可以 判别在初始复制命令中指定的卷是虚拟卷 50V 还是普通卷 50N。
     控制器 30 判定是否请求了虚拟卷之间的初始复制 (S201)。在不是请求虚拟卷之 间的初始复制的命令时 (S201 : 否 ), 控制器 30 进行通常的初始复制。
     当在虚拟卷之间进行初始复制时 (S201 : 是 ), 控制器 30 对虚拟副卷 50VS 分配区 块 91 以及页 92(S203)。控制器 30 对虚拟副卷 50VS 分配区块 91 以及页 92, 直到虚拟正卷 50VP 的实际大小与虚拟副卷 50VS 的实际大小一致 (S204)。所谓实际大小, 是实际分配给 虚拟卷的区块的合计大小。换句话说, 是分配给虚拟卷的实际存储区域的大小。
     当虚拟副卷 50VS 的实际大小与虚拟正卷 50VP 的实际大小一致时 (S204 : 是 ), 控 制器 30 分别取得关于虚拟正卷 50VP 以及虚拟副卷 50VS 的扩展锁 (S205), 并且确保高速缓 冲存储区段 (S206)。
     控制器 30 把虚拟正卷 50VP 中存储的数据从存储装置 40 传输并存储在高速缓冲 存储器 340 中 (S207)。即, 从被分配给虚拟正卷 50VP 的页 92 向高速缓冲存储器 340 传输 并存储虚拟正卷 50VP 的数据。
     控制器 30 在高速缓冲存储器之间复制数据 (S208)。 例如, 在某一个高速缓冲存储 器 340 内的一个高速缓冲存储区段与虚拟正卷 50VP 对应, 同一高速缓冲存储器 340 内的另 一存储控制装置与虚拟副卷 50VS 对应的情况下, 从一个高速缓冲存储区段向另一高速缓 冲存储区段传输数据。或者, 在一个高速缓冲存储器 340 内的高速缓冲存储区段与虚拟正 卷 50VP 对应, 另一高速缓冲存储器 340 内的高速缓冲存储区段与虚拟副卷 50VS 对应的情 况下, 从一个高速缓冲存储器 340 内的高速缓冲存储区段向另一高速缓冲存储器 340 内的 高速缓冲存储区段传输数据。
     控制器 30 把差分管理表 150 内的差分比特设为关 (OFF)(S209), 把虚拟正卷 50VP 与虚拟副卷 50VS 的复制对的状态从 “复制中 “变更为 “对” (S210)。 “对” 的状态是表示从 虚拟正卷 50VP 向虚拟副卷 50VS 的初始复制已完成的状态。
     差分管理表 150 是用于管理虚拟正卷 50VP 的存储内容与虚拟副卷 50VS 的存储内 容的差分的表。差分管理表 150 可以以预定的管理单位管理差分。把产生了差分的区域设 为开 (ON) 状态, 把没有产生差分的区域设定为关 (OFF) 状态。
     图 27 是表示更新复制的流程图。例如, 当虚拟正卷 50VP 内更新后的数据的合计 大小达到预定值时等, 开始从虚拟正卷 50VP 向虚拟副卷 50VS 的更新复制。
     当产生更新复制的契机时, 控制器 30 判定是否为虚拟卷之间的更新复制 (S220)。 在不是虚拟卷之间的更新复制时 (S220 : 否 ), 进行通常的更新复制 (S221)。
     在是虚拟卷之间的更新复制时 (S220 : 是 ), 控制器 30 判定池部 30 的状态是否正 常 (S222)。在池部 60 的状态不正常时 (S222 : 否 ), 进行错误处理 (S227)。在错误处理中, 向用户通知错误消息, 把复制对的状态变更为 “对挂起 (pair suspend)” 。
     在池部 60 的状态正常时 (S222 : 是 ), 控制器 30 计算应该新分配给虚拟副卷 50VS 的页数 (S223)。控制器 30 判定在池部 60 内是否具有在 S223 中计算出的量以上的未使用 页 92(S224)。
     当在池部 60 内存在需要量以上的未使用页时 (S224 : 是 ), 控制器 30 把更新复制所需要的数量的未使用页 92 分配给虚拟副卷 50VS(S225)。控制器 30 从虚拟正卷 50VP 向 虚拟副卷 50VS 传输两卷 50VP、 50VS 之间的差分数据, 把该差分数据存储在虚拟副卷 50VS 中 (S226)。
     如此构成的本实施例也起到与第一实施例相同的效果。 并且, 在本实施例中, 在虚 拟卷之间形成复制对时, 可以仅对虚拟副卷 50VS 分配复制需要的数量的未使用页 92。因 此, 可以有效地使用池部 60 内的实际存储区域来形成复制对。
     ( 实施例 3)
     根据图 28 说明第三实施例。在本实施例中, 针对每个 RAID 组准备处理等待区块 队列 Q20 以及未分配区块队列 Q30, 按照预定的顺序从各 RAID 组 90 取出并使用区块 91。
     在第一实施例中, 如图 12 所示, 仅准备了一个未分配区块队列 Q30, 按照预定的顺 序使各 RAID 组 90 内的已格式化的区块入列到未分配区块队列 Q30 中。
     如上所述, 根据向虚拟卷 50V 的写访问, 从未分配区块队列 Q30 中选择未使用区块 91, 分配给虚拟卷 50V。因此, 在一个主机 20 仅使用一个虚拟卷 50V 的情况下, 按顺序对该 虚拟卷 50V 分配各 RAID 组 90 内的区块 91, 各 RAID 组 90 的负荷变得均等。
     与此相对, 在多个主机 20 分别使用不同的虚拟卷 50V 时, 根据写访问的频率、 写访 问的时刻、 以及写数据大小等理由, 可能没有均等地对各虚拟卷 50V 分配各 RAID 组 90 内的 区块 91。当构成各虚拟卷 50V 的区块 91 偏向于特定的 RAID 组 90 时, 存在无法使负荷在各 RAID 组 90 之间均等地分散的情况。 因此, 在本实施例中, 针对每个 RAID 组 90 准备处理等待区块队列 Q20 以及未分配 区块队列 Q30。 因此, 在图 18 所示的区块分配变更处理中, 在对虚拟卷 50V 分配未使用区块 91 时, 从各 RAID 组 90 中按顺序选择未使用区块 91 来分配 (S110)。
     如此构成的本实施例也起到与第一实施例同样的效果。 并且, 在本实施例中, 因为 准备用于针对每个 RAID 组来管理区块的队列 Q10 ~ Q30, 所以能够使从各 RAID 组 90 向各 虚拟卷 50V 分配的区块 91 的数量均等, 来分散负荷。
     并且, 在本实施例中, 因为针对每个 RAID 组准备队列 Q10 ~ Q30, 所以还可以均等 地使用 RAID 级别不同的区块 91 构成虚拟卷 50V。
     本发明不限于上述实施方式。 本领域的技术人员例如可以适当地组合上述各实施 例那样, 在本发明的范围内进行各种追加或变更等。
    

存储控制装置以及虚拟卷的控制方法.pdf_第1页
第1页 / 共50页
存储控制装置以及虚拟卷的控制方法.pdf_第2页
第2页 / 共50页
存储控制装置以及虚拟卷的控制方法.pdf_第3页
第3页 / 共50页
点击查看更多>>
资源描述

《存储控制装置以及虚拟卷的控制方法.pdf》由会员分享,可在线阅读,更多相关《存储控制装置以及虚拟卷的控制方法.pdf(50页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102334093A43申请公布日20120125CN102334093ACN102334093A21申请号200980157684322申请日20090318G06F3/0620060171申请人株式会社日立制作所地址日本东京都72发明人岩满幸治大平良德内海胜广74专利代理机构北京银龙知识产权代理有限公司11243代理人曾贤伟曹鑫54发明名称存储控制装置以及虚拟卷的控制方法57摘要本发明的存储控制装置,以具备多个页的区块为单位对虚拟卷分配RAID组内的实际存储区域。根据来自主机2的写访问,对虚拟卷5分配池内的实际存储区域。池内的RAID组6具有多个区块7。各区块7具备多个页。

2、8。以区块7为单位,对虚拟卷5分配了实际存储区域。从被分配的区块7中使用写数据的写入所需要的页8。85PCT申请进入国家阶段日2011082986PCT申请的申请数据PCT/JP2009/0011992009031887PCT申请的公布数据WO2010/106574JA2010092351INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书18页附图28页CN102334109A1/3页21一种存储控制装置,其特征在于,具备虚拟地形成的虚拟卷;池部,其管理多个第一实际存储区域,该第一实际存储区域是跨越构成RAID组的多个存储装置条带状地形成的,包含多个第二实际存储区域。

3、;以及控制部,其根据向所述虚拟卷的写请求,使所述第一实际存储区域中包含的所述各第二实际存储区域中的预定的第二实际存储区域对应于所述写请求所对应的所述虚拟卷内的预定区域,使一个所述虚拟卷对应于一个所述第一实际存储区域。2根据权利要求1所述的存储控制装置,其特征在于,设置有多个所述RAID组,在对所述各RAID组中包含的所述各第一实际存储区域进行格式化时,按照预定的顺序从所述各RAID组选择所述各第一实际存储区域并与未分配队列连接,所述控制部在生成所述虚拟卷时,使所述虚拟卷内的各虚拟存储区域与别的预定的第二实际存储区域对应,由此确认是否正常地生成了所述虚拟卷,并且,所述控制部在接受到用于释放与所述。

4、虚拟卷对应的所述第二实际存储区域的释放指示时,释放通过所述释放指示所指定的所述第二实际存储区域,并且,所述控制部,1在具有当前正在使用的所述第一实际存储区域时,选择所述当前正在使用的所述第一实际存储区域中包含的所述各第二实际存储区域中的、与上次选择的所述第二实际存储区域连接的未使用的第二实际存储区域,使其与所述写请求所对应的所述虚拟存储区域对应,2当在所述当前正在使用的所述第一实际存储区域内没有所述未使用的所述第二实际存储区域时,选择所述当前正在使用的所述第一实际存储区域中包含的所述各第二实际存储区域中的、根据所述释放指示被释放的所述第二实际存储区域,使其与所述写请求所对应的所述虚拟存储区域对。

5、应,3当在所述当前正在使用的所述第一实际存储区域内不存在所述被释放的所述第二实际存储区域时,选择在所述当前正在使用的所述第一实际存储区域之前使用的已使用过的第一实际存储区域中包含的所述各第二实际存储区域中的、根据所述释放指示被释放的所述第二实际存储区域,使其与所述写请求所对应的所述虚拟存储区域对应,4当在所述已使用过的所述第一实际存储区域内没有所述被释放的所述第二实际存储区域时,选择与所述未分配队列连接的所述各第一实际存储区域中的先头的所述第一实际存储区域,并选择该第一实际存储区域内的最初的第二实际存储区域,使其与所述写请求所对应的所述虚拟存储区域对应。3根据权利要求1所述的存储控制装置,其特。

6、征在于,设置有多个所述RAID组,所述控制部按照预定的顺序,使所述各RAID组中包含的所述各第一实际存储区域与所述虚拟卷对应,以便均等地使用所述各RAID组。4根据权利要求3所述的存储控制装置,其特征在于,所述控制部,1在对所述各RAID组中包含的所述各第一实际存储区域进行格式化时,按照所述预权利要求书CN102334093ACN102334109A2/3页3定的顺序,将所述各RAID组中包含的所述各第一实际存储区域与一个未分配队列连接,2在使用已经格式化的所述第一实际存储区域时,选择与所述未分配队列连接的所述各第一实际存储区域中的、先头的所述第一实际存储区域。5根据权利要求3所述的存储控制装。

7、置,其特征在于,预先对所述各RAID组中的每个RAID组准备未分配队列,所述控制部,1在对所述各RAID组中包含的所述各第一实际存储区域进行格式化时,使所述各RAID组中的所述各第一实际存储区域分别与所述各RAID组所对应的所述未分配队列连接,2在使用已经格式化的所述第一实际存储区域时,按照所述预定的顺序取出并使用与所述各未分配队列连接的所述各第一实际存储区域。6根据权利要求1所述的存储控制装置,其特征在于,所述控制部在生成所述虚拟卷时,使所述虚拟卷内的各虚拟存储区域与别的预定的第二实际存储区域对应。7根据权利要求6所述的存储控制装置,其特征在于,所述控制部在接收到所述写请求时,把与所述写请求。

8、对应的所述虚拟存储区域的对应目的地,从所述别的预定的第二实际存储区域切换为所述预定的第二实际存储区域。8根据权利要求1所述的存储控制装置,其特征在于,所述控制部把与所述第二实际存储区域连接的未使用的所述第二存储区域作为所述预定的第二实际存储区域与所述虚拟卷对应,所述第二实际存储区域根据上次的写请求,与所述虚拟卷相对应。9根据权利要求8所述的存储控制装置,其特征在于,所述控制部在接收到用于释放与所述虚拟卷对应的所述第二实际存储区域的释放指示时,释放通过所述释放指示所指定的所述第二实际存储区域,并且,所述控制部在不存在所述未使用的所述第二实际存储区域时,把当前正在使用的所述第一实际存储区域中包含的。

9、所述各第二实际存储区域中的、根据所述释放指示被释放的所述第二实际存储区域,作为所述预定的第二实际存储区域与所述虚拟卷对应。10根据权利要求9所述的存储控制装置,其特征在于,所述控制部当在所述当前正在使用的所述第一实际存储区域内不存在所述被释放的所述第二实际存储区域时,选择在所述当前正在使用的所述第一实际存储区域之前使用的已使用过的第一实际存储区域中包含的所述各第二实际存储区域中的、根据所述释放指示被释放的所述第二实际存储区域,作为所述预定的第二实际存储区域与所述虚拟卷对应。11根据权利要求10所述的存储控制装置,其特征在于,所述控制部在所述已使用过的所述第一实际存储区域内没有所述被释放的所述第。

10、二实际存储区域时,从未使用的所述各第一实际存储区域中选择某一个所述第一实际存储区域,把该第一实际存储区域内的最初的第二实际存储区域作为所述预定的第二实际存储区域与所述虚拟卷对应。12根据权利要求1所述的存储控制装置,其特征在于,存在多个所述虚拟卷,权利要求书CN102334093ACN102334109A3/3页4具备别的RAID组,其是与所述RAID组不同的RAID组,与所述RAID组连号地被管理;以及通常的逻辑卷,其根据所述别的RAID组而生成,与所述各虚拟卷连号地被管理,所述控制部在接收到与所述通常的逻辑卷相关的写请求时,在所述别的RAID组的存储区域中写入写数据。13根据权利要求1所述。

11、的存储控制装置,其特征在于,在所述虚拟卷中存储的数据中针对每个预定大小设定了保证码,所述保证码包含用于识别所述RAID组的数据、用于识别所述第一实际存储区域的数据、以及用于识别所述第一实际存储区域内的所述第二实际存储区域的数据。14一种虚拟卷的控制方法,其用于控制虚拟形成的虚拟卷,其特征在于,所述虚拟卷具备多个虚拟存储区域,生成池部,该池部管理多个第一实际存储区域,该第一实际存储区域是跨越构成RAID组的多个存储装置条带状地形成的,每个所述第一实际存储区域包含多个与所述虚拟存储区域对应的第二实际存储区域,对所述各第一实际存储区域进行格式化,使所述各虚拟存储区域分别对应于已格式化的所述各第一实际。

12、存储区域中的预定的第一实际存储区域所具有的初始设定用的第二实际存储区域,由此生成所述虚拟卷,将所述虚拟卷与主计算机连接,在从所述主计算机接收到向所述虚拟卷的写请求时,不使多个所述虚拟卷对应于一个所述第一实际存储区域,使格式化后的所述各第一实际存储区域中的预定的第一实际存储区域所具有的预定的第二实际存储区域对应于所述写请求所对应的所述虚拟存储区域,在对应于所述虚拟存储区域的所述预定的第二实际存储区域中,存储从所述主计算机接收到的写数据。权利要求书CN102334093ACN102334109A1/18页5存储控制装置以及虚拟卷的控制方法技术领域0001本发明涉及存储控制装置以及虚拟卷的控制方法。。

13、背景技术0002企业等用户使用存储控制装置来管理数据。存储控制装置在基于RAIDREDUNDANTARRAYOFINDEPENDENTDISKS的存储区域上形成逻辑卷。该逻辑卷被提供给主计算机以下称为主机。0003由于用户使用的数据量日益增大,结合现状来设定的卷大小中,不久容量会不足。与此相对,当预测数据量的增加,与当前所需要的大小相比过大地设定卷大小时,不要不急的盘驱动器变多,成本增加。0004因此,提出了准备虚拟的逻辑卷,根据实际的使用来对该虚拟的逻辑卷分配实际存储区域的技术专利文献1。0005专利文献1美国专利第6823442号说明书发明内容0006发明要解决的课题0007在上述文献US。

14、6,823,442B1中,存储服务器系统在接收到与虚拟卷上的块地址有关的写请求时,对与该块地址对应的虚拟卷页地址分配逻辑数据页。然后,在该逻辑数据页中写入数据。0008在上述文献中记载了以下管理方法其用于根据从多个物理盘上的区域得到的小存储区块CHUNKLET这个概念的区域,构成具有特定的RAID级别的逻辑盘。0009但是,该管理方法与以物理盘驱动器为单位构成RAID组的存储控制装置的物理区域管理方法完全不同。因此,无法把在上述文献中记载的管理方法直接用于以物理盘驱动器为单位构成RAID组的存储控制装置。0010假如把上述文献中记载的技术用于上述管理方法时,在能够提供普通的逻辑卷和虚拟逻辑卷双。

15、方的存储控制装置中,在普通的逻辑卷和虚拟逻辑卷中,各个物理区域的管理方法不同,产生存储控制装置的结构复杂化的问题。在此,所谓普通的逻辑卷,是指在生成卷时被预先分配了与该卷大小相同容量的物理区域物理存储区域的逻辑卷。虚拟逻辑卷作为将卷大小虚拟化的逻辑卷,是根据写请求被分配物理区域的逻辑卷。0011即,如果把上述文献中记载的技术用于以物理盘驱动器为单位构成RAID组的存储控制装置中,则必须通过不同的多个管理方法管理物理区域,结构复杂化,开发成本也增大。0012并且,在上述文献中,在接受写请求时,在没有分配与虚拟卷页地址对应的表页时,存储服务器系统首先最初分配表页,然后分配逻辑的数据页。因此,在上述。

16、文献中记载的技术中,在分配表页之后需要分配数据页,存在写处理的性能降低的问题。0013并且,在上述文献中,为了进行上述那样的分配处理,需要分别设置数据页专用池说明书CN102334093ACN102334109A2/18页6和表页专用池,系统结构复杂化。0014因此,本发明的目的在于,提供能够考虑RAID组的物理结构,高效地使存储区域与虚拟卷对应的存储控制装置以及虚拟卷的控制方法。本发明的其他目的在于,提供能够均等地使用各RAID组来构成虚拟卷的存储控制装置以及虚拟卷的控制方法。本发明的另一目的在于,提供能够高效地使存储区域与虚拟卷对应,并且能够提高虚拟卷的响应性能的存储控制装置以及虚拟卷的控。

17、制方法。根据后述的实施方式的记载,本发明的更进一步的目的将会变得清楚。0015用于解决课题的手段0016为了解决上述课题,遵照本发明的第一观点的存储控制装置具备虚拟地形成的虚拟卷;池部,其管理多个第一实际存储区域,该第一实际存储区域是跨越构成RAID组的多个存储装置条带状地形成的,包含多个第二实际存储区域;以及控制部,其根据向虚拟卷的写请求,使第一实际存储区域中包含的各第二实际存储区域中的预定的第二实际存储区域对应于写请求所对应的虚拟卷内的预定区域,使一个虚拟卷对应于一个第一实际存储区域。0017第二观点为,在第一观点中,设置有多个RAID组,在对各RAID组中包含的各第一实际存储区域进行格式。

18、化时,按照预定的顺序从各RAID组选择各第一实际存储区域并与未分配队列连接,控制部在生成虚拟卷时,使虚拟卷内的各虚拟存储区域与别的预定的第二实际存储区域对应,由此确认是否正常地生成了虚拟卷,并且,控制部在接受到用于释放与虚拟卷对应的第二实际存储区域的释放指示时,释放通过释放指示所指定的第二实际存储区域,并且,控制部,1在具有当前正在使用的第一实际存储区域时,选择当前正在使用的第一实际存储区域中包含的各第二实际存储区域中的、与上次选择的第二实际存储区域连接的未使用的第二实际存储区域,使其与写请求所对应的虚拟存储区域对应,2当在当前正在使用的第一实际存储区域内没有未使用的第二实际存储区域时,选择当。

19、前正在使用的第一实际存储区域中包含的各第二实际存储区域中的、根据释放指示被释放的第二实际存储区域,使其与写请求所对应的虚拟存储区域对应,3当在当前正在使用的第一实际存储区域内不存在被释放的第二实际存储区域时,选择在当前正在使用的第一实际存储区域之前使用的已使用过的第一实际存储区域中包含的各第二实际存储区域中的、根据释放指示被释放的第二实际存储区域,使其与写请求所对应的虚拟存储区域对应,4当在已使用过的第一实际存储区域内没有被释放的第二实际存储区域时,选择与未分配队列连接的各第一实际存储区域中的先头的第一实际存储区域,并选择该第一实际存储区域内的最初的第二实际存储区域,使其与写请求所对应的虚拟存。

20、储区域对应。0018第三观点为,在第一观点中,设置有多个RAID组,控制部按照预定的顺序,使各RAID组中包含的各第一实际存储区域与虚拟卷对应,以便均等地使用各RAID组。0019第四观点为,在第三观点中,控制部,1在对各RAID组中包含的各第一实际存储区域进行格式化时,按照预定的顺序,将各RAID组中包含的各第一实际存储区域与一个未分配队列连接,2在使用已经格式化的第一实际存储区域时,选择与未分配队列连接的各第一实际存储区域中的、先头的第一实际存储区域。0020第五观点为,在第三观点中,预先对各RAID组中的每个RAID组准备未分配队列,控制部,1在对各RAID组中包含的各第一实际存储区域进。

21、行格式化时,使各RAID组中的说明书CN102334093ACN102334109A3/18页7各第一实际存储区域分别与各RAID组所对应的未分配队列连接,2在使用已经格式化的第一实际存储区域时,按照预定的顺序取出并使用与各未分配队列连接的各第一实际存储区域。0021第六观点为,在第一观点中,控制部在生成虚拟卷时,使虚拟卷内的各虚拟存储区域与别的预定的第二实际存储区域对应。0022第七观点为,在第六观点中,控制部在接收到写请求时,把与写请求对应的虚拟存储区域的对应目的地,从别的预定的第二实际存储区域切换为预定的第二实际存储区域。0023第八观点为,在第一观点中,控制部把与第二实际存储区域连接的。

22、未使用的第二存储区域作为预定的第二实际存储区域与虚拟卷对应,第二实际存储区域根据上次的写请求,与虚拟卷相对应。0024第九观点为,在第八观点中,控制部在接收到用于释放与虚拟卷对应的第二实际存储区域的释放指示时,释放通过释放指示所指定的第二实际存储区域,并且,控制部在不存在未使用的第二实际存储区域时,把当前正在使用的第一实际存储区域中包含的各第二实际存储区域中的、根据释放指示被释放的第二实际存储区域,作为预定的第二实际存储区域与虚拟卷对应。0025第十观点为,在第九观点中,控制部当在当前正在使用的第一实际存储区域内不存在被释放的第二实际存储区域时,选择在当前正在使用的第一实际存储区域之前使用的已。

23、使用过的第一实际存储区域中包含的各第二实际存储区域中的、根据释放指示被释放的第二实际存储区域,作为预定的第二实际存储区域与虚拟卷对应。0026第十一观点为,在第十观点中,控制部在已使用过的第一实际存储区域内没有被释放的第二实际存储区域时,从未使用的各第一实际存储区域中选择某一个第一实际存储区域,把该第一实际存储区域内的最初的第二实际存储区域作为预定的第二实际存储区域与虚拟卷对应。0027第十二观点为,在第一观点中,存在多个虚拟卷,具备别的RAID组,其是与RAID组不同的RAID组,与RAID组连号地被管理;以及通常的逻辑卷,其根据别的RAID组而生成,与各虚拟卷连号地被管理,控制部在接收到与。

24、通常的逻辑卷相关的写请求时,在别的RAID组的存储区域中写入写数据。0028第十三观点为,在第一观点中,在虚拟卷中存储的数据中针对每个预定大小设定了保证码,保证码包含用于识别RAID组的数据、用于识别第一实际存储区域的数据、以及用于识别第一实际存储区域内的第二实际存储区域的数据。0029遵照第十四观点的虚拟卷的控制方法,其用于控制虚拟形成的虚拟卷,其中,虚拟卷具备多个虚拟存储区域,生成池部,该池部管理多个第一实际存储区域,该第一实际存储区域是跨越构成RAID组的多个存储装置条带状地形成的,每个第一实际存储区域包含多个与虚拟存储区域对应的第二实际存储区域,对各第一实际存储区域进行格式化,使各虚拟。

25、存储区域分别对应于已格式化的各第一实际存储区域中的预定的第一实际存储区域所具有的初始设定用的第二实际存储区域,由此生成虚拟卷,将虚拟卷与主计算机连接,在从主计算机接收到向虚拟卷的写请求时,不使多个虚拟卷对应于一个第一实际存储区域,使格式化后的各第一实际存储区域中的预定的第一实际存储区域所具有的预定的第二实际存储区域对应于写请求所对应的虚拟存储区域,在对应于虚拟存储区域的预定的第二实际说明书CN102334093ACN102334109A4/18页8存储区域中,存储从主计算机接收到的写数据。0030本发明的结构的至少一部分可以作为计算机程序来构成。可以把该计算机程序固定在记录介质中来分发,也可以。

26、经由通信网络来分发。附图说明0031图1是表示本发明的实施方式的整体概念的说明图。0032图2是表示包含存储控制装置的系统的全体结构的说明图。0033图3是存储控制装置的方框图。0034图4是表示虚拟卷和区块以及页的关系的示意图。0035图5是表示用于对分配给虚拟卷的区块以及页进行管理的表组的说明图。0036图6是表示虚拟卷生成时的表组的连接情况的说明图。0037图7是表示在写入写数据时,把分配给虚拟卷的页从初始设定用页切换为预定的页的情况的说明图。0038图8是表示存储控制装置的整体动作的流程的说明图。0039图9是表示池生成处理的流程图。0040图10是表示对数据附加的保证码的结构的说明图。

27、。0041图11是表示区块的状态迁移的说明图。0042图12是表示用于管理区块的队列的说明图。0043图13是表示格式化处理的流程图。0044图14是表示格式化处理的一部分的流程图。0045图15是表示生成虚拟卷的处理的流程图。0046图16是表示写处理的流程图。0047图17是与图16连续的流程图。0048图18是表示对虚拟卷分配区块的处理的流程图。0049图19是表示对虚拟卷分配页的处理的流程图。0050图20是表示变更页状态的处理的流程图。0051图21是表示读处理的流程图。0052图22是与图21连续的流程图。0053图23是表示使已分配给虚拟卷的页释放的处理的流程图。0054图24是。

28、表示本发明的效果的说明图。0055图25是包含第二实施例的存储控制装置的系统的全体图。0056图26是表示在虚拟卷之间进行初始复制的处理的流程图。0057图27是表示在虚拟卷之间进行更新复制的处理的流程图。0058图28是表示在第三实施例的存储控制装置中使用的、用于管理区块的队列的说明图。0059符号说明00601存储控制装置;2主机;3控制器;4存储装置;006151、52虚拟卷;5A虚拟存储区域;6A、6BRAID组;00627区块;8页;10存储控制装置;20主机;30控制器;说明书CN102334093ACN102334109A5/18页9006340存储装置;50V虚拟卷;50N普通。

29、卷;60池部;006470管理服务器;90RAID组;91区块;92页。具体实施方式0065以下,根据附图说明本发明的实施方式。最初说明本发明的概要,然后说明实施例。如后所述,本发明以区块7为单位进行实际存储区域向虚拟卷5的分配。区块7由多个页8构成。一个虚拟卷5对应于一个区块7。即,不存在一个区块7与不同的多个虚拟卷5对应的情况。所以可以高效率地使用区块7的存储区域。0066在生成虚拟卷5时,预先使各虚拟存储区域5A与初始设定用的页8对应。当从主机2发行向虚拟卷5的写请求时,按顺序使用区块7内的页8,将其分配给与写请求有关的虚拟存储区域5A。在该被分配的页8中写入写数据。在写入数据时,把与写。

30、请求有关的虚拟存储区域5A的连接目的地从初始设定用的页8切换为区块7内的预定的页8。预定的页8是指与在上次的写处理时使用的页连续的页。即,在写入写数据时,因为仅把分配给虚拟存储区域5A的页从初始设定用的页8切换为预定的页8即可,所以可以提高虚拟卷5的响应性能。0067并且,当在区块7内没有空闲页8时,选择新的区块7分配给虚拟卷5。从别的RAID组6B内的区块组中选择新的区块7。由此可以使负荷在各RAID组6A、6B之间分散。0068图1是表示本发明的实施方式的概要的说明图。与图1有关的以下的记载以理解以及实施本发明所需要的程度表示了本发明的概要,本发明的范围不限于图1所示的结构。0069图1所。

31、示的系统具备存储控制装置1和主机2。主机2例如构成为服务器计算机或大型计算机那样的计算机装置。在主机2为主计算机时,例如按照FICONFIBRECONNECTION注册商标、ESCONENTERPRISESYSTEMCONNECTION注册商标、ACONARCADVANCEDCONNECTIONARCHITECTURE注册商标、FIBARCFIBRECONNECTIONARCHITECTURE注册商标等通信协议来进行数据通信。在主机2为服务器计算机等时,例如按照FCPFIBRECHANNELPROTOCOL或ISCSIINTERNETSMALLCOMPUTERSYSTEMINTERFACE等通。

32、信协议来进行数据通信。0070存储控制装置1经由通信网络与主机2连接。存储控制装置1例如具备控制器3、存储装置4、虚拟卷51、52。在不需要特别进行区别时,称为虚拟卷5。各RAID组6A、6B分别由多个存储装置4构成。0071作为存储装置4,例如可以使用硬盘设备、半导体存储器设备、光盘设备、光磁盘设备、磁带设备、软盘设备等能够读写数据的各种设备。0072在作为存储装置4使用了硬盘设备时,例如可以使用FCFIBRECHANNEL盘、SCSISMALLCOMPUTERSYSTEMINTERFACE盘、SATA盘、ATAATATTACHMENT盘、SASSERIALATTACHEDSCSI盘等。此外。

33、,例如还可以使用闪速存储器、FERAMFERROELECTRICRANDOMACCESSMEMORY、MRAMMAGNETORESISTIVERANDOMACCESSMEMORY、相变存储器OVONICUNIFIEDMEMORY、RRAMRESISTANCERAM等各种存储装置4。并且,例如还可以是使像闪速存储器设备和硬盘驱动器那样不同种类的存储装置4共存的结构。0073把各RAID组6A、6B具有的物理存储区域划分为条带STRIPE状的多个区块7。说明书CN102334093ACN102334109A6/18页10各区块7由连续的多个页8构成。区块7相当于“第一实际存储区域”,页8相当于“第。

34、二实际存储区域”。为了理解,对属于一个RAID组6A的第一区块7赋予符号“A1”,对属于第一区块7A1的各页添加序号。对于另一RAID组6B也相同。因此,例如“A23”表示RAID组6A的第二区块内的第三页,“B11”表示RAID组6B的第一区块内的第一页。0074虚拟卷5由多个虚拟存储区域5A构成。虚拟存储区域5A与页8的大小相同。在一个例子中,一个页8的大小为SZ1字节例如32MB,一个区块7的大小为SZ2字节例如1GB,虚拟卷5的大小为SZ3字节例如10GB。此时,一个虚拟卷5由N1个例如10个区块7构成,一个区块7由N2例如32个页8构成。上述括号内的数值只不过是用于理解的一个例子,本。

35、发明的范围不限于上述的数值。上述的页大小、区块大小、虚拟卷大小等可以可变地设定。0075控制器3控制存储控制装置1的动作。例如,控制器3根据来自用户的指示,生成RAID组6A、6B以及虚拟卷5。此外,控制器3根据从主机2发行的命令读命令、写命令执行处理,并把其处理结果发送给主机2。0076并且,控制器3在接收到写命令时,判断是否对根据写命令指定的虚拟存储区域5A分配了页8。在没有对指定的虚拟存储区域5A分配页8时,控制器3把区块7内的预定的页8分配给指定的虚拟存储区域5A。控制器3在所分配的预定页8中写入写数据。0077控制器3控制页分配,仅使一个虚拟卷5对应一个区块7。把一个区块7中包含的各。

36、页8仅分配给一个虚拟卷5。在一个区块7内不会共同存在分别被分配给不同的多个虚拟卷5的页8。在一个区块7内,与逻辑地址的值无关地使用连续的页8。0078当以一个虚拟卷51为例来进行说明时,针对最初的写命令,使用区块7A1内的先头页8A11,针对下一个写命令,使用与该先头页8A11相连的下一个页8A12,并且针对别的写命令,使用下一个页8A13。然后,在使用了最后的页8A14后又接收到写命令时,把新的区块7B1分配给虚拟卷51。0079对另一虚拟卷52分配了RAID组6A的第二区块7内的先头页8A21。如果发行了以虚拟卷52为对象的新的写命令时,把下一页8分配给虚拟卷52。对该页8应该添加“A22。

37、”的符号,但是在图1中省略。0080在如此构成的本实施方式中,以具有多个页8的区块7为单位,对虚拟卷5分配实际存储区域物理存储区域,并且将一个区块7仅分配给一个虚拟卷5。因此,如后所述,能够有效地使用区块7内的存储区域。此外,能够与普通的逻辑卷同样地管理虚拟卷5,可以简化控制结构。0081在本实施方式中,为了均等地使用多个RAID组6A、6B,从各RAID组6A、6B中分别选择区块7A1、7B1,分配给虚拟卷51。由此,可以使各RAID组6A、6B的负荷均匀。以下详细说明本实施方式。0082实施例10083图2是表示包含本实施例的存储控制装置10的信息处理系统的全体结构的说明图。该信息处理系统。

38、例如可以包含至少一个存储控制装置10、一个或多个主机20、至少一个管理服务器70。0084首先说明与图1中叙述的实施方式的对应关系。存储控制装置10对应于存储控制装置1,主机20对应于主机2,控制器30对应于控制器3,存储装置40对应于存储装置说明书CN102334093ACN102334109A7/18页114,虚拟卷50V对应于虚拟卷5,RAID组90对应于RAID组6A、6B。尽可能省略与图1中的说明重复的说明。0085主机20与存储装置10经由第一通信网络80连接。例如像FCSANFIBRECHANNELSTORAGEAREANETWORK或IPSANINTERNETPROTOCOL_。

39、SAN那样构成第一通信网络80。0086管理服务器70是用于对存储控制装置10的设定进行变更等的装置。管理服务器70例如经由LANLOCALAREANETWORK那样的第二通信网络81,与存储控制装置10连接。也可以在主机20中设置存储管理功能,从主机20侧进行存储控制装置10的设定变更等。0087将在后面叙述存储控制装置10的详细情况,存储控制装置10具备虚拟卷50V和普通卷50N。在图中,把逻辑卷标记为“LU”。“LU”是LOGICALUNIT逻辑单元的缩写。0088如在图1中所述那样,虚拟卷50V是虚拟地生成的逻辑卷,是根据来自主机20的写命令被分配了存储区域的卷。即,在虚拟卷50V中,。

40、提供给主机20的卷大小与实际具有的存储区域的大小不一致。普通卷50N是根据RAID组90具有的存储区域生成的卷。0089池部60管理多个RAID组90具有的存储区域。以区块91参照图4为单位,把池部60管理的存储区域分配给虚拟卷50V。0090控制器30把各卷50V、50N的逻辑地址变更为RAID组90的物理地址等,来在存储装置40中写入数据,或者把从存储装置40读出的数据的物理地址变更为逻辑地址等,把数据发送给主机20。0091图3是表示控制器30的结构的方框图。可以在存储控制装置10上连接多个增设机箱43。增设机箱43收容有多个存储装置40。用户根据需要来连接增设机箱4,由此可以增大系统的。

41、总存储容量。0092存储控制装置10具备多个控制器300、301。即使在某一个控制器30由于故障等而停止的情况下,也可以通过另一个控制器30使动作继续。以下,在不需要特别区分时称为控制器30。0093控制器30例如具备第一通信电路310在图1中为FEI/F、第二通信电路320在图中为SAS、数据传输控制电路330在图中为DCTL、高速缓冲存储器340在图中为CM、本地存储器350在图中为LM、微处理器360在图中为MPU、存储器控制器370在图中为MC、以及扩展器380在图中为EXP。0094第一通信电路310是用于与主机20进行通信的控制电路。第二通信电路320是用于与各存储装置40进行通信。

42、的控制电路。数据传输控制电路330是用于控制存储控制装置10内的数据的流动的电路。各数据传输控制电路330相互连接。高速缓冲存储器340例如存储从主机20接收到的写数据、从存储装置40读出的数据。并且,有时还在高速缓冲存储器340中存储用于管理存储控制装置10的结构或动作的管理用数据等。0095本地存储器350例如存储由微处理器360使用的多种数据。微处理器360从存储装置40或本地存储器350读入计算机程序来执行,由此,如后所述那样控制存储控制装置10的动作。0096存储器控制器370是用于将微处理器360与本地存储器350以及数据传输控制电路330连接的控制电路。扩展器380是用于扩展第二。

43、通信电路320的通信端口的电路。0097图4是表示虚拟卷50V与区块91的关系的说明图。虚拟卷50V具有多个虚拟存说明书CN102334093ACN102334109A8/18页12储区域500。区块91具有多个页92。在图4中,为了方便,表示了横向地划分条带状的区块91来形成各页92,但实际上沿着条带列而形成各页92。0098在图4中,最初假设对虚拟卷50V分配了第一区块910。在每次接收到向虚拟卷50V的写命令写请求时,按顺序选择第一区块910内的页92,使其与写命令所对应的虚拟存储区域500相对应。把写数据写入到与虚拟存储区域500对应的页92中。即,在构成该页92的各存储装置40的各存。

44、储区域中写入写数据。0099在使用了第一区块910的最初的页9210之后,使用下一个页9211,然后使用再下一个页9212。然后,假定使用到第一区块910的最终页9214。由此,使用了第一区块910的全部的页92。0100当从主机20发行新的写命令时,选择第二区块911,使用第二区块911的先头页9220。以下,与在第一区块910中叙述的相同,按顺序使用第二区块911内的各页92。0101如此,使多个区块910、911与虚拟卷50V相对应。分别从不同的RAID组90中选择这些区块910、911。即,使从多个RAID组90中选择出的多个区块91与虚拟卷50V对应。对应于主机20进行的向虚拟卷50。

45、V的数据写入,按顺序使用对应的区块91内的页92。0102如后所述,在主机20请求删除虚拟卷50V内的数据时,释放与作为删除对象的数据的逻辑地址对应的页92,将其用于与该虚拟卷50V有关的其他写数据的存储。0103图5是表示用于管理虚拟卷50V的表组的说明图。图5所示的表组被设置在高速缓冲存储器340上,之后被存储在预定的存储装置40内的预定的管理区域中。此外,还把这些表组复制到本地存储器350中,由微处理器360来使用。0104池指数100例如是池部60管理的RAID组90的识别号码等、用于管理与池部60的结构包含状态以及属性有关的信息的信息。0105虚拟卷指数101是用于管理与虚拟卷50V。

46、的结构有关的信息的信息。虚拟卷指数101例如管理分配给虚拟卷50V的区块91的识别号码以及链接的指数102的信息等。0106虚拟地址指数102是用于管理向虚拟地址块103的指针的信息。虚拟地址块103是用于管理向页地址信息104的指针的信息。0107例如,当设虚拟卷50V的卷大小为10GB时,虚拟地址指数102把虚拟卷50V的虚拟地址区域划分为每个4GB的区域来进行管理最初的两个区域为4GB,最后一个区域为2GB。虚拟地址块103分别能够覆盖4GB的范围。如此,在本实施例中,把虚拟卷50V具有的虚拟地址区域划分为虚拟地址指数102和虚拟地址块103这两个阶段来进行层级管理。由此,可以缩小范围来。

47、进行搜索,可以迅速地访问相应页92。上述的数值4GB、10GB、2GB只不过是用于说明的一个例子,本发明并不限于这些数值。所述各数值可以可变地设定。0108页地址信息104是用于管理构成虚拟卷50V的各虚拟存储区域500即,虚拟页500的结构信息的信息。在页地址信息104中,例如包含表示与虚拟页对应的物理页92的物理地址以及页状态。0109池内RAID组指数110是用于管理池部60管理的各RAID组90的结构信息的信息。池内RAID组指数110例如管理池部60内的各RAID组90具有的各区块91的信息等。此外,池内RAID组指数110包含用于分别表示未分配区块队列的先头以及末尾的指针。说明书C。

48、N102334093ACN102334109A9/18页130110区块指数120包含指针,该指针用于管理对于各虚拟卷50V直到何处分配了区块91。即,区块指数120管理分配给各虚拟卷50V的区块的数量等。0111图6表示将图5所示的表组初始化后的状态。在生成虚拟卷50V时,如图6所示那样将表组初始化。虚拟卷50V中包含的各虚拟存储区域500虚拟页500被映射到特定的区块91内的特定的页92中。0112例如,如图6所示,作为用于初始化的特定的页,使用RAID组90内的先头区块91的最终页92。在先头区块91中存储上述表组等管理信息。作为管理信息的保存区域,使用到从先头区块91内的先头页92开始。

49、预定数量的页92。虽然根据能够设定的虚拟卷的数量等而不同,但是管理信息的合计大小不足区块大小例如1GB。因此,至少不会出现在先头区块91的最终页92中存储管理信息的情况。即,不把先头区块91的最终页92作为管理信息的存储目的地来使用。0113因此,预先使先头区块91的最终页、即初始化用的页92仅存储零数据。然后,在对用于定义虚拟卷50V的结构的表组进行初始化时,使虚拟卷50V内的全部的虚拟存储区域500与初始化用的页92对应。0114由此,能够预先确认在定义虚拟卷50V时生成虚拟卷50V时,在表组的映射中没有产生异常。并且,如图7的粗线所示,在对虚拟卷50V发行了写命令时,仅使通过该写命令指定。

50、的逻辑地址所对应的虚拟存储区域500与应该从初始设定用的页92写入写数据的预定的页重新连接即可。因此,仅仅通过切换虚拟存储区域500的对应目标便可以存储写数据,可以提高虚拟卷50V的响应性能。0115图8是表示用于理解存储控制装置10的全体动作的流程图。在该流程图中还包含用户的步骤。首先,最初,用户经由管理服务器70对存储控制装置10给予预定的指示,由此使池部60生成RAID组90,并且使该RAID组90格式化,生成未分配区块队列等S10。在此,用连续序号管理在池部60内管理的、虚拟卷50V用的RAID组90和普通卷50N用的RAID组90。0116然后,用户从管理服务器70对存储控制装置10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1