CN102549542A - 负载偏差时实现数据重新分配的存储系统及其控制方法 - Google Patents
负载偏差时实现数据重新分配的存储系统及其控制方法 Download PDFInfo
- Publication number
- CN102549542A CN102549542A CN2009801611423A CN200980161142A CN102549542A CN 102549542 A CN102549542 A CN 102549542A CN 2009801611423 A CN2009801611423 A CN 2009801611423A CN 200980161142 A CN200980161142 A CN 200980161142A CN 102549542 A CN102549542 A CN 102549542A
- Authority
- CN
- China
- Prior art keywords
- physical memory
- memory regions
- migration destination
- migration
- data
- 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
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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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/061—Improving I/O performance
-
- 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
- G06F3/0647—Migration 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
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)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种负载偏差时实现数据重新分配的存储系统及其控制方法。一种存储控制器以小盘为单位将实际存储区分配给虚拟卷,每个小盘包括多个页。在RAID组之间发生负载偏差时,执行数据重新分配。根据写访问,将池内的实际存储区分配给虚拟卷5。RAID组6包括多个小盘。每个小盘7包括多个页8。使用已经分配给虚拟卷5的小盘7中的页8。基于每个RAID组的负载,创建并以页为单元存储数据迁移计划。当主机2向迁移目标页发出命令时,在正在处理该命令的同时,迁移数据。
Description
技术领域
本发明涉及存储控制器以及虚拟卷控制方法。
背景技术
比如公司等的用户使用存储控制器来管理数据。存储控制器基于RAID(独立磁盘冗余阵列)在存储区上形成逻辑卷。这个逻辑卷被提供给主计算机(在下文中,称为主机)。
用户正在使用的数据量正在逐日增加,并且按照现实情况来说,被创建来应对该情形的卷大小现在不能提供足够的容量。相反,在预料到数据的增加而将卷大小设置为大于当前所要求的大小的情况下,形成许多非必要的磁盘驱动器,从而提升了成本。
因此,已经提出了用于制备虚拟逻辑卷并且根据实际使用将实际存储区分配给所述虚拟逻辑卷的技术(专利文献1和专利文献2)。此外,为了防止已经分配给所述虚拟逻辑卷的实际存储区的特定实际卷中的不均匀分布,用于重新分配数据的技术也是已知的(专利文献3)。
引用列表
专利文献
专利文献1:美国专利No.6823442的说明书
专利文献2:日本特开平专利申请No.2007-310861
专利文献3:日本特开平专利申请No.2008-234158
发明内容
技术问题
在上述文献(US 6,823,442B1)中,在已经接收到与虚拟卷上的块地址相关的写请求时,存储服务器系统将逻辑数据页分配给与该块地址对应的虚拟卷页地址。随后,将数据写入到该逻辑数据页。
在上述文献中,公开了一种用于基于被称为小盘(chunklet)的区域的概念来配置具有特定RAID等级的逻辑盘的管理方法,从多个物理盘上的区域获得该小盘。
然而,这种管理方法与存储控制器的物理区管理方法完全不同,该存储控制器以物理盘驱动器为单元来配置RAID组。因此,不可能将上述文献中公开的管理方法依其原样应用于以物理盘驱动器为单元来配置RAID组的存储控制器中。
假定,在上述文献中公开的技术应用于上述管理方法时,所产生的问题在于,对于能够提供正常逻辑卷和虚拟逻辑卷两者的存储控制器,每个物理区的管理方法将根据所述正常逻辑卷和虚拟逻辑卷而不同,从而使得所述存储控制器的体系架构复杂。如本文中所使用的,正常逻辑卷表示在卷创建时预先分配有所具有的容量与该卷的大小相等的物理区(物理存储区)的逻辑卷。虚拟逻辑卷是卷大小已经被虚拟化的逻辑卷,并且表示根据写请求为其分配物理区的逻辑卷。
也就是,在假定上述文献中公开的技术已经应用于以物理盘驱动器为单元来配置RAID组的存储控制器中时,将不得不使用多个不同的管理方法来管理物理区,从而使得所述配置复杂,并且还增加了研发成本。
此外,在上述文献中,在当接收到写请求时未分配与所述虚拟卷页地址对应的表页(table page)时,首先,所述存储服务器系统初始地分配表页,并且接着分配所述逻辑数据页。因此,在上述文献中公开的技术中,问题在于所述数据页必须在分配所述表页之后分配,由此降低了写过程的性能。
此外,在上述文献中,如上所述的分配过程等的执行要求专用数据页池和专用表页池,所述专用数据页池和专用表页池被分别提供,从而使得所述系统的体系架构复杂。
因此,本发明的目的是提供一种存储控制器和一种虚拟卷控制方法,该存储控制器和虚拟卷控制方法使得可以在考虑RAID组的物理配置的情况下,将存储区有效地关联到虚拟卷。本发明的另一目的是提供一种存储控制器和一种虚拟卷控制方法,该存储控制器和虚拟卷控制方法使得可以通过均匀地使用各个RAID组来配置虚拟卷。本发明的又一目的是提供一种存储控制器和一种虚拟卷控制方法,该存储控制器和虚拟卷控制方法使得可以将存储区与虚拟卷有效地关联,并且还使得可以改进所述虚拟卷的响应性能。根据下述实施例的公开内容,本发明的其它目的应该变得清楚。
问题的解决方案
为了解决上述问题,根据本发明的第一方面的存储控制器,一种存储控制器,包括:虚拟形成的虚拟卷;多个RAID组,所述RAID组包括一个或多个存储设备;池单元,用于管理多个第一实际存储区,所述多个第一实际存储区以条带形分别布置在每个所述RAID组中,并且所述多个第一实际存储区分别具有多个第二实际存储区;控制器,在从高级设备发出了与所述虚拟卷相关的写命令的情况下,所述控制器从各个第一实际存储区中的指定的第一实际存储区中包括的各个第二实际存储区中选择指定的第二实际存储区,并且将所述指定的第二实际存储区和所述虚拟卷内的与所述写命令对应的指定区域相关联,并且,所述控制器将一个虚拟卷与一个第一实际存储区相关联;迁移目的地确定单元,所述迁移目的地确定单元从与所述虚拟卷相关联的各个第二实际存储区中选择作为迁移目标的第二实际存储区,并且从除了被布置有各个第一实际存储区中的作为迁移目标的第二实际存储区的RAID组之外的另一RAID组中的各个第一实际存储区中,选择作为迁移目的地的第一实际存储区,所述作为迁移目的地的第一实际存储区要成为所述作为迁移目标的第二实际存储区中存储的数据的迁移目的地;迁移目的地存储单元,将所述作为迁移目标的第二实际存储区与所述作为迁移目的地的第一实际存储区相关联,并且存储与所述作为迁移目的地的第一实际存储区相关联的所述作为迁移目标的第二实际存储区;以及命令处理器,在所述高级设备已经发出与作为迁移目标的第二实际存储区对应的命令的情况下,在命令处理期间,所述命令处理器将所述作为迁移目标的第二实际存储区中存储的数据迁移到由所述迁移目的地存储单元存储的作为迁移目的地的第一实际存储区。
在根据第一方面的第二方面,所述迁移目的地存储单元存储:指明所述作为迁移目标的第二实际存储区的迁移目标信息,指明所述作为迁移目的地的第一实际存储区的迁移目的地信息,与每个所述RAID组的负载相关的负载信息,以及与每个所述RAID组的使用容量相关的使用容量信息,所述迁移目的地确定单元在已经到达指定时间或用户已经发出指令时,删除在所述迁移目的地存储单元中存储的迁移目的地信息,从各个第二实际存储区中释放仅仅存储有NULL数据的第二实际存储区,并且将所述仅仅存储有NULL数据的第二实际存储区变为未使用的第二实际存储区,并且执行负载分发过程,所述负载分发过程基于负载信息,并且创建新的迁移目的地信息,并将所述新的迁移目的地信息存储在所述迁移目的地存储单元中,所述新的迁移目的地信息用于将负载相对较高的第二实际存储区迁移到负载相对较低的第一实际存储区,以及执行使用容量调整过程,所述使用容量调整过程基于使用容量信息,并且所述使用容量调整过程产生新的迁移目的地信息,并将所述新的迁移目的地信息存储在所述迁移目的地存储单元中,所述新的迁移目的地信息用于将具有相对较大的使用容量的第一实际存储区中的第二实际存储区迁移到具有相对较小的使用容量的第一实际存储区,以及所述命令处理器在从所述高级设备已经发出对于所述作为迁移目标的第二实际存储区的写命令的情况下,读出在所述作为迁移目标的第二实际存储区中存储的数据,将所读出的数据和与所述写命令相关的写数据进行合并,并且将所述合并后的数据写入到所述作为迁移目的地的第一实际存储区内的第二实际存储区中,并且另外,向所述高级设备通知写命令处理已经完成以及在从所述高级设备已经发出对于所述作为迁移目标的第二实际存储区的读命令的情况下,从所述作为迁移目标的第二实际存储区读出数据并将该数据发送到所述高级设备,并且在向该高级设备通知读命令处理已经完成后,将从所述作为迁移目标的第二实际存储区读出的数据写入到所述作为迁移目的地的第一实际存储区内的第二实际存储区中。
在根据第一方面的第三方面,在从所述高级设备已经发出对于所述作为迁移目标的第二实际存储区的写命令的情况下,所述命令处理器读出在所述作为迁移目标的第二实际存储区中存储的数据,将所述读出的数据和与所述写命令相关联的写数据进行合并,并且将所述合并后的数据写入到所述作为迁移目的地的第一实际存储区内的第二实际存储区中。
在第四方面,在从所述高级设备已经发出针对所述作为迁移目标的第二实际存储区的读命令的情况下,所述命令处理器从所述作为迁移目标的第二实际存储区读出数据,并将该数据发送到所述高级设备,并且在向所述高级设备通知读命令处理已经完成之后,将已经从所述作为迁移目标的第二实际存储区读取的数据写入到所述作为迁移目的地的第一实际存储区内的第二实际存储区中。
在根据第三方面的第五方面,所述迁移目的地存储单元存储:迁移目标信息,所述迁移目标信息指明作为迁移目标的第二实际存储区,迁移目的地信息,所述迁移目的地信息指明所述作为迁移目的地的第一实际存储区,和与每个所述RAID组的负载相关的负载信息;并且所述迁移目的地确定单元删除在所述迁移目的地存储单元中存储的迁移目的地信息,基于所述负载信息创建新的迁移目的地信息,并将所述新的迁移目的地信息存储在迁移目的地存储单元,所述新的迁移目的地信息用于将负载相对较高的第二实际存储区迁移到负载相对较低的第一实际存储区。
在根据第三方面的第六方面,所述迁移目的地存储单元存储:迁移目标信息,所述迁移目标信息指明作为迁移目标的第二实际存储区,迁移目的地信息,所述迁移目的地信息指明所述作为迁移目的地的第一实际存储区,与每个所述RAID组的负载相关的负载信息,和与每个所述RAID组的使用容量相关的使用容量信息,并且所述迁移目的地确定单元删除存储在所述迁移目的地存储单元中的迁移目的地信息,基于所述负载信息产生新的迁移目的地信息,并将所述新的迁移目的地信息存储在迁移目的地存储单元,所述新的迁移目的地信息用于将负载相对较高的第二实际存储区迁移到负载相对较低的第一实际存储区内,并且,为了将具有相对较大使用容量的第一实际存储区内的第二实际存储区迁移到具有相对较小使用容量的第一实际存储区,基于所述使用容量信息创建新的迁移目的地信息,并且将所述新的迁移目的地信息存储在所述迁移目的地存储单元。
在根据第五方面的第七方面,继删除在所述迁移目的地存储单元中存储的迁移目标信息之后,所述迁移目的地确定单元从各个第二实际存储区中释放仅仅存储有NULL数据的第二实际存储区,并将所述仅仅存储有NULL数据的第二实际存储区变为未使用的第二实际存储区。
在第八方面,所述迁移目的地确定单元在第一实际存储区单元中选择多个作为迁移目标的第二实际存储区。
在第九方面,在创建所述虚拟卷的情况下,所述控制器将所述虚拟卷中的各个虚拟存储区与存储供初始化用的初始数据的第二实际存储区相关联,并且,在从所述高级设备已经发出与所述虚拟卷相关的写命令的情况下,所述控制器将所述虚拟存储区的与所述写命令对应的关联目的地从所述供初始化使用的第二实际存储区切换到所选择的指定的第二实际存储区。
在第十方面,所述控制器将所述未使用的第二实际存储区与所述虚拟卷相关联,作为所述指定的第二实际存储区,所述未使用的第二实际存储区接在根据前一个写请求与所述虚拟卷相关联的第二实际存储区之后。
在第十一方面,对于每个指定大小,在存储在所述虚拟卷中的数据中设置保护代码,所述保护代码包括用于标识所述RAID组的数据、用于标识所述第一实际存储区的数据以及用于标识所述第一实际存储区内的第二实际存储区的数据。
根据第十二方面的虚拟卷控制方法是一种用于控制虚拟卷和池单元的方法,实际存储区根据写命令而被分配给所述虚拟卷,所述虚拟卷具有多个虚拟存储区,所述池单元用于管理正在被创建的多个RAID组,并且此外,每个RAID组具有多个第一实际存储区以及与所述虚拟存储区对应的多个第二实际存储区,每个第一实际存储区具有条带形以横跨多个存储设备,所述方法包括:在从高级设备已经发出与所述虚拟卷相关的写命令的情况下,将各个第一实际存储区的指定的第一实际存储区中包括的指定的第二实际存储区与和所述写命令对应的虚拟存储区相关联,以使得多个所述虚拟卷不与一个第一实际存储区相关联;将从所述高级设备接收到的写数据存储在要与所述虚拟存储区相关联的指定的第二实际存储区中;从与所述虚拟存储区相关联的各个第二实际存储区中,选择负载相对较高的第二实际存储区用作作为迁移目标的第二实际存储区;选择第一实际存储区作为作为迁移目的地的第一实际存储区,所述作为迁移目的地的第一实际存储区是在所述作为迁移目的的第二实际存储区中存储的数据的迁移目的地,所选择的第一实际存储区是除了布置有各个第一实际存储区中的作为迁移目标的第二实际存储区的RAID组之外的另一RAID组内的各个第一实际存储区中的一个第一实际存储区并且具有相对低的负载;将所述作为迁移目标的第二实际存储区和所述作为迁移目的地的第一实际存储区相关联,并且存储与所述迁移目的地存储单元相关联的所述作为迁移目标的第二实际存储区;以及在所述高级设备已经发出与所述作为迁移目标的第二实际存储区对应的写命令的情况下,读取所述作为迁移目标的第二实际存储区中存储的数据,将所读出的数据与和所述写命令相关联的数据进行合并,将所述合并后的数据写入所述作为迁移目的地的第一实际存储区内的第二实际存储区。
在根据第十二方面的第十三方面,在从所述高级设备已经发出对于所述作为迁移目标的第二实际存储区的读命令的情况下,从所述作为迁移目标的第二实际存储区读取数据并将该数据发送到所述高级设备,并向所述高级设备通知对所述读命令的处理已经完成,随后,将从所述作为迁移目标的第二实际存储区读出的数据写入所述作为迁移目的地的第一实际存储区内的第二实际存储区。
根据第十四方面的存储控制器,包括:虚拟形成的虚拟卷;多个RAID组,所述RAID组包括一个或多个存储设备;池单元,用于管理多个第一实际存储区,所述多个第一实际存储区以条带形分别布置在每个所述RAID组中,并且所述多个第一实际存储区分别具有多个第二实际存储区;控制器,在从高级设备已经发出与所述虚拟卷相关的写命令的情况下,所述控制器从各个第一实际存储区中的指定的第一实际存储区中包括的各个第二实际存储区中,选择指定的第二实际存储区,并且将所述指定的第二实际存储区和所述虚拟卷内的与所述写命令对应的指定区域相关联,并且,所述控制器将一个虚拟卷与一个第一实际存储区相关联;迁移目的地确定单元,所述迁移目的地确定单元从与所述虚拟卷相关联的各个第一实际存储区中选择作为迁移目标的第一实际存储区,并且从除了被布置有所述作为迁移目标的第一实际存储区的RAID组之外的其它RAID组中选择迁移目的地RAID组,所述迁移目的地RAID组要成为所述作为迁移目标的第一实际存储区中存储的数据的迁移目的地;迁移目的地存储单元,将所述作为迁移目标的第一实际存储区与所述迁移目的地RAID组相关联,并存储与所述迁移目的地RAID组相关联的所述作为迁移目标的第一实际存储区;以及命令处理器,在所述高级设备已经发出与所述作为迁移目标的第一实际存储区对应的命令的情况下,在命令处理期间,所述命令处理器将所述作为迁移目标的第一实际存储区中存储的数据迁移到由所述迁移目的地存储单元存储的迁移目的地RAID组。
本发明的有益效果
本发明的配置的至少一个方面能够被配置为计算机程序。该计算机程序能够附加在记录介质上并被分发,并且能够利用通信网络递送。此外,在上述方面的组合之外的其它组合也落在本发明的范围内。
附图说明
图1是示出本发明的一个实施例的整体概念的示意图。
图2是示出包括存储控制器的系统的整体配置的示意图。
图3是所述存储控制器的方框图。
图4是示出程序和表格的示图。
图5是示出虚拟卷以及小盘和页之间的关系的示图。
图6是示出用于管理小盘和页的表格组的示图。
图7是示出当创建虚拟卷时如何连接所述表格组的示意图。
图8是示出当写入写数据时如何将分配给所述虚拟卷的页从初始化页切换到指定页的示图。
图9是示出迁移目的地管理表的示图。
图10是示出所述存储控制器的操作的整体流程的示图。
图11是示出池创建过程的流程图。
图12是示出附在数据上的保护代码(guarantee code)的配置的示图。
图13是示出小盘的过渡状态(transitional state)的示图。
图14是示出用于管理小盘的队列的示图。
图15是示出格式化过程的流程图。
图16是示出格式化过程的一部分的流程图。
图17是示出虚拟卷创建过程的流程图。
图18是示出写过程的流程图。
图19是图18中的流程图的继续。
图20是图19中的流程图的继续。
图21是示出用于将小盘分配给所述虚拟卷的过程的流程图。
图22是示出用于将页分配给所述虚拟卷的过程的流程图。
图23是示出用于改变页状态的过程的流程图。
图24是示出读过程的流程图。
图25是图24中的流程图的继续。
图26是图25中的流程图的继续。
图27是用于确定迁移目的地的过程的流程图。
图28是示出负载分发过程的流程图。
图29是用于调整使用容量的过程的流程图。
图30是示出本发明的一个效果的示图。
图31是示出第二实施例的用于确定迁移目的地的过程的流程图。
图32是示出用于释放仅仅存储零数据的页的过程的流程图。
具体实施方式
下面将基于附图说明本发明的实施例。首先,将说明本发明的概述,接着将说明实施例。如同将在下面描述的,本发明将实际存储区分配给虚拟卷5,作为小盘7单元。小盘7由多个页8配置成。一个虚拟卷5与一个小盘7相关联。也就是,单个小盘7不与多个虚拟卷5相关联。这使得可以有效地使用小盘7的存储区。
在创建虚拟卷5时,预先将各个虚拟存储区5A和初始化页8相关联。当写请求从主机2发到虚拟卷5时,小盘7内的所述页8被按序使用,并且分配给所述写请求中涉及的虚拟存储区5A。写数据被写入到这些被分配的页8。在数据写入时,与所述写请求有关的虚拟存储区5A的连接目的地从所述初始化页8切换到小盘7内的指定页8。所述指定页8是顺序接在前一写过程期间所使用的页之后的页。也就是,在所述写数据被写入时,本发明简单地将分配给虚拟卷5的页从初始化页8切换到指定页8,从而使得可以增强虚拟卷5的响应性能。
此外,在小盘7内的空闲页8用尽时,选择新的小盘7,并且将该新的小盘7分配给虚拟卷5。该新的小盘7是从另一RAID组6b内的小盘组中选出的。据此,可以在各个RAID组6a、6b之间分发所述负载。
此外,在本发明中,选择迁移目标页8或小盘7,并且基于所述负载等确定它的迁移目的地。因此,在主机2访问迁移目标页8或小盘7时,在处理从主机2发出的命令(写命令或读命令)的同时,迁移数据。
图1是示出本发明的一个实施例的概述的示意图。关于图1的下述描述以理解和实现本发明的程度呈现了本发明的概述,并且本发明的范围不限于图1中示出的配置。
图1中示出的系统例如包括存储控制器1以及作为高级设备的主机2。主机2例如被配置为计算机,比如服务器计算机或大型计算机。在主机2是主计算机时,例如,根据比如FICON(光纤连接:注册商标)、ESCON(企业系统连接:注册商标)、ACONARC(高级连接体系架构:注册商标)或FIBARC(光纤连接体系架构:注册商标)的通信协议执行数据通信。在主机2是服务器计算机时,例如,根据比如FCP(光纤通道协议)或iSCSI(互联网小型计算机系统接口)的通信协议执行数据通信。
存储控制器1经由通信网络连接到主机2。存储控制器1例如包括控制器3、存储设备4和虚拟卷5(1)、5(2)。在进行区分不是特别必需的情况下,虚拟卷将被称为虚拟卷5。各个RAID组6a、6b中的每个由多个存储设备4配置成。在不进行特别区分的情况下,RAID组将被称为RAID组6。
例如,可以使用各种能够读取和写入数据的设备作为存储设备4,比如硬盘设备、半导体存储器设备、光盘设备、磁光盘设备、磁带设备以及软盘设备。
在使用硬盘设备作为存储设备4时,例如,可以使用FC(光纤通道)盘、SCSI(小型计算机系统接口)盘、SATA盘、ATA(AT附件)盘或SAS(串行连接SCSI)盘。或者,还可以使用各种存储设备4,比如快闪存储器、FeRAM(铁电随机存取存储器)、MRAM(磁阻随机存取存储器)、相变存储器以及RRAM(电阻式RAM)。此外,例如,所述配置还可以是使得混合不同类型的存储设备4,比如快闪存储器设备和硬盘设备。
各个RAID组6a、6b的物理存储区被分区为多个条带形小盘7。每个小盘7由多个连续页8配置成。小盘7对应于“第一实际存储区”,以及页8对应于“第二实际存储区”。为了容易理解,参考标记“a1”被提供给属于一个RAID组6a的第一小盘7,以及序列号被添加到属于第一小盘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确定页8是否已经被分配给由所述写命令指定的虚拟存储区5A。在页8还未被分配给所指定的虚拟存储区5A时,控制器3将小盘7内的指定页8分配给所指定的虚拟存储区5A。控制器3将所述写数据写入到所分配的指定页8。
控制器3控制页分配,从而使得仅仅一个虚拟卷5与一个小盘7相关联。单个小盘7中包括的各个页8仅仅被分配给一个虚拟卷5。分配给多个不同虚拟卷5的多个页8不在单个小盘7内混合。使用单个小盘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)。
RAID组6a的第二小盘7内的起始页8(a2-1)被分配给另一虚拟卷5(2)。在发出以虚拟卷5(2)为目标的新写命令时,下一页被分配给虚拟卷5(2)。参考标记“a2-2”将被添加到该页8,但是它在图1中已经省略。
按照这种方式,在比虚拟卷5在主机2上表现出的大小小的实际存储区(页7,小盘8)已经分配给该虚拟卷5的状态下,该虚拟卷5被提供给主机2。因此,根据来自主机2的写命令动态分配所需数量的实际存储区。
控制器3还在如上所述的各个RAID组6a、6b之间迁移数据。控制器3例如基于数据访问频率(负载)等,选择迁移目标数据。控制器3选择低负载RAID组6a作为所述迁移目标数据将被迁移到的迁移目的地。或者,控制器3还能够选择该低负载RAID组内的小盘作为迁移目的地。
如上所述,控制器3确定迁移目标数据和该迁移目标数据的迁移目的地(S1),并且存储该迁移目标数据和迁移目的地(S2)。在主机2访问该迁移目标数据时,控制器3读出该迁移目标数据并执行命令处理,并且还将该迁移目标数据迁移到迁移目的地存储区(S3)。
通过如此配置该实施例,以具有多个页8的小盘7为单位,将实际存储区(物理存储区)分配给虚拟卷5,并且单个小盘7还被分配给仅仅一个虚拟卷5。因此,如下面将说明的,能够有效地使用小盘7内的存储区。虚拟卷5能够与正常逻辑卷一样进行管理,从而使得可以简化控制结构。
在该实施例中,为了均匀地使用多个RAID组6a、6b,从各个RAID组6a、6b中选出对应的小盘7(a1)、7(b1),并且将该小盘7(a1)、7(b1)分配给虚拟卷5(1)。因此,可以调整各个RAID组6a、6b的负载。
在该实施例中,例如,预先创建用于在RAID组6a、6b之间分发所述负载的数据迁移计划,并且在主机2访问迁移目标数据时,在执行主机2所请求的过程的同时,将该迁移目标数据迁移到预先设置的迁移目的地。因此,可以在正常命令处理期间,执行由于主机2的访问触发的数据迁移。在读过程的情况下,生成将所读出的数据写入到迁移目的地的任务,但是由于所述迁移目的地是从低负载存储区中选出的,因此这对存储控制器的响应性能的影响不大。
此外,在该实施例中,尽管存储目的地迁移被调度,但是由于针对主机2不访问的数据不生成迁移触发,所以不将主机2不访问的数据进行迁移。因此,可以减少对实际存储区的访问,并且有效地迁移仅仅将被主机2使用的数据。
此外,在该实施例中,由于主机2的访问触发迁移,所以确定迁移目的地时的时刻导致所述确定时刻和实际迁移时刻之间的时间延迟。然而,因为主机2经常访问的数据被快速地迁移到低负载存储区,所以时刻差异的影响不大。在下面将说明该实施例。
实例1
图2是示出与该实施例相关的包括存储控制器10的信息处理系统的整体配置的示意图。该信息处理系统例如能够包括至少一个存储控制器10、一个或多个主机20以及至少一个管理服务器70。
将说明与上述图1中的实施例之间的对应关系。存储控制器10对应于存储控制器1,主机20对应于主机2,控制器30对应于控制器3,存储设备40对应于存储设备4,虚拟卷50V对应于虚拟卷5,以及RAID组90对应于RAID6a、6b。尽可能地,将省略是对针对图1给出的说明的重复的说明。
主机20和存储控制器10经由第一通信网络80连接。类似于FC-SAN(光纤通道-存储区网络)或IP-SAN(互联网协议-SAN)对第一通信网络80进行配置。
管理服务器70是用于除了其它之外,改变存储控制器10的设置的设备。例如利用比如LAN(局域网)的第二通信网络81将管理服务器70连接到存储控制器10。此外,该管理服务器还可以被配置为使得向主机20提供存储管理功能,以及从主机20侧改变存储控制器10的设置。
除了存储控制器10包括虚拟卷50V和正常卷50N,还将在下面详细描述存储控制器10,。此外,在附图中,逻辑卷被表示为“LU”。LU是逻辑单元的缩写。
如使用图1所述,虚拟卷50V是虚拟创建的逻辑卷,并且是根据来自主机20的写命令向其分配存储区的卷。也就是,提供给主机20的虚拟卷50V的大小不会与实际存储区的大小一致。正常卷50N是基于RAID组90的存储区创建的卷。
池单元60管理多个RAID组90的存储区。以小盘91(参见图5)为单位,将由池单元60管理的存储区分配给虚拟卷50V。
控制器30将各个卷50V、50N的逻辑地址转换为RAID组90的物理地址并将数据写入到存储设备40,或者将从存储设备40读出的数据的物理地址转换为逻辑地址,并将该数据发送给主机20。
此外,如下所述,控制器30创建数据迁移计划,并且使用来自主机20的访问作为触发来执行该数据迁移计划。
图3是示出控制器30的配置的方框图。可以将多个扩充外罩(augmentationenclosure)43与存储控制器10相连。扩充外罩43作为多个存储设备40的外壳。用户能够根据需要,通过连接扩充外罩43来增加系统的总存储容量。
存储控制器10包括多个控制器30(#0)、30(#1)。即使在由于故障控制器30中的任一控制器关断时,该存储控制器也可以根据其它控制器30继续操作。在不需要进行特别区分的情况下,控制器将被称为控制器30。
控制器30例如包括第一通信电路310(图中的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写出的数据。此外,还存在还将用于管理存储控制器10的配置或操作的管理数据存储在高速缓存存储器40中的情形。
本地存储器350例如存储微处理器360使用的各种数据。如下所述,微处理器360通过从存储设备40或本地存储器360读出并执行计算机程序,来控制存储控制器10的操作。
存储器控制器370是用于将微处理器360连接到本地存储器350和数据传输控制电路330的控制电路。扩展器380是用于扩展第二通信电路320的通信端口的电路。此外,图3中示出的配置是一个示例,并且本发明还适用于具有另一配置的存储控制器。
图4示出了存储控制器10中的程序和表格的示例。例如,程序110到130存储在存储器360中,以及表格140到160存储在高速缓存存储器340中。所述配置还可以是使得程序和表格存储在指定的存储设备40内,并且在需要时加载到存储器中并使用。
RAID控制程序110用于控制RAID。RAID控制程序110使用驱动管理表140等来管理RAID配置。
命令处理程序120用于处理来自主机20的命令。所述命令可以是写命令、读命令或另一命令。该另一命令例如可以包括用于查询卷的创建、卷的删除、卷复制指示或指定的命令。在所述命令处理程序处理写命令和读命令时,命令处理程序120检查“数据迁移目的地”是否已经关联到该处理目标数据。在数据迁移目的地已经关联到该处理目标数据时,在命令处理期间,命令处理程序120将该处理目标数据迁移到预设的迁移目的地。
迁移目的地确定程序130从虚拟卷50V中存储的数据中选择满足第一条件的数据作为迁移目标数据,并且将该数据迁移到满足第二条件的迁移目的地。
例如,第一条件是超过预设负载值的RAID组90的最大负载值。例如,第二条件是低于另一预设负载值的RAID组90的最小负载值。
另一第一条件是RAID组90的最大使用容量,该RAID组90的使用容量大于预设使用容量值。另一第二条件是RAID组90的最小使用容量,该RAID组90的使用容量低于另一预设使用容量值。所述使用容量还可以被表示为百分比。
在主机的访问触发数据迁移时,迁移始发端RAID组90的负载和使用容量都降低。迁移目的地RAID组90的负载和使用容量都增加。
驱动管理表140是用于管理各个存储设备40的信息。驱动管理表140例如管理每个存储设备40的类型和容量以及它所属的RAID组的编号。
页管理表150管理各个页92以及各个小盘91。页管理表150将在下面使用图6到8详细说明。
迁移目的地管理表160管理与迁移目标数据的迁移目的地有关的信息,并且管理用于确定所述迁移目的地的信息。迁移目的地管理表160将在下面使用图9详细说明。
图5是示出虚拟卷50V和小盘91之间的关系的示意图。虚拟卷50V包括多个虚拟存储区500。小盘91包括多个页92。为了方便,图5示出了通过在横向方向对条带形小盘91进行分区而形成的各个页92,但是实际上沿着长条的方向形成每个页92。
在图5中,首先,假设第一小盘91(#0)已经被分配给虚拟卷50V。每次接收到针对虚拟卷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发出新写命令时,从另一RAID组90内选择第二小盘91(#1),并且使用第二小盘91(#1)的起始页92(2-0)。然后,与针对第一小盘91(#0)的描述相同,按序使用第二小盘91(#1)内的每页92。
按照这种方式,多个小盘91(#0)、91(#1)与虚拟卷50V相关联。这些小盘91(#0)、91(#1)分别从不同的RAID组90内选出。也就是,从多个RAID组90内选出的多个小盘91与虚拟卷50V相关联。根据主机20对虚拟卷50V的数据写入,使用相关联的小盘91内的页92。
此外,在主机20请求从虚拟卷50V内删除数据时,与删除目标数据的逻辑地址对应的页92被释放,并且返回到未使用页。不同的写数据被写入到该未使用页。
主机20使用虚拟卷50V越多,稳定地分配到该虚拟卷50V的页92的数目就越大。据此,虚拟卷50V实际包括的物理存储区的量和虚拟卷50V向主机20示出的容量之间的差减小。
将考虑新的RAID组90已经被添加到池单元60的情形。尽管图中省略,但该新RAID组90的编号是#2。在小盘91(#1)已经用尽时,可以从该新的RAID组90(#2)中选择小盘91(#2)。
然而,如果已经添加该新的RAID组90(#2),则在已经用尽现有的小盘91(#1)之前不能使用该新的RAID组90(#2)将是一种浪费。
因此,在该实施例中,创建用于均衡各个RAID组90(#0)到90(#2)的负载和/或使用容量的数据迁移计划,并且主机的访问触发数据迁移。据此,可以开始相对早地使用新近添加到池单元60的RAID组90(#2)。
图6是示出用于管理虚拟卷50V的页管理表150的示意图。如图6中所示,页管理表150例如包括多个表格151到155。在高速缓存存储器340上提供页管理表150,并且然后,将页管理表150存储在指定存储设备40的指定管理区。此外,页管理表150还被复制到本地存储器350,并供微处理器260使用。
池索引151例如是用于管理与池单元60的配置(包括状态和属性)有关的信息,比如正被池单元60管理的RAID组90的识别号。
虚拟卷索引152是用于管理与虚拟卷50V的配置有关的信息。虚拟卷索引152例如管理分配给虚拟卷50V的小盘91的识别号以及所链接的虚拟地址索引153的信息。
虚拟地址索引153是用于管理指向虚拟地址块154的指针的信息。虚拟地址块154是用于管理指向页地址155的指针的信息。
例如,在虚拟卷50V的大小是10GB时,虚拟地址索引153通过将虚拟卷50V分割为每个为4GB的区域(前两个区域是4GB,以及后一区域是2GB),对虚拟卷50V的虚拟地址区域进行管理。虚拟地址块154中的每个都能够涵盖4GB范围。在该实施例中,通过如此将虚拟卷50V的虚拟地址区域分割为两层,即,虚拟地址索引153和虚拟地址块154,来对该虚拟地址区域进行分层管理。可以通过聚焦在一个范围上来进行搜索,并且快速地访问相关页92。此外,上述数值(4GB,10GB,2GB)仅仅是用于说明本发明的示例,并且本发明不限于这些数值。上述数值可以被可变地设置。
页地址155是用于管理配置虚拟卷50V的各个虚拟存储区500(即,虚拟页500)的配置信息的信息。页地址155例如包括物理地址以及页状态,该物理地址示出与该虚拟页相关联的物理页92。
池内RAID组索引110是用于管理由池单元60管理的各个RAID组90的配置信息的信息。池内RAID组索引110例如管理池单元60内的各个RAID组90的信息等。此外,池内RAID组索引110包括用于分别指向未分配小盘队列的起始和结束的指针。
小盘索引120包括用于管理多少个小盘91被分配给每个虚拟卷50V的指针。也就是,小盘索引120管理被分配给每个虚拟卷50V的小盘的数目。
图7示出了图6中的页管理表150已经被初始化的状态。如图7中所示,在虚拟卷50V创建时,将页管理表150初始化。虚拟卷50V中所包括的各个虚拟存储区500(虚拟页500)被映射到所指定的小盘91内的指定页92。
例如,如图7中所示,RAID组90内的第一小盘91的最后一页92用作所述指定页来供初始化使用。比如上述表格组的管理信息存储在第一小盘91中。第一小盘91内的页(从第一页92直到指定数目个页92)用作管理信息保存区。尽管根据可设置的虚拟卷的数目而不同,但是管理信息的总大小将小于小盘大小(例如,1GB)。因此。至少,管理信息将不存储在第一小盘91的最后一页92上。也就是,第一小盘91的最后一页92将不用作管理信息的存储目的地。
因此,仅仅零数据被预先存储在初始化页92中,该初始化页是第一小盘91的最后一页。因此,在对页管理表150进行初始化时,虚拟卷50V内的所有虚拟存储区与该初始化页92相关联。
据此,可以预先检查在定义虚拟卷50V时(在创建虚拟卷50V时),所述表格组的映射中不存在异常。此外,如图8中的粗线所示,在写命令已经发到虚拟卷50V时,将与该写命令中指定的逻辑地址对应的虚拟存储区500,从初始化页92重新连接到所述写数据被写入到的指定页是简单的事情。因此,通过仅仅切换虚拟存储区500的相关目的地,能够存储所述写数据,从而使得可以增强虚拟卷50V的响应性能。
图9示出了迁移目的地管理表160的示例。与上述页管理表150相同,迁移目的地管理表160例如也可以存储在高速缓存存储区中。
迁移目的地管理表160例如通过将小盘索引161与小盘信息管理表162相关联来配置。小盘信息管理表162存储迁移目的地信息以及迁移目的地确定信息,作为用于管理每个小盘的管理信息。
迁移目的地信息是示出用于存储迁移目标数据的存储目的地的信息。例如,被确定为迁移目的地的RAID组90的编号用作迁移目的地信息。此外,迁移目的地信息不限于RAID组编号,并且也可以使用RAID组编号和小盘编号的组合。
迁移目的地确定信息是用于确定迁移目标数据的迁移目的地的信息。该数据被访问的频率例如可以用作迁移目的地确定信息。如下将说明的,也可以使用RAID组90的使用容量(使用比率)作为迁移目的地确定信息。
此外,用于确定迁移目的地的负载信息不限于所述访问频率,并且例如,也可以使用存取大小(写数据的大小)和存取模式(顺序存取或随机存取)。
小盘索引161将小盘信息管理表162中的指定表项与虚拟卷50V相关联。所述指定表项是小盘索引161中示出的与虚拟卷50V相关联的用于存储小盘90的管理信息的表项。
图10是用于理解存储控制器10的整体操作的流程图。在该流程图中还包括用户过程。首先,用户通过利用管理服务器70向存储控制器10发出指定指令,在池单元60中创建RAID组90,并且还对该RAID组90进行格式化,并创建未被分配的小盘队列(S10)。顺序地管理供虚拟卷50V使用的RAID组90以及供正常卷50N使用的RAID组90,该供虚拟卷50V使用的RAID组90在池单元60内管理。
接着,用户通过从管理服务器70向存储控制器10发出另一指定指令,创建虚拟卷50V(S11)。如上所述,在创建虚拟卷50V时,各个虚拟存储区500分别与初始化页92相关联。此时顺序地管理虚拟卷50V和正常卷50N。据此,能够使用普通的管理方法来管理虚拟卷50V和正常卷50N,从而使得可以在存储控制器10内混合虚拟卷50V和正常卷50N。
接着,用户将主机20与虚拟卷50V相连(S12)。用户将虚拟卷50V连接到与主机20相链接的LUN(逻辑单元编号),并且还执行WWN(逻辑单元编号)注册。
主机20识别出虚拟卷50V(S13),并且向虚拟卷50V发出命令,比如写命令。存储控制器10根据来自主机20的命令执行处理,并且将处理结果发送到主机20(S14)。
存储控制器10根据指定时间段或者根据来自管理服务器70的用户指令,确定并存储与虚拟卷50V相关联的各个RAID组90内的数据的迁移目的地(S14)。
当主机20存取在迁移目标处选择的数据时,存储控制器10在处理与该主机存取相关的命令的同时,实现所调度的数据迁移(S15)。每个过程将在下面参照附图详细说明。
图11是示出池创建过程的流程图。下面描述的各个流程图示出了对应过程的概述。本领域技术人员应该能够替换、改变或删除附图中示出的步骤,或者增加新步骤。
当已经发出池创建请求时,开始图11中示出的过程。控制器30将是下述动作的对象。控制器30更新创建目标池单元60的池索引151中的池状态(S20),并且创建RAID组90(S21)。控制器30将池内RAID组索引110的状态变为“处理”(S22)。
控制器30在RAID组90内设置用于保存管理信息的区域(S23),并且还创建小盘索引120(S24)。针对池单元60内的所有小盘91,分别执行下述步骤S26到S28(S25)。
控制器30将与目标小盘对应的页地址155初始化(S26),并且将目标小盘的状态变为“等待格式化”(S27)。控制器30将管理信息比较请求排入用于保存管理信息的保存请求队列中(S28)。
在针对每个小盘91执行步骤S26到S28后,控制器30将池内RAID组索引110的状态变为“有效”(S29)。随后,控制器30在高速缓存存储器340中呈现(stage)零数据(S30),并结束该处理。这是因为,在请求从其中没有写入写数据的虚拟存储区500读取数据时,控制器向主机20返回零数据,而不会访问所述页92,该页92是物理存储区。
图12是用于例示数据和保护代码的示图。如图12(a)中所示,在该实施例中,例如,8字节的保护代码D11被附在每个512字节的数据D10上,并且存储在存储设备40中。保护代码D11所包括的一部分用于验证逻辑地址,以及一部分用于验证误码。下面的描述将集中在用于验证逻辑地址的一部分。
图12(b)示出了保护代码的配置,该保护代码被附在正常卷50N中存储的数据上。与正常卷50N相关的保护代码中的用于验证逻辑地址的一部分包括4-比特的保留区D110、12-比特的LUN区D111以及16-比特的LBA区D112。LBA是逻辑块地址的缩写。与正常卷50N相关联的LUN存储在LUN区D112中。数据D10的逻辑地址存储在LBA区D112中。
图12(c)示出了保护代码的配置,该保护代码被附在虚拟卷50V中存储的数据上。与虚拟卷50V相关的保护代码中的用于验证逻辑地址的一部分包括4-比特的保留区D110、8-比特的RAID组标识区D113、4-比特的小盘标识区D114以及16-比特的小盘内LBA偏移量区D115。用于识别RAID组90的信息存储在RAID组标识区D114中。用于识别小盘91的信息中的最有效4比特存储在小盘标识区D114中。与存储数据D10的小盘91的第一逻辑地址间的偏移量值存储在小盘内LBA偏移量区D115中。
将基于图13和14说明用于管理小盘91的队列。图13是示出队列使用方法的示意图。当创建池单元60时,在等待被格式化小盘队列Q10中,寄存并管理由池单元60管理的各个RAID组90的各个小盘91。当格式化开始时,正在被格式化的小盘91移到等待处理结束小盘队列Q20中。随后,当格式化完成时,格式化后的小盘91移到未分配小盘队列Q30。
图14是示意性地示出各个队列Q10、Q20和Q30的示图。针对每个RAID组90,制备等待格式化小盘队列Q10。随后,当格式化过程开始时,按照指定的顺序,从等待格式化小盘队列Q10内的每个RAID组90中取回小盘91,并且将小盘91连接到等待处理结束小盘队列Q20。如上所述的已经完成格式化的小盘91连接到未分配小盘队列Q30。由于按照小盘与等待处理结束小盘队列Q20的连接顺序完成格式化,所以等待处理结束小盘队列Q20内的各个小盘91的顺序通常与未分配小盘队列Q30内的各个小盘91的顺序一致。
用于对小盘91进行格式化的过程将基于图15和16进行说明。图15示出了整个格式化过程,以及图16示出了格式化过程的一部分。
控制器30检查等待格式化小盘队列Q10,以确定是否存在等待格式化的小盘91(S50)。在小盘91寄存在等待格式化小盘队列Q10中时(S50:是),控制器30以轮询的方式,在池单元60内的每个RAID组90中选择小盘,并且执行下述步骤S51到S54。
选择方法将使用图14中示出的示例说明。在从第一RAID组90(#1)中选择一个小盘91(1-1)后,控制器30从第二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),并且针对所选小盘执行格式化工作(S54)。格式化工作将在下面与图16一起进一步详细说明。
当格式化工作完成时,控制器30使该格式化后的小盘91从等待处理结束小盘队列Q20出队(S55),并且将该格式化后的小盘91排列到未被分配的小盘队列Q30中(S56)。
图16是示出图14中的S54中表示的格式化工作的细节的流程图。控制器30获取处理目标小盘91的识别号(S60),并且确定用于格式化所述目标小盘91的范围(S61)。然后,控制器30获取该目标小盘91的扩展锁(extent lock)(S62)。据此,防止目标小盘91被另一程序使用。
控制器30利用该目标小盘91的指定大小,执行将在下面描述的步骤S64到S70(S63)。也就是,控制器30按照指定大小的单位区域,对目标小盘91进行格式化。
控制器30保留供数据使用的高速缓存分段(S64),以及接着保留供奇偶校验位使用的高速缓存分段(S65)。所述高速缓存分段是用于管理高速缓存存储器340的存储区的单元。
控制器30计算逻辑地址(S66),请求创建零数据(S67),并且另外,请求创建奇偶校验位(S68)。零数据使用在S64中保留的高速缓存分段创建。所述奇偶校验位使用在S65中保留的高速缓存分段创建。控制器30释放被保留来供数据使用的高速缓存分段(S69),并且另外,释放被保留来供奇偶校验位使用的高速缓存分段(S70)。
控制器30解除目标小盘91上的扩展锁(S71),并且在确认完成对目标小盘91的格式化后(S72:是),返回到图15的过程。
图17是示出用于创建虚拟卷50V的过程的流程图。控制器30确定池单元60的状态是否正常(S80)。在池单元60中已经发生故障时(S80:否),不可以创建虚拟卷50V,并且因此控制器30执行错误处理(S81)。在该错误处理中,例如,控制器向用户通知结果,即,由于在池单元60中已经发生异常,所以不能创建虚拟卷50V。
在池单元60正常时(S80:是),控制器30将虚拟卷索引152的状态从“无效”变为“处理”(S82)。在先前制备的虚拟卷识别号中预设“无效”,作为虚拟卷状态的初始值。在创建虚拟卷50V期间,该状态从“无效”变为“处理”。当完成虚拟卷50V的创建时,该状态从“处理”变为“有效”。
控制器30为状态变为“处理”的虚拟卷50V,创建虚拟地址索引153(S83),并且还创建与该虚拟地址索引153相关联的虚拟地址块154(S84)。此外,控制器30创建与虚拟块地址154相关联的页地址155(S85)。
控制器30更新池内RAID组索引110(S86),并且将虚拟卷索引152的状态从“处理”变为“有效”(S87)。控制器30检查是否可以正常地创建虚拟卷50V(S88),并且在能够正常地创建虚拟卷50V时(S88:是),结束该处理。在不能正常地创建虚拟卷50V时(S88:否),控制器执行错误处理(S89)。在该错误处理中,控制器向用户通知结果,即,不能正常地创建虚拟卷50V。
此外,为了方便,按照似乎最后进行关于是否能够正常地创建虚拟卷50V的确定的情形给出说明,但是实际上,在创建每个表格101到104时,进行关于该虚拟卷50V是否能够被正常创建的确定。随后,在不能正常地创建虚拟卷时,形成错误处理。
通过执行图17中示出的处理,创建图5中示出的表格组,并且虚拟卷50V内的每个虚拟存储区500与供初始化使用的每个页92相关联。因此,在虚拟卷50V被正常地创建时,确认正常地执行各个虚拟存储区500与实际页92之间的关联的事实。
图18是示出写命令的处理的流程图。当从主机20接收到写命令时,控制器30确定该命令是否是以虚拟卷50V为目标的写命令(S100)。
在该命令是以正常卷50N为目标的写命令时(S100:否),控制器30执行正常写过程(S101)。在正常写过程中,例如,从主机20接收到的写数据被写入到高速缓存存储器340,并且在完成对高速缓存存储器340的写数据写入时,向主机20通知完成处理。然后,高速缓存存储器340中存储的写数据在合适时候被写入到存储设备40。
在已经接收到以虚拟卷50V为目标的写命令时(S100:是),控制器30通过参照迁移目的地管理表160,确定所述迁移目的地是否已经被设置为分配给写入目标虚拟页500的实际页92(S102)。
在所述迁移目的地已经被设置为所述写数据要被写入的实际页92时(S102:是),控制器30确定在迁移目的地RAID组90中是否存在可用小盘91(S103)。可用小盘91是已经创建且与虚拟卷50V相关联的小盘。如此使用已经创建的小盘91来移动页,使得可以最小化被分配的小盘的数目。也就是,能够有效地使用存储容量。
在不存在可用小盘91时(S103:否),控制器30确定是否存在处于初始化状态的新小盘91(S104)。也就是,控制器30确定在迁移目的地RAID组90内是否可得到能够立即使用的新小盘91。
在迁移目的地RAID组90内不存在新的可用小盘91时(S104:否),控制器30执行错误处理(S107)。在该错误处理中,例如,控制器30经由管理服务器70,向用户通知错误消息,比如“存储容量不足”或“创建RAID组”。
在迁移目的地RAID组90中存在可用小盘91时(S104:是),控制器30跳过S104,并进行到S105。
控制器30执行小盘分配改变过程(S105)和页分配改变过程(S106),以将在作为写入目标的实际页92中存储的数据迁移到在迁移目的地RAID组90内提供的新页92。小盘分配改变过程和页分配改变过程将在下面进一步说明。因此,控制器30移动到图19中的S114。
也就是,在步骤S102到S106,在已经发出针对被设置为作为迁移目的地的实际页92的写命令时,迁移目的地小盘91内的迁移目的地页92与作为写命令的目标的虚拟页500相关联。换言之,作为写入目标的虚拟页500的分配目的地从迁移始发页92切换到迁移目的地页92。
图19是图18中的流程的继续。在迁移目的地RAID组90还未被设置为作为写入目标的实际页(S102:否)时,控制器30确定在写命令中指定的虚拟卷50V中是否存在当前使用中的小盘91(S108)。在存在使用中的小盘91时(S108:是),控制器移到将在下面描述的S112。在不存在使用中的小盘91时(S108:否),控制器30确定是否存在处于初始化状态的要被重新分配给虚拟卷50V的小盘91(S109)。
通常,通过图15中示出的格式化过程,将新小盘设置到初始化状态。然而,在新小盘91未处于初始化状态时(S109:否),控制器30执行错误处理。在该错误处理中,例如,控制器经由管理服务器70向用户通知结果,即,初始化的小盘91不存在。
在新的小盘91处于初始化状态时(S109:是),控制器30执行小盘分配改变过程(S111)。小盘分配改变过程将使用图21详细说明,但是简而言之,控制器30从未分配小盘队列Q30中选择一个小盘91,将该所选小盘91与虚拟卷50V相关联,并且将该小盘91的状态变为“已分配(使用中)”。
控制器30确定小盘91内的各个页92中的要被使用的页92是否处于初始化状态(S112)。在要被使用的页92处于初始化状态时(S112:是),控制器执行页分配改变过程(S113).
页分配改变过程将在下面使用图22详细描述。但是简而言之,在页分配改变过程中,控制器30将分配给虚拟卷50V的页92的状态变为“已分配(使用中),并且更新虚拟地址块154和页地址155。在S113之后,控制器进行到S114。
在要被使用的页92未处于初始化状态时(S112:否),也就是,在要被使用的页92不是供初始化使用的页时,控制器30跳过S113,并且进行到S114。
控制器30保留用于存储写数据的高速缓存分段(S114),以及还创建用于传送写数据的DMA(直接存储器存取)传送列表(S115)。随后,控制器30计算保护代码的地址部分(LA)(S116)。
参见图20,控制器30执行将从主机20接收的写数据DMA传送到高速缓存存储器340(S117)。在将写数据存储在高速缓存存储器340中后,控制器30向主机20通知结果,即,已经完成写命令处理(S118)。
用于在完成对高速缓存存储器340的写数据写入后向主机20通知处理完成的方法称为异步方法。相反,用于等待直到写数据已经写入到存储设备40才向主机20通知处理完成的方法称为同步方法。可以使用异步方法和同步方法中的任何一种。
控制器30将写数据中指定的逻辑地址转换为用于存储在存储设备40中的物理地址(S119)。控制器30保留高速缓存分段(S120)。控制器30从存储设备40中读出创建奇偶校验位所需要的旧数据(S121),并且该读出的旧数据存储在S120中保留的高速缓存分段中。
控制器30基于从存储设备40读出的旧数据以及从主机20接收的写数据,计算新的奇偶校验位(S122)。控制器30将高速缓存存储器340中存储的写数据传送并存储在存储设备40(在图20中被表示为磁盘)中(S123)。
控制器30将高速缓存存储器340中存储的写数据的状态从“脏”变为“干净”(S124)。该“脏”状态表示写数据已经被写入到存储设备40的状态。最后,控制器30释放S114和S120中保留的高速缓存分段,并且结束该处理(S125)。
如上所述,在迁移目的地已经被设置为作为写入目标的实际页92(迁移始发页)时,根据步骤S102到S106,与该迁移始发页92相关联的虚拟页500重新与迁移目的地页92相关联。因此,在步骤S119到S125,写数据被写入到迁移目的地页92。据此,可以在处理写命令的同时,将迁移目标数据从迁移始发页92迁移到迁移目的地页92。
图21是示出图18的S105和图19中的S111示出的小盘分配改变过程的细节的流程图。控制器30将处理目标小盘91的状态变为指定状态(S130)。
例如,在新的小盘91要被分配给虚拟卷50V时,该新的小盘91的状态从“未被分配(未使用)”变为“已分配(使用中)”。此外,例如,在被分配给虚拟卷50V的小盘91要被释放时,该小盘91的状态从“已分配(使用中)”变为“等待格式化”。
在改变该小盘91的状态后,控制器30更新与该小盘91对应的虚拟地址索引153(S131)。此外,控制器30更新小盘索引120(S132),并且接着更新池内RAID组索引110(S133)。
图22是示出图18的S106和图19中的S113示出的页分配改变过程的细节的流程图。控制器30将处理目标页92的状态变为指定状态(S140)。例如,在新的页92要被分配给虚拟卷50V时,该新的页92的状态从“未被分配(未使用)”变为“已分配(使用中)”。此外,例如,在被分配给虚拟卷50V的页92要被释放时,该被分配的页92的状态从“已分配(使用中)”变为“等待格式化”。用于将新页92分配给虚拟卷50V的方法将在下面使用图23进一步详细说明。
在改变页状态后,控制器30更新与处理目标页92对应的虚拟地址块154(S141),并且还更新与处理目标页92对应的页地址155(S142)。随后,控制器30将管理信息(图6中示出的表格组)保存到管理信息保存区中(参见图11中的S23)(S143)。
图23是示出图22的S140中示出的处理的一个部分的流程图。如上所述,根据来自主机20的写命令,以小盘为单位将实际存储区分配给虚拟卷50V,并且按序使用该分配的小盘91内的实际页92。当所分配的小盘91已经用尽时,将新的小盘91分配给虚拟卷50V。用于使用页92的方法将在下面参照图23说明。
控制器30提供用于管理每个页92的状态的页状态管理表158。该表158例如包括用于小盘识别号的列1580、用于页识别号的列1581以及示出页的状态的列1582。
例如,在页状态列中设置所制备的状态中的任何一个状态,比如“使用中(或已分配)”、“未使用(或未被分配)”、“空闲(或等待格式化)”。此外,为了便于说明,页状态管理表158使得所述状态类似于页地址155而表现为不同的信息,但是实际上,能够使用仅仅页地址155来管理每页的状态。
控制器30参照表158,并且在当前使用的小盘91内存在未使用页92时,使用该未使用页92(S1400)。在当前使用的小盘91内不存在未使用页92时,控制器30参照表158,并且在当前使用的小盘91内存在空闲页92时,使用该空闲页92(S1401)。
在当前使用的小盘91中既不存在未使用页92也不存在空闲页92时,控制器30参照表158,并且使用所使用的小盘91内的空闲页(S1402)。也就是,控制器30检测和重用已经在目标虚拟卷50V中使用的小盘91中已经释放的页92。
在已使用的小盘91内不存在空闲页92时,控制器30将未使用小盘91与虚拟卷50V相关联,并且将该小盘91中的第一页92分配给虚拟卷50V,如图19中所述。
图24是示出读命令的处理的流程图。控制器30确定从主机20接收的命令是否是以虚拟卷50V为目标的读命令(S150)。
在从主机20接收的命令是针对正常卷50N的读命令时(S150:否),控制器30执行正常读过程(S151)。例如,控制器30确定主机20所请求的数据是否存储在高速缓存存储器340中。在高速缓存存储器340中存在所请求的数据时,控制器30从高速缓存存储器340读取该数据,并且将该读出的数据发送给主机20。在高速缓存存储器340上不存在主机20所请求的数据时,控制器30从存储设备40读取该数据,将该数据存储在高速缓存存储器340上,并且将该数据发送给主机20。
在从主机20发出的命令是用于从虚拟卷50V读出数据的读命令时(S150:是),控制器30获取读取目标虚拟卷50V的扩展锁(S152)。
读命令指定逻辑地址作为数据读取目的地。控制器30检测与所指定的逻辑地址对应的虚拟存储区500,参照图6中示出的表格组,并且获取已经被分配给该虚拟存储区500的页92的状态。控制器30确定读取目标页92的状态是否是“初始化状态”(S153)。
在读取目标页92处于初始化状态时(S153:是),控制器30确定要被发送到主机20的NULL数据是否存储在高速缓存存储器340上(S160)。如图11的S130中所述,当创建池单元60时,NULL数据被预先存储在高速缓存存储器340的指定高速缓存分段中。因此,在正常情况下,控制器确定步骤S160中为“是”,并且进行到将在下面描述的S161。在NULL数据还未存储在高速缓存存储器340上时(S160:否),控制器移到下面说明的S155,从指定小盘的指定页(例如,供初始化使用的页)读取数据,并且将该读出的NULL数据发送给主机20(S155到S159,S171到S175)。
回到S153,在读取目标页92未处于初始化状态时(S153:否),也就是,写数据已经被写入到读取目标页时,控制器30计算与读取目标数据相关的奇偶校验位(S154)。随后,控制器30保留高速缓存分段(S155),并且将读请求发给第二通信电路320(S156)。控制器30将逻辑地址转换为物理地址(S157),并且计算保护代码的地址部分(LA)(S158)。控制器30利用第二通信电路320,将读取目标数据从存储设备40迁移到高速缓存存储器340(S159)。
进行到图25。控制器30设置用于执行从高速缓存存储器340到第一通信电路310的DMA传送的DMA传送列表(S161)。接着,控制器30经由第一通信电路310,将高速缓存存储器340上存储的数据发送给主机20(S162)。随后,控制器30确定迁移目的地RAID组90是否被设置为与和读命令相关的虚拟页500相关联的实际页92(S163)。在迁移目的地RIAD组90未被设置为读取目标实际页92时(S163:否),处理进行到图26中示出的流程图。
在迁移目的地RAID组90被设置为读取目的实际页92时(S163:是),控制器30确定在迁移目的地RAID组90中是否存在可用小盘91(S164)。在不存在可用小盘91时(S164:否),控制器确定在迁移目的地RAID组90中是否存在处于初始化状态的新小盘91(S165)。
在迁移目的地RAID组90中不存在处于初始化状态的新小盘91时(S165:否),控制器30将处理移到图26中示出的流程图。这是因为不可能将迁移目标数据迁移到迁移目的地RAID组90。
或者,在迁移目的地RAID组90内存在可用小盘91(S164:是)或迁移目的地RAID组具有处于初始化状态的新小盘91(S165:是)时,控制器30向主机20通知结果,即,读命令处理完成(S166)。
此外,控制器30执行下述步骤来在迁移目的地RAID组90内迁移所读出的数据。控制器30执行使用图21描述的小盘分配过程(S167),以及使用图22描述的页分配过程(S168)。据此,将读取目标虚拟页500从与迁移始发页92关联变到与迁移目的地RAID组90内的新页92相关联。
控制器30将高速缓存存储器340上的数据迁移并写入到存储设备40(S169)。控制器30释放高速缓存分段(S170),并且还解除扩展锁(S171)。
或者,在迁移目的地RAID组90未被设置为读取目标页92时(S163:否),控制器移到图26中的处理。
控制器30释放S155中保留的高速缓存分段(S172),并且还解除扩展锁(S173)。最后,控制器30向主机20通知结果,即,完成读命令处理(S174),并且结束该处理。
按照这种方式,控制器30在处理读命令的同时,将迁移目标数据迁移到预先设置的迁移目的地。因此,将描述用于确定迁移目的地的方法。
图27是示出用于确定迁移目的地的过程的流程图。该过程也可以称为重新分配数据的过程。例如,针对每个预先设置的指定时间段执行该过程。或者,也可以根据来自用户的指令执行该过程。
控制器30清空在迁移目的地管理表160中设置的与迁移目的地RAID组90有关的信息(S160)。也就是,在创建新的数据迁移计划之前,控制器清除前次创建的数据迁移计划。针对每个池单元(S181),执行用于分发负载的过程(S182)以及用于调整使用容量的过程(S183)。
图28是图27的S182中示出的负载分发过程的流程图。控制器30根据预设条件,选择迁移始发RAID组90和迁移目的地RAID组90(S190)。
例如,控制器30从使用容量小于50%的RAID组中,选择所具有的负载最低的RAID组作为迁移目的地RAID组。另外,控制器30从所述RAID组中选择所具有的负载最高的RAID组作为迁移始发RAID组。
在不存在满足上述条件的RAID组并且不可以确定迁移始发RAID组和迁移目的地RAID组中的任何一个时,控制器30从图28中示出的循环中退出。
控制器30确定迁移始发小盘(S191)。在到此为止的说明中,已经描述了以页为单位迁移数据的情形,但是也可以以小盘为单元迁移数据。
在属于迁移始发RAID组的各个小盘中,控制器30从具有高负载的小盘中顺序确定迁移始发小盘。假设迁移始发小盘中指定的小盘的总负载将小于RAID组之间的负载差的50%。
根据数据的迁移,迁移始发RAID组的负载将降低,并且迁移目的地RAID组的负载将增加。通过在选择迁移始发小盘时考虑RAID组之间的负载差,可以防止发生作为数据迁移的结果,迁移始发RAID组的负载变得小于迁移目的地RAID组的负载。
控制器30将使用上述方法选择的迁移始发RAID组、迁移目的地RAID组和迁移始发小盘,存储在迁移目的地管理表160中(S192)。控制器30从处理目标中排除在S190中选择的迁移始发RAID组和迁移目的地RAID组(S193)。
控制器30重复这个处理,直到池单元60内的RAID组的数目变为1或更小,或者再也不能找到满足上述条件的RAID组。
图29是图27的S183中示出的负载分发过程的流程图。控制器30根据预设条件,选择迁移始发RAID组90和迁移目的地RAID组90(S200)。
例如,控制器30从使用容量小于50%的RAID组中,选择所具有的负载最低的RAID组作为迁移目的地RAID组。另外,控制器30从所述RAID组中选择所具有的负载最高的RAID组作为迁移始发RAID组。
在不存在满足上述条件的RAID组并且不可以确定迁移始发RAID组和迁移目的地RAID组中的任何一个时,控制器30从图29中示出的循环中退出。
控制器30确定迁移始发小盘(S191)。例如,从属于迁移始发RAID组的各个小盘中,控制器30从还未被确定为作为迁移目的地且具有低负载的小盘中顺序确定迁移始发小盘。负载为0的小盘将被作为选择目标移除。
控制器30确定迁移始发小盘(S201)。被选择作为迁移始发小盘的小盘的数目维持在小于RAID组之间的未使用小盘数目差的50%。
此外,在迁移目的地RAID组的负载高于迁移始发RAID组的负载时,被选择作为迁移始发小盘的小盘的数目被保持为小于迁移目的地RAID组中的被指定作为迁移目的地的小盘的数目。
在该如此配置的实施例中,在生成主机的访问之前,创建并存储用于迁移被分配给虚拟卷50V的实际页92的数据的数据迁移计划。在该实施例中,当生成针对迁移目标数据的主机访问时,可以在处理与该主机访问有关的命令的同时,迁移该迁移目标数据。也就是,在用于处理命令的步骤序列期间执行数据迁移,而无需执行与用于命令处理的程序不同的专用程序来进行数据迁移。
因此,在该实施例中,可以使用相对简单的配置来相对有效地迁移数据,基本上均匀地使用池单元60内的实际存储区,以及抑制访问特定RAID组的趋势。据此,可以防止存储控制器10中的响应性能的劣化。
根据该实施例的基本配置,描述该实施例的与上述数据迁移有关的技术效果。该实施例的基本配置是以小盘为单位将实际存储区分配给虚拟卷50V且使得一个小盘91专属一个虚拟卷50V的配置。
在该实施例中,如图30中所示,可以有效地使用作为物理存储区的RAID组90。图30是示意性地示出本发明的效果的示图。图30(a)示出了没有应用本发明的情形,以及图30(b)示出了已经应用本发明的情形。
将首先说明正常卷50N的情形。在正常卷50N时,可以使用RAID组90内的连续存储区。因此,将不会在单个存储条中混合与多个正常卷50N有关的数据。
在虚拟卷50V时,根据需要分配实际存储区,并且分散地管理数据。在实际存储区以页为单位分配给虚拟卷时,必须执行控制,从而在同一存储条中不混合与多个虚拟卷相关的数据。这是因为在单个存储条中混合多个卷使得奇偶校验位创建过程复杂,增加了数据输入/输出上的开销,并且降低了存储控制器的性能。
因此,如图30(a)中所示,用于存储数据使得每页的起始部分与存储条的起始部分一致的方法是可想到的。根据这个方法,不会发生在单个横向存储条内混合不同卷的数据的情形。
然而,在该实施例的存储控制器10中,由于可以自由地设置配置RAID组90的存储设备90的数目,所以页大小将不会总是与存储条大小一致。在页大小和存储条大小不匹配时,布置所述数据从而使得页的起始部分与存储条的起始部分一致提升了浪费空间,如图30(a)中的白色区域所示。因此,问题在于,在图30(a)中示出的方法中,不可能有效地使用RAID组90的实际存储区,从而导致使用效率低。
因此,如图30(b)中所示,在本发明中,实际存储区没有以页为单位分配给虚拟卷,而是实际存储区以具有多个页的小盘91为单位分配给虚拟卷。因此,如上所述,每次接收到与虚拟卷50V有关的写命令时,连续地使用小盘91内的页92。小盘91内的各个页92与同一虚拟卷50V相关联。在同一小盘91内不会混合与不同虚拟卷相关的页92。按照这种方式,可以有效地使用根据该实施例的RAID组90的实际存储区。
在该实施例中,使用连续的编号来管理各个卷50V、50N,而无需在虚拟卷50V的识别号和正常卷50N的识别号之间进行特别区分。此外,在该实施例中,利用连续的编号对用于虚拟卷50V的RAID组90以及提供有正常卷50N的RAID组90进行管理,而无需在它们之间进行特别区分。因此,该实施例的存储控制器10能够使用相对简单的控制体系架构,共同地管理虚拟卷50V和正常卷50N,以及混合这两种卷50V、50N。
在本发明中,从多个RAID组90中按序选择小盘91,并且将小盘91分配给虚拟卷50V。因此,可以使得池单元60内的各个RAID组90的负载均匀。
在该实施例中,如使用图7和17所述,当创建虚拟卷50V时,各个表格151到155彼此关联,并且虚拟卷50V内的所有虚拟存储区被分配给供初始化使用的页92。
因此,在该实施例中,可以确认在正常创建虚拟卷50V时,正常地执行各个虚拟存储区500和实际页92之间的关联。也就是,在该实施例中,在接收写命令之前,完成小盘91和初始化页92到虚拟卷50V的临时分配。据此,可以在接收写命令之前,预先检查虚拟卷50V是否正常操作,从而增强可靠性和可用性。
此外,在该实施例中,在已经接收到写命令时,通过将与在写命令中执行的逻辑地址对应的虚拟存储区500的关联目的地从临时分配的初始化页92切换到指定小盘91内的指定页92,确定该关联目的地。据此,可以相对快速地处理写命令,以及增强存储控制器10的响应性能。
实例2
将基于图31和32描述第二实施例。该实施例对应于第一实施例的变型。因此,说明将聚焦在与第一实施例的不同之处。当创建数据迁移计划时,该实施例释放虚拟卷50V中的仅仅存储有NULL数据的实际页92,并且将该页返回到未使用页。
图31是示出根据该实施例的迁移目的地确定过程的流程图。与图27中示出的流程图相比,该流程图还包括用于删除零数据(NULL数据)的过程(S210)。在该迁移目的地确定过程中,控制器30首先将仅仅存储零数据的实际页92返回到未使用页,并且然后,执行负载分发过程和使用容量调整过程。
图32是零数据删除过程的流程图。控制器30针对每个RAID组执行下述处理(S2101)。控制器30在处理目标RAID组90的各个页92中检测仅仅存储零数据的页92。
控制器30将与仅仅存储零数据的页92对应的虚拟页500与如上针对图7所述的供初始化使用的指定页相关联(S1203),并且更新页管理表160(S1204)。
具有上述配置的该实施例展现与第一实施例相同的效果。此外,在该实施例中,当创建数据迁移计划时,控制器30释放仅仅存储NULL数据的实际页92,并且将该被释放的实际页返回为未使用实际页92,从而使得可以有效地使用池单元60内的实际存储区。也就是,在该实施例中,每次创建数据迁移计划时,可以释放池单元60内的页92中的被浪费使用的页92。
本发明不限于上述实施例。例如,本领域技术人员将能够在不背离本发明的范围的情况下进行各种增加和变更,从而合适地组合上述实施例。参考标记列表
1存储控制器
2主机
3控制器
4存储设备
5(1),5(2)虚拟卷
5A虚拟存储区
6a,6b RAID组
7小盘
8页
10存储控制器
20主机
30控制器
40存储设备
50V虚拟卷
60池单元
70管理服务器
90RAID组
91小盘
92页
500虚拟页
Claims (14)
1.一种存储控制器,包括:
虚拟形成的虚拟卷;
多个RAID组,所述RAID组包括一个或多个存储设备;
池单元,用于管理多个第一实际存储区,所述多个第一实际存储区以条带形分别布置在每个所述RAID组中,并且所述多个第一实际存储区分别具有多个第二实际存储区;
控制器,在从高级设备发出了与所述虚拟卷相关的写命令的情况下,所述控制器从各个第一实际存储区中的指定的第一实际存储区中包括的各个第二实际存储区中选择指定的第二实际存储区,并且将所述指定的第二实际存储区和所述虚拟卷内的与所述写命令对应的指定区域相关联,并且,所述控制器将一个虚拟卷与一个第一实际存储区相关联;
迁移目的地确定单元,所述迁移目的地确定单元从与所述虚拟卷相关联的各个第二实际存储区中选择作为迁移目标的第二实际存储区,并且从除了被布置有各个第一实际存储区中的作为迁移目标的第二实际存储区的RAID组之外的另一RAID组中的各个第一实际存储区中,选择作为迁移目的地的第一实际存储区,所述作为迁移目的地的第一实际存储区要成为所述作为迁移目标的第二实际存储区中存储的数据的迁移目的地;
迁移目的地存储单元,将所述作为迁移目标的第二实际存储区与所述作为迁移目的地的第一实际存储区相关联,并且存储与所述作为迁移目的地的第一实际存储区相关联的所述作为迁移目标的第二实际存储区;以及
命令处理器,在所述高级设备已经发出与作为迁移目标的第二实际存储区对应的命令的情况下,在命令处理期间,所述命令处理器将所述作为迁移目标的第二实际存储区中存储的数据迁移到由所述迁移目的地存储单元存储的作为迁移目的地的第一实际存储区。
2.根据权利要求1所述的存储控制器,其中
(1)所述迁移目的地存储单元存储:
(1-1)迁移目标信息,所述迁移目标信息指明所述作为迁移目标的第二实际存储区,
(1-2)迁移目的地信息,所述迁移目的地信息指明所述作为迁移目的地的第一实际存储区,
(1-3)与每个所述RAID组的负载相关的负载信息,以及
(1-4)与每个所述RAID组的使用容量相关的使用容量信息,
(2)所述迁移目的地确定单元,
(2-1)在已经到达指定时间或用户已经发出指令时,删除在所述迁移目的地存储单元中存储的迁移目的地信息,
(2-2)从各个第二实际存储区中释放仅仅存储有NULL数据的第二实际存储区,并且将所述仅仅存储有NULL数据的第二实际存储区变为未使用的第二实际存储区,并且另外
(2-3)执行负载分发过程,所述负载分发过程基于负载信息,并且创建新的迁移目的地信息,并将所述新的迁移目的地信息存储在所述迁移目的地存储单元中,所述新的迁移目的地信息用于将负载相对较高的第二实际存储区迁移到负载相对较低的第一实际存储区,以及
(2-4)执行使用容量调整过程,所述使用容量调整过程基于使用容量信息,并且所述使用容量调整过程产生新的迁移目的地信息,并将所述新的迁移目的地信息存储在所述迁移目的地存储单元中,所述新的迁移目的地信息用于将具有相对较大的使用容量的第一实际存储区中的第二实际存储区迁移到具有相对较小的使用容量的第一实际存储区,以及
(3)所述命令处理器,
(3-1)在从所述高级设备已经发出对于所述作为迁移目标的第二实际存储区的写命令的情况下,读出在所述作为迁移目标的第二实际存储区中存储的数据,将所读出的数据和与所述写命令相关的写数据进行合并,并且将所述合并后的数据写入到所述作为迁移目的地的第一实际存储区内的第二实际存储区中,并且另外,向所述高级设备通知写命令处理已经完成,以及
(3-2)在从所述高级设备已经发出对于所述作为迁移目标的第二实际存储区的读命令的情况下,从所述作为迁移目标的第二实际存储区读出数据并将该数据发送到所述高级设备,并且在向该高级设备通知读命令处理已经完成后,将从所述作为迁移目标的第二实际存储区读出的数据写入到所述作为迁移目的地的第一实际存储区内的第二实际存储区中。
3.根据权利要求1所述的存储控制器,其中,在从所述高级设备已经发出对于所述作为迁移目标的第二实际存储区的写命令的情况下,所述命令处理器读出在所述作为迁移目标的第二实际存储区中存储的数据,将所述读出的数据和与所述写命令相关联的写数据进行合并,并且将所述合并后的数据写入到所述作为迁移目的地的第一实际存储区内的第二实际存储区中。
4.根据权利要求3所述的存储控制器,其中,在从所述高级设备已经发出针对所述作为迁移目标的第二实际存储区的读命令的情况下,所述命令处理器从所述作为迁移目标的第二实际存储区读出数据,并将该数据发送到所述高级设备,并且在向所述高级设备通知读命令处理已经完成之后,将已经从所述作为迁移目标的第二实际存储区读取的数据写入到所述作为迁移目的地的第一实际存储区内的第二实际存储区中。
5.根据权利要求3所述的存储控制器,其中
所述迁移目的地存储单元存储:
迁移目标信息,所述迁移目标信息指明作为迁移目标的第二实际存储区,
迁移目的地信息,所述迁移目的地信息指明所述作为迁移目的地的第一实际存储区,和
与每个所述RAID组的负载相关的负载信息,并且
所述迁移目的地确定单元删除在所述迁移目的地存储单元中存储的迁移目的地信息,基于所述负载信息创建新的迁移目的地信息,并将所述新的迁移目的地信息存储在迁移目的地存储单元,所述新的迁移目的地信息用于将负载相对较高的第二实际存储区迁移到负载相对较低的第一实际存储区。
6.根据权利要求3所述的存储控制器,其中
所述迁移目的地存储单元存储:
迁移目标信息,所述迁移目标信息指明作为迁移目标的第二实际存储区,
迁移目的地信息,所述迁移目的地信息指明所述作为迁移目的地的第一实际存储区,
与每个所述RAID组的负载相关的负载信息,和
与每个所述RAID组的使用容量相关的使用容量信息,并且
所述迁移目的地确定单元删除存储在所述迁移目的地存储单元中的迁移目的地信息,基于所述负载信息产生新的迁移目的地信息,并将所述新的迁移目的地信息存储在迁移目的地存储单元,所述新的迁移目的地信息用于将负载相对较高的第二实际存储区迁移到负载相对较低的第一实际存储区内,并且,为了将具有相对较大使用容量的第一实际存储区内的第二实际存储区迁移到具有相对较小使用容量的第一实际存储区,基于所述使用容量信息创建新的迁移目的地信息,并且将所述新的迁移目的地信息存储在所述迁移目的地存储单元。
7.根据权利要求5所述的存储控制器,其中,继删除在所述迁移目的地存储单元中存储的迁移目标信息之后,所述迁移目的地确定单元从各个第二实际存储区中释放仅仅存储有NULL数据的第二实际存储区,并将所述仅仅存储有NULL数据的第二实际存储区变为未使用的第二实际存储区。
8.根据权利要求1所述的存储控制器,其中,所述迁移目的地确定单元在第一实际存储区单元中选择多个作为迁移目标的第二实际存储区。
9.根据权利要求1所述的存储控制器,其中,在创建所述虚拟卷的情况下,所述控制器将所述虚拟卷中的各个虚拟存储区与存储供初始化用的初始数据的第二实际存储区相关联,并且,在从所述高级设备已经发出与所述虚拟卷相关的写命令的情况下,所述控制器将所述虚拟存储区的与所述写命令对应的关联目的地从所述供初始化使用的第二实际存储区切换到所选择的指定的第二实际存储区。
10.根据权利要求9所述的存储控制器,其中,所述控制器将所述未使用的第二实际存储区与所述虚拟卷相关联,作为所述指定的第二实际存储区,所述未使用的第二实际存储区接在根据前一个写请求与所述虚拟卷相关联的第二实际存储区之后。
11.根据权利要求10所述的存储控制器,其中,对于每个指定大小,在存储在所述虚拟卷中的数据中设置保护代码,所述保护代码包括用于标识所述RAID组的数据、用于标识所述第一实际存储区的数据以及用于标识所述第一实际存储区内的第二实际存储区的数据。
12.一种用于控制虚拟卷和池单元的方法,实际存储区根据写命令而被分配给所述虚拟卷,所述虚拟卷具有多个虚拟存储区,所述池单元用于管理正在被创建的多个RAID组,并且此外,每个RAID组具有多个第一实际存储区以及与所述虚拟存储区对应的多个第二实际存储区,每个第一实际存储区具有条带形以横跨多个存储设备,
所述方法包括:
在从高级设备已经发出与所述虚拟卷相关的写命令的情况下,将各个第一实际存储区的指定的第一实际存储区中包括的指定的第二实际存储区与和所述写命令对应的虚拟存储区相关联,以使得多个所述虚拟卷不与一个第一实际存储区相关联;
将从所述高级设备接收到的写数据存储在要与所述虚拟存储区相关联的指定的第二实际存储区中;
从与所述虚拟存储区相关联的各个第二实际存储区中,选择负载相对较高的第二实际存储区用作作为迁移目标的第二实际存储区;
选择第一实际存储区作为作为迁移目的地的第一实际存储区,所述作为迁移目的地的第一实际存储区是在所述作为迁移目的的第二实际存储区中存储的数据的迁移目的地,所选择的第一实际存储区是除了布置有各个第一实际存储区中的作为迁移目标的第二实际存储区的RAID组之外的另一RAID组内的各个第一实际存储区中的一个第一实际存储区并且具有相对低的负载;
将所述作为迁移目标的第二实际存储区和所述作为迁移目的地的第一实际存储区相关联,并且存储与所述迁移目的地存储单元相关联的所述作为迁移目标的第二实际存储区;以及
在所述高级设备已经发出与所述作为迁移目标的第二实际存储区对应的写命令的情况下,读取所述作为迁移目标的第二实际存储区中存储的数据,将所读出的数据与和所述写命令相关联的数据进行合并,将所述合并后的数据写入所述作为迁移目的地的第一实际存储区内的第二实际存储区。
13.根据权利要求12所述的虚拟卷控制方法,包括:
在从所述高级设备已经发出对于所述作为迁移目标的第二实际存储区的读命令的情况下,从所述作为迁移目标的第二实际存储区读取数据并将该数据发送到所述高级设备,并向所述高级设备通知对所述读命令的处理已经完成,随后,将从所述作为迁移目标的第二实际存储区读出的数据写入所述作为迁移目的地的第一实际存储区内的第二实际存储区。
14.一种存储控制器,包括:
虚拟形成的虚拟卷;
多个RAID组,所述RAID组包括一个或多个存储设备;
池单元,用于管理多个第一实际存储区,所述多个第一实际存储区以条带形分别布置在每个所述RAID组中,并且所述多个第一实际存储区分别具有多个第二实际存储区;
控制器,在从高级设备已经发出与所述虚拟卷相关的写命令的情况下,所述控制器从各个第一实际存储区中的指定的第一实际存储区中包括的各个第二实际存储区中,选择指定的第二实际存储区,并且将所述指定的第二实际存储区和所述虚拟卷内的与所述写命令对应的指定区域相关联,并且,所述控制器将一个虚拟卷与一个第一实际存储区相关联;
迁移目的地确定单元,所述迁移目的地确定单元从与所述虚拟卷相关联的各个第一实际存储区中选择作为迁移目标的第一实际存储区,并且从除了被布置有所述作为迁移目标的第一实际存储区的RAID组之外的其它RAID组中选择迁移目的地RAID组,所述迁移目的地RAID组要成为所述作为迁移目标的第一实际存储区中存储的数据的迁移目的地;
迁移目的地存储单元,将所述作为迁移目标的第一实际存储区与所述迁移目的地RAID组相关联,并存储与所述迁移目的地RAID组相关联的所述作为迁移目标的第一实际存储区;以及
命令处理器,在所述高级设备已经发出与所述作为迁移目标的第一实际存储区对应的命令的情况下,在命令处理期间,所述命令处理器将所述作为迁移目标的第一实际存储区中存储的数据迁移到由所述迁移目的地存储单元存储的迁移目的地RAID组。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/005297 WO2011042940A1 (en) | 2009-10-09 | 2009-10-09 | Storage system and control method thereof, implementing data reallocation in case of load bias |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102549542A true CN102549542A (zh) | 2012-07-04 |
Family
ID=42103941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801611423A Pending CN102549542A (zh) | 2009-10-09 | 2009-10-09 | 负载偏差时实现数据重新分配的存储系统及其控制方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8225039B2 (zh) |
EP (2) | EP2450785A1 (zh) |
JP (1) | JP5438827B2 (zh) |
CN (1) | CN102549542A (zh) |
WO (1) | WO2011042940A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102945140A (zh) * | 2012-09-26 | 2013-02-27 | 曙光信息产业(北京)有限公司 | 一种磁盘融合方法 |
CN105808171A (zh) * | 2016-04-01 | 2016-07-27 | 浪潮电子信息产业股份有限公司 | 一种平衡存储的方法、装置和系统 |
CN106687911A (zh) * | 2014-09-15 | 2017-05-17 | 微软技术许可有限责任公司 | 不损害数据完整性的在线数据移动 |
CN111858188A (zh) * | 2019-04-29 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 存储管理的方法、设备和计算机程序产品 |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2211263A3 (en) * | 2009-01-23 | 2013-01-23 | Infortrend Technology, Inc. | Method for performing storage virtualization in a storage system architecture |
US20110276776A1 (en) * | 2010-05-07 | 2011-11-10 | Tatu Ylonen Oy Ltd | Addressing for Huge Direct-Mapped Object Systems |
JP5545108B2 (ja) * | 2010-08-04 | 2014-07-09 | 富士通株式会社 | ストレージシステム、制御装置および制御方法 |
US8468303B2 (en) * | 2010-09-27 | 2013-06-18 | Hitachi, Ltd. | Method and apparatus to allocate area to virtual volume based on object access type |
US9110591B2 (en) * | 2011-04-22 | 2015-08-18 | Hewlett-Packard Development Company, L.P. | Memory resource provisioning using SAS zoning |
US8667220B2 (en) * | 2011-05-30 | 2014-03-04 | Hitachi, Ltd. | Computer system management apparatus and management method |
JP5849794B2 (ja) | 2012-03-16 | 2016-02-03 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム |
JP5884606B2 (ja) * | 2012-03-30 | 2016-03-15 | 富士通株式会社 | ストレージ管理方法、システム、およびプログラム |
US8930745B2 (en) * | 2012-04-16 | 2015-01-06 | Hitachi, Ltd. | Storage subsystem and data management method of storage subsystem |
US9229901B1 (en) * | 2012-06-08 | 2016-01-05 | Google Inc. | Single-sided distributed storage system |
US9104590B2 (en) * | 2012-07-20 | 2015-08-11 | Hitachi, Ltd. | Storage system including multiple storage apparatuses and pool virtualization method |
US9134908B2 (en) * | 2013-01-09 | 2015-09-15 | Apple Inc. | Logical volume space sharing |
GB2512604A (en) | 2013-04-03 | 2014-10-08 | Ibm | Flexibly storing defined presets for configuration of a storage controller |
JP6073471B2 (ja) * | 2013-05-17 | 2017-02-01 | 株式会社日立製作所 | ストレージ装置 |
WO2014188479A1 (ja) * | 2013-05-20 | 2014-11-27 | 株式会社日立製作所 | ストレージ装置及びストレージ装置の制御方法 |
JP6152704B2 (ja) * | 2013-05-28 | 2017-06-28 | 富士通株式会社 | ストレージシステム、情報処理装置の制御プログラム、およびストレージシステムの制御方法 |
US9329788B2 (en) | 2013-07-02 | 2016-05-03 | Hitachi, Ltd. | Computer system and method for allocating and recovering virtual volumes |
JP6255893B2 (ja) * | 2013-10-24 | 2018-01-10 | 富士通株式会社 | ストレージ制御装置、およびストレージ制御プログラム |
WO2015087442A1 (ja) * | 2013-12-13 | 2015-06-18 | 株式会社日立製作所 | ストレージシステムの移行方式および移行方法 |
JP2016012166A (ja) | 2014-06-27 | 2016-01-21 | 富士通株式会社 | ストレージ管理装置,ストレージ管理プログラム,及び制御方法 |
US9703655B1 (en) * | 2014-11-25 | 2017-07-11 | Scale Computing Inc. | Recovery after data loss in a reliable distributed computing system |
WO2016166867A1 (ja) * | 2015-04-16 | 2016-10-20 | 株式会社日立製作所 | 計算機システム、及び、リソース制御方法 |
US9977613B2 (en) * | 2015-12-30 | 2018-05-22 | Dell Products L.P. | Systems and methods for zone page allocation for shingled media recording disks |
JP6674092B2 (ja) * | 2016-02-10 | 2020-04-01 | 富士通株式会社 | データ管理プログラム、データ管理装置、及びデータ管理方法 |
WO2018037509A1 (ja) * | 2016-08-24 | 2018-03-01 | 株式会社日立製作所 | ストレージシステム及び記憶制御方法 |
US10909136B1 (en) | 2017-02-08 | 2021-02-02 | Veritas Technologies Llc | Systems and methods for automatically linking data analytics to storage |
US10685033B1 (en) | 2017-02-14 | 2020-06-16 | Veritas Technologies Llc | Systems and methods for building an extract, transform, load pipeline |
US10606646B1 (en) * | 2017-03-13 | 2020-03-31 | Veritas Technologies Llc | Systems and methods for creating a data volume from within a software container and initializing the data volume with data |
US10540191B2 (en) | 2017-03-21 | 2020-01-21 | Veritas Technologies Llc | Systems and methods for using dynamic templates to create application containers |
CN110214305B (zh) | 2017-12-29 | 2020-09-08 | 华为技术有限公司 | 一种数据访问方法及存储阵列 |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
US10740132B2 (en) | 2018-01-30 | 2020-08-11 | Veritas Technologies Llc | Systems and methods for updating containers |
CN110737390B (zh) * | 2018-07-20 | 2023-08-18 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
US11249852B2 (en) | 2018-07-31 | 2022-02-15 | Portwonx, Inc. | Efficient transfer of copy-on-write snapshots |
US11354060B2 (en) | 2018-09-11 | 2022-06-07 | Portworx, Inc. | Application snapshot for highly available and distributed volumes |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US20220327208A1 (en) * | 2019-11-22 | 2022-10-13 | Pure Storage, Inc. | Snapshot Deletion Pattern-Based Determination of Ransomware Attack against Data Maintained by a Storage System |
US12079333B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Independent security threat detection and remediation by storage systems in a synchronous replication arrangement |
US11657155B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc | Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system |
US12050689B2 (en) | 2019-11-22 | 2024-07-30 | Pure Storage, Inc. | Host anomaly-based generation of snapshots |
US11500788B2 (en) * | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US12050683B2 (en) | 2019-11-22 | 2024-07-30 | Pure Storage, Inc. | Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system |
US12079356B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Measurement interval anomaly detection-based generation of snapshots |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US11720714B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
US12079502B2 (en) | 2019-11-22 | 2024-09-03 | Pure Storage, Inc. | Storage element attribute-based determination of a data protection policy for use within a storage system |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US12067118B2 (en) | 2019-11-22 | 2024-08-20 | Pure Storage, Inc. | Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US11625481B2 (en) | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
US20210382992A1 (en) * | 2019-11-22 | 2021-12-09 | Pure Storage, Inc. | Remote Analysis of Potentially Corrupt Data Written to a Storage System |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
CN111124283A (zh) * | 2019-11-29 | 2020-05-08 | 浪潮(北京)电子信息产业有限公司 | 一种存储空间管理方法、系统、电子设备及存储介质 |
US11494128B1 (en) | 2020-01-28 | 2022-11-08 | Pure Storage, Inc. | Access control of resources in a cloud-native storage system |
US11531467B1 (en) | 2021-01-29 | 2022-12-20 | Pure Storage, Inc. | Controlling public access of resources in a secure distributed storage system |
US11733897B1 (en) | 2021-02-25 | 2023-08-22 | Pure Storage, Inc. | Dynamic volume storage adjustment |
US11520516B1 (en) | 2021-02-25 | 2022-12-06 | Pure Storage, Inc. | Optimizing performance for synchronous workloads |
US11726684B1 (en) | 2021-02-26 | 2023-08-15 | Pure Storage, Inc. | Cluster rebalance using user defined rules |
CN117668318B (zh) * | 2023-12-29 | 2024-07-02 | 深圳市安信达存储技术有限公司 | 基于芯片闪存晶圆的叠加电路检索方法及装置 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3410010B2 (ja) * | 1997-12-24 | 2003-05-26 | 株式会社日立製作所 | サブシステムの移行方法および情報処理システム |
JP2004220450A (ja) * | 2003-01-16 | 2004-08-05 | Hitachi Ltd | ストレージ装置、その導入方法、及びその導入プログラム |
US6823442B1 (en) | 2003-05-12 | 2004-11-23 | 3Pardata, Inc. | Method of managing virtual volumes in a utility storage server system |
JP2005276017A (ja) * | 2004-03-26 | 2005-10-06 | Hitachi Ltd | ストレージシステム |
US7096338B2 (en) * | 2004-08-30 | 2006-08-22 | Hitachi, Ltd. | Storage system and data relocation control device |
US7395396B2 (en) * | 2004-08-30 | 2008-07-01 | Hitachi, Ltd. | Storage system and data relocation control device |
JP2006350599A (ja) * | 2005-06-15 | 2006-12-28 | Hitachi Ltd | ストレージシステム及びストレージシステムのデータマイグレーション方法 |
JP4224077B2 (ja) * | 2006-04-04 | 2009-02-12 | 株式会社東芝 | ストレージシステム |
JP2007280089A (ja) * | 2006-04-07 | 2007-10-25 | Hitachi Ltd | 容量拡張ボリュームの移行方法 |
JP5037881B2 (ja) | 2006-04-18 | 2012-10-03 | 株式会社日立製作所 | ストレージシステム及びその制御方法 |
JP5124103B2 (ja) * | 2006-05-16 | 2013-01-23 | 株式会社日立製作所 | 計算機システム |
JP2008004986A (ja) | 2006-06-20 | 2008-01-10 | Masahiro Watanabe | デジタルカメラ |
JP2008046986A (ja) | 2006-08-18 | 2008-02-28 | Hitachi Ltd | ストレージシステム |
JP4932390B2 (ja) | 2006-08-31 | 2012-05-16 | 株式会社日立製作所 | 仮想化システム及び領域割当て制御方法 |
JP4859595B2 (ja) * | 2006-09-01 | 2012-01-25 | 株式会社日立製作所 | 記憶システム、そのデータ再配置方法、データ再配置プログラム |
JP4757165B2 (ja) * | 2006-10-04 | 2011-08-24 | 株式会社日立製作所 | 計算機システム、データ移行監視方法及びデータ移行監視プログラム |
US8117409B2 (en) * | 2006-11-22 | 2012-02-14 | Hitachi, Ltd. | Method and apparatus for backup and restore in a dynamic chunk allocation storage system |
JP4897499B2 (ja) * | 2007-01-19 | 2012-03-14 | 株式会社日立製作所 | 記憶システム又はストレージ移行方法 |
JP5379956B2 (ja) | 2007-03-19 | 2013-12-25 | 株式会社日立製作所 | ストレージ装置及び記憶領域配置方法 |
JP5087309B2 (ja) * | 2007-04-24 | 2012-12-05 | 株式会社日立製作所 | 管理装置及び管理方法 |
US7984259B1 (en) * | 2007-12-17 | 2011-07-19 | Netapp, Inc. | Reducing load imbalance in a storage system |
JP2009282800A (ja) * | 2008-05-23 | 2009-12-03 | Hitachi Ltd | ストレージ装置及びその制御方法 |
EP2211263A3 (en) * | 2009-01-23 | 2013-01-23 | Infortrend Technology, Inc. | Method for performing storage virtualization in a storage system architecture |
JP5538362B2 (ja) * | 2009-03-18 | 2014-07-02 | 株式会社日立製作所 | 記憶制御装置及び仮想ボリュームの制御方法 |
CA2755881C (en) | 2009-03-20 | 2015-08-04 | Bharat Petroleum Corporation Limited | Counter-current multistage fischer tropsch reactor systems |
US8397046B2 (en) * | 2009-03-26 | 2013-03-12 | Hitachi, Ltd. | Method and apparatus for deploying virtual hard disk to storage system |
US8516215B2 (en) * | 2009-04-23 | 2013-08-20 | Hitachi, Ltd. | Computing system having a controller for controlling allocation of a storage area of a logical volume in a pool to a virtual volume and controlling methods for the same |
JP4990322B2 (ja) * | 2009-05-13 | 2012-08-01 | 株式会社日立製作所 | データ移動管理装置及び情報処理システム |
-
2009
- 2009-10-09 EP EP12152089A patent/EP2450785A1/en not_active Withdrawn
- 2009-10-09 US US12/666,645 patent/US8225039B2/en not_active Expired - Fee Related
- 2009-10-09 EP EP09743946A patent/EP2419817A1/en not_active Withdrawn
- 2009-10-09 WO PCT/JP2009/005297 patent/WO2011042940A1/en active Application Filing
- 2009-10-09 JP JP2012516979A patent/JP5438827B2/ja not_active Expired - Fee Related
- 2009-10-09 CN CN2009801611423A patent/CN102549542A/zh active Pending
-
2012
- 2012-03-06 US US13/413,166 patent/US8606993B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102945140A (zh) * | 2012-09-26 | 2013-02-27 | 曙光信息产业(北京)有限公司 | 一种磁盘融合方法 |
CN106687911A (zh) * | 2014-09-15 | 2017-05-17 | 微软技术许可有限责任公司 | 不损害数据完整性的在线数据移动 |
CN105808171A (zh) * | 2016-04-01 | 2016-07-27 | 浪潮电子信息产业股份有限公司 | 一种平衡存储的方法、装置和系统 |
CN111858188A (zh) * | 2019-04-29 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 存储管理的方法、设备和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
WO2011042940A1 (en) | 2011-04-14 |
US8606993B2 (en) | 2013-12-10 |
EP2419817A1 (en) | 2012-02-22 |
US20110191537A1 (en) | 2011-08-04 |
JP2012531653A (ja) | 2012-12-10 |
JP5438827B2 (ja) | 2014-03-12 |
EP2450785A1 (en) | 2012-05-09 |
US8225039B2 (en) | 2012-07-17 |
US20120173814A1 (en) | 2012-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102549542A (zh) | 负载偏差时实现数据重新分配的存储系统及其控制方法 | |
US10628043B1 (en) | Systems and methods for implementing a horizontally federated heterogeneous cluster | |
CN104636080B (zh) | 存储系统及用于其的方法 | |
US11392307B2 (en) | Data-protection-aware capacity provisioning of shared external volume | |
CN103080895B (zh) | 包括具有存储虚拟化功能和容量虚拟化功能二者的多个存储装置的存储系统 | |
US8984248B2 (en) | Data migration system and data migration method | |
US9361034B2 (en) | Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network | |
US9971709B1 (en) | Data migration techniques | |
US9588892B2 (en) | Data access method in a storage architecture | |
US7478177B2 (en) | System and method for automatic reassignment of shared storage on blade replacement | |
US8312242B2 (en) | Tracking memory space in a storage system | |
US8131969B2 (en) | Updating system configuration information | |
CN101223498A (zh) | 用于管理数据存储的方法、系统和计算机程序产品以及虚拟化引擎 | |
US9661078B1 (en) | Federated namespace management | |
AU2017387063A1 (en) | Data storage system with multiple durability levels | |
US20170177224A1 (en) | Dynamic storage transitions employing tiered range volumes | |
CN102334093A (zh) | 存储控制装置以及虚拟卷的控制方法 | |
JP2011076286A (ja) | ボリューム割り当てを管理する計算機システム及びボリューム割り当て管理方法 | |
EP2157504A2 (en) | Virtual disk management program, storage device management program, multinode storage system, and virtual disk managing method | |
CN103761053A (zh) | 一种数据处理方法和装置 | |
US11681443B1 (en) | Durable data storage with snapshot storage space optimization | |
CN104272242A (zh) | 创建加密存储体 | |
US7290099B2 (en) | Using parallelism for clear status track processing during error handling behavior in a storage system | |
CN104471548A (zh) | 采用数据管理机制的存储系统及其操作的方法 | |
CN101997919A (zh) | 一种存储资源的管理方法及管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120704 |