CN102334093A - 存储控制装置以及虚拟卷的控制方法 - Google Patents

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

Info

Publication number
CN102334093A
CN102334093A CN2009801576843A CN200980157684A CN102334093A CN 102334093 A CN102334093 A CN 102334093A CN 2009801576843 A CN2009801576843 A CN 2009801576843A CN 200980157684 A CN200980157684 A CN 200980157684A CN 102334093 A CN102334093 A CN 102334093A
Authority
CN
China
Prior art keywords
actual storage
storage zone
virtual
virtual volume
zone
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.)
Granted
Application number
CN2009801576843A
Other languages
English (en)
Other versions
CN102334093B (zh
Inventor
岩满幸治
大平良德
内海胜广
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to CN201710660217.9A priority Critical patent/CN107247565B/zh
Publication of CN102334093A publication Critical patent/CN102334093A/zh
Application granted granted Critical
Publication of CN102334093B publication Critical patent/CN102334093B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

存储控制装置以及虚拟卷的控制方法
技术领域
本发明涉及存储控制装置以及虚拟卷的控制方法。
背景技术
企业等用户使用存储控制装置来管理数据。存储控制装置在基于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:控制器;
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(MagnetoresistiveRandom 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(FibreChannel-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(LogicalUnit 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 BlockAddress(逻辑块地址)的缩写。在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。
本发明不限于上述实施方式。本领域的技术人员例如可以适当地组合上述各实施例那样,在本发明的范围内进行各种追加或变更等。

Claims (14)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710660217.9A CN107247565B (zh) 2009-03-18 2009-03-18 存储控制装置以及虚拟卷的控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/001199 WO2010106574A1 (ja) 2009-03-18 2009-03-18 記憶制御装置及び仮想ボリュームの制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201710660217.9A Division CN107247565B (zh) 2009-03-18 2009-03-18 存储控制装置以及虚拟卷的控制方法

Publications (2)

Publication Number Publication Date
CN102334093A true CN102334093A (zh) 2012-01-25
CN102334093B CN102334093B (zh) 2017-08-01

Family

ID=42739253

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710660217.9A Active CN107247565B (zh) 2009-03-18 2009-03-18 存储控制装置以及虚拟卷的控制方法
CN200980157684.3A Active CN102334093B (zh) 2009-03-18 2009-03-18 存储控制装置以及虚拟卷的控制方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201710660217.9A Active CN107247565B (zh) 2009-03-18 2009-03-18 存储控制装置以及虚拟卷的控制方法

Country Status (5)

Country Link
US (3) US8521987B2 (zh)
EP (1) EP2410419A4 (zh)
JP (1) JP5538362B2 (zh)
CN (2) CN107247565B (zh)
WO (1) WO2010106574A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377132A (zh) * 2012-04-16 2013-10-30 群联电子股份有限公司 管理存储器空间的方法、存储器控制器与存储器储存装置
CN104285206A (zh) * 2012-04-26 2015-01-14 株式会社日立制作所 信息存储系统和控制信息存储系统的方法
CN106843751A (zh) * 2016-12-27 2017-06-13 华为技术有限公司 放置存储卷的方法和设备
CN108196800A (zh) * 2013-08-20 2018-06-22 株式会社日立制作所 存储系统
CN110199265A (zh) * 2017-06-20 2019-09-03 株式会社日立制作所 存储装置和存储区域管理方法

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4863605B2 (ja) * 2004-04-09 2012-01-25 株式会社日立製作所 記憶制御システム及び方法
JP4843693B2 (ja) * 2009-03-30 2011-12-21 株式会社東芝 記憶装置
US8225039B2 (en) * 2009-10-09 2012-07-17 Hitachi, Ltd. Storage controller and virtual volume control method
US9229808B2 (en) * 2010-10-01 2016-01-05 Pure Storage, Inc. Reconstruct reads in a raid array with dynamic geometries
CN101976223B (zh) * 2010-10-09 2012-12-12 成都市华为赛门铁克科技有限公司 自动精简配置方法和装置
WO2012090239A1 (en) * 2010-12-27 2012-07-05 Hitachi, Ltd. Storage system and management method of control information therein
US8892847B2 (en) 2011-04-05 2014-11-18 Hitachi, Ltd. Volume management and page allocation method
WO2013014699A1 (en) * 2011-07-22 2013-01-31 Hitachi, Ltd. Storage system and its logical unit management method
JP2013045378A (ja) * 2011-08-26 2013-03-04 Fujitsu Ltd ストレージ制御方法、情報処理装置およびプログラム
US8661320B2 (en) * 2011-10-07 2014-02-25 Aeroflex Colorado Springs Inc. Independent orthogonal error correction and detection
WO2013140446A1 (en) 2012-03-21 2013-09-26 Hitachi, Ltd. Storage apparatus and method thereof for fast creation of a eager zeroed virtual disk by allocation of pre -zeroed storage areas
WO2013158817A1 (en) * 2012-04-20 2013-10-24 Violin Memory, Inc. Lun management with distributed raid controllers
JP5915378B2 (ja) * 2012-05-24 2016-05-11 富士通株式会社 ストレージ装置およびストレージ装置の制御方法
WO2014016860A1 (en) * 2012-07-23 2014-01-30 Hitachi, Ltd. Raid storage system and rebuild process
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10642505B1 (en) 2013-01-28 2020-05-05 Radian Memory Systems, Inc. Techniques for data migration based on per-data metrics and memory degradation
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9229854B1 (en) 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US9383924B1 (en) * 2013-02-27 2016-07-05 Netapp, Inc. Storage space reclamation on volumes with thin provisioning capability
US20150019807A1 (en) * 2013-07-11 2015-01-15 Silicon Graphics International Corp. Linearized dynamic storage pool
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
WO2016142998A1 (ja) * 2015-03-06 2016-09-15 株式会社日立製作所 計算機システム
WO2016166867A1 (ja) * 2015-04-16 2016-10-20 株式会社日立製作所 計算機システム、及び、リソース制御方法
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
US11188241B2 (en) 2017-07-07 2021-11-30 Sap Se Hybrid key-value store
CN109725838B (zh) * 2017-10-27 2022-02-25 伊姆西Ip控股有限责任公司 用于管理多个盘的方法、装置以及计算机可读介质
CN108763105B (zh) * 2018-05-28 2020-12-01 深圳忆联信息系统有限公司 提升固态存储设备写性能的方法、装置及计算机设备
JP6824929B2 (ja) * 2018-06-07 2021-02-03 株式会社日立製作所 記憶制御システム及び記憶制御方法
CN111078124B (zh) * 2018-10-19 2024-05-28 深信服科技股份有限公司 一种raid卷组卷方法、系统、装置及可读存储介质
US20200334142A1 (en) * 2019-04-18 2020-10-22 EMC IP Holding Company LLC Quasi-compacting garbage collector for data storage system
CN112765046A (zh) 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 用于回收存储空间的方法、设备和计算机程序产品
CN112748848A (zh) * 2019-10-29 2021-05-04 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备和计算机程序产品
US11175984B1 (en) 2019-12-09 2021-11-16 Radian Memory Systems, Inc. Erasure coding techniques for flash memory
JP7191003B2 (ja) * 2019-12-17 2022-12-16 株式会社日立製作所 ストレージシステムおよびストレージ管理方法
CN113126889A (zh) 2020-01-15 2021-07-16 伊姆西Ip控股有限责任公司 管理存储空间的方法、设备和计算机程序产品
JP2021114264A (ja) * 2020-01-21 2021-08-05 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム
CN115129267B (zh) * 2022-09-01 2023-02-03 苏州浪潮智能科技有限公司 一种域地址变更方法、装置、设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101042676A (zh) * 2006-03-23 2007-09-26 株式会社日立制作所 存储系统以及存储区域释放方法以及存储装置
US20070245114A1 (en) * 2006-04-18 2007-10-18 Hitachi, Ltd. Storage system and control method for the same
US20070266218A1 (en) * 2006-05-10 2007-11-15 Kyosuke Achiwa Storage system and storage control method for the same

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8829919D0 (en) * 1988-12-22 1989-02-15 Int Computer Limited File system
US7644136B2 (en) * 2001-11-28 2010-01-05 Interactive Content Engines, Llc. Virtual file system
US6836821B2 (en) * 2002-04-23 2004-12-28 Lsi Logic Corporation System and method for providing graph structuring for layered virtual volumes
US6988165B2 (en) * 2002-05-20 2006-01-17 Pervasive Software, Inc. System and method for intelligent write management of disk pages in cache checkpoint operations
US7085909B2 (en) * 2003-04-29 2006-08-01 International Business Machines Corporation Method, system and computer program product for implementing copy-on-write of a file
US6823442B1 (en) 2003-05-12 2004-11-23 3Pardata, Inc. Method of managing virtual volumes in a utility storage server system
US8301809B2 (en) * 2003-07-02 2012-10-30 Infortrend Technology, Inc. Storage virtualization computer system and external controller thereof
US7558850B2 (en) * 2003-09-15 2009-07-07 International Business Machines Corporation Method for managing input/output (I/O) performance between host systems and storage volumes
JP4104586B2 (ja) * 2004-09-30 2008-06-18 株式会社東芝 ファイル管理機能を備えたファイルシステム及びファイル管理方法
US7627716B2 (en) * 2004-11-15 2009-12-01 International Business Machines Corporation Method, system, and program for an adaptor to read and write to system memory
US7574560B2 (en) 2006-01-03 2009-08-11 Emc Corporation Methods, systems, and computer program products for dynamic mapping of logical units in a redundant array of inexpensive disks (RAID) environment
JP4890033B2 (ja) 2006-01-19 2012-03-07 株式会社日立製作所 記憶装置システム及び記憶制御方法
JP4975396B2 (ja) * 2006-08-24 2012-07-11 株式会社日立製作所 記憶制御装置及び記憶制御方法
JP4932390B2 (ja) * 2006-08-31 2012-05-16 株式会社日立製作所 仮想化システム及び領域割当て制御方法
US7949847B2 (en) * 2006-11-29 2011-05-24 Hitachi, Ltd. Storage extent allocation method for thin provisioning storage
US20080201535A1 (en) * 2007-02-21 2008-08-21 Hitachi, Ltd. Method and Apparatus for Provisioning Storage Volumes
JP5087309B2 (ja) * 2007-04-24 2012-12-05 株式会社日立製作所 管理装置及び管理方法
JP2008276326A (ja) 2007-04-25 2008-11-13 Hitachi Ltd 記憶制御装置及び記憶制御装置の仮想メモリ制御方法
US20080282047A1 (en) * 2007-05-08 2008-11-13 Hitachi, Ltd. Methods and apparatus to backup and restore data for virtualized storage area
US8549222B1 (en) * 2008-02-12 2013-10-01 Netapp, Inc. Cache-based storage system architecture
US8473707B2 (en) * 2008-03-27 2013-06-25 Open Invention Network, Llc Method for achieving sequential I/O performance from a random workload
US7904749B2 (en) 2008-10-24 2011-03-08 Hitachi, Ltd. Fast data recovery from HDD failure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101042676A (zh) * 2006-03-23 2007-09-26 株式会社日立制作所 存储系统以及存储区域释放方法以及存储装置
US20070245114A1 (en) * 2006-04-18 2007-10-18 Hitachi, Ltd. Storage system and control method for the same
US20070266218A1 (en) * 2006-05-10 2007-11-15 Kyosuke Achiwa Storage system and storage control method for the same

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377132A (zh) * 2012-04-16 2013-10-30 群联电子股份有限公司 管理存储器空间的方法、存储器控制器与存储器储存装置
CN104285206A (zh) * 2012-04-26 2015-01-14 株式会社日立制作所 信息存储系统和控制信息存储系统的方法
CN108196800A (zh) * 2013-08-20 2018-06-22 株式会社日立制作所 存储系统
CN108196800B (zh) * 2013-08-20 2021-02-05 株式会社日立制作所 存储系统
CN106843751A (zh) * 2016-12-27 2017-06-13 华为技术有限公司 放置存储卷的方法和设备
CN106843751B (zh) * 2016-12-27 2019-11-29 华为技术有限公司 放置存储卷的方法和设备
CN110199265A (zh) * 2017-06-20 2019-09-03 株式会社日立制作所 存储装置和存储区域管理方法
CN110199265B (zh) * 2017-06-20 2022-11-01 株式会社日立制作所 存储装置和存储区域管理方法

Also Published As

Publication number Publication date
EP2410419A1 (en) 2012-01-25
CN102334093B (zh) 2017-08-01
JP5538362B2 (ja) 2014-07-02
CN107247565A (zh) 2017-10-13
CN107247565B (zh) 2020-06-09
US8812815B2 (en) 2014-08-19
WO2010106574A1 (ja) 2010-09-23
US8521987B2 (en) 2013-08-27
US20110197023A1 (en) 2011-08-11
EP2410419A4 (en) 2013-02-27
US20130326140A1 (en) 2013-12-05
JPWO2010106574A1 (ja) 2012-09-13
US20140331008A1 (en) 2014-11-06

Similar Documents

Publication Publication Date Title
CN102334093A (zh) 存储控制装置以及虚拟卷的控制方法
US9836243B1 (en) Cache management techniques
CN102841761B (zh) 存储系统
US9658779B2 (en) Computer system and control method for computer system
US8819362B1 (en) Managing replication and reservations
CN102023813B (zh) 在动态页重新分配存储系统中的应用和层配置管理
US7650480B2 (en) Storage system and write distribution method
CN103052938B (zh) 数据迁移系统和数据迁移方法
US8762672B2 (en) Storage system and storage migration method
JP5438827B2 (ja) 記憶制御装置及び仮想ボリュームの制御方法
US8364858B1 (en) Normalizing capacity utilization within virtual storage pools
US20130067274A1 (en) Methods and structure for resuming background tasks in a clustered storage environment
EP4139803B1 (en) Methods for handling input-output operations in zoned storage systems and devices thereof
EP2671160A2 (en) System, apparatus, and method supporting asymmetrical block-level redundant storage
WO2007009910A2 (en) Virtualisation engine and method, system, and computer program product for managing the storage of data
EP2157504A2 (en) Virtual disk management program, storage device management program, multinode storage system, and virtual disk managing method
JP5853734B2 (ja) 仮想ストレージ装置,制御装置及び制御プログラム
CN103392164A (zh) 存储系统和存储控制方法
CN101390059A (zh) 用于并发raid阵列重定位的装置
US20050198411A1 (en) Commingled write cache in dual input/output adapter
JP5236078B2 (ja) 記憶制御装置及び記憶制御装置の制御方法
US8566554B2 (en) Storage apparatus to which thin provisioning is applied and including logical volumes divided into real or virtual areas
US7337269B2 (en) Method of managing a data storage array, and a computer system including a raid controller
CN102841758B (zh) 高效能虚拟磁盘管理系统
US11886703B1 (en) Storage insurance and pool consumption management in tiered systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant