CN112988051A - 存储系统和存储管理方法 - Google Patents
存储系统和存储管理方法 Download PDFInfo
- Publication number
- CN112988051A CN112988051A CN202010806180.8A CN202010806180A CN112988051A CN 112988051 A CN112988051 A CN 112988051A CN 202010806180 A CN202010806180 A CN 202010806180A CN 112988051 A CN112988051 A CN 112988051A
- Authority
- CN
- China
- Prior art keywords
- virtual
- physical storage
- vchunk
- data
- physical
- 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.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims description 34
- 230000000737 periodic effect Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 description 136
- 238000012545 processing Methods 0.000 description 108
- 238000000034 method Methods 0.000 description 86
- 238000007792 addition Methods 0.000 description 73
- 238000006243 chemical reaction Methods 0.000 description 66
- 230000008569 process Effects 0.000 description 53
- 238000010586 diagram Methods 0.000 description 44
- 230000002441 reversible effect Effects 0.000 description 28
- 230000014509 gene expression Effects 0.000 description 12
- 238000012546 transfer Methods 0.000 description 7
- 238000013519 translation Methods 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 101000944251 Emericella nidulans (strain FGSC A4 / ATCC 38163 / CBS 112.46 / NRRL 194 / M139) Calcium/calmodulin-dependent protein kinase cmkA Proteins 0.000 description 2
- 101001138544 Homo sapiens UMP-CMP kinase Proteins 0.000 description 2
- 102100020797 UMP-CMP kinase Human genes 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 235000014676 Phragmites communis Nutrition 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000178 monomer Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Abstract
本发明的目的在于在分散RAID中减少增设容量的使用所需的数据移动量,在增设A(A为正的整数)个物理存储驱动器(107)时,存储控制器(202)选择映射于N个物理存储驱动器(107)中的不同的物理存储驱动器(107)、包含在不同的虚拟组块101中的虚拟包(103),将所选择的虚拟包(103)的配置变更为所增设的A个物理存储驱动器(107),基于从(N+A)个物理存储驱动器(107)中的不同的物理存储驱动器(107)选择的未分配的虚拟包(103)来构成新建组块。
Description
技术领域
本发明涉及存储系统和存储管理方法。
背景技术
已知有用多个存储装置构成RAID(Redundant Array of Inexpensive(或Independent)Disks:廉价(独立)磁盘冗余阵列)组,将基于RAID组创建的逻辑卷提供给上级装置(例如主机)的存储系统。
作为关于RAID的技术,在专利文献1公开有使包含通常数据和用于恢复通常数据的冗余数据的条带串分散至在存储容量池中提供存储区域的多个存储装置进行管理的技术,即分散RAID方式。
现有技术文献
专利文献
专利文献1:国际公开第2014/115320号
发明内容
发明所要解决的问题
但是,在现有技术中,在为了容量的增加等而使构成分散RAID的驱动组的数量增加的情况下,能够仅按PG(Parity Group:奇偶校验群组)单位进行增设。因此,在使用大容量的SSD(Solid State Drive:固态硬盘)等存储装置构成分散RAID的情况下,只能增设与所需的容量相比过剩的容量。此外,为了确保增设后存储的数据的冗余性,需要从既有的驱动组向增设驱动组进行数据移动,增设需要长的时间。
本发明是鉴于上述情况而完成的,其目的在于提供能够减少分散RAID中增设容量利用所需的数据移动量的存储系统和存储管理方法。
用于解决问题的技术方案
为了达到上述目,第一观点的存储系统包括处理器和多个物理存储驱动器的存储系统,所述处理器用K个虚拟包来构成虚拟组块,并将同一个虚拟组块中包含的虚拟包分别映射于彼此不同的多个物理存储驱动器,其中,所述虚拟包包括由用户数据或用于修复该用户数据的冗余数据构成的要素数据,所述K为2以上的整数,在构成新建组块时,所述处理器选择虚拟包并使其在物理存储驱动器之间移动,使所述虚拟包移动而使其成为未分配的状态,在位于彼此不同的物理存储驱动器的多个未分配区域分别分配虚拟包,来构成所述新建组块。
发明的效果
根据本发明,能够在分散RAID中减少增设容量的利用所需的数据移动量。
附图说明
图1是表示第1实施方式的存储系统中管理的虚拟存储区域与物理存储区域之间的包映射的一例的框图。
图2是表示应用第1实施方式的存储系统的计算机系统的硬件结构例的框图。
图3是表示图2的存储系统中管理的存储容量池的结构例的框图。
图4是表示图2的存储系统中使用的物理存储驱动器的数据结构的一例的框图。
图5是表示图2的存储系统中管理的虚拟卷的页映射的一例的框图。
图6是表示图2的存储系统中管理的虚拟奇偶校验群组与分散奇偶校验群组之间的包映射的一例的框图。
图7是表示图2的存储系统中管理的虚拟存储区域与物理存储区域之间的包映射的其它例子的框图。
图8是表示图2的存储系统中管理的公用存储器的内容的框图。
图9是表示图2的本地存储器的内容的框图。
图10是表示图8的存储池管理表的一例的图。
图11是表示图8的页映射表的一例的图。
图12是表示图8的映射指针表的一例的图。
图13是表示图8的循环映射表的一例的图。
图14是表示图8的循环映射反向转换表的一例的图。
图15A是表示图8的PG映射表的一例的图。
图15B是表示图8的PG映射反向转换表的一例的图。
图16是表示图2的存储系统中使用的物理存储驱动器的增设1台时的包映射方法的一例的框图。
图17是表示图2的存储系统中实施的驱动增设处理的一例的流程图。
图18是表示图17的单体增设映射图生成处理的流程图。
图19是表示图17的循环单位增设处理的流程图。
图20是表示图2的存储系统中实施的分配处理的流程图。
图21是表示图2的存储系统中实施的VP转换处理的流程图。
图22是表示图2的存储系统中实施的PV转换处理的流程图。
图23是表示第2实施方式的存储系统中使用的物理存储驱动器的增设1台时的包映射方法的框图。
图24是表示第3实施方式的存储系统中使用的物理存储驱动器的增设多台时的包映射方法的一例的框图。
图25是表示第3实施方式的存储系统中使用的物理存储驱动器的增设多台时可应用的驱动增设处理的一例的流程图。
图26是表示图25的多台增设映射图生成处理的流程图。
图27是表示第4实施方式的存储系统中使用的物理存储驱动器的增设多台时的包映射方法的一例的框图。
图28是表示第4实施方式的存储系统中应用的本地存储器的内容的框图。
图29是表示第4实施方式的存储系统中实施的即时增设处理的流程图。
图30是表示第5实施方式的存储系统的硬件结构例的框图。
具体实施方式
参照附图说明实施方式。另外,以下说明的实施方式并不限定于要求的权利范围的发明,此外,实施方式中说明的各要素及其组合并不全部是发明的解决所必须的。
此外,在以下的说明中,有时以“aaa表”的表达方式说明各种信息,而各种信息也可以以表以外的数据结构表达。为了表示并不依赖于数据结构,还能够将“aaa表”称为“aaa信息”。
此外,在以下的说明中,有时以“程序”为主语说明处理,由于程序是通过由处理器(例如CPU(Central Processing Unit:中央处理器))执行而适当地使用存储资源(例如存储器)和/或通信接口设备(例如端口)来进行的处理,所以处理的主语也可以为程序。以程序为主语说明的处理也可以为处理器或包括该处理器的计算机(例如管理计算机、主机、控制器等)进行的处理。此外,控制器(存储控制器)既可以是处理器自身,也可以包含进行控制器所执行的处理的一部分或全部的硬件电路。程序也可以从程序源安装至各控制器。程序源例如也可以为程序分发服务器或计算机可读取的存储介质。
此外,在以下的说明中,作为要素的识别信息使用ID,也可以代之以或进一步使用其它种类的识别信息。
此外,在以下的说明中,在不对相同种类的要素进行区分地说明的情况下,使用参照附图标记或参照附图标记的相同序号,在对相同种类的要素进行区分地说明的情况下,有时使用该要素的参照附图标记或使用分配给该要素的ID代替参照附图标记。
此外,在以下的说明中,I/O(Input/Output)请求为写请求或读请求,也可以称为访问请求。RAID组也可以称为PG(Parity Group:奇偶校验群组)。
图1是表示第1实施方式的存储系统中管理的虚拟存储区域与物理存储区域之间的包映射的一例的框图。
在图1中,存储系统管理虚拟存储驱动器(VDEV:Virtual DEVice)102和物理存储驱动器(PDEV:Physical DEVice)107。
虚拟存储驱动器102提供虚拟存储区域。虚拟存储区域例如为页。物理存储驱动器107提供物理存储区域。存储系统基于包映射604,将虚拟存储区域映射于物理存储区域。
存储系统向主机提供虚拟卷,将由虚拟存储驱动器102提供的虚拟存储区域分配给虚拟卷。此时,存储系统由多个虚拟存储驱动器102构成RAID组,基于RAID组生成虚拟卷。
进一步,存储系统构成包含多个虚拟存储驱动器102的虚拟奇偶校验群组(Virtual Parity Group:还称为VPG)106。向各个虚拟奇偶校验群组106赋予VPG#。VPG#是虚拟奇偶校验群组106的识别符。各虚拟奇偶校验群组中包含的虚拟存储驱动器102的个数与RAID宽度K相等。有时将RAID宽度K称为VPG驱动器数。
在图1的例子中,4个虚拟存储驱动器102构成1个虚拟奇偶校验群组106。此时,RAID宽度K为4。在图1的例子中,表示由40个虚拟存储驱动器102和4个虚拟存储驱动器102构成的10个虚拟奇偶校验群组106。
此外,对属于各虚拟奇偶校验群组106的虚拟存储驱动器102,分别赋予表示虚拟奇偶校验群组106内的位置的VDEV#。在图1的例子中,对各虚拟奇偶校验群组106内的4个虚拟存储驱动器102分别赋予不同的VDEV#。
虚拟奇偶校验群组106为RAID组,存储跨多个虚拟存储驱动器102的冗余数据集。冗余数据集是用于在RAID重建数据的数据集。冗余数据集包含来自主机的数据D和基于数据D的奇偶校验P。另外,有时将数据D称为用户数据。有时将奇偶校验P称为冗余数据。
虚拟存储区域分割为规定大小的虚拟条带104。虚拟奇偶校验群组106内的多个虚拟存储驱动器102各自中的特定的逻辑地址的虚拟条带104构成虚拟条带串105。1个虚拟条带串105中包含的虚拟条带104的个数等于RAID宽度K。
在图1的例子中,4个虚拟条带104构成1个虚拟条带串105。虚拟条带串105存储冗余数据集。1个虚拟条带串105内的各虚拟条带104存储对应的冗余数据集内的数据D或奇偶校验P。有时将冗余数据集内的各虚拟条带104所存储的数据称为要素数据。
在1个虚拟存储驱动器102中,1个虚拟条带104或逻辑地址连续的规定数的虚拟条带104构成1个虚拟包103。在图1的例子中,具备连续的逻辑地址的2个虚拟条带104构成1个虚拟包103。
进一步,具备连续的逻辑地址的规定数的虚拟条带串105构成虚拟组块(Virtualchunk:还称为Vchunk)101。虚拟组块101为1个虚拟包串。1个虚拟组块101中包含的虚拟包103的个数等于RAID宽度K。
虚拟包串由1个虚拟奇偶校验群组106内的多个虚拟存储驱动器102各自中的特定的逻辑地址的虚拟包103构成。换言之,1个虚拟组块101由具备连续的逻辑地址的B个(B为正的整数)的虚拟条带串105构成。
在图1的例子中,1个虚拟组块101由具备连续的逻辑地址的2个虚拟条带串105构成。此外,在图1的例子中,示出20个虚拟组块101,对各个虚拟组块101赋予VPG106内的Vchunk#。在虚拟包103由1个虚拟条带104构成的情况下,虚拟组块101由1个虚拟条带串105构成。
在图1的例子中,各虚拟包103内所记录的数字对是以VPG#和Vchunk#表示的Vchunk识别符。Vchunk识别符能够确定虚拟包103所属的虚拟组块101。例如,Vchunk识别符为“0-1”的4个虚拟包103表示其属于以VPG#=0且Vchunk#=1表示的虚拟组块101。此时,Vchunk识别符为“0-1”的4个虚拟包103包含于同一虚拟组块。
虚拟存储区域映射于物理存储驱动器107提供的物理存储区域。有时将虚拟存储区域与物理存储区域之间的映射称为包映射604。存储系统构成包含多个物理存储驱动器107的分散奇偶校验群组(DPG:Distributed Parity Group)110。对各个分散奇偶校验群组110赋予DPG#。DPG#是分散奇偶校验群组110的识别符。
在图1的例子中,表示由10个物理存储驱动器107和5个物理存储驱动器107构成1个分散奇偶校验群组110的2个分散奇偶校验群组110。对属于各分散奇偶校验群组110的物理存储驱动器107,分别赋予表示分散奇偶校验群组110内的位置的PDEV(PhysicalDEVice)#。在图1的例子中,在各分散奇偶校验群组110内表示5个物理存储驱动器107,对各个物理存储驱动器107赋予不同的PDEV#。
虚拟组块101内的各虚拟包103映射于物理存储区域的物理包109。各物理包109内的数字表示对应的虚拟包103所属的Vchunk识别符(VPG#和Vchunk#)。在图1的例子中,相对于各个物理存储驱动器107表示8个物理包109,对各个物理包109赋予Parcel#。各物理包109按Parcel#、PDEV#和DPG#被同定(等同)。
在图1的例子中,虚拟组块101内的多个虚拟包103为了故障恢复而映射于不同的多个物理存储驱动器107。换言之,虚拟条带串105内的多个虚拟条带104也映射于各自不同的多个物理存储驱动器107。由此,冗余数据集包含分散奇偶校验群组110内的物理存储驱动器数的要素数据(数据D或奇偶校验P),它们被分别写入分散奇偶校验群组110内的物理存储驱动器数的物理存储驱动器107。
包映射满足映射条件。映射条件为各虚拟组块101映射于多个物理存储驱动器107。换言之,映射条件为1个物理存储驱动器107内的多个物理包109不映射于同一虚拟组块101。
图2是表示应用第1实施方式的存储系统的计算机系统的硬件结构例的框图。
在图2中,计算机系统201A包括1个以上的主机计算机(以下称为主机)204、管理服务器203、1个以上的存储控制器202和驱动器盒(drive enclosure)218。主机204、管理服务器203与存储控制器202经网络221连接。驱动器盒218与存储控制器202连接。
网络221既可以是WiFi或以太网(注册商标)等本地区域网(LAN:Local AreaNetwork),也可以是国际互联网等广域网(WAN:Wide Area Network),还可以WAN与LAN混用。主机204与存储控制器202也可以是1个计算机。此外,主机204与存储控制器202也可以分别是虚拟机。
主机204例如是执行应用的计算机,从存储控制器202读取要由应用使用的数据,并将通过应用生成的数据写入存储控制器202。
管理服务器203是由管理者使用的计算机。管理服务器203也可以包括用于输入信息的输入设备和用于显示信息的输出设备。管理服务器203通过管理者对输入设备的操作,受理用于数据的恢复的数据恢复处理的种类的设定,使存储控制器202执行所受理的数据恢复处理。
存储系统例如包括存储控制器202和驱动器盒218。驱动器盒218包括多个物理存储驱动器107(还简称为驱动器)和开关219。物理存储驱动器107例如是磁盘装置、SSD(Solid State Drive)、快闪存储器或其它非易失性半导体存储器(PRAM、ReRAM等)。开关219切换与存储控制器202连接的物理存储驱动器107。
存储控制器202包括1个以上前端组件(FEPK:FrontEnd PacKage)206、维护接口(维护I/F)208、1个以上微处理器组件(MPPK)215、1个以上缓存存储器组件(CMPK:CMPacKage)213、1个以上后端组件(BEPK:BackEnd PacKage)209和内部网络223。
FEPK206、维护I/F208、MPPK120、CMPK213和BEPK209经内部网络223连接。BEPK209经多个系统的路径与驱动器盒218连接。
FEPK206是与主机204的接口的一例,包括1个以上端口207。端口207将存储控制器202经网络221等与各种装置连接,或与外部存储装置205连接。
维护I/F208是与将存储控制器202与管理服务器203连接接口。
MPPK215是控制部,包括1个以上微处理器(MP:Micro Processer)216和本地存储器(LM:Local Memory)217。MP216执行LM217中存储的程序而执行各种处理。MP216经BEPK209将各种命令(例如SCSI(Small Computer System Interface:小型计算机系统接口)的READ命令、WRITE命令等)发送至驱动器盒218内的物理存储驱动器107。LM217存储各种程序和各种信息。
CMPK213包括1个以上缓存存储器(CM)214。CM214临时存储从主机204写入物理存储驱动器107的数据(写数据)和从物理存储驱动器107读出的数据(读数据)。
BEPK209是与驱动器盒218的接口的一例,包括奇偶校验运算器210、传送缓冲器(DXBF)211和后端控制器(BE控制器)212。
奇偶校验运算器210例如为小型的处理器,生成用于在驱动器盒218产生故障时重建由于该故障而无法读出的数据要素的冗余码(以下称为奇偶校验)。奇偶校验运算器210例如针对由RAID5构成的RAID组的数据单位,通过取构成数据单位的多个数据要素的异或,来生成P奇偶校验。此外,奇偶校验运算器210针对由RAID6构成的RAID组的数据单位,通过对构成数据单位的多个数据要素乘以规定的系数后取各个数据的异或,来生成Q奇偶校验。此外,奇偶校验运算器210基于关于数据单位的1个以上条带数据要素(数据要素和/或奇偶校验),进行恢复数据单位中的任一数据要素的恢复处理。
传送缓冲器211临时存储从驱动器盒218发送的数据和向驱动器盒218发送的数据。
BE控制器212在与驱动器盒218之间进行各种命令、写数据和读数据等通信。
存储控制器202管理多个物理存储驱动器107的由存储区域构成的存储容量池(以下简称为存储池)。存储控制器202使用存储池内的存储区域构成RAID组。即,存储控制器202使用多个物理存储驱动器107来构成多个虚拟奇偶校验群组(VPG)。VPG是虚拟的RAID组。而且,存储控制器202向主机204提供被分配了VPG内的存储区域的虚拟卷。
VPG的存储区域由多个子存储区域串构成。各子存储区域串由多个子存储区域构成。多个子存储区域跨构成VPG的多个物理存储驱动器107地与多个物理存储驱动器107分别对应。在本说明书中,将1个子存储区域称为“条带”,将子存储区域串称为“条带串”。由多个条带串构成RAID组的存储区域。
在RAID中具有若干个等级(以下,称为“RAID等级”)。例如,在RAID5中,从与RAID5对应的主机指定的写对象的数据分割为规定大小的数据(以下为了便于说明而称为“数据单位”)。各数据单位分割为多个数据要素。多个数据要素分别写入同一条带串内的多个条带。
在RAID5中,为了重建由于在物理存储驱动器107产生了故障而无法从其物理存储驱动器107读出的数据要素,对各数据单位生成被称为“奇偶校验”的冗余的信息(以下称为“冗余码”)。冗余码也与多个数据要素写入同一条带串内的条带。
例如,在构成RAID组的物理存储驱动器107的数量为4个的情况下,在与其中的3个物理存储驱动器107对应的3个条带写入构成数据单位的3个数据要素,在与其余1个物理存储驱动器107对应的条带写入冗余码。以下,在不对数据要素与冗余码进行区分的情况下,还有时将两者分别称为条带数据要素。
在RAID6中,对各数据单位生成2种冗余码(称为P奇偶校验、Q奇偶校验),各个冗余码写入同一条带串内的条带。由此,在不能读出构成数据单位的多个数据要素中的2个数据要素的情况下,能够恢复该2个数据要素。
在上述说明以外还存在RAID等级(例如RAID1~4)。作为数据的冗余化技术,还有使用3个3重值(Triplication)和奇偶校验的三重奇偶校验技术等。关于冗余码的生成技术,也还存在使用伽罗瓦运算的Reed-solomon码(里德所罗门码)、EVEN-ODD等各种各样的技术。以下,主要对RAID5或RAID6进行说明,不过能够将冗余化技术换成上述的方法。
存储控制器202在物理存储驱动器107中的任一物理存储驱动器107发生了故障时,恢复发生了故障的物理存储驱动器107中存储的数据要素。
MPPK215内的MP216从存储有用于恢复发生故障的物理存储驱动器107中存储的数据要素所需的条带数据要素(例如其它数据要素和奇偶校验)的多个物理存储驱动器107,取得该数据。MP216将经接口设备(例如BEPK209)取得的条带数据要素存储至缓存存储器(CM:Cache Memory)214。之后,MP216基于缓存存储器214的条带数据要素恢复数据要素,将该数据要素存储至规定的物理存储驱动器107。
例如,MP216针对由RAID5构成的RAID组的数据单位,通过取构成数据单位的多个数据要素的异或(XOR)而生成P奇偶校验。进一步,MP216针对由RAID6构成的RAID组的数据单位,通过在构成数据单位的多个数据要素乘以规定的系数后取各个数据的异或而生成Q奇偶校验。
存储控制器202提供将RAID宽度K转换为K≤N的N个驱动空间的映射图生成方式和应用映射的逻辑结构。N是1个分散奇偶校验群组110中包含的物理存储驱动器107的台数。此时,存储控制器202由K个虚拟包103构成1个虚拟组块101。而且,存储控制器202将同一虚拟组块中包含的虚拟包103分别映射于N个物理存储驱动器107中的不同的物理存储驱动器107。
此外,物理存储驱动器107增设A(A为正的整数)台。此时,存储控制器202选择映射于N个物理存储驱动器107中的不同的物理存储驱动器107、包含在不同的虚拟组块101中的虚拟包103,在增设的A个物理存储驱动器107变更所选择的虚拟包103的配置。而且,存储控制器202基于从(N+A)个物理存储驱动器107中的不同的物理存储驱动器107选择的未分配的虚拟包103构成新建组块。另外,新建组块(在以下的说明中有时称为新建Vchank)是在物理包109中由未分配的虚拟包103构成的新建的虚拟组块101。此外,在以下的说明中,有时物将理包109中由已经分配的虚拟包103构成的虚拟组块101称为既有Vchank。
由此,能够以使得映射于既有驱动器的同一虚拟组块中包含的多个虚拟包103不被分配至同一增设驱动器的方式,变更虚拟包103的配置,并且能够不产生既有驱动器间的虚拟包103的移动地从不同的物理存储驱动器107的物理存储区域确保虚拟包103的未分配区域。
因此,能防止够同一新建组块中包含的多个虚拟包被分配至同一物理存储驱动器107,且构成分散RAID的新建组块,能够在分散RAID减少增设容量的利用所需的数据移动量,且增设容量。此外,能够按1台单位增设物理存储驱动器107,与按PG单位增设的情况相比,能够减少增设所费成本和时间。
例如,将物理存储驱动器107从N台增设至(N+1)台。此时,存储控制器202映射于N台既有驱动器中的不同的既有驱动器,选择不同的虚拟组块101中包含(K-1)个虚拟包103。而且,存储控制器202将所选择的虚拟包103的配置变更于增设的1个物理存储驱动器107。而且,存储控制器202基于变更虚拟包103的配置后的(K-1)台既有驱动器和从1台增设驱动器分别选择的K个未分配的虚拟包构成新建组块。
由此,为了构成分散RAID中的新建组块,能够消除既有驱动器间的虚拟包103的移动,将为了将新建组块中包含的K个虚拟包103分配至各自不同的物理存储驱动器107而从既有驱动器移动的虚拟包103的个数最小化。
此外,存储控制器202能够通过反复进行伴随1个物理存储驱动器107的增设进行的映射的更新,使分散RAID中可利用的容量逐步增加。
以下,对图2的存储系统的具体例进行详细说明。另外,在以下的实施方式中,有时将MP216的动作作为存储控制器202的动作进行说明。
图3是表示图2的存储系统中管理的存储容量池的结构例的框图。
在图3中,图2的存储控制器202将多个(例如5个)物理存储驱动器107打包,构成分散奇偶校验群组(DPG)110。存储控制器202构成1个以上分散奇偶校验群组110和与之对应的1个以上虚拟奇偶校验群组(VPG)106。存储控制器202将DPG110的一部分存储区域分配给VPG106。
在存储池301内存在多个虚拟卷(VVOL:Virtual VOLume)302。在图3的例子中表示4个VVOL302。VVOL302是虚拟的存储设备,能够从主机204参照。图2的管理服务器203根据来自存储控制器202的管理者的指示,经维护I/F208使存储控制器202生成任意的大小的VVOL302。其大小并不依赖于物理存储驱动器107的合计容量。存储控制器202对来自主机204的I/O请求(主机I/O)所示的VVOL302内的存储区域(VVOL页303),动态地分配VPG106内的存储区域(VPG页304)。
图4是表示图2的存储系统中使用的物理存储驱动器的数据结构的一例的框图。
在图4中,物理存储驱动器107在与图2的存储控制器202等上级装置之间,以作为SCSI命令处理的最小单位(例如512Byte)的子块402为单位,进行数据的交换。插槽401是缓存存储器214上的缓存数据时的管理单位,例如为256KB。插槽401由连续的多个子块402的集合构成。物理条带403存储多个(例如2个)插槽401。
图5是表示图2的存储系统中管理的虚拟卷的页映射的一例的框图。
在图5中,能够由图2的主机204识别的VVOL302由多个VVOL页303构成。VVOL302具有独特的识别符(VVOL序号)。在图5的例子中表示1个VVOL302,对其VVOL302作为VVOL序号赋予VVOL#0。
存储控制器202对VVOL页303分配VPG106内的VPG页304。将VVOL页303与VPG页304的对应关系称为页映射501。页映射501由存储控制器202动态管理。对具有连续的VVOL页#的多个VVOL页赋予连续的VVOL空间的地址。
VPG106包含1个以上虚拟组块(Vchunk)101。虚拟组块101由多个虚拟包103构成。在图5的例子中,虚拟组块101由8个虚拟包103构成。
虚拟包103由1个虚拟存储驱动器102内的连续的区域构成。虚拟包103由1个或多个虚拟条带104构成。在图5的例子中,虚拟包103由8个虚拟条带104构成。虚拟包103中的虚拟条带104的数量没有特别限定。通过虚拟包103包含多个虚拟条带104,实现处理的效率化。
在图5的例子中,VPG106为RAID6的6D+2P结构。即,将构成数据单位的6个数据要素(D)和与这些数据要素对应的2个奇偶校验(P,Q)存储至各自不同的物理存储驱动器107。在这种情况下,虚拟组块101例如由分别存储在8个不同的物理存储驱动器107的虚拟包103构成。
换言之,虚拟组块101由多个虚拟条带串105构成,在图5的例子中,由8个虚拟条带串105构成。通过虚拟组块101包含多个虚拟条带串105,实现处理的效率化。另外,虚拟组块101也可以由1个虚拟条带串105构成。
虚拟组块101包含多个(例如4个)VPG页304。VPG页304能够存储多个(例如2个)连续的虚拟条带串105的条带数据要素。例如,通过令该多个数据单位为几MB,在物理存储驱动器107为磁盘等的情况下,也能够保持主机I/O的顺序性能稳定。
在图5中,如1_D1、1_D2、1_D3、1_D4、1_D5、1_D6、1_P、1_Q那样,“_”之前的数字相同,表示同一虚拟条带串105的条带数据要素。另外,各条带数据要素的大小为物理条带403的大小。
VPG106在上级存储系统中具有独特的识别符(VPG号)。此外,对各VPG106内的K个(在图5的例子中8个)虚拟存储驱动器102分别赋予VDEV号(VDEV#)。VDEV号是用于VPG106内的存储区域的寻址的识别符,是用于表示与后述的DPG110内的驱动器(PDEV)的对应关系的识别符。
各VVOL302从主机204使用表示VVOL302的识别符和LBA访问。如图5所示,对VVOL页303,从VVOL302的前头起赋予VVOLPage#。在VPG页304,从VPG106的前头起赋予VPGPage#。对由主机I/O指定的LBA,能够通过以下(1)式计算VVOLPage#。此处,Floor(x)是对实数x返回x以下的最大的整数的函数。LBA和VVOLPagesize分别也可以以子块数表示。
VVOLPage#=Floor(LBA/VVOLPagesize)…(1)
此外,VVOL页303和VPG页304分别由多个虚拟条带构成。不过,由于不使主机204访问奇偶校验的数据,所以在VVOL302上看不见奇偶校验。例如,在图5所示的6D+2P的情况下,在VPG106的空间包含8×2个虚拟条带的VPG页304在VVOL302的空间作为包含6×2个虚拟条带的VVOL页303而能看到。
在图5中,表示1个虚拟组块101由4页构成,1页由2个虚拟条带串105构成的例子。此外,在图5中,表示通过页映射501,VPGPage#0的VPG页304映射于VVOLPage#5的VVOL页303,VPGPage#5的VPG页304映射于VVOLPage#0的VVOL页303的例子。
存储控制器202通过对VPG106的空间和VVOL302的空间进行修正,能够与页映射501一致地,计算与VVOL302侧的LBA对应的VPG#下的VDEV#、Vchunk#和虚拟包103内的偏移地址。当然,存储控制器202还能够计算与主机I/O对应的奇偶校验区域的VPG#下的VDEV#、Vchunk#和虚拟包103内的偏移地址。
图5表示使用RAID6(6D+2P)的例子,例如既可以使用14D+2P等,增加D数,也可以使用RAID5或RAID1。此外,还可以如RAID4那样生成仅有奇偶校验的虚拟包。在通常的RAID4的情况下,能够简化上级层的逻辑设计,不过由于在写入时访问集中于奇偶校验驱动器,从而奇偶校验驱动器容易瓶颈化。不过,在分散RAID结构的情况下,VPG106上的奇偶校验驱动器内的数据在DPG110上分散于多个物理驱动器107,因此能够降低奇偶校验驱动器的瓶颈化的影响。此外,RAID6的Q奇偶校验的编码方式除伽罗瓦运算以外,还可以使用EVEN-ODD法等其它方法。
图6是表示图2的存储系统中管理的虚拟奇偶校验群组与分散奇偶校验群组之间的包映射的一例的框图。
在图6中,虚拟组块101在VPG106的存储区域的空间连续。连续的c(c为正的整数)个虚拟组块101构成Vchunk周期601。在构成DPG110的N个物理存储驱动器107中,由在各物理存储驱动器107中连续的m(m为正的整数)个物理包109构成的合计N×m个物理包109构成Parcel循环603。将c称为周期Vchunk数。将m称为周期Parcel数。关于由相同的DPG110构成的E(E为正的整数)个VPG,将具有相同的Vchunk周期#的Vchunk周期601的集合称为Vchunk周期群602。另外,Vchunk周期#是按每个Vchunk周期601识别VPG106内的c个虚拟组块101的识别符。
1个Vchunk周期群602对应1个Parcel循环603。此外,包映射604为周期性的。即,在各对Vchunk周期群602和Parcel循环603中,包映射604相同。通过使得虚拟存储区域与物理存储区域之间的包映射604为周期性的,能够将数据适当地分散至多个物理存储区域,并且实现包映射604的高效的管理。另外,也可以采用非周期性的、即仅1个周期的包映射。
将各Vchunk周期601内的虚拟组块101的识别符以Cycle Vchunk#(CVC#)表示。因此,CVC#取从0至c-1的值。将Parcel循环603内的物理包109的识别符以Local Parcel#(LPC#)表示。LPC#取从0至m-1的值。在1个虚拟组块101内的多个虚拟包103的数据实体,被分配多个物理包109。
此外,将Vchunk周期群602内的虚拟组块101(Local Vchunk)的识别符以LocalVchunk#(LVC#)表示。LVC#从VPG#n和CVC#唯一地求取。按LVC#=n×c+CVC#求取。
图7是表示图2的存储系统中管理的虚拟存储区域与物理存储区域之间的包映射的其它例子的框图。
在图7中,关于VPG106与DPG110的包映射604,表示c=2、m=8、K=4、N=5的例子。另外,c是Vchunk周期601内的Vchunk数,m是Parcel循环603内的驱动器内Parcel数,K是VPG106内的驱动器数,N是DPG110内的驱动器数。
VPG106内的虚拟存储驱动器102内的虚拟包103中所写的Vchunk识别符“x-y-z”中,x表示VPG#,y表示Vchunk周期#,z表示CVC#。此时,Vchunk#能够由Vchunk周期#和CVC#求取。被分配至虚拟存储驱动器102内的虚拟包103的物理包109中,写有Vchunk识别符。将包映射604中,1个Vchunk周期601内的多个虚拟包103与1个Parcel循环603内的多个物理包109之间的对应关系称为映射图案。例如,映射图案使用与1个Parcel循环603内的各物理包109对应的Vchunk识别符和VDEV#表示。各Parcel循环603的映射图案相同。
在图7的例子中,表示2个Vchunk周期601和2个Parcel循环603。各Parcel循环603跨5个物理存储驱动器107。1个Parcel循环603的所有的物理包109被分配至1个Vchunk周期群602内的虚拟包103。
这样,通过将包映射604按每个Vchunk周期601和Parcel循环603的组合反复配置,能够减小映射图案的规模,并且抑制映射图案的生成的负载和地址转换的负载。
此处m=8,不过在物理存储驱动器107的台数不是K的整数倍的任意的例子中,为了适当地设定VPG-DPG间的映射,只要m为K的整数倍即可。
图8是表示图2的存储系统中管理的公用存储器的内容的框图。
在图8中,共享存储器801例如使用图2的物理存储驱动器107、CM214和LM217的至少某1个存储区域构成。另外,存储控制器202使用物理存储驱动器107、CM214和LM217的内的多个存储区域构成逻辑上的共享存储器801,也可以对各种信息进行缓存管理。
共享存储器801存存储储池管理表802、页映射表803、循环映射图指针表804、循环映射表805、循环映射反向转换表806、PG映射表(V2P)807和PG映射反向转换表(P2V)808。
在包映射中,映射图案由PG映射表807、循环映射图指针表804和循环映射表805表示。
此外,在驱动器的增设时,将增设前的映射图案称为当前映射图案(Current),将增设中的映射图案称为中途映射图案(Changing),将增设后的映射图案称为目标映射图案(Target)。即,驱动器的单体增设时,共享存储器801存储Current的循环映射表805和循环映射反向转换表806、Changing的循环映射表805和循环映射反向转换表806、Target的循环映射表805和循环映射反向转换表806。另外,PG映射表807和循环映射图指针表804在增设前后存储相同的表即可,结构并不限定于此。
图9是表示图2的本地存储器的内容的框图。
在图9中,本地存储器217存储驱动增设处理程序901、单体增设映射图生成程序902、循环单位增设处理程序903、页分配处理程序904、VP转换处理程序905和PV转换处理程序906。各程序的具体的处理后述。
图10是表示图8的存储池管理表的一例的图。
在图10中,存储池管理表802是表示图3的存储池301与VPG106的对应关系的信息。存储池管理表802包含Pool#1001、VPG#1002、可分配Vchunk数1003和可分配VPG页数1004的字段。
存储控制器202能够通过存储池管理表802调查属于按Pool#1001确定的存储池301的VPG106的识别符、各VPG106的可分配Vchunk数1003和各VPG106的可分配VPG页数1004。
在可分配Vchunk数1003中,基于对应的DPG110的容量存储0以上的值。在以VPG#1002表示的VPG106中,不能向超过其可分配Vchunk数1003的Vchunk#分配页。在令周期Parcel数为m、令DPG110内的Parcel循环的数量为W的情况下,可分配Vchunk数1003的最大值V按以下(2)式设定。
可分配Vchunk数的最大值V=W×m/K…(2)
此处,因为m为K的整数倍,所以上述(2)式的结果必然为整数。
另外,在Parcel循环内,作为备用区域另外储备有物理包109的情况下等,m也可以不是K的倍数。只要令Parcel循环内的储备包的个数为s,m-s为K的倍数即可,该情况下的可分配Vchunk数1003的最大值按以下(3)式设定。
可分配Vchunk数的最大值V=W×(m-s)/K…(3)
在可分配VPG页数1004,基于对应的DPG110的容量存储0以上的值。在以VPG#1002表示的VPG106,不能向超过其可分配VPG页数1004的VPG页#分配页。令可分配Vchunk数为V_c,Vchunk内VPG页数为VP,可分配VPG页数P按以下(4)式设定。
可分配VPG页数P=V_c×VP…(4)
由上述(4)式可知,可分配VPG页数与可分配Vchunk数1003成比例。在以下的说明中,仅阐述可分配Vchunk数1003的更新、删除的情况下,只要没有特别提及,还一并更新可分配VPG页数1004。更新时的可分配VPG页数1004按上述(4)式求取。
图11是表示图8的页映射表的一例的图。
在图11中,页映射表803是表示图3的VVOL302的页303与VPG106的页304的对应关系的信息。页映射表803包含存储池#1101、VVOL#1102、VVOL页#1103、VPG#1104和VPG页#1105的字段。存储池#1101、VVOL#1102和VVOL页#1103表示VVOL页303。VPG#1104和VPG页#1105表示分配给该VVOL页303的VPG页304。在与未使用的VVOL页#1103对应的VPG#1104和VPG页#1105,存储与“未分配”相当的值。
图12是表示图8的映射指针表的一例的图。
在图12中,映射指针表804包含DPG#1201、cycle#1202和循环映射图版本1203的字段。存储控制器202能够根据映射指针表804,参照在地址转换时应该参照的循环映射表805的版本。循环映射图版本1203在增设驱动器的情况下更新。循环映射图版本1203为”Target”的循环表示增设处理已经完成。
存储控制器202在增设处理中访问DPG空间的地址的情况下,如果与所指定的DPG空间的循环对应的循环映射图版本1203为“Target”,至使用增设后的循环映射表805进行地址转换,如果为“Current”,则使用增设前的循环映射表805进行地址转换,如果为“Changing”,则使用增设中的循环映射表805进行地址转换。
图13是表示图8的循环映射表的一例的图。
在图13中,循环映射表805具有Current面805A、Target面805B和Changing面805C这3个种类的表。它们为了在以下说明的驱动器的增设处理的途中状态下、参照正确的地址而存在。
Current面805A表示当前的映射表805,Target面805B表示增设减设后的目标的映射表805,Changing面805C表示增设减设过渡中的映射表805。各循环映射表805包含LocalVchunk#1301、VDEV#1302、Local Parcel#1303和PDEV#1304的字段。
存储控制器202能够通过参照映射表805,以Local Vchunk#1301和VDEV#1302为关键词取得Local Parcel#1303和PDEV#1304。
图14是表示图8的循环映射反向转换表的一例的图。
在图14中,循环映射反向转换表806是循环映射表805的反向查找表,循环映射表805同样具有Current面806A、Target面806B和Changing面806C这3个种类的表。
循环映射反向转换表806的Current面806A是循环映射表805的Current面805A的反向查找表,循环映射反向转换表806的Target面806B是循环映射表805的Target面805B的反向查找表,循环映射反向转换表806的Changing面806C是循环映射表805的Changing面805C的反向查找表。各循环映射反向转换表806包含Local Parcel#1401、PDEV#1402、LocalVchunk#1403和VDEV#1404的字段。
存储控制器202能够通过参照循环映射反向转换表806,以Local Parcel#1401和PDEV#1402为关键词取得Local Vchunk#1403和VDEV#1404。循环映射反向转换表80与循环映射表805关联地更新。
在以下的说明中,在循环映射表805的生成、更新和删除,以及在Current面、Target面和Changing面的设定中,只要没有特别提及,循环映射反向转换表806也与循环映射表805一致地进行生成、更新和删除,以及Current面、Target面和Changing面的设定。
图15A是表示图8的PG映射表的一例的图。
在图15A中,PG映射(V2P)表807是管理图3的VPG106与DPG110的映射的表。PG映射(V2P)表807由虚拟奇偶校验群组号(VPG#)1501和分散奇偶校验群组号(DPG#)1502构成。
在PG映射(V2P)表807中,能够从虚拟奇偶校验群组号(VPG#)1501求取分散奇偶校验群组号(DPG#)1502的值。
图15B是表示图8的PG映射反向转换表的一例的图。
在图15B中,PG映射(P2V)逆转换表808是PG映射(V2P)表807的反向查找表。PG映射(P2V)逆转换表808由分散奇偶校验群组号(DPG#)1504和虚拟奇偶校验群组号(VPG#)1503构成。
在PG映射(P2V)逆转换表808中,能够从分散奇偶校验群组号(DPG#)1504求取虚拟奇偶校验群组号(VPG#)1503的值。
以下,具体地说明物理存储驱动器107的增设时的映射。在进行映射时,图2的存储控制器202例如在从N台向N+1台的增设中,生成减少用于确保数据的冗余化所需的数据区域的既有数据的移动量的映射图,由此减少增设容量利用所需的数据移动量。此外,通过按作为增设单位的1台分的驱动器容量定义地址空间,向用户提供,能够按任意驱动器单位实现增设。此时,增设单位能够为1个驱动器,在增设时能够消除既有驱动器间的数据移动,因此与按PG单位增设的情况相比能够减少至可利用容量为止的数据移动量。
图16是表示图2的存储系统中使用的物理存储驱动器的增设1台时的包映射方法的一例的框图。
在图16中,表示Parcel循环603内的驱动器内Parcel数m=4、DPG110内的驱动器数N=4的结构中,从驱动器数N=4的状态,增设1台驱动器,变更为驱动器数N=5的例子。
P1表示驱动增设前的初始的映射图案即当前映射图案。此时,存储控制器202将同一虚拟组块101中包含的4个虚拟包103分别分配至4个物理存储驱动器107中的不同的物理存储驱动器107。例如,Vchunk识别符为“0-0”这样的4个虚拟包103包含于同一虚拟组块101,因此分别分配至PDEV#不同的物理存储驱动器107。另外,在图16的例子中,为了简化说明,仅记述2个Parcel循环603。
DPG110内的物理存储驱动器107内的物理包109所写的Vchunk识别符“x-y”中,x表示对应的虚拟包103的LVC#,y表示Vchunk周期#。此处,映射于写有同一Vchunk识别符的物理包109的虚拟包属于同一虚拟组块。例如,分别映射于写有“0-0”这样的Vchunk识别符的4个物理包109的4个虚拟包属于同一虚拟组块。
在该状态下,由于仅利用增设的1个物理存储驱动器1601的存储区域不可数据冗余化,所以存储控制器202还不能存储数据。
P2表示驱动增设中的映射图案。存储控制器202将映射了构成既有的虚拟组块101的虚拟包103的、物理包109的一部分,分配至所增设的1个物理存储驱动器1601。由此,在既有的物理存储驱动器107中,出现在构成既有的虚拟组块101的虚拟包103未映射的物理包109。
此处,当在既有的物理存储驱动器107生成在构成既有的虚拟组块101的虚拟包103未映射的空的区域时,不需要使数据在既有的物理存储驱动器107内和既有的物理存储驱动器107间移动,由此能够减少增设容量的利用所需的数据移动量。
此外,存储控制器202在各Parcel循环603中,选择映射于既有的不同的物理存储驱动器107的、包含在不同的虚拟组块101中的虚拟包103,将该选择的虚拟包103的配置变更为所增设的1个物理存储驱动器1601。由此,能够以使得映射于既有驱动器107的同一虚拟组块中包含的多个虚拟包103不被分配至同一增设驱动器1601的方式,变更虚拟包103的配置,并且能够从不同的既有驱动器107和增设驱动器1601的物理存储区域确保虚拟包103的未分配区域,能够防止同一新建组块中包含的多个虚拟包被分配至同一既有驱动器107或增设驱动器1601。
在图16的例子中,按每Parcel循环603,选择使其从4台既有驱动器107中的3台、每1Parcel地移动的物理包109,将合计3个物理包109移动至增设驱动器1601,移动量依赖于周期Parcel数、周期Parcel内的储备包的个数、构成虚拟组块101的Parcel数。令周期Parcel数为m、周期Parcel内的储备包的个数为s、VPG驱动器数为K,每Parcel循环的移动量T以以下(5)式表达。
T=(K-1)×(m-s)/K…(5)
在P3中生成新建VChunk。新建Vchunk由在通过上述的既有Vchunk的再构成处理产生的虚拟组块101未映射的包构成。
此时,按每Parcel循环603,从4台既有驱动器107中的3台使合计3个物理包109移动至增设驱动器1601,由此在既有驱动器107出现未映射的3个份的物理包109,在增设驱动器1601出现未映射的1个份的物理包109。因此,能够按每Parcel循环603,构成包含4个虚拟包103的新建Vchunk。在图16中,表示在各Parcel循环603,由Vchunk识别符为“4-0”这样的4个虚拟包103构成1个新建组块,由Vchunk识别符为“4-1”这样的4个虚拟包103构成1个新建组块的例子。
每Parcel循环的新建Vchunk的数量依赖于周期Parcel数、周期Parcel内的储备包的个数、构成Vchunk的Parcel数。令周期Parcel数为m、周期Parcel内的储备包的个数为s、VPG驱动器数为K,新建Vchunk的数量V以以下(6)式表达。
V=(m-s)/K…(6)
另外,新建Vchunk的容量(=V×K)与除备用以外的增设驱动器1601的容量(=m-s)相等。
之后,存储控制器202进行使数据按映射图案移动的包移动处理,完成增设处理。存储控制器202在包移动处理完成后,许可将新建VChunk内的全部VPG页分配给VVOL页。
在本实施方式所示的数据移动中,如在P2和P3所示那样,为了利用每增设驱动器的Parcel循环的容量中的、除作为备用储备的容量以外的容量m-s,需要进行T(=(K-1)×(m-s)/K)的数据移动。换言之,能够在增设驱动器容量(K-1)/K的数据移动中利用增设驱动器的容量。
在图16中示出了增设1台驱动器时的映射图案生成方法的例子,在集中增设多台时,例如在同时增设X台驱动器的情况下,能够看作将增设1台重复了X次,通过将增设1台后的映射图案生成处理重复X次生成增设X台后的映射图案。
图17是表示图2的存储系统中实施的驱动增设处理的一例的流程图。
在图17中,图9的驱动增设处理程序901在增设驱动器的情况下进行增设处理。管理者在对存储系统(以下有时还仅称为系统)追加增设用的驱动器后,向图2的管理服务器203输入对DPG的、驱动器单位的增设指示。存储控制器202在接受来自管理服务器203的增设指示之时执行驱动增设处理。或者,管理服务器203和存储控制器202也可以在进行对系统的、增设用的驱动器的追加的检测之时,自动地执行驱动增设处理。
首先,驱动增设处理程序901将图13的循环映射表805的Current面805A的内容复制到Target面805B的循环映射表805(步骤S1701)。
接着,驱动增设处理程序901从增设驱动器中选择任意的1台作为对象驱动器(步骤S1702)。例如,驱动增设处理程序901也可以从增设驱动器中未实施驱动增设处理的驱动器、按系统内的物理上的驱动器#在时间上更新的顺序旋转对象驱动器。
接着,驱动增设处理程序901实施单体增设映射图生成处理(步骤S1703)。单体增设映射图生成处理后述。
接着,驱动增设处理程序901判断是否对相对于系统追加的所有增设驱动器完成了单体增设映射图生成处理(步骤S1704)。在为对使用增设驱动器完成单体增设映射图生成处理的情况下(在步骤S1704为否(NO)),驱动增设处理程序901返回步骤S1702,对下一对象驱动器实施同样的处理,在对所有增设驱动器完成了单体增设映射图生成处理的情况下(在步骤S1704为是(YES)),在循环映射表805的Target面805B设定所生成的增设后的映射图案(步骤S1705)。
接着,驱动增设处理程序901实施循环单位增设处理(步骤S1706)。循环单位增设处理后述。
接着,驱动增设处理程序901判断是否对所有循环完成了循环单位增设处理(步骤S1707)。在判断中,例如也可以参照映射指针表804。与增设对象的DPG#对应的循环映射图版本1203如果成为全部参照Target的状态,则看作完成了循环单位增设处理。
在未对所有循环完成循环单位增设处理的情况下(在步骤S1707为否),驱动增设处理程序901返回步骤S1706,对下一对象驱动器实施同样的处理,在对所有循环完成了循环单位增设处理的情况下(在步骤S1707为是),将Current面805A的循环映射表805更新为Target面805B的循环映射表(步骤S1705)。由此,Current面805A与Target面805B在增设后的映射图案的内容上一致。
接着,驱动增设处理程序901参照映射指针表804,将与增设对象的DPG#对应的循环映射图版本1203全部更新为Current,完成处理(步骤S1709)。由此,即使在下一次新的驱动增设时,再次实施上述的处理而更新了Target面805B的情况下,也能够继续参照当前的映射图案。
图18是表示图17的单体增设映射图生成处理的流程图。
在图18中,单体增设映射图生成处理包括对构成既有的虚拟组块的包信息进行更新的既有包再配置处理1801和对增设的容量新分配虚拟组块的新建Vchunk分配处理1802。各个处理分开说明。
在既有包再配置处理1801中,图9的单体增设映射图生成程序902对于映射于既有驱动器107内的物理包109的、若干个既有的虚拟组块101,变更成使用增设驱动器1601的物理包109的结构,更新循环映射表805。
首先,单体增设映射图生成程序902作为移动出发地候选选择1个分配至既有的Local Vchunk的物理包109,取得该包的Local Parcel#和PDEV#(步骤S1803)。单体增设映射图生成程序902既可以直接选择Local Parcel#和PDEV#,也可以在决定对象的LocalVchunk#和VDEV#后,参照循环映射表805取得对应的Local Parcel#和PDEV#。此处,例如在单体增设映射图生成处理内,作为移动出发地选择的包数以在既有的PDEV107间均衡的方式选择。将所选择的物理包109称为以下候选包。
接着,单体增设映射图生成程序902判断包含候选包的Local Vchunk是否包含增设驱动器1601内的包(步骤S1804)。单体增设映射图生成程序902参照Target面806B的循环映射反向转换表806,以在步骤S1803取得的候选包的Local Parcel#和PDEV#为关键词,取得Local Vchunk#。
接着,单体增设映射图生成程序902参照Target面805B的循环映射表805,以LocalVchunk#为关键词,取得构成Local Vchunk#的所有VDEV#和与该Local Vchunk#、VDEV#对应的包的PDEV#。在所取得的PDEV#中的至少1个PDEV#与增设驱动器1601的PDEV#一致的情况下(步骤S1804的是),再次执行步骤S1803。
在所取得的PDEV#全部与增设驱动器1601的PDEV#不一致的情况下(步骤S1804的否),单体增设映射图生成程序902将候选包确定为移动出发地包(步骤S1805)。
接着,单体增设映射图生成程序902从增设驱动器1601的物理包中选择未分配给循环映射表805的包,确定为移动目的地包(步骤S1806)。判断包是否未分配的方式没有特别限定。例如,既可以使用管理每Parcel#的分配、未分配状态的表进行判断,也可以对未分配状态的Parcel#进行队列管理,通过参照队列取得未分配的包。
接着,单体增设映射图生成程序902将包含移动出发地包的虚拟组块101的构成信息以包含移动目的地包的方式进行更新(步骤S1807)。此时,单体增设映射图生成程序902参照Target面806B的循环映射反向转换表806,以移动出发地的Local Parcel#和PDEV#为关键词,将取得Local Vchunk#和VDEV#。接着,将取得的Local Vchunk#、能够以VDEV#为关键词取得的Local Parcel#1303和PDEV#1304,分别更新为移动目的地包的Local PDEV#和PDEV#。进一步,单体增设映射图生成程序902将Target面806B的循环映射反向转换表806与循环映射表805匹配地进行更新。在该时间点,移动出发地包不构成Local Vchunk,因此在能够以移动出发地包的Local Parcel#和PDEV#为关键词取得的Local Vchunk#1403与VDEV#分别存储无效值。
接着,单体增设映射图生成程序902判断是否足够量地进行了既有包的移动(步骤S1808)。在移动至增设驱动器1601的包的个数不到上述的移动量T个的情况下(步骤S1808的否),单体增设映射图生成程序902返回步骤S1803进行处理。
在移动至增设驱动器1601的包的个数为上述的移动量T个以上的情况下(步骤S1808的是),单体增设映射图生成程序902将处理推进至新建Vchunk分配处理1802。
在新建Vchunk分配处理1802中,单体增设映射图生成程序902首先尝试从K台驱动器各选择1个未分配的物理包(步骤S1809)。
在能够选择的情况下(步骤S1810,是),单体增设映射图生成程序902以所选择的K个包构成新建Vchunk(步骤S1811)。单体增设映射图生成程序902在Target面805B的循环映射表805追加新建Local Vchunk#的条目,对构成新建Local Vchunk#的K个VDEV#,设定所选择的K个包的Local Parcel#和PDEV#。Target面806B的循环映射反向转换表806也与循环映射表805一致地更新。另外,K个驱动器的选择方法没有特别限定,例如从未分配包数多者选择K个驱动器即可。
在构成新建Vchunk的时间点,唯一地决定被分配新建Vchunk的VPG#。分配对象的VPG#和VPG内的Cycle Vchunk#以以下(7)式和(8)式求取。
VPG#=Floor(LVC#/c)…(7)
Cycle Vchunk#=LVC#mod c…(8)
在步骤S1810未能选择K个包的情况下(否),单体增设映射图生成程序902结束处理。
根据以上说明,利用增设驱动器1601的容量生成构成虚拟组块101的映射图案。另外,在本实施方式中,将单体增设映射图生成处理的主体记作存储控制器202内的单体增设映射图生成程序902,不过也可以为其它主体进行该处理的一部分或全部。例如,还能够事先利用高性能计算机生成好与结构相应的映射图案,存储控制器202将所生成的映射图案读入使用。由此,除了能够降低存储控制器202的负载以外,能够利用特性更好的映射图案。
在这种情况下,例如将在单体增设映射图生成程序902内事先生成的映射图案按每结构PDEV台数保存,取代图17的步骤1701~1705,在循环映射表805的Target面805B设定与增设后的结构PDEV台数对应的映射图案。
图19是表示图17的循环单位增设处理的流程图。
在图19,图9的循环单位增设处理程序903在图17的驱动增设处理的步骤S1706进行循环单位增设处理。循环单位增设处理通过执行后述的数据SWAP处理,将当前映射图案(Current)所示的数据的配置变更为目标映射图案(Target)所示的数据的配置。
首先,循环单位增设处理程序903将循环映射表805的Current面805A复制到Changing面805C(步骤S1901),将映射指针表804的该循环的循环映射图版本1203的条目更新到Changing(步骤S1902)。
接着,循环单位增设处理程序903作为对象物理包依次选择增设对象的循环映射表805内的1个物理包(步骤S1903)。例如,循环单位增设处理程序903选择循环映射表805内的全驱动器内的物理包中,按PDEV#、Parcel#在时间上更新的顺序,数据SWAP处理为未实施的物理包,作为对象物理包即可。
接着,循环单位增设处理程序903判断对象物理包是否为SWAP对象(步骤S1904)。具体而言,在参照增设对象的DPG参照的循环映射反向转换表806的Current面而在对象物理包构成的Local Vchunk#与VDEV#存在差的情况下,对象物理包为SWAP对象。进一步,在Current面以SWAP对象物理包构成的Local Vchunk#和VDEV#为关键词,参照Target面取得的物理包成为SWAP目标对。
在判断对象物理包不是SWAP对象的情况下(在步骤S1904为否),循环单位增设处理程序903将处理推进至步骤S1910。步骤S1910后述。
在判断为对象物理包为SWAP对象的情况下(在步骤S1904为是),循环单位增设处理程序903作为对象Vchunk对选择被分配SWAP对象对(SWAP发出地和SWAP目的地)的2个Vchunk,作为对象条带对依次选择对象Vchunk对内的虚拟条带(步骤S1905)。
接着,循环单位增设处理程序903实施对对象条带对的数据SWAP处理(步骤S1906)。数据SWAP处理例如使用专利文献1中所示的处理。数据SWAP处理在对象条带对的至少1个对象条带存储有有效数据的情况下,在对象条带对之间更换数据。
例如,数据SWAP处理在对象条带对的至少1个虚拟条带被分配给VVOL页的情况下,在Current从与该虚拟条带对应的物理条带,将数据向与该VVOL页对应的对象缓存插槽过渡(staging),抑制对象缓存插槽的数据转出(图2的从CM214向物理存储驱动器107的写入),将对象缓存插槽设定为脏(dirty)。当在数据SWAP处理后解除离台抑制时,对象缓存插槽中存储的数据异步地在Target向与该虚拟条带对应的物理条带离台。
接着,循环单位增设处理程序903判断在对象物理包内是否存在未进行数据SWAP处理的条带(未SWAP区域)(步骤S1907)。在存在未SWAP区域的情况下(在步骤S1907为否),循环单位增设处理程序903返回步骤S1905,对对象物理包内的下一物理条带实施同样的处理。
在判断为不存在未SWAP区域的情况下(在步骤S1907为是),循环单位增设处理程序903将Changing面的循环映射表805的信息更新为SWAP后的包信息。由此,即使在实施对循环单位增设处理对象的循环#的VP转换处理的情况下,能够进行对正确的物理包的访问。
接着,循环单位增设处理程序903在步骤S1906解除实施了数据转出抑制的对象缓存插槽的数据转出抑制(步骤S1909)。
接着,循环单位增设处理程序903判断是否选择增设对象的循环映射表805内的全物理包作为对象物理包(步骤S1910)。在存在作为未选择的物理包的情况下(在步骤S1910为否),循环单位增设处理程序903返回步骤S1903,选择下一对象物理包。
另外,SWAP对象物理包也可以根据I/O处理等任意地决定。对于未实施数据SWAP处理的区域,通常不能进行数据分配,不过,例如也可以通过预先进行与从图2的主机204接受了写请求的区域对应的物理包的数据SWAP处理,使得对增设区域能够进行即时数据分配。
在这种情况下,在对象区域的数据SWAP处理中,在CM214上作为脏数据保存该写数据,在对象区域的数据SWAP处理完成的时点许可对驱动器的数据转出即可。
在不存在作为未选择的物理包的情况下(在步骤S1910为是),循环单位增设处理程序903将映射指针表804的该循环的循环映射图版本1203的条目更新至Target(步骤S1911)。
接着,驱动增设处理程序901许可向与对象驱动器对应的Vchunk的虚拟卷的分配,结束处理(步骤S1912)。在分配许可中,使与图10的存储池管理表802的对应的VPG#关联的可分配Vchunk数1003的值增加。按每循环实施SWAP处理,通过按每循环实施向Vchunk的虚拟卷的分配许可,能够逐步地利用增设容量的一部分直至所有增设处理的完成为止。
另外,在图19的例子中,在完成整个循环的数据SWAP处理后,许可向增设区域的数据分配,也可以每完成循环内的固定区域的数据SWAP时许可该区域的数据分配。由此,能够按每更细分的容量利用增设容量。
根据以上的循环单位增设处理,存储控制器202在存储有与SWAP对象的物理包对应的Vchunk有效数据的情况下,基于Current,从该Vchunk对应的物理包读出与有效数据,基于Target,向与该Vchunk对应的物理包写入有效数据。由此,存储控制器202能够与从Current向Target的映射图案的变更一致地,使数据移动。
另外,在循环单位增设处理中,存储控制器202也可以取代依次选择物理包,依次选择虚拟组块或虚拟包。
图20是表示图2的存储系统中实施的分配处理的流程图。
在图20中,图9的页分配处理程序904作为来自图2的主机204的写处理的一环,在写对象的VVOL页303、VPG页304为未分配的情况下,执行页分配处理。
页分配处理程序904基于图11的页映射表803,进行VPG页是否已分配于对象VVOL页的判断。在VPG页未分配于对象VVOL页的情况下,由于在页映射表803的VPG Page#1105存储有“未分配”或“Not-Allocate”等信息,所以页分配处理程序904能够判断对象页是否为未分配。在系统的初始状态(对虚拟卷302一次也没有执行主机I/O的状态)下,该虚拟卷302内的所有页为“未分配(Not-Allocate)”。
首先,页分配处理程序904取得对象VPG#(步骤S2001)。选择对象VPG的方法例如既可以选择利用率最低的VPG作为对象VPG,也可以按每虚拟卷302在VPG设定分配优先度,选择分配优先度最高的VPG作为对象VPG。
接着,页分配处理程序904进行在对象VPG是否存在空白页的判断(步骤S2002)。此处,页分配处理程序904参照页映射表803,确认在对象VPG是否存在未分配的VPG Page#1105,由此判断是否存在空白页。
在对象VPG不存在空白页的情况下(步骤S2002的否),页分配处理程序904返回步骤S2001,选择不同的对象VPG#,再次实施步骤S2002的判断。在对象VPG存在空白页的情况下(步骤S2002的是),页分配处理程序904从对象VPG内选择对象VPG页(步骤S2003)。选择对象VPG页的方法例如为,选择对象VPG内的空白页中、VPG页#在时间上最靠后的页作为对象VPG页。
页分配处理程序904在即使对所有VPG执行以上的处理也没能选择对象VPG页的情况下(步骤S2004的否),向页分配处理的指示发出地响应分配不可的信息(步骤S2006),结束处理。
在选择了对象VPG页的情况下(步骤S2004的是),为了将对象VPG页分配至VVOL页,页分配处理程序904在页映射表803内的对象VVOL页的条目登记对象VPG页(步骤S2005),结束处理。
根据以上的页分配处理,存储控制器202能够通过将所需的VPG页304分配至VVOL页303,有效率地利用VPG空间。此外,由于不需要使主机访问的数据的单位与分散RAID的单位一致,所以能够高效地分别进行主机访问和分散RAID。
另外,存储控制器202也可以取代VVOL空间将VPG空间向主机204提供。在这种情况下,存储控制器202也可以不使用页映射表803。
图21是表示图2的存储系统中实施的VP转换处理的流程图。
在图21中,VP(Virtual-Physical:虚拟-实体)转换处理由图9的VP转换处理程序905执行。VP转换处理是从逻辑存储区域的地址向物理存储区域的地址的转换处理。VP转换处理从自主机204接受I/O请求的情况下的页转换处理等调用。页转换处理将由I/O请求指定的虚拟卷内的地址转换为VPG空间的地址。VP转换处理将作为指定的虚拟的地址的VPG空间的地址(VPG#,VDEV#,Vchunk#)转换为作为物理的数据的存储目的地的DPG空间的地址(DPG#,PDEV#,Parcel#)。
首先,VP转换处理程序905从Vchunk#计算Cycle Vchunk#(步骤S2101)。CycleVchunk#能够按Cycle Vchunk#=Vchunk#mod c计算。
接着,VP转换处理程序905从VPG#、Cycle Vchunk#和周期Vchunk数c计算LocalVchunk#(步骤S2102)。Local Vchunk#能够按Local Vchunk#=VPG#×c+Cycle Vchunk#计算。
接着,VP转换处理程序905从Vchunk#计算cycle#(步骤S2103)。cycle#能够按cycle#=Floor(Vchunk#/c)计算。
接着,VP转换处理程序905执行物理索引取得处理(步骤S2104)。
物理索引取得处理是以VPG#、VDEV#和Local Vchunk#为输入,取得DPG#、PDEV#和Local Parcel#的处理。
例如,VP转换处理程序905使用图15A的PG映射(V2P)表807,从VPG#取得DPG#。
接着,VP转换处理程序905参照图12的映射指针表804,以DPG#和cycle#为关键词,确定循环映射图版本1203,决定参照的循环映射表805的面。
接着,VP转换处理程序905使用图13的循环映射表805,从VDEV#和Local Vchunk#,取得PDEV#和Local Parcel#。
接着,VP转换处理程序905从Local Parcel#、Cycle#和周期Parcel数m计算Parcel#,结束处理(步骤S2105)。Parcel#能够按Parcel#=Cycle#*m+Local Parcel#计算。
图22是表示图2的存储系统中实施的PV转换处理的流程图。
在图22中,PV(Physical-Virtual)转换处理由图9的PV转换处理程序906执行。PV转换是从物理存储区域向逻辑存储区域的转换处理。PV转换例如是在重建处理中为了确定与发生了故障的物理存储区域对应的数据等而使用的处理。PV转换将作为所指定的物理的数据的存储目的地的DPG空间的地址(DPG#,PDEV#和Parcel#)转换为作为虚拟的地址的VPG空间的地址(VPG#、VDEV#和Vchunk#)。PV转换相当于VP转换的反向转换。即,当在实施VP转换之后、按其结果实施PV转换时,成为返还相同地址。此外,反之亦然。
首先,PV转换处理程序906从Parcel#计算Local Parcel#(步骤S2201)。LocalParcel#能够按Local Parcel#=Parcel#mod(m)计算。
接着,PV转换处理程序906从Parcel#计算cycle#(步骤S2202)。cycle#能够按cycle#=Floor(Parcel#/m)计算。
接着,PV转换处理程序906参照图12的映射指针表804,以DPG#和cycle#为关键词,确定循环映射图版本1203,决定参照的循环映射表805的面。
接着,PV转换处理程序906执行虚拟索引取得(步骤S2203)。虚拟索引取得是以DPG#、PDEV#和Local Parcel#为输入,取得VPG#、VDEV#和Local Vchunk#的处理。
例如,PV转换处理程序906使用图15B的PG映射(P2V)逆转换表808,从DPG#取得VPG#,使用图14的循环映射反向转换表806,从PDEV#和Local Parcel#取得VDEV#和LocalVchunk#。另外,在PV转换中,未分配VDEV#和Local Vchunk#的情况下,表示该包为备用区域,未被分配数据。
接着,PV转换处理程序906从Local Vchunk#、Cycle#和周期Vchunk数c计算CycleVchunk#(步骤S2204)。Cycle Vchunk#能够按Cycle Vchunk#=Local Vchunk#mod c计算。
接着,PV转换处理程序906从Cycle Vchunk#、Cycle#和周期Vchunk数c计算Vchunk#,结束处理(步骤S2205)。Vchunk#能够按Vchunk#=Cycle#*c+Cycle Vchunk#计算。
根据以上的PV转换处理,存储控制器202能够在重建处理中,将存在故障的驱动器107的DPG空间的地址转换为VPG空间的地址,确定重建所需的数据。
另外,在本实施方式中对驱动器单体的增设方法进行了说明,通过使用同样的思考方法,还能够进行按驱动器单体的减设处理。
在减设时,在减设时删除的整个VPG#4首先禁止对于减设对象驱动器的新写入,之后将减设对象驱动器VPG#4中存储的数据向减设对象VPG#4以外的VPG、转移至移动驱动器。之后,通过反向执行图16所示的方法生成减设后的映射图案。减设后的映射图案没有于PDEV#4内的物理包109映射的虚拟包103。减设后的映射图案生成后实施图19的循环单位增设处理,对全部循环在循环单位增设处理完成后将减设对象驱动器从系统清除。
此外,在本实施方式中,对从N台至(N+1)台的驱动增设方法进行了说明,通过使用同样的思考方式,还能够生成新生成由(N+1)台构成的DPG的情况下的映射。例如,通过令VPG宽度为K,预先生成K台结构的DPG的映射图案,逐步生成(K+1)台、(K+2)台……的映射图案,最终得到(N+1)台映射图案。
此外,在本实施方式中,示出了在既有的驱动器区域具有数据的情况下的例子,在新构成DPG的情况下等未存储数据时,也可以不实施一部分处理。例如,在图19中,即使不实施步骤S1903至步骤S1910,也能够进行数据存储。
根据本实施方式所示的增设1个驱动时的数据移动方法,能够按通过增设增加的容量以下的数据移动量,进行增设容量的利用。
接着,示出第2实施方式的增设1台时的数据移动方法。在以下的说明中,以第1实施方式为基础,主要说明与第1实施方式的差异。
图23是表示第2实施方式的存储系统中使用的物理存储驱动器的增设1台时的包映射方法的框图。
在图23,仅使用与图16的例子的差异表示周期Parcel数m=4、驱动器数N=4的结构中,从驱动器数=4的状态增设1台驱动器而变更为驱动器数=5的例子。表示作为驱动增设前的初始的映射图案的当前映射图案的P1与图16的例子相同而省略。
P2表示驱动增设中的映射图案。将映射了构成既有的虚拟组块101的虚拟包103的物理包109的一部分分配至增设的物理存储驱动器1601。由此,在既有的物理存储驱动器107,出现未在构成既有的虚拟组块101的虚拟包103映射的物理包109。
在图23的例子中,按每Parcel循环,选择使其从既有的4个物理存储驱动器107中的4台、每1Parcel地移动的物理包109,移动合计4个物理包109,移动量依赖于周期Parcel数、周期Parcel内的储备包的个数、构成Vchunk的Parcel数。令周期Parcel数为m、周期Parcel内的储备包的个数为S、VPG驱动器数为K,移动量T用以下(9)式表达。
T=K×(m-s)/K=(m-s)…(9)
图16的例子的移动量T按(5)式赋予,图23的例子的移动量T按(9)式赋予。因此,在图23的例子中,与图16的例子相比较,移动量T增加。
在P3中,生成新建VChunk。新建Vchunk由在通过上述的既有Vchunk的再构成处理产生的虚拟组块101未映射的包构成。
此时,按每Parcel循环603,从4台既有驱动器107中的4台使合计4个物理包109移动至增设驱动器1601,由此在既有驱动器107出现未映射的4个份物理包109。因此,能够按每Parcel循环603,构成包含4个虚拟包103的新建Vchunk。在图23中,表示在既有驱动器107的各Parcel循环603,由Vchunk识别符为“4-0”这样的4个虚拟包103构成1个新建组块,由Vchunk识别符为“4-1”这样的4个虚拟包103构成1个新建组块的例子。
在图23的例子中,与图16的例子相比较,在仅使用既有驱动器107的包构成新建Vchunk方面不同。另外,每Parcel循环的新建Vchunk的数量按上述(6)式赋予。
之后,存储控制器202进行使数据按映射图案移动的包移动处理,完成增设处理。存储控制器202在包移动处理完成后,许可将新建VChunk内的全部VPG页分配给VVOL页。
在本实施方式所示的数据移动中,与第1实施方式相比,可新建分配的Vchunk数相等,移动量增加。本数据移动,在与数据移动量的削减效果相比、提高驱动增设后的映射图案特性的情况下使用。映射图案特性例如是主机IO的性能或分散重建速度等。
此外,在本实施方式中,示出了每循环映射表仅增加1个虚拟组块的例子,在周期Parcel数m大,每循环映射表增加多个虚拟组块时,也可以以成为第1实施方式中示出的移动量和本实施方式中示出的移动量的中间的移动量的方式选择包。例如,增加的Vchunk数为2个时,也可以从既有的PDEV移动7个包,从既有PDEV选择4个包构成1个虚拟组块,从既有PDEV选择3个、从增设的PDEV选择1个包,再构成1个虚拟组块。
图24是表示第3实施方式的存储系统中使用的物理存储驱动器的多台增设时的包映射方法的一例的框图。
在图24中,在第1实施方式中,增设多台驱动时通过重复多次增设1台的动作生成增设多台驱动后的映射图案,在本实施方式中,通过将多台增设驱动器作为移动目的地驱动器,增设时的移动量比重复多次增设1台时少。
P1表示作为驱动增设前的初始的映射图案的当前映射图案。在图24的例子中,集中增设2台增设驱动器1601A、1601B。在该状态下,仅在2台增设驱动器1601A、1601B的存储区域数据冗余化不可,因此存储控制器202尚不能存储数据。另外,为了便于说明,图24的例子仅记述2个Parcel循环603。
P2表示驱动增设中的映射图案。将映射了构成既有的虚拟组块101的虚拟包103的物理包109的一部分分配至2台增设驱动器1601A、1601B。由此,在既有驱动器107中,出现未在构成既有的虚拟组块101的虚拟包103映射的物理包109。
此时,存储控制器202在各Parcel循环603中选择映射于既有驱动器107的、包含在不同的虚拟组块101中的虚拟包103,将该选择的虚拟包103的配置变更为2台增设驱动器1601A、1601B。
此处,在确保提供构成新建组块的4个虚拟包的未分配区域的、4台不同的物理存储驱动器的情况下,以为能够从2台量的不同的物理存储驱动器增设驱动器1601A、1601B确保,所以其余2台量的不同的物理存储驱动器只要确保4台既有驱动器107中的2台量即可。因此,每新建组块,将从4台既有驱动器107中不同的2台既有驱动器107选择的虚拟包103的配置变更为增设驱动器1601A、1601B即可。
在图24的例子中,为了按每1循环映射图构成2个新建组块,从4台既有驱动器107中的4台选择使其每1Parcel地移动的物理包109,将合计4个物理包109移动至2台增设驱动器1601A、1601B,移动量依赖于周期Parcel数、周期Parcel内的储备包的个数、构成Vchunk的Parcel数和增设驱动器数。令周期Parcel数为m、周期Parcel内的储备包的个数为s、VPG驱动器数为K、增设驱动器数为A,移动量T以以下(10)式表达。
T=(K-A)×(m-s)/K×A…(10)
此处,A为1以上不到K的整数,与第1实施方式相比较可知,T的值变小。例如,在增设驱动器数A为2的情况下,在图16的方法中,需要将增设1台反复进行2次,每Parcel循环603产生3×2=6个包移动。另一方面,在图24的方法中,将2台增设集中在1次实施,因此每Parcel循环603能够只移动4个包即可,与图16的方法相比能够减小移动量T。
在P3中生成新建VChunk。新建Vchunk由未映射于通过上述的既有Vchunk的再构成处理产生的虚拟组块101的包构成。此时,按每Parcel循环603,从4台既有驱动器107中的4台使合计4个物理包109移动至2台增设驱动器1601A、1601B,由此在既有驱动器107出现4个份的未映射的物理包109,在增设驱动器1601A、1601B出现4个份的未映射的物理包109。因此,能够按每Parcel循环603,构成2个包含4个虚拟包103的新建Vchunk。
在图24的例子中,因为增设2台,所以每Parcel循环603,能够新分配4×2=8个虚拟包103。在图24中,示出将Vchunk识别符为“4-0”这样的4个虚拟包103和为“5-0”这样的4个虚拟包103分配至第1个Parcel循环603,将Vchunk识别符为“4-1”这样的4个虚拟包103和为“5-1”这样的4个虚拟包103分配至第2个Parcel循环603的例子。
图25是表示第3实施方式的存储系统中使用的物理存储驱动器的多台增设时可应用的驱动增设处理的一例的流程图。
在图25中,该驱动增设处理的、图17中表示的第1实施方式的驱动增设处理中步骤S1702至步骤S1704的一系列处理换成多台增设映射图生成处理(步骤S2502)方面不同,其它的步骤S2501和步骤S2503至步骤S2506的处理与图17的步骤S1701和步骤S1706至步骤S1709的处理相同。
图26是表示图25的多台增设映射图生成处理的流程图。
在图26中,图9的驱动增设处理程序901,首先从具有多台的增设驱动器1601选择1台作为移动目的地驱动器(步骤S2601)。选择基准没有特别限定,例如既可以按增设驱动器1601中驱动器ID在时间上更新的顺序选择,也可以使用随机数等随机地选择。也可以以使得选择次数在增设驱动器间均等的方式选择。
接着,驱动增设处理程序901从既有驱动器107选择移动出发地Local Parcel(步骤S2602)。本处理与第1实施方式相同。
接着,驱动增设处理程序901判断所选择的Local Parcel是否属于增设驱动器1601(S2603)。在所选择的Local Parcel属于增设驱动器1601的情况下(在步骤S2603为是),返回步骤S2602,重新进行Local Parcel的选择。在所选择的Local Parcel不属于增设驱动器1601的情况下(在步骤S2603为否),前进至步骤S2604。由此,能够防止增设驱动器1601间的数据移动,有助于数据移动量的削减。
在以下的步骤S2604至步骤S2607,与第1实施方式相同。
接着,驱动增设处理程序901判断既有包的移动是否进行了足够量(步骤S2608)。在移动至增设驱动器1601的包的个数不到(10)式的移动量T个的情况下(在步骤S2608为否),驱动增设处理程序901返回步骤S2601进行处理。
在移动至增设驱动器的包的个数为(10)式的移动量T个以上的情况下(在步骤S2608为是),驱动增设处理程序901将处理推进至新建Vchunk分配处理1802(步骤S2609)。以向的新建Vchunk分配处理与第1实施方式相同。
如以上说明的那样,在不到VPG驱动器数的驱动增设时,为了在将数据冗余化的基础上利用增设容量,必须进行出自既有驱动器的数据移动。但是,在同时增设VPG驱动器数以上的驱动器的情况下,能够仅按增设驱动器进行数据的冗余化,因此能够无数据移动地进行容量利用。在以下的实施方式中,阐述在同时增设VPG驱动器数以上的驱动器的情况下,用于无数据移动地使用增设容量的映射图案生成方法。
图27是表示第4实施方式的存储系统中使用的物理存储驱动器的多台增设时的包映射方法的一例的框图。
在图27中,P1表示作为驱动增设前的初始的映射图案的当前映射图案。在图27中,表示集中增设了4台增设驱动器1601A~1601D的例子。另外,为了便于说明,图27的例子仅记述2个Parcel循环603。
P2表示进行临时利用的临时映射图案。存储控制器202不移动映射了构成既有的虚拟组块101的虚拟包103的物理包109,仅使用增设驱动器1601A~1601D的包构成新建Vchunk。此时,构成同一新建Vchunk的4个包分别映射于不同的增设驱动器1601A~1601D。例如,Vchunk识别符为“4-0”的4个虚拟包103分别映射于增设驱动器1601A~1601D,Vchunk识别符为“5-0”的4个虚拟包103也分别映射于增设驱动器1601A~1601D。
由此,不需要为了构成新建Vchunk而进行既有驱动器107间的数据移动,因此能够立即利用增设容量。不过,在使用仅映射于增设驱动器1601A~1601D的包构成新建Vchunk的情况下,由于虚拟组块101内的包分散的驱动器的台数受到限制,所以通过分散RAID结构实现的重建速度提高效果下降。例如,在PDEV#0的驱动器发生故障的情况下,重建处理中被读取的驱动器是仅为PDEV#1-3的驱动器,不从PDEV#4-#7读出。
因此,P2的配置是临时的,进行为了实现分散重建效果高的映射的最终的再配置(P3)。由此,能够即时地利用增设容量,并且能够最终实现重建速度高的配置。例如,在PDEV#0的驱动器发生故障的情况下,重建处理中被读取的驱动器不仅为PDEV#1-3的驱动器,还能够使用PDEV#4-#7的驱动器,能够提高分散重建效果。
图28是表示第4实施方式的存储系统中应用的本地存储器的内容的框图。
在图28中,本地存储器217除了第1实施方式中示出的程序以外,存储即时增设处理程序2801。
图29是表示第4实施方式的存储系统中实施的即时增设处理的流程图。
在图29中,图28的即时增设处理程序2801在集中增设VPG驱动器数以上的驱动器的情况下进行增设处理。管理者在对系统追加增设驱动器后,向图2的管理服务器203输入对DPG的即时增设指示。存储控制器202在从管理服务器203接受该增设指示之时,执行即时增设处理。或者,管理服务器203或存储控制器202也可以在对系统的VPG驱动器数以上的增设驱动器的追加的检测之时,自动执行即时增设处理。
首先,即时增设处理程序2801将图13的循环映射表805的Current面的内容复制到Target面的循环映射表805(步骤S2901)。
接着,即时增设处理程序2801仅以增设驱动器1601内的Parcel构成新建Vchunk,更新Target面的循环映射表805(步骤S2902)。
然后,即时增设处理程序2801将Current面的循环映射表805更新为Target面的循环映射表805(步骤S2903)。Current面的循环映射表805在更新前后,仅增加新建LocalVchunk的条目,而没有更为既有的Local Vchunk的条目的更新,因此对既有数据的访问能够在更新前后持续进行。
接着,即时增设处理程序2801许可将新建Vchunk向虚拟卷分配(步骤S2904)。在分配的许可中,具体而言,使与图10的存储池管理表802的对应的VPG#关联的、可分配Vchunk数1003的值增加。
至此为止的处理中,能够利用增设容量。以后的处理既可以持续实施,也可以间有中断地在任意的时刻实施,还可以不予实施地完成即时增设处理。
接着,即时增设处理程序2801将循环映射表805的Current面的内容复制到Target面的循环映射表805(步骤S2905)。
接着,即时增设处理程序2801实施最终映射图生成处理(步骤S2906)。在最终映射图生成处理中,在循环映射表805的Target面生成与增设后的DPG驱动器数相应的映射图案。生成方法没有限定,例如既可以利用第1实施方式中所示那样的反复1台增设的方法进行生成,也可以使用多台增设映射图生成处理(图25的S2502)来生成。
接着,即时增设处理程序2801实施循环单位增设处理(步骤S2907)以后的处理。这以后的处理与图17所示的步骤S1706以后的处理同样。
图30是表示第5实施方式的存储系统的硬件结构例的框图。
在图30中,计算机系统201B包括1个以上主机204、管理服务器203、存储节点3001A、3001B和驱动器盒218A、218B。存储节点3001A包括多个存储控制器202。主机204、管理服务器203与存储节点3001A、3001B经网络221连接。存储节点3001A与驱动器盒218A连接,存储节点3001B与驱动器盒218B连接。
存储控制器202管理由多个物理存储驱动器107的存储区域构成的存储池。存储控制器202使用存储池内的存储区域构成RAID组。即,存储控制器202使用多个物理存储驱动器107,构成多个虚拟奇偶校验群组(VPG)。
在本实施方式中,存储控制器202也可以使用与不同于包含存储控制器202的存储节点3001A的存储节点3001B连接的驱动器盒218B内的物理存储驱动器。即,属于存储节点3001A的存储控制器202也可以使用驱动器盒218B内的物理存储驱动器构成虚拟奇偶校验群组。此外,也可以使用驱动器盒218A内的物理存储驱动器和驱动器盒218B内的物理存储驱动器,构成单一的虚拟奇偶校验群组。
另外,本发明并不限定于上述的实施方式,而包括各种各样的变形例。例如,上述的实施方式为了将本发明说明得容易明白而进行了详细的说明,但是并不一定限定于包括所说明的所有结构。此外,能够将一个实施方式的结构的一部分替换到另一个实施方式的结构,此外,还能够在一个实施方式的结构中加入另一个实施方式的结构。此外,能够对各实施方式的结构的一部分进行其它结构的追加、删除、替换。此外,上述的各结构、功能、处理部、处理单元等例如也可以通过利用集成电路等进行设计、利用硬件实现其一部分或全部。
附图标记的说明
201A、201B…计算机系统;202…存储控制器;203…管理服务器;204…主机;205…外部存储装置;206…FEPK;207…端口;208…维护接口;209…BEPK;213…CMPK;214…缓存存储器;216…微处理器;217…本地存储器;218…驱动器盒;219…开关;221…网络;223…内部网络。
Claims (12)
1.一种包括处理器和多个物理存储驱动器的存储系统,其特征在于:
所述处理器用K个虚拟包来构成虚拟组块,并将同一个虚拟组块中包含的虚拟包分别映射于彼此不同的多个物理存储驱动器,其中,所述虚拟包包括由用户数据或用于修复该用户数据的冗余数据构成的要素数据,所述K为2以上的整数,
在构成新建组块时,所述处理器选择虚拟包并使其在物理存储驱动器之间移动,使所述虚拟包移动而使其成为未分配的状态,在位于彼此不同的物理存储驱动器的多个未分配区域分别分配虚拟包,来构成所述新建组块。
2.如权利要求1所述的存储系统,其特征在于:
构成所述新建组块的虚拟包是被分配至K个未分配区域的虚拟包,该K个未分配区域包括:具有使所述虚拟包移动而成为未分配状态的区域的物理存储驱动器内的未分配区域,和使所述虚拟包移动的移动目的地的物理存储驱动器内的未分配区域。
3.如权利要求2所述的存储系统,其特征在于:
具有使所述要素数据移动的目的地的虚拟包的物理存储驱动器,是在所述存储系统中增设的物理存储驱动器。
4.如权利要求2所述的存储系统,其特征在于:
移动至相同的所述驱动器的多个虚拟包分别属于不同的虚拟组块。
5.如权利要求3所述的存储系统,其特征在于:
在增设了A个物理存储驱动器的情况下,
使K-A个虚拟包移动至所述增设的物理存储驱动器,
使用位于各自不同的所述增设的物理存储驱动器的A个未分配区域和由于所述虚拟包的移动而成为未分配状态的K-A个未分配区域,来构成具有K个虚拟包的新建组块。
6.如权利要求5所述的存储系统,其特征在于:
所述A为2以上。
7.如权利要求1所述的存储系统,其特征在于:
构成所述新建组块的虚拟包是分配给使所述虚拟包移动而成为未分配状态的K个未分配区域的虚拟包。
8.如权利要求3所述的存储系统,其特征在于:
增设A个物理存储驱动器,
在所述A小于K的情况下,用包括被分配至使所述虚拟包移动而成为未分配状态的区域的虚拟包的K个虚拟包,来构成新建组块,
在所述A为K以上的情况下,对增设的物理存储驱动器的K个未分配区域分配虚拟包来构成所述新建组块。
9.如权利要求8所述的存储系统,其特征在于:
对增设的物理存储驱动器的K个未分配区域分配虚拟包来构成所述新建组块,之后变更分配,用包括已被分配至增设前的物理存储驱动器的未分配区域的虚拟包的K个虚拟包来构成所述新建组块。
10.如权利要求1所述的存储系统,其特征在于:
所述虚拟组块包括各自由K个条带构成的B个虚拟条带串,
所述虚拟包包括属于互不相同的虚拟条带串的B个条带,
其中B为正整数。
11.如权利要求10所述的存储系统,其特征在于:
由所述K个虚拟存储驱动器构成虚拟奇偶校验群组,
所述虚拟奇偶校验群组由c个虚拟组块构成Vchunk周期,
由构成所述Vchunk周期的E个虚拟奇偶校验群组构成Vchunk周期群,
按每个所述Vchunk周期群周期性地将所述虚拟包分配给所述物理存储驱动器,
其中c和E均为正整数。
12.一种包括处理器和多个物理存储驱动器的存储系统的存储管理方法,其特征在于:
所述处理器用K个虚拟包来构成虚拟组块,并将同一个虚拟组块中包含的虚拟包分别映射于彼此不同的多个物理存储驱动器,其中,所述虚拟包包括作为用户数据或用于修复该用户数据的冗余数据的要素数据,所述K为2以上的整数,
在构成新建组块时,所述处理器选择虚拟包并使其在物理存储驱动器之间移动,使所述虚拟包移动而使其成为未分配的状态,在位于彼此不同的物理存储驱动器的多个未分配区域分别分配虚拟包,来构成所述新建组块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019227457A JP7191003B2 (ja) | 2019-12-17 | 2019-12-17 | ストレージシステムおよびストレージ管理方法 |
JP2019-227457 | 2019-12-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112988051A true CN112988051A (zh) | 2021-06-18 |
Family
ID=76317971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010806180.8A Pending CN112988051A (zh) | 2019-12-17 | 2020-08-12 | 存储系统和存储管理方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11150820B2 (zh) |
JP (1) | JP7191003B2 (zh) |
CN (1) | CN112988051A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115629845A (zh) * | 2022-12-14 | 2023-01-20 | 北京云豹创芯智能科技有限公司 | Io数据的产生方法、装置、计算机设备和存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022175427A (ja) * | 2021-05-13 | 2022-11-25 | 株式会社日立製作所 | ストレージシステム及びストレージ管理方法 |
CN115639945A (zh) | 2021-07-19 | 2023-01-24 | 伊姆西Ip控股有限责任公司 | 用于扩展存储系统的方法、设备和程序产品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020095557A1 (en) * | 1998-06-22 | 2002-07-18 | Colin Constable | Virtual data storage (VDS) system |
CN101082853A (zh) * | 2006-05-31 | 2007-12-05 | 株式会社日立制作所 | 闪速存储器存储系统 |
US20110167215A1 (en) * | 2009-02-26 | 2011-07-07 | Hitachi, Ltd. | Storage System Comprising RAID Group |
US20110197023A1 (en) * | 2009-03-18 | 2011-08-11 | Hitachi, Ltd. | Controlling methods of storage control device and virtual volumes |
JP2011242840A (ja) * | 2010-05-14 | 2011-12-01 | Hitachi Ltd | ThinProvisioningが適用されたストレージ装置 |
CN107817952A (zh) * | 2013-01-25 | 2018-03-20 | 株式会社日立制作所 | 存储系统 |
US20180081757A1 (en) * | 2015-03-06 | 2018-03-22 | Hitachi, Ltd. | Computer system |
CN110169040A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 基于多层一致性哈希的分布式数据存储方法与系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3008801B2 (ja) * | 1995-02-16 | 2000-02-14 | 株式会社日立製作所 | 記憶装置システムおよびディスクアレイ制御装置 |
WO2003077111A1 (fr) * | 2002-03-13 | 2003-09-18 | Fujitsu Limited | Controleur pour dispositif raid |
JP2007156667A (ja) * | 2005-12-02 | 2007-06-21 | Hitachi Ltd | ストレージ装置及びその容量管理方法 |
US7904749B2 (en) | 2008-10-24 | 2011-03-08 | Hitachi, Ltd. | Fast data recovery from HDD failure |
JP5973089B2 (ja) * | 2013-12-13 | 2016-08-23 | 株式会社日立製作所 | ストレージシステムの移行方式および移行方法 |
US9641615B1 (en) * | 2014-03-31 | 2017-05-02 | EMC IP Holding Company LLC | Allocating RAID storage volumes across a distributed network of storage elements |
WO2016031051A1 (ja) * | 2014-08-29 | 2016-03-03 | 株式会社日立製作所 | ストレージ装置 |
WO2017175285A1 (ja) * | 2016-04-05 | 2017-10-12 | 株式会社日立製作所 | 計算機システム、物理記憶デバイスの制御方法、および記録媒体 |
US10310752B1 (en) | 2016-12-30 | 2019-06-04 | EMC IP Holding Company LLC | Extent selection with mapped raid |
US10852966B1 (en) | 2017-10-18 | 2020-12-01 | EMC IP Holding Company, LLC | System and method for creating mapped RAID group during expansion of extent pool |
-
2019
- 2019-12-17 JP JP2019227457A patent/JP7191003B2/ja active Active
-
2020
- 2020-08-12 CN CN202010806180.8A patent/CN112988051A/zh active Pending
- 2020-09-16 US US17/022,810 patent/US11150820B2/en active Active
-
2021
- 2021-10-07 US US17/495,941 patent/US20220027070A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020095557A1 (en) * | 1998-06-22 | 2002-07-18 | Colin Constable | Virtual data storage (VDS) system |
CN101082853A (zh) * | 2006-05-31 | 2007-12-05 | 株式会社日立制作所 | 闪速存储器存储系统 |
US20110167215A1 (en) * | 2009-02-26 | 2011-07-07 | Hitachi, Ltd. | Storage System Comprising RAID Group |
US20110197023A1 (en) * | 2009-03-18 | 2011-08-11 | Hitachi, Ltd. | Controlling methods of storage control device and virtual volumes |
JP2011242840A (ja) * | 2010-05-14 | 2011-12-01 | Hitachi Ltd | ThinProvisioningが適用されたストレージ装置 |
CN107817952A (zh) * | 2013-01-25 | 2018-03-20 | 株式会社日立制作所 | 存储系统 |
US20180081757A1 (en) * | 2015-03-06 | 2018-03-22 | Hitachi, Ltd. | Computer system |
CN110169040A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 基于多层一致性哈希的分布式数据存储方法与系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115629845A (zh) * | 2022-12-14 | 2023-01-20 | 北京云豹创芯智能科技有限公司 | Io数据的产生方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20210181958A1 (en) | 2021-06-17 |
US20220027070A1 (en) | 2022-01-27 |
JP7191003B2 (ja) | 2022-12-16 |
JP2021096645A (ja) | 2021-06-24 |
US11150820B2 (en) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11327661B2 (en) | Storage system and data management method | |
US9417955B2 (en) | Data reconstruction in distributed data storage system with key-based addressing | |
US10140136B2 (en) | Distributed virtual array data storage system and method | |
JP6663482B2 (ja) | 計算機システム、物理記憶デバイスの制御方法、および記録媒体 | |
US9639268B2 (en) | Distributed data storage system with key-based addressing | |
CN112988051A (zh) | 存储系统和存储管理方法 | |
WO2016031051A1 (ja) | ストレージ装置 | |
US10372538B2 (en) | Computer system | |
US10514982B2 (en) | Alternate storage arrangement in a distributed data storage system with key-based addressing | |
US20180018096A1 (en) | Balanced load distribution for redundant disk array | |
CN110096218B (zh) | 用于为存储对象提供raid数据保护的方法、系统和介质 | |
JP6807457B2 (ja) | ストレージシステム及びストレージシステムの制御方法 | |
JP2022175427A (ja) | ストレージシステム及びストレージ管理方法 | |
JP7374944B2 (ja) | ストレージシステム及びストレージ管理方法 | |
Fu et al. | Ec-frm: An erasure coding framework to speed up reads for erasure coded cloud storage systems | |
US11467904B2 (en) | Storage system and control method of the same | |
Chandrashekhara et al. | Cider: A Case for Block Level Variable Redundancy on a Distributed Flash Array | |
圷弘明 | Efficient and Reliable Data Storing Methods in Large-scale Storage Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |