CN113867647A - 虚拟存储***及其控制方法 - Google Patents
虚拟存储***及其控制方法 Download PDFInfo
- Publication number
- CN113867647A CN113867647A CN202111180393.5A CN202111180393A CN113867647A CN 113867647 A CN113867647 A CN 113867647A CN 202111180393 A CN202111180393 A CN 202111180393A CN 113867647 A CN113867647 A CN 113867647A
- Authority
- CN
- China
- Prior art keywords
- storage
- physical
- storage system
- virtual
- logical volume
- 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/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/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/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/0608—Saving storage space on 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/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- 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
- 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
Abstract
本发明涉及虚拟存储***及其控制方法,其中一个观点的虚拟存储***具有多个物理存储***,所述物理存储***包括受理对逻辑卷的读写请求的存储控制器和多个存储装置。物理存储***管理定义存储池,所述存储池管理能够分配给逻辑卷的存储区域的上述存储装置,并管理属于存储池的上述存储区域的容量(存储池容量)和存储池内的未使用存储区域的容量(存储池空闲容量),进一步,物理存储***计算虚拟存储***中所含的多个存储***的存储池空闲容量的合计值,将该合计值作为虚拟存储***的存储池空闲容量提供给服务器。
Description
本申请是国际申请号为PCT/JP2016/055968、2018年8月24日进入中国国家阶段的申请号为201680082569.4的申请的分案申请。
技术领域
本发明涉及虚拟存储***及其控制方法。
背景技术
伴随着由企业等组织处理的电子信息的急速增加,在组织的信息***中导入了大量存储***加以运用。作为用于提高存储***的扩展性且易于管理的技术有虚拟化技术。
例如在专利文献1中公开有称为“虚拟存储器”的技术。虚拟存储器由多个物理存储器构成,各个物理存储器具有虚拟存储器标识符和物理存储器标识符。虚拟存储器标识符是构成虚拟存储器的物理存储器共同具有的标识符,物理存储器标识符是构成虚拟存储器的各个物理存储器固有的标识符。在虚拟存储器中,关于作为服务器读写时指定的逻辑卷的LU(Logical Unit:逻辑单元)也存在虚拟LUN(Logical Unit Number:逻辑单元号)和物理LUN。虚拟LUN是虚拟存储器内独有的标识号码,物理LUN是物理存储器内独有的标识号码。虚拟存储器的特征为,例如能够将多个物理存储器在观感上作为巨大而单一的虚拟的***。此外,在将旧的存储器换成新的存储器的情况下,虽然物理存储器标识符被变更,但是如果使得旧的存储器与新的存储器双方具有相同的虚拟存储器标识符,则服务器不会识别出存储器已被更换。因此,能够不中断工作地进行存储器的更换。
进一步,在专利文献1中,还公开了被称为‘容量的虚拟化’的技术。容量的虚拟化也称为精简自动配置。在容量的虚拟化功能中,存储***定义称为存储池的比较大的容量的存储区域,将该存储区域分割为称为页的区。而且,存储***在逻辑卷的定义时并不确保存储区域,而在实际对逻辑卷进行写入时向相应的区域分配页。多数情况下在初始状态下在逻辑卷写入的数据量并不多,因此能够通过使用容量的虚拟化功能来减少要预先准备的存储区域。此外,由于分配存储区域的时机是发生写入的时机,因此存储***的用户(管理者)不需要严密地计算逻辑卷的容量,而只要定义比较大的容量即可,因此还能够降低管理成本。
现有技术文献
专利文献
专利文献1:国际公开第2014/147657号
发明内容
发明所要解决的问题
历来,在存储***中,采用不将可搭载的存储装置全部搭载地出货,而是搭载顾客所需的容量的存储装置来出货,在容量不足时再追加所需的容量的存储装置的方法。但是,采用该方法时需要维护成本,因此,最近在发生容量不足时将存储***自身追加于信息***的方法受到关注。
存储***的用户或管理者在判断是否需要追加容量时,将存储池的空闲容量(逻辑卷中尚未分配的页的量)作为1个判断材料。在存在多个存储***的情况下,需要按各个存储***监视存储池的空闲容量。在专利文献1中记载的虚拟存储器技术中,虽然将多个存储***在观感上作为单一的存储***,但是对空闲容量的监视、管理这方面未加考虑。因此,空闲容量的监视需要在各存储***中进行,存在使管理变得繁杂的问题。
用于解决问题的技术方案
本发明的一个观点的虚拟存储***具有多个存储***,所述存储***包括受理对逻辑卷的读写请求的存储控制器和多个存储装置。存储***定义对能够给逻辑卷分配存储区域的上述存储装置进行管理的存储池,管理属于存储池的上述存储区域的容量(存储池容量)和存储池内的未使用存储区域的容量(存储池空闲容量)。进一步,存储***计算虚拟存储***中所含的多个存储***的存储池空闲容量的合计值,将该合计值作为虚拟存储***的存储池空闲容量提供给服务器。
发明效果
根据本发明的一个观点的虚拟存储***,能够将由多个存储***构成的虚拟存储***的存储区域作为单一的存储***的存储区域,能够实现管理的简易化。
附图说明
图1是表示实施例1的信息***的结构的图。
图2是表示逻辑卷与存储组的关系的图。
图3是表示虚拟逻辑卷与逻辑卷的关系的图。
图4是数据迁移的概念图。
图5是表示实施例1的服务器端口信息的结构的图。
图6是表示在实施例1的存储***保存的共享存储器的信息的图。
图7是表示实施例1的存储***信息的图。
图8是表示实施例1的其它物理存储***的信息的形式的图。
图9是表示实施例1的虚拟逻辑卷信息的形式的图。
图10是表示实施例1的逻辑卷信息的形式的图。
图11是表示实施例1的物理页信息的形式的图。
图12是表示实施例1的存储组信息的格式的图。
图13是表示由实施例1的空闲页信息指针管理的空闲物理页的集合的图。
图14是表示实施例1的存储装置信息的格式的图。
图15是表示实施例1的物理存储***的存储器中存在的程序的图。
图16是表示实施例1的读取处理执行部的处理流程(1)的图。
图17是表示实施例1的读取处理执行部的处理流程(2)的图。
图18是表示实施例1的写入请求受理部的处理流程(1)的图。
图19是表示实施例1的写入请求受理部的处理流程(2)的图。
图20是表示实施例1的写后处理执行部的处理流程的图。
图21是表示实施例1的物理存储***追加处理部的处理流程的图。
图22是表示实施例1的复制处理部的处理流程(1)的图。
图23是表示实施例1的复制处理部的处理流程(2)的图。
图24是表示实施例2的其它物理存储***信息的格式的图。
图25是表示实施例2的存储组信息的格式的图。
图26是表示实施例2的读取处理执行部的处理流程(后半部)的图。
图27是表示实施例2的写入请求受理部的处理流程(后半部)的图。
图28是表示实施例2的写后处理执行部的处理流程的图。
图29是表示实施例2的复制处理部的处理流程的图。
图30是表示变形例的***损耗均衡部的处理流程的图。
具体实施方式
以下,使用附图对若干实施例进行说明。
另外,在以下的实施例中,存在对在存储***内被执行的处理以“程序”为主语进行说明的情况。实际上是通过存储***所具有的处理器(CPU)执行程序而进行程序中记述的处理,因此处理的主体是处理器(CPU)。不过,为了防止说明变得冗余,有时以程序为主语来说明处理的内容。此外,也可以利用专用硬件实现程序的一部分或全部。此外,以下说明的各种程序也可以由程序分发服务器或计算机可读取的存储介质提供,安装于运行程序的各装置。计算机可读取的存储介质是非临时的计算机可读介质,例如为IC卡、SD卡、DVD等非易失性存储介质。
实施例1
图1表示实施例1的信息***的结构。信息***具有一个以上的物理存储***100、一个以上的服务器110、连接物理存储***100与服务器110的SAN(Storage Area Network:存储区域网络)120、存储器管理服务器180。服务器110通过服务器端口195与SAN120连接,物理存储***100通过存储器端口197与SAN120连接。服务器110具有一个以上的服务器端口195。
物理存储***100包括与SAN120连接的一个以上的存储器端口197、执行来自服务器110的读写请求的1以上的存储控制器200、保存来自服务器110的写入数据的多个存储装置160、保存被频繁读写的数据的高速缓冲存储器210、保存控制信息的共享存储器220和将这些装置结合起来的连接单元250。
在存储装置160中存在若干种类。例如作为存储装置160也可以使用以磁盘为存储介质的HDD(Hard Disk Drive:硬盘驱动器)或使用以闪存作为存储介质的快闪存储器。此外,快闪存储器中使用的闪存中存在若干种类,具有高价格、高性能、可消除次数多的SLC,以及与此相对地低价格、低性能、可消除次数少的MLC。
在本实施例中,说明物理存储***100所具有的存储装置160为HDD或快闪存储器的例子。另外,作为快闪存储器,使用SLC型的闪存的记作“快闪存储器(SLC)”,使用MLC型的闪存的记作“快闪存储器(MLC)”。不过作为另一实施方式,也可以使用利用相变存储器等新的存储介质的存储装置160。
服务器110是个人计算机(PC)等通用的计算机,除了服务器端口195以外还具有处理器和存储器(未图示)。服务器110是用于运行用户所使用的应用程序1100等的计算机,经由SAN120访问物理存储***100提供的数据卷。此外,物理存储***100彼此也相互经由SAN120进行数据的收发。SAN120是能够进行基于能够转发SCSI命令的协议的数据传输的网络,例如使用光纤通道(Fibre Channel)等作为传输介质。
存储控制器200具有处理从服务器110发出的读写请求的处理器260、保管程序和信息的存储器270以及缓冲器275。缓冲器275用于在生成后述的冗余数据时保存生成所需的信息和所生成的冗余数据。此外,缓冲器275还在将保存于高速缓冲存储器210的数据写入永久保存的存储装置(存储装置160)时用作临时的数据的存储区域。
高速缓冲存储器210、共享存储器220通常由DRAM等易失性存储器构成,通过电池等而非易失性化。此外,在本实施例中,为了实现高可靠性,高速缓冲存储器210、共享存储器220分别被双重化,写入高速缓冲存储器210、共享存储器220的数据均被写入至少2个区域。不过,本发明的即使高速缓冲存储器210、共享存储器220不被非易失性化、不被双重化也有效。
在高速缓冲存储器210中保存被保存于存储装置160的数据中经常被从存储控制器200访问的数据。存储控制器200在从服务器110受理了写入请求时,在将要写入存储装置160而接收到的数据写入高速缓冲存储器210的时刻,向服务器110回复完成写入请求的通知。被写入高速缓冲存储器210的数据在适当的时刻保存(存储)至存储装置160。不过,作为另一实施方式,也可以在将从服务器110接收到的数据保存到存储装置160之后,向服务器110回复完成写入请求的通知。
接着说明本实施例的物理存储***100中的存储区域的管理方法。
本实施例的存储控制器200具有即使多个存储装置160中的任一个存储装置发生故障也能够恢复该存储装置160的数据的磁盘阵列(Redundant Arrays of Inexpensive/Independent Disks/Device(RAID))功能。存储控制器200使用物理存储***100所具有的存储装置160的若干个(例如4个、8个等)来构成1个RAID。将构成RAID的存储装置160的集合称为存储组2101。在本实施例的物理存储***100中,1个存储组2101由同一种类的存储装置160构成。另外,即使存储控制器200不具有RAID功能本发明也有效。
进一步,本实施例的存储控制器200作为存储组2101以外的存储空间能够定义逻辑卷和虚拟逻辑卷。首先对逻辑卷进行说明。存储控制器200能够定义多个逻辑卷。各逻辑卷被标注在物理存储***100内唯一的标识号码,将其称为逻辑卷标识符(或者逻辑卷ID)。
本实施例的物理存储***100具有容量虚拟化功能。逻辑卷是基于容量虚拟化功能形成的存储空间。在定义了逻辑卷的时刻,对逻辑卷上的各存储区域写入的数据的保存地址未定。从受理向逻辑卷写入的写入请求时起,存储控制器200决定写入至写入对象区域(由写入请求指定的区域)的数据的保存地址。以下,以“分配”来表达决定写入至写入对象区域(由写入请求指定的区域)的数据的保存地址的处理。
使用图2,对逻辑卷与存储组2101的关系进行说明。存储控制器200为了进行被分配给逻辑卷(图中的“LV0”)的存储区域的管理,将逻辑卷分割成多个被称为虚拟页(在图2中为VP0、VP1、VP2)的规定单位的区域来进行管理。在给逻辑卷分配存储区域时,存储控制器200按每个该虚拟页分配存储区域。各虚拟页被标注在逻辑卷内唯一的标识号码。将该标识号码称为虚拟页号码(或者,有时记作“虚拟页#”)。此外,虚拟页号码为n的虚拟页记作“虚拟页#n”。
虚拟页是仅用于在存储控制器200内部进行逻辑卷的存储空间的管理的概念。服务器110在访问逻辑卷的存储区域时,使用LBA(Logical Block Address:逻辑区块地址)等地址,确定访问对象的存储区域。在服务器110发出对逻辑卷的访问请求时,存储控制器200将服务器110所指定的LBA变换为虚拟页号码和虚拟页内的相对地址(从虚拟页开头偏移的偏移地址)。该变换通过将LBA除以虚拟页大小而实现。假设令虚拟页的大小为P(MB),则从逻辑卷的开头位置起P(MB)量的区域作为虚拟页#0管理,其下一个P(MB)量的区域作为虚拟页#1管理。以下也一样,P(MB)的区域分别作为虚拟页#2、#3……管理。
在存储控制器200刚定义逻辑卷之后,并不给各虚拟页分配物理存储区域。存储控制器200从服务器110受理对虚拟页的写入请求的时刻起对其虚拟页分配物理存储区域。分配给虚拟页的物理存储区域称为物理页。物理页是存储组2101上的存储区域。在图2中表示给虚拟页#0(VP0)分配物理页RP0的状态。
物理页是使用存储组2101的多个存储装置160的存储区域形成的区域。在图2中,160-1、160-2、160-3、160-4分别表示各存储装置160的存储区域。此外,图2中例示的存储组2101的RAID类型为RAID4的3D+1P结构(由3台数据驱动器、1台奇偶驱动器构成的RAID)。
存储控制器200将属于存储组2101的各存储装置160的存储区域分割成被称为条带块的多个固定大小的存储区域来进行管理。例如在图2中,记作0(D)、1(D)、2(D)……或P0、P1……的各个区域表示条带块。
在图2中,条带块中记作P0、P1……的条带块是保存基于RAID功能生成的冗余数据(奇偶)的条带块,将该条带块称为“奇偶条带”。另一方面,记作0(D)、1(D)、2(D)……的条带块是保存从服务器110写入的数据(不是冗余数据的数据)的条带块。该条带块称为“数据条带”。在奇偶条带保存使用多个数据条带生成的冗余数据。
以下,将奇偶条带和用于生成保存在该奇偶条带的冗余数据的数据条带的一个组合称为“条带线”。在本实施例的物理存储***100的情况下,例如在奇偶条带P0中,属于保存使用数据条带0(D)、1(D)、2(D)生成的冗余数据(奇偶)的关系,数据条带0(D)、1(D)、2(D)和奇偶条带P0属于同一条带线。
即,属于1个条带线的各条带块位于存储装置(160-1、160-2、160-3、160-4)上的相同位置(地址)。不过,作为另一实施方式,也可以采用属于同一条带线的各条带块位于闪存卷上的不同地址的结构。而且,在本实施例的物理存储***100中,如图2所示,物理页(例如RP0、RP1)由1个或多个条带线构成。
此外,存储控制器200将存储组2101的各存储区域(块)作为能够按一维的地址确定的存储空间进行管理。以下将该存储空间称为“存储组的存储空间”,将该存储空间上的地址称为“存储组的地址”或“存储组地址”。以图2表示存储组地址的例。存储组的存储空间如图2所示那样,是逐个依次配置存储组2101内的各条带的存储空间。存储组内的开头的条带块的存储组地址定为0,在以下各条带块,例如如图2所示那样标记地址。存储组的地址用于管理物理页与存储组2101上的存储区域的对应关系。
此外,在向虚拟页分配物理页的情况下,仅分配数据条带(0(D)、1(D)等),不分配奇偶条带。因此,物理页上的保存写入数据的区域的合计大小与虚拟页的大小属于相等的关系。即,属于(物理页的大小-奇偶保存区域的大小)=虚拟页大小的关系。在图2中仅表示RAID4的结构例,不过例如在存储组2101的RAID类型为RAID1的情况下,物理页大小为虚拟页大小(虚拟页容量2600)的2倍。
虚拟页内的各区域与物理页内的各区域的关系(映射)如图2所示。即,从物理页的开头条带起除奇偶以外的区域(0(D)、1(D)、2(D))被分配给虚拟页的开头区域。之后相同,从物理页的第2个以后的各条带起除奇偶以外的区域(3(D)、4(D)、5(D)……)被依次分配给虚拟页的区域。
这样,虚拟页内的各区域与物理页内的各区域的映射被规则地映射,因此,物理存储***100能够通过从由来自服务器110的访问请求指定的逻辑卷上的访问位置(LBA)求取虚拟页号码和虚拟页内的相对地址(从虚拟页开头偏移的偏移地址),唯一地计算与该访问位置对应的存储装置160及其存储装置160内的区域(数据条带)。进一步,不仅与访问位置对应的数据条带,而且与该数据条带属于同一条带线的奇偶条带也唯一地确定。其中,虚拟页内的各区域与物理页内的各区域的映射并不限定于此处说明的映射方法。
另外,被分配给1个逻辑卷中的各虚拟页的物理页并不一定限定于同一存储组2101内的物理页。被分配给虚拟页#0的物理页与被分配给虚拟页#1的物理页也可以分别为不同的存储组2101内的物理页。
物理存储***100定义并管理具有被分配给虚拟页的区域(物理页)的存储组2101的集合。将该存储组2101的集合称为“存储池”。在物理存储***100向虚拟页分配物理页时,选择属于存储池的1个存储组2101,分配该存储组2101所具有的物理页。
被分配给虚拟页的物理页必须是尚未被分配给其它虚拟页的物理页。将未被分配给虚拟页的物理页称为“空闲页”或“空闲物理页”。当存储池中没有空闲页时,不能进行对虚拟页的物理页的分配,因此物理存储***100一直要对存储池的空闲页量进行管理。
接着,对虚拟存储***与物理存储***的关系、以及虚拟逻辑卷与逻辑卷的关系进行说明。在本实施例的信息***中,至少存在一个由一个以上的物理存储***100构成的虚拟存储***190。从服务器110将虚拟存储***190识别为单一的存储***。
物理存储***100具有装置的标识符(称为物理存储***标识符)。该标识符在各物理存储***100不相同。进一步,本实施例的物理存储***100中,属于相同的虚拟存储***190的各物理存储***100具有被称为虚拟存储器标识符的标识符。属于相同的虚拟存储***190的各物理存储***100具有相同的虚拟存储器标识符。
虚拟逻辑卷是服务器110能够识别和访问的存储空间。在虚拟逻辑卷也与逻辑卷同样地标注标识号码。该标识号码称为“虚拟逻辑卷标识符”。或者,有时也称为虚拟逻辑卷ID或VVID。虚拟逻辑卷标识符是虚拟存储***190内唯一的标识号码。
虚拟逻辑卷与至少1个逻辑卷对应(有时也以“匹配”来表达)。在图3中表示一个例子。在图3中,VV0和VV1表示虚拟逻辑卷,LV1-0和LV2-0表示逻辑卷。LV1-0是物理存储***#1(100-1)所具有的逻辑卷,LV2-0是物理存储***#2(100-1)所具有的逻辑卷。VV0与逻辑卷LV1-0对应,VV1与逻辑卷LV2-0对应。此外,在图3中,虚拟逻辑卷VV0和VV1在物理存储***#1内定义。
当服务器110例如对虚拟逻辑卷VV0发出I/O请求时,收到该I/O请求的物理存储***(在图3中为物理存储***#1(100-1))将该I/O请求变换为对于与虚拟逻辑卷VV0对应的逻辑卷LV1-0的I/O请求。
虚拟逻辑卷的大小与虚拟逻辑卷对应的逻辑卷的大小相同。此外,在本实施例中,当物理存储***100从服务器110受理对于虚拟逻辑卷的某个地址(例如地址x)的访问请求时,物理存储***100将该访问请求变换为对虚拟逻辑卷的地址x的I/O请求。
虚拟逻辑卷也可以与定义虚拟逻辑卷的物理存储***100以外的物理存储***100所具有的逻辑卷对应。在图3的例子中,虚拟逻辑卷VV1与逻辑卷LV2-0对应。在这种情况下,当服务器110对虚拟逻辑卷VV1发出I/O请求时,物理存储***#1将该I/O请求变换为对逻辑卷LV2-0的I/O请求。具体而言,物理存储***#1对物理存储***#2的LV2-0发出I/O请求。
这样,在本实施例的虚拟存储***190中,用户(管理者)也可以将虚拟逻辑卷和与该虚拟逻辑卷对应的逻辑卷分别定义于不同的物理存储***100。因此,在虚拟逻辑卷的被定义的物理存储***(在图3的例子中为物理存储***#1)的存储池的空闲页量不足的情况下,通过使其它物理存储***100(图3的例物理存储***#2)的逻辑卷与虚拟逻辑卷对应,只要在虚拟存储***190内的任一物理存储***100具有空闲页,就能够定义虚拟逻辑卷。
此外,本实施例的虚拟存储***190将属于虚拟存储***190的多个物理存储***100所具有的页量的合计值和空闲页量的合计值分别作为虚拟存储***190的存储池的容量、虚拟存储***190的存储池的空闲页量进行管理,根据需要,在服务器110或存储器管理服务器180具有通知虚拟存储***190的存储池的容量、虚拟存储***190的存储池的空闲页量的功能(正确的说是属于虚拟存储***190的各物理存储***100对虚拟存储***190的存储池的容量、虚拟存储***190的存储池的空闲页量进行管理。而且,属于虚拟存储***190的任意的物理存储***100向服务器110或存储器管理服务器180通知虚拟存储***190的存储池的容量、虚拟存储***190的存储池的空闲页量即可)。
在存在多个不具有虚拟存储***的概念的现有的存储***的信息***中,各存储***将自身的空闲页量通知给服务器110或存储器管理服务器180,用户(或管理者)与各存储***的空闲页量一起决定定义逻辑卷的场所(存储***)、或者决定是否需要增设存储***。
另一方面,在本实施例的虚拟存储***190中,只要在虚拟存储***190内的任一物理存储***100存在空闲页,就能够定义(虚拟)逻辑卷。因此,虚拟存储***190仅将被称为虚拟存储***190的1台(虚拟的)存储***的存储池的空闲页量通知给用户(管理者),用户(或管理者)对1台虚拟存储***190的存储池的空闲容量进行监视、把握。
在定义有虚拟逻辑卷的物理存储***100以外的物理存储***100所具有的逻辑卷对应虚拟逻辑卷的结构,在物理存储***100之间迁移数据的情况下也能够使用。参照图4对数据迁移的例子进行说明。
在图4(a)中,在物理存储***#2存在虚拟逻辑卷VV12和与之对应的逻辑卷LV2-0。虚拟逻辑卷VV12的VVID为1。
图4(b)表示将逻辑卷LV2-0的数据迁移至物理存储***#1的逻辑卷(例如逻辑卷LV1-1)的情况下的结构。另外,此时,逻辑卷LV1-1与逻辑卷LV2-0的大小必须相等。
在迁移时,物理存储***#1生成虚拟逻辑卷VV11,令虚拟逻辑卷VV11的VVID与虚拟逻辑卷VV12一样为1。然后,物理存储***#1将逻辑卷LV2-0的数据复制至逻辑卷LV1-1,此外,使逻辑卷LV1-1与虚拟逻辑卷VV11对应。然后物理存储***#2删除虚拟逻辑卷VV12。
服务器110在识别虚拟逻辑卷时,从物理存储***100取得虚拟逻辑卷的信息。在此处从物理存储***100取得的虚拟逻辑卷的信息中含有VVID和虚拟存储***标识符。由于虚拟逻辑卷VV11与虚拟逻辑卷VV12的VVID和虚拟存储***标识符均相同,所以服务器110识别为虚拟逻辑卷VV11和虚拟逻辑卷VV12是单一存储***的相同数据卷(即,识别为VV11和VV12均为虚拟存储***190内的数据卷且为同一个数据卷)。因此数据从物理存储***#1迁移至物理存储***#2,即使虚拟逻辑卷VV12被删除,服务器110也不停止访问而能够继续工作(服务器110不访问虚拟逻辑卷VV12而访问VV11)。
另外,即使虚拟逻辑卷和与该虚拟逻辑卷对应的逻辑卷分别被定义于不同的物理存储***100,服务器110也能够访问(虚拟)逻辑卷的数据。因此,并不一定需要在逻辑卷间进行数据迁移,不过与虚拟逻辑卷对应的逻辑卷与虚拟逻辑卷存在于相同的物理存储***100在访问性能方面更有利。因此,与虚拟逻辑卷对应的逻辑卷更优选以与虚拟逻辑卷处于相同的物理存储***100的方式变更结构。
此外,在图4(b)中,在虚拟逻辑卷VV11对应2个逻辑卷(LV1-1和LV2-0)。本实施例的虚拟存储***190由于在逻辑卷的数据迁移中也能够受理来自服务器110的I/O请求,所以容许临时在1个虚拟逻辑卷对应2个逻辑卷。此外,物理存储***100实际上按与以上说明内容具有若干不同的顺序进行迁移处理。这是因为在逻辑卷的数据迁移中也能够从服务器110受理对虚拟逻辑卷的I/O请求。数据迁移处理的详细情况后述。
此外,在以下的说明中,将与虚拟逻辑卷对应的2个逻辑卷中数据迁移源的逻辑卷称为“原逻辑卷”,将数据迁移目的地的逻辑卷称为“现逻辑卷”。在图4的例子中从逻辑卷LV2-0向逻辑卷LV1-1进行数据迁移,在这种情况下,逻辑卷LV2-0为原逻辑卷,逻辑卷LV1-1为现逻辑卷。
接着,对服务器110和物理存储***100所具有的管理信息的内容进行说明。图5为服务器端口信息198的格式。服务器端口信息198是服务器110在存储器中保存的信息,按每个服务器端口195设置。此外,服务器端口信息198是在路径管理软件1981向物理存储***100发出读写请求时,为了确定请求的信息发送中使用的服务器端口195和存储器端口197而使用的信息。服务器110在向物理存储***100发出读写请求时,指定存储***的标识符、(虚拟)逻辑卷的标识符、存储器端口的标识符。因此,在服务器端口信息198中包含服务器端口标识符24000、成为服务器110经由该服务器端口195发出访问请求的对象的逻辑卷的逻辑卷标识符24001、包含该逻辑卷的存储***标识符24002和存储器端口标识符24003。在成为服务器110发出访问请求的对象的逻辑卷存在多个的情况下,多个逻辑卷标识符24001包含在服务器端口信息198中。
此外,在该逻辑卷与多个存储器端口197连接的情况下,对1个逻辑卷标识符24001设定多个存储器端口标识符24003。另外,在本实施例中,在存储***标识符24002中设定虚拟存储***190的标识符。在逻辑卷标识符24001中设定虚拟逻辑卷的标识符。在存储器端口标识符24003中设定定义有虚拟逻辑卷的物理存储***100的存储器端口197的标识符。
服务器110的读写请求至少包含虚拟逻辑卷的标识符、存储器端口197的标识符。此外,也可以在读写请求中包含这以外的信息,例也可以包含如虚拟存储***的标识符。由于存储器端口197的标识符是物理的值(物理存储***100所具有的存储器端口197的标识符),所以接收该请求的物理存储***100被唯一地决定。此外,在本实施例中,存在处理对虚拟逻辑卷的读写请求的物理存储***100被变更的情况,此时虚拟逻辑卷的标识符也不变,仅其所连接的存储器端口197被变更。
图6表示保存在本实施例的物理存储***100的共享存储器220中的信息中的、本实施例的说明所需的信息。在共享存储器220中至少包含存储***信息2050、另一物理存储***信息2070、虚拟逻辑卷信息2040、逻辑卷信息2000、物理页信息2100、存储组信息2300、存储装置信息2500。
其中,如图7所示,存储***信息2050是关于物理存储***100和虚拟存储***190的信息,在实施例1中,是包含虚拟存储***标识符2051、物理存储***标识符2052、虚拟存储的存储容量2053、总物理存储器存储容量2054、总空闲存储容量2055、物理存储器存储容量2056、空闲存储容量2057、存储池容量2058的信息。虚拟存储***标识符2051是包含该物理存储***100的虚拟存储***190的标识符。物理存储***标识符2052是该物理存储***100的标识符。
虚拟存储的存储容量2053是该虚拟存储***190的存储池的容量。总物理存储器存储容量2054是构成虚拟存储***190的各物理存储***100所具有的存储装置160的容量的合计值。总空闲存储容量2055是虚拟存储***190内存储池的空闲容量。空闲容量是指存储池的容量中未分配给虚拟页的物理页的容量的合计值。其中,在本实施例中,存储池的容量、空闲容量使用将属于存储池的存储装置160的容量(或空闲容量)换算为虚拟页的量而得到的值。例如在虚拟存储***190的属于存储池的存储组2101的容量的合计(换言之,物理页的总量)为200TB、属于存储池的存储组2101的RAID类型全部为RAID1的情况下,因为虚拟页的大小为物理页的大小的一半,所以存储池的容量(虚拟存储的存储容量2053)为100TB。
物理存储器存储容量2056是该物理存储***100中的存储装置160的存储容量的合计值。存储池容量2058是物理存储***100的存储池的容量。空闲存储容量2057是物理存储***100的存储池的空闲容量。因此,各物理存储***100的空闲存储容量2057的合计值与总空闲存储容量2055相等。此外,在存储池容量2058和空闲存储容量2057中,与虚拟存储的存储容量2053一样,使用将属于存储池的存储装置160的容量换算为虚拟页的容量而得到的值。
另外,在本实施例中,说明各物理存储***100内的全部存储装置160属于存储池的情况下的例子。因此,在本实施例的虚拟存储***190中,虚拟存储的存储容量2053与将总物理存储器存储容量2054换算为虚拟页的容量而得到的值相等。此外,存储池容量2058与将物理存储器存储容量2056换算为虚拟页的容量而得到的值相等。
图8表示另一物理存储***信息2070的形式。另一物理存储***信息2070包含虚拟存储***标识符2071、另一物理存储***标识符2072、存储器端口标识符2073。虚拟存储***标识符2071与图7中所含的虚拟存储***标识符2051一样,是包含该物理存储***100的虚拟存储***190的标识符。另一物理存储***标识符2072是包含该物理存储***100的虚拟存储***190中所含的其它物理存储***的标识符。在虚拟存储***190中包含(n+1)台物理存储***100的情况下,在另一物理存储***信息2070中包含n个另一物理存储***标识符2072。在图8中,另一物理存储***标识符2072-k表示多个另一物理存储***标识符2072中的第k个标识符。存储器端口标识符2073是由另一物理存储***标识符2072确定的物理存储***100所具有的存储器端口197的标识符。存储器端口标识符2073-k表示由另一物理存储***标识符2072-k确定的物理存储***100所具有的存储器端口197的标识符。在物理存储***100具有多个存储器端口197的情况下,存在多个另一物理存储***标识符2072-k。
图14是存储装置信息2500的格式。存储装置信息2500是用于管理存储装置160的属性信息的信息,按每个存储装置160生成。以下,将由某个存储装置信息2500管理的存储装置160称为“管理对象存储装置”。存储装置信息2500具有存储装置标识符2501、存储器类型2503、容量2504。
存储装置标识符2501是管理对象存储装置的标识符。存储器类型2503是管理对象存储装置的种类(将其称为“设备类型”)。在本实施例中,存储装置160的种类(设备类型)是指存储装置160中使用的存储介质的种类,在存储器类型2503设定HDD、快闪存储器(SLC)、快闪存储器(MLC)的任一者的信息。在存储器类型2503为HDD的情况下,管理对象存储装置是指磁盘(HDD),在存储器类型2503为快闪存储器(SLC)的情况下,管理对象存储装置是指使用SLC型的闪存的快闪存储器,此外,在存储器类型2503为快闪存储器(MLC)的情况下,管理对象存储装置是指使用MLC型的闪存的快闪存储器。
容量2504是管理对象存储装置的容量。另外,在本实施例中,属于1个存储组2101的各存储装置160的存储器类型2503与容量2504相等。
图12是存储组信息2300的格式。存储组信息2300是按每个存储组2101存在的信息。以下,将根据某个存储组信息2300而管理的存储组2101称为“管理对象存储组”。存储组信息2300具有存储组标识符2301、存储组类型2302、存储装置标识符2303、组I/O数量2304、最大I/O数2305、空闲页管理指针2200。
存储组标识符2301是管理对象存储组的标识符。在存储组类型2302设定管理对象存储组的RAID类型的信息和构成管理对象存储组的存储装置160的设备类型的信息。另外,在RAID类型的信息,不仅包含RAID-1~RAID-6等表示数据冗余化方式的信息,而且还包含表示构成存储组2101的存储装置160的台数的信息。存储装置标识符2303是构成管理对象存储组的存储装置160的标识符。因为有多个存储装置160属于存储组2101,所以在存储组信息2300保存属于存储组2101的所有存储装置160的标识符。
组I/O数量2304是存储控制器200对管理对象存储组发出的写入请求的合计值。在刚定义管理对象存储组后组I/O数量2304的值为0。
最大I/O数2305是管理对象存储组可受理的写入请求次数的最大值。最大I/O数2305在属于管理对象存储组的存储装置160以闪存为存储介质的存储装置160的情况下使用。在属于管理对象存储组的存储装置160例如像HDD等那样对可更新次数没有限制的情况下,在最大I/O数2305设定NULL。
另外,存储装置160的可更新次数按存储装置160的每个种类(存储器类型2503)而不同。因此,最大I/O数2305按构成存储组2101的存储装置160的每个设备类型(如上所述,这是包含于存储组类型2302的信息)而不同。
空闲页管理指针2200是用于管理管理对象存储组内的物理页中的空闲物理页的信息。空闲页管理指针2200的详细情况在之后使用图13进行说明。
图9是虚拟逻辑卷信息2040的形式。虚拟逻辑卷信息2040是用于管理虚拟逻辑卷的属性信息的信息,按每个虚拟逻辑卷生成。以下,将按某个虚拟逻辑卷信息2040管理属性信息的虚拟逻辑卷称为“管理对象虚拟逻辑卷”。虚拟逻辑卷信息2040包含虚拟逻辑卷标识符2085、连接存储器端口标识符2084、现逻辑卷标识符2086、原逻辑卷标识符2087、有效标志2088、复制指针2089。
虚拟逻辑卷标识符2085是管理对象虚拟逻辑卷的标识符。连接存储器端口标识符2084是连接管理对象虚拟逻辑卷的存储器端口197的标识符,具有一个以上。连接存储器端口标识符2084也可以是其它物理存储***100的存储器端口197的标识符。
现逻辑卷标识符2086是用于确定对管理对象虚拟逻辑卷映射的现逻辑卷的标识符。在现逻辑卷标识符2086中,不仅包含现逻辑卷的逻辑卷标识符,而且包含定义现逻辑卷的物理存储***100的标识符和连接现逻辑卷的存储器端口197的标识符。只要现逻辑卷标识符2086中含有的物理存储***100的标识符与定义管理对象虚拟逻辑卷的物理存储***100的标识符相同,现逻辑卷就是指在与定义管理对象虚拟逻辑卷的物理存储***100相同的物理存储***100中定义的逻辑卷。
原逻辑卷标识符2087是用于确定对管理对象虚拟逻辑卷映射的原逻辑卷的标识符。原则上,在正在从原逻辑卷向现逻辑卷迁移数据的情况下,在原逻辑卷标识符2087设定有有效的值。原逻辑卷标识符2087中所含的信息与现逻辑卷标识符2086一样,不仅包含原逻辑卷的逻辑卷标识符,而且包含定义原逻辑卷的物理存储***100的标识符和连接原逻辑卷的存储器端口197的标识符。
有效标志2088是表示原逻辑卷标识符2087的内容是否有效的信息。在有效标志2088的值为1(ON)时,原逻辑卷标识符2087的内容有效,表示正在从原逻辑卷向现逻辑卷迁移数据。在有效标志2088的值为0(OFF)时,表示在原逻辑卷标识符2087未保存有效的信息。
复制指针2089是表示数据迁移进行到什么程度的信息。本实施例的物理存储***100在从原逻辑卷向现逻辑卷进行数据迁移(复制)时,从原逻辑卷的开头虚拟页起依次进行复制。在复制指针2089保存复制对象虚拟页的虚拟页号码。复制指针2089的初始值为0,每进行一次虚拟页的复制处理时加上1。另外,也可以在复制指针2089保存虚拟页号码以外的信息。因为只要是能够确定复制对象的虚拟页的信息即可,所以也可以在复制指针2089使用逻辑卷的LBA。
图10表示逻辑卷信息2000的形式。逻辑卷信息2000是用于管理逻辑卷的属性信息的信息,是按每个逻辑卷存在的信息。以下,将根据某个逻辑卷信息2000管理属性信息的逻辑卷称为“管理对象逻辑卷”。逻辑卷信息2000包含逻辑卷标识符2001、逻辑容量2002、存储组类型2003、物理页指针2004、累积I/O数2005。
逻辑卷标识符2001是管理对象逻辑卷的逻辑卷标识符。逻辑容量2002是管理对象逻辑卷的容量。
存储组类型2003是被分配给管理对象逻辑卷(的虚拟页)的物理页所属的存储组2101的属性(具体而言为存储组类型2302)。如果在管理对象逻辑卷设定有存储组类型2003,则在这种情况下,在物理存储***100向管理对象逻辑卷的各虚拟页分配物理页时,存储组2101的存储组类型2302选择与存储组类型2003相同的存储组2101来分配该存储组2101内的物理页。
不过,在本实施例的物理存储***100中,也可以在逻辑卷不设定存储组类型2003。在逻辑卷未设定存储组类型2003的情况下(存储组类型2003为NULL的情况下),物理存储***100在向管理对象逻辑卷的各虚拟页分配物理页时,分配任意的存储组2101内的物理页即可。在实施例1中对只要没有特别禁止就在存储组类型2003未设定信息的情况下的例子进行说明。
物理页指针2004是指向被分配给管理对象逻辑卷的虚拟页的物理页的管理信息(后述的物理页信息2100)的指针。逻辑卷信息2000具有与逻辑卷所具有的虚拟页的数相同数量的物理页指针2004(另外,通过以虚拟页大小分割逻辑容量2002获得逻辑卷所具有的虚拟页的数量)。在逻辑卷信息2000内的多个物理页指针2004中、从开头起第(n+1)个物理页指针2004,保存指向被分配给虚拟页#n的物理页的物理页信息2100的指针。
通常,在容量虚拟化中,使逻辑卷的存储容量看起来比实际的存储介质的容量大。因此,物理存储***100内的虚拟页的总数一般比物理页的总数大。另外,在本实施例中,对虚拟页的容量(虚拟页大小)在物理存储***100中相同的情况下的例子进行说明。不过,对于物理存储***100中存在大小不同的虚拟页的结构,本发明也有效。
累积I/O数2005是对管理对象逻辑卷发出的写入请求的数量。物理存储***100在每次从服务器110或其它物理存储***100收到对于管理对象逻辑卷的写入请求时,在累积I/O数2005上加1。
图11是物理页信息2100的形式。物理页信息2100是物理页的管理信息,按每个物理页存在。在以下的说明中,将根据某个物理页信息2100管理的物理页称为“管理对象页”。物理页信息2100包含存储组标识符2104、物理页地址2102、空闲页指针2103、累积页I/O数2105。
存储组标识符2104是管理对象页所存在的存储组2101的标识符。物理页地址2102是表示管理对象页所存在的位置的信息。因为物理页存在于存储组2101内,所以物理页地址2102中使用的信息是存储组的地址。具体而言,在物理页地址2102保存管理对象页的开头区域的地址。参照图2进行说明。在图2中,例如条带块N定位于物理页RP1的开头,条带块N的地址(存储组地址)为“0x00015000”(另外,“0x”表示数值为16进位计数),因此在物理页RP1的物理页信息2100的物理页地址2102保存“0x00015000”。
在累积页I/O数2105中记录从外部(服务器110或其它物理存储***100)对管理对象页发出写入请求的次数。空闲页指针2103是在管理对象页为被分配给虚拟页的情况下(为空闲页的情况下)使用的信息。在空闲页的空闲页指针2103保存指向其它空闲物理页的物理页信息2100的指针。本实施例的物理存储***100按每个存储组2101管理空闲物理页,具体后述。因此,在空闲页指针2103保存指向相同的存储组2101中存在的空闲页的物理页信息2100的指针。
接着,对存储组信息2300中所含的空闲页管理指针2200进行说明。图13表示通过空闲页管理指针2200管理的空闲物理页的集合。以下,有时还将与空闲物理页对应的物理页信息2100称为空闲物理页信息2100。如图13所示,存储控制器200利用空闲页指针2103连接各空闲物理页信息2100,作为链接列表进行管理。此外,存储控制器200通过在空闲页管理指针2200保存指向链接列表的开头的空闲物理页信息2100的指针(地址)来管理空闲物理页。将该链接列表称为空闲物理页信息队列。空闲物理页信息队列按每个存储组2101存在。
在空闲页管理指针2200保存指向开头的空闲物理页信息2100的指针。由此,空闲页管理指针2200指示存储组2101内的1个空闲物理页的物理页信息2100。接着,被空闲页管理指针2200指示的空闲物理页信息2100中的空闲页指针2103指示下一个空闲物理页信息2100。在图13中,最后的空闲物理页信息2100的空闲页指针2103指示空闲页管理指针2200,不过也可以为无效(NULL)值。在存储控制器200受理对未被分配物理页的虚拟页的写入请求时,从与存储组2101中的任一个、例如具有最多空闲物理页的存储组2101对应的空闲页管理指针2200搜索空闲物理页,分配给虚拟页。
另外,不仅以上说明的各种管理信息,物理存储***100还具有存储池管理信息作为用于辨别属于存储池的存储组2101的信息。而且,物理存储***100在从管理者受理使存储组2101属于存储池的指示时,通过将存储组2101的信息(存储组标识符等)保存在存储池管理信息来定义、管理存储池。不过,因为存储池管理信息是仅登记有属于存储池的所有存储组2101的信息的信息,所以省略存储池管理信息的说明。
此外,在以下的说明中,对在物理存储***100向虚拟页分配物理页时选择物理存储***100内的任一存储组2101的例子进行说明。这是因为,本实施例的各物理存储***100以全部存储装置160(存储组2101)均属于存储池为前提。在仅物理存储***100内的一部分存储组2101属于存储池的情况下,在物理存储***100向虚拟页分配物理页时,需要通过参照存储池管理信息选择存储池的存储组2101,分配所选择的存储组所具有的物理页。
接着,使用以上说明的管理信息,进行存储控制器200执行的动作的说明。首先说明存储控制器200的动作。在存储控制器200中,通过存储控制器200内的处理器260运行程序而进行以下说明的那样的各处理。该程序保存于存储器270。此外,如上所述,以下的各处理的说明中有时还将程序作为主语进行说明,它们能够理解它们由处理器260或存储控制器200运行。
图15表示保存在存储器270内的、与本实施例相关的程序。与本实施例相关的程序是读取处理执行部4000、写入请求受理部4100、写后处理执行部4200、物理存储***追加处理部4300、复制处理部4400。
此外,有多个物理存储***100属于本实施例的虚拟存储***190。而且,由某个物理存储***100(假设将其称为“物理存储器A”)执行的程序的处理对象(例如逻辑卷)既可以是物理存储器A所具有的逻辑卷,也可以是虚拟存储***190内的其它物理存储***100所具有的逻辑卷。由物理存储器A执行的程序的处理对象在处于物理存储器A的情况下和处于其它物理存储***100的情况下应该进行的处理并不相同,因此有时程序进行处理对象是否处于物理存储器A的判断。以下,在进行各程序的处理流程的说明时,将执行程序的物理存储***100称为“本存储器”,将本存储器以外的物理存储***100称为“其它存储器”。
图16和图17是读取处理执行部4000的处理流程。读取处理执行部4000是从本存储器从服务器110受理读取请求时或从其它存储器受理读取请求时运行的程序。在从其它存储器受理读取请求时,不从步骤5000而从步骤5007开始执行。此外,在服务器110发出访问请求(读取请求或写入请求)时,服务器110为了指定访问对象的数据卷而在访问请求中包含虚拟逻辑卷标识符。另一方面,在物理存储***100向其它物理存储***100发出访问请求时,服务器110为了指定访问对象的数据卷而在访问请求中包含逻辑卷标识符。
步骤5000:读取处理执行部4000参照与由从服务器110接收到的读取请求指定的虚拟逻辑卷对应的虚拟逻辑卷信息2040,检查有效标志2088是否为ON(有效)。如果有效标志2088为OFF(无效)(步骤5000:是(Yes)),则跳转至步骤5003。
步骤5001:读取处理执行部4000检查将所指定的地址变换为虚拟页号码而得到值是否大于复制指针2089。在将所的地址变换为虚拟页号码而得到值大于复制指针2089的情况下,接下来进行步骤5002,在小于的情况下,步骤5002被跳过,接下来进行步骤5003。
步骤5002:读取处理执行部4000向包含按原逻辑卷标识符2087确定的逻辑卷(即原逻辑卷)的物理存储***100发出读出请求。在原逻辑卷标识符2087包含逻辑卷标识符和连接逻辑卷的存储器端口197的标识符。读取处理执行部4000使用这些信息,对具有原逻辑卷的物理存储***100的存储器端口197发出读取请求。之后进行步骤5005。
步骤5003:读取处理执行部4000参照现逻辑卷标识符2086,检查访问对象的逻辑卷是否是本存储器中所含的逻辑卷,如果是,则跳转至步骤5007。
步骤5004:读取处理执行部4000向包含由现逻辑卷标识符2086指定的逻辑卷的物理存储***100发出指定逻辑卷的读出请求。
步骤5005:读取处理执行部4000等待从读取请求目的地的物理存储***100发送来数据。
步骤5006:读取处理执行部4000将发送来的数据发送至服务器110,完成处理。
步骤5007:读取处理执行部4000将现逻辑卷标识符2086或者从其它存储器指定的逻辑卷的标识符所示的逻辑卷作为处理对象。(在从其它物理存储***100接收到读取请求的情况下,从本步骤开始执行。)
步骤5008:读取处理执行部4000检查由读取请求指定的地址的数据是否存在于高速缓冲存储器210中。在数据不存在于高速缓冲存储器210中的情况下,接下来进行步骤5010。在数据存在于高速缓冲存储器210中的情况下,接下来进行步骤5009。
步骤5009:读取处理执行部4000将高速缓冲存储器210上存在的数据发送至服务器110或发出请求的其它存储器。之后完成处理。
步骤5010:在这种情况下,读取处理执行部4000根据所指定的逻辑卷的标识符识别对应的逻辑卷信息2000。进一步,读取处理执行部4000通过参照包含由读取请求指定的地址的虚拟页的物理页指针2004,取得被分配给虚拟页的物理页的物理页信息2100。
例如在将由读取请求指定的地址变换为虚拟页号码的结果是虚拟页号码为n的情况下,读取处理执行部4000通过参照逻辑卷信息2000内的第(n+1)个物理页指针2004而取得物理页信息2100。然后,读取处理执行部4000通过参照物理页信息2100,识别对应的存储组信息2300,从RAID类型等确定包含所请求的数据的存储装置160及其地址。然后,读取处理执行部4000向保存读取对象数据的存储装置160发出读出请求。
步骤5011:读取处理执行部4000完成请求而待机至读取数据被返还回来。
步骤5012,步骤5013:读取处理执行部4000将被发送来的数据保存在高速缓冲存储器210(步骤5012)。进一步,读取处理执行部4000将该数据发送至服务器110或发出请求的其它存储器(步骤5013),完成处理。
图18、图19是写入请求受理部4100的处理流程。写入请求受理部4100由存储控制器200在从服务器110受理了写入请求时或从其它存储器受理了写入请求时执行。在从其它存储器受理了写入请求时,不从步骤6000而从步骤6008开始执行。
步骤6000:写入请求受理部4100(处理器260)从服务器110接收写入请求和写入数据。
步骤6001:写入请求受理部4100参照与由接收到的写入请求指定的虚拟逻辑卷对应的虚拟逻辑卷信息2040,检查有效标志2088是否为ON。如果有效标志2088为OFF(步骤6001:是),则跳过步骤6002、步骤6003。
步骤6002:写入请求受理部4100检查由接收到的写入请求指定的地址是否大于复制指针2089。在所指定的地址小于复制指针2089的情况下(步骤6002:是),接下来进行步骤6004。
步骤6003:在由写入请求指定的地址为复制指针2089以上的情况下(步骤6002:否(No)),执行步骤6003。在步骤6003,写入请求受理部4100向具有原逻辑卷的物理存储***100发出写入请求,发送写入数据。在原逻辑卷标识符2087中包含逻辑卷的标识符和连接逻辑卷的存储器端口197的标识符。写入请求受理部4100使用这些信息,对具有以原逻辑卷标识符2087确定的逻辑卷(原逻辑卷)的物理存储***100(的存储器端口197)发出写入请求。之后,写入请求受理部4100跳过步骤6004、步骤6005,执行步骤6006。
步骤6004:写入请求受理部4100参照现逻辑卷标识符2086,检查写入对象的逻辑卷是否是本存储器中所含的逻辑卷,如果是,则跳转至步骤6008。
步骤6005:写入请求受理部4100向包含由现逻辑卷标识符2086指定的逻辑卷的物理存储***100(其它存储器)发出写入请求,发送写入数据。在接收到该写入请求的其它存储器,执行写入请求受理部4100,不过此时从步骤6008开始进行处理。
步骤6006:写入请求受理部4100等待至从写入请求发出目的地的物理存储***100发回完成写入请求的通知。
步骤6007:写入请求受理部4100向服务器110进行结束报告,完成处理。
步骤6008:写入请求受理部4100从其它存储器接收写入请求和写入数据。(在从其它存储器接收到写入请求的情况下,从本步骤开始执行。)
步骤6009:写入请求受理部4100判断是否在向与由写入请求指定的地址对应的虚拟页分配物理页。这能够通过将由写入请求指定的地址变换为虚拟页号码,并基于此参照逻辑卷信息2000的物理页指针2004来判断。例如在将由写入请求指定的地址变换为虚拟页号码的结果是虚拟页号码为n的情况下,写入请求受理部4100也可以参照逻辑卷信息2000内的第(n+1)个物理页指针2004,判断在该物理页指针2004是否保存有有效的值。如果被分配了物理页,则接下来进行步骤6013。在未被分配物理页的情况下,接下来进行步骤6010。
步骤6010:写入请求受理部4100将总空闲存储容量2055和空闲存储容量2057减去虚拟页容量。此外,写入请求受理部4100向其它存储器发出总空闲存储容量2055的减算请求,并等待其完成。(接收到该请求的其它存储器将总空闲存储容量2055减去虚拟页容量,然后向请求源的物理存储***100进行完成的报告。因为仅有这些处理,所以省略该处理流程。)
步骤6011:写入请求受理部4100检查总空闲存储容量2055和空闲存储容量2057,根据需要向存储器管理服务器180发出追加新的物理存储***100的请求。例如,在总空闲存储容量2055或空闲存储容量2057低于规定的阈值的情况下,请求追加新的物理存储***100即可。当维护人员识别到通知给存储器管理服务器180的信息而向供应商请求追加物理存储***100时,会在信息***追加物理存储***100。
步骤6012:写入请求受理部4100选择恰当的存储组信息2300,从空闲页管理指针2200选择1个物理页信息2100,分配给虚拟页。假设此处的写入对象的虚拟页号码为n,则写入请求受理部4100在写入对象逻辑卷的逻辑卷信息2000内的多个物理页指针2004中、从开头起第(n+1)个物理页指针2004,登记指向被确保的物理页的物理页信息2100的指针。
步骤6013:写入请求受理部4100将接收到的数据保存在高速缓冲存储器210。此外,写入请求受理部4100在写入对象逻辑卷的逻辑卷信息2000内的累积I/O数2005加上1,并且将写入对象物理页的物理页信息2100内的累积页I/O数2105加上1。之后,写入请求受理部4100在为从服务器110接收到的写入请求时向服务器110进行完成报告,在为从其它存储器接收到的写入请求时向其它存储器进行完成报告。
另外,此处对在累积I/O数2005和累积页I/O数2105加上1的例子进行了说明,也可以根据写入数据量在累积I/O数2005和累积页I/O数2105加上大于1的值。例如在写入数据大小为与n条带块相应的大小的情况下,写入请求受理部4100也可以在累积I/O数2005和累积页I/O数2105加上n。
此外,写入请求受理部4100在将数据保存于缓存210时,在添加上与该数据相关的信息后进行保存。与数据相关的信息具体是指能够确定作为该数据的写入目的地的存储装置160和存储装置160内的地址的信息。写入请求受理部4100保存在缓存210的数据均需要写入存储装置160。该处理由后述的写后处理执行部4200进行。
在写后处理执行部4200将数据写入存储装置160时,需要确定数据写入目的地的存储装置160。进一步,在将数据写入存储组2101时,还需要进行RAID的奇偶(冗余数据)的更新,因此写后处理执行部4200需要确定冗余数据的写入目的地的存储装置160。因此,写入请求受理部4100添加上与数据相关的信息。
另外,作为一个例子,与数据相关的信息是数据(和冗余数据)保存地址的存储装置160的标识符和存储装置160内的地址。不过也可以为这以外的信息。例如,如果在数据上添加数据的写入目的地的逻辑卷标识符及其逻辑卷的地址(LBA),则能够从这些信息导出数据(和冗余数据)的写入目的地的存储装置160和存储装置160内的地址。因此也可以添加上逻辑卷标识符和逻辑卷的LBA。在本实施例中,在作为与数据相关的信息在数据上添加数据写入目的地的逻辑卷标识符和LBA的前提下进行说明。
此外,与数据相关的信息既可以与数据一起保存在缓存210中,也可以保存在共享存储器220。
图20是写后处理执行部4200的处理流程。写后处理执行部4200是处理器260适当地执行的处理。
步骤7000:写后处理执行部4200判断在缓存210上是否存在尚未写入存储装置160的写入数据(以下,称为“脏数据”)。在存在脏数据的情况下,写后处理执行部4200选择其中的1个。另外,在缓存210上不存在脏数据的情况下,写后处理执行部4200不进行步骤7001以后的处理而结束。
步骤7001:写后处理执行部4200基于添加于脏数据的信息(与数据相关的信息),确定脏数据、该脏数据的冗余数据的写入目的地的存储组2101及其存储装置160、以及其地址。进一步,写后处理执行部4200在所确定的存储组2101的存储组信息2300内的组I/O数量2304加上1。此外,作为另一实施方式,也可以根据写入存储装置160的数据的大小,变更加到组I/O数量2304的值的量。例如,在存储装置160写入n条带块的量的数据的情况下,也可以在组I/O数量2304加上n。
步骤7002:写后处理执行部4200生成在步骤7000选择的脏数据的冗余数据。另外,为了生成冗余数据,写后处理执行部4200有时还必须从存储组2101内的存储装置160读出数据。不过,由于这是公知的技术,所以省略说明。
步骤7003:写后处理执行部4200向写入脏数据的存储装置160和写入冗余数据的存储装置160分别发出写入请求。(成为各自的存储装置。)
步骤7004:写后处理执行部4200一直待机至从存储装置160收到写入处理的完成响应。
步骤7005:从存储装置160收到写入处理的完成响应之后,写后处理执行部4200将缓存210上的脏数据删除。或者,成为已知该脏数据已经被写入存储装置160的状态。之后,完成处理。
图21是物理存储***追加处理部4300的处理流程。在以下的说明中,将虚拟存储***190中追加的物理存储***100称为“本存储器”,将本存储器的追加的虚拟存储***190称为“追加对象虚拟存储器”。
此外,在追加对象虚拟存储器中追加的物理存储***100(本存储器),已经定义存储组2101,已经定义存储装置信息2500、存储组信息2300。此外,在此以外,在本存储器中预先设定有虚拟存储***标识符2051、物理存储***标识符2052、物理存储器存储容量2056、空闲存储容量2057、存储池容量2058。具体而言,事先在虚拟存储***标识符2051设定追加对象虚拟存储器的标识符。此外,在物理存储器存储容量2056设定有物理存储***100内的存储装置160的容量的合计值,在存储池容量2058和空闲存储容量2057设定有存储池的容量。
本存储器通过在刚与SAN120连接之后(即将执行步骤8001之前)与各物理存储***100进行通信,来识别虚拟存储***标识符2051相等的物理存储***100。而且,本存储器在需要向属于相同的虚拟存储***190的各物理存储***100进行通知的情况下,对此处识别出的各物理存储***100进行通知。
另外,图21中记载的各步骤中,步骤8001~步骤8007是本存储器的物理存储***追加处理部4300执行的处理。而且,步骤8011~步骤8022是从本存储器收到通知的物理存储***100(以下为了与本存储器进行区别而将其称为“物理存储器A”)的物理存储***追加处理部4300所执行的处理。不过,在以下的说明中,为了避免说明变得冗长,将步骤8001~步骤8007的处理的主体记作“本存储器”,此外,将步骤8011~步骤8022的处理的主体记作“物理存储器A”。
步骤8001:本存储器将虚拟存储***190内被追加了物理存储***100的意思的信息、本存储器的物理存储器存储容量2056和存储池容量2058、本存储器的物理存储***标识符2052以及本存储器所具有的存储器端口197的存储器端口标识符通报给追加对象虚拟存储器内的各物理存储***100。
步骤8002:本存储器一直待机至从各物理存储***100收到回答。
另一方面,从被追加的物理存储***100收到通知的物理存储***100(物理存储器A)决定将一部分虚拟逻辑卷迁移至所追加的物理存储***100(不过,也存在决定不迁移虚拟逻辑卷的情况)。而且,物理存储器A将虚拟存储的存储容量2053、总物理存储器存储容量2054、总空闲存储容量2055的信息、进而将决定了迁移的虚拟逻辑卷的标识符、还有对该虚拟逻辑卷映射的逻辑卷的标识符(现逻辑卷标识符2086)、逻辑容量2002、存储组类型2003、以及与该虚拟逻辑卷连接的存储器端口197的标识符发送至所追加的物理存储***100(步骤8016)。物理存储器A进行的处理后述。
步骤8003:本存储器在存储***信息2050设定从物理存储器A接收到的信息(虚拟存储的存储容量2053、总物理存储器存储容量2054、总空闲存储容量2055的信息)。此外,本存储器进行作为迁移对象指定的1个或多个虚拟逻辑卷的定义。具体而言,本存储器生成虚拟逻辑卷的虚拟逻辑卷信息2040,在所生成的虚拟逻辑卷信息2040的虚拟逻辑卷标识符2085和原逻辑卷标识符2087分别设定从物理存储器A作为迁移对象指定的虚拟逻辑卷的标识符和对该虚拟逻辑卷映射的逻辑卷的标识符(现逻辑卷标识符2086)。进一步,本存储器在虚拟逻辑卷信息2040的连接存储器端口标识符2084设定所接收到的存储器端口标识符。
此外,本存储器定义(生成)对作为迁移对象指定的虚拟逻辑卷映射的逻辑卷(现逻辑卷)。具体而言,本存储器重新生成逻辑卷信息2000。进一步,物理存储***追加处理部4300决定逻辑卷的标识符,并将所决定的逻辑卷标识符保存在逻辑卷信息2000的逻辑卷标识符2001。此处决定的逻辑卷标识符只要是存在于本存储器内的逻辑卷的标识符以外的标识符就可以是任意的标识符。
此外,本存储器将从其它物理存储***100接收到的逻辑卷的存储容量和存储组类型的信息分别存储在逻辑容量2002和存储组类型2003。另外,在作为迁移对象指定的逻辑卷未设定存储组类型2003的情况下,本存储器也可以不设定此处定义的现逻辑卷的存储组类型2003。
此外,本存储器在本次生成的虚拟逻辑卷信息2040的现逻辑卷标识符2086设定所生成的逻辑卷的标识符、本存储器的标识符和本存储器的存储器端口197的标识符,此外,令有效标志2088为1(ON),而且在复制指针2089设定初始值(0)。此外,本存储器在虚拟逻辑卷决定服务器110进行访问时能够使用的存储器端口197,将所决定的存储器端口197的标识符保存在虚拟逻辑卷信息2040。另外,能够使用的存储器端口197也可以有多个。
步骤8004:本存储器向服务器110通知本存储器所具有的虚拟存储***标识符2051、在步骤8003定义的虚拟逻辑卷的虚拟逻辑卷标识符2085和访问该虚拟逻辑卷时能够使用的存储器端口197的存储器端口标识符。服务器110根据该通知识别到该虚拟逻辑卷已经与所通知的存储器端口197连接,在服务器端口信息198保存该存储***标识符和存储器端口标识符的信息。
步骤8005:本存储器向包含一个以上作为迁移对象指定的虚拟逻辑卷的集合的其它物理存储***100通知信息设定已经完成。进一步,本存储器还可以向其它物理存储***100传送现逻辑卷标识符2086、能够访问现逻辑卷的存储器端口197的标识符和虚拟逻辑卷的标识符。
步骤8006:本存储器一直待机至从其它各物理存储***100收到回复。
步骤8007:本存储器从在步骤8005发送了通知的所有物理存储***100接收到回复时,按每个进行迁移的虚拟逻辑卷启动复制处理(使复制处理部4400的执行开始)。之后结束处理。
接着,对虚拟存储***190中追加的物理存储***100以外的物理存储***100、特别是从所追加的物理存储***100接收到请求的物理存储***100(物理存储器A)执行的处理进行说明。
首先,说明物理存储器A在从所追加的物理存储***100最初接收到请求时(步骤8001)执行的处理(步骤8011~步骤8016)。物理存储器A在虚拟存储的存储容量2053和总空闲存储容量2055加上从所追加的物理存储***100接收到的存储池容量2058,在总物理存储器存储容量2054加上从所追加的物理存储***100接收到的物理存储器存储容量2056(步骤8011)。此外,物理存储器A向服务器110通知已经追加物理存储***100的意思的内容和虚拟存储的存储容量2053、总物理存储器存储容量2054、总空闲存储容量2055的信息(步骤8012)。优选向服务器110通知的是任一个物理存储***100,可以将相同的容量报告给多个物理存储***100。
在步骤8013,物理存储器A对物理存储器A的存储池容量2058与空闲存储容量2057进行比较,在判断为物理存储器A的存储池空闲容量不足的情况下(例如空闲存储容量2057为规定值以下的情况下,或者“空闲存储容量2057÷存储池容量2058”为规定值以下的情况下等),决定将1个或多个虚拟逻辑卷迁移至所追加的物理存储***100(步骤8014)。假设物理存储器A的存储池空闲容量不足的情况下(步骤8013:否),跳过步骤8014。
另外,将此处决定迁移的虚拟逻辑卷称为“迁移对象虚拟逻辑卷”。此外,对迁移对象虚拟逻辑卷映射的逻辑卷也作为迁移的对象。将对迁移对象虚拟逻辑卷映射的逻辑卷称为“迁移对象逻辑卷”。
此外,步骤8014的迁移对象(虚拟)逻辑卷的数量和逻辑容量的决定方法可以是任意的,不过优选考虑对构成虚拟存储***190的物理存储***100的数量及所追加的物理存储***100的存储容量来决定迁移的逻辑卷的逻辑容量(或数量)。例如,物理存储器A在所追加的物理存储***100的存储容量(总物理存储器存储容量2054)比较大的情况下(为规定的阈值以上的情况下),可以增加迁移对象的虚拟逻辑卷。此外,在构成虚拟存储***190的物理存储***100的数量多的情况下,由于其它物理存储***100也向所追加的物理存储***100迁移逻辑卷,所以优选使迁移对象的虚拟逻辑卷不多。
此外,在步骤8014,在选择1以上迁移对象(虚拟)逻辑卷时,物理存储器A可以选择任意(虚拟)逻辑卷。不过,作为另一实施方式,物理存储器A也可以基于某些判断基准选择(虚拟)逻辑卷。在后述的变形例中对迁移对象(虚拟)逻辑卷的选择方法的一个例子进行说明。
在步骤8015,物理存储器A将所追加的物理存储***100的物理存储***标识符和所追加的物理存储***100所具有的存储器端口197的存储器端口标识符追加于另一物理存储***信息2070。
其后,在步骤8016,物理存储器A将迁移对象虚拟逻辑卷的标识符、迁移对象逻辑卷的标识符(正确而言是记录于迁移对象虚拟逻辑卷的虚拟逻辑卷信息2040的、现逻辑卷标识符2086)、迁移对象逻辑卷的容量、进而将与迁移对象虚拟逻辑卷连接的存储器端口197的标识符(不过,物理存储器A的存储器端口197的标识符除外)发送至所追加的物理存储***100。在迁移对象虚拟逻辑卷具有多个的情况下,按每个迁移对象虚拟逻辑卷发送这些信息。另外,如果没有迁移对象虚拟逻辑卷,则发送无效值。
接着,对在物理存储器A从所追加的物理存储***100接收到第二次请求时(步骤8005)、由物理存储器A执行的处理(步骤8021~8022)进行说明。此处,物理存储器A向迁移对象虚拟逻辑卷所连接的服务器110通知迁移对象虚拟逻辑卷的标识符和物理存储器A所具有的存储器端口197的存储器端口标识符24003,请求从与迁移对象虚拟逻辑卷对应的存储器端口标识符24003中删除所通知的存储器端口标识符24003(步骤8021)。服务器110在收到该请求时,从服务器端口信息198删除所指定的虚拟逻辑卷的存储器端口标识符24003。
进一步,物理存储器A将迁移对象虚拟逻辑卷的虚拟逻辑卷信息2040消除(步骤8022)。此外,在从虚拟存储***190中追加的物理存储***100接收到虚拟逻辑卷标识符、逻辑卷标识符、存储器端口标识符的情况下,物理存储器A在与虚拟逻辑卷标识符对应的虚拟逻辑卷信息2040的、现逻辑卷标识符2086设定逻辑卷标识符,在连接存储器端口标识符2084设定存储器端口标识符。之后,向所追加的物理存储***100通知处理的完成,而后物理存储器A的物理存储***追加处理部4300结束处理。
图22和图23是复制处理部4400的处理流程。复制处理部4400是进行从对虚拟逻辑卷映射的原逻辑卷向现逻辑卷迁移(复制)数据的处理的程序。复制处理部4400在从物理存储***追加处理部4300发出起动的指示时(步骤8007)开始执行。该处理按每个虚拟逻辑卷执行。另外,也可以并行执行多个虚拟逻辑卷的复制处理。在以下的说明中,将进行数据迁移处理的对象的虚拟逻辑卷称为迁移对象虚拟逻辑卷。
步骤14000~步骤14010的处理是执行在虚拟存储***190新追加的物理存储***100的复制处理部4400的处理。不过,在以下的说明中,为了避免说明变得冗长,将处理的主体单纯记作“复制处理部4400”进行说明。
步骤14000:复制处理部4400确定迁移对象虚拟逻辑卷的复制指针2089所示的地址(虚拟页号码)。按此处确定的虚拟页号码所确定的、原逻辑卷的虚拟页和现逻辑卷的虚拟页被决定为复制处理对象。复制处理部4400按每虚拟页执行复制处理。
此外,复制处理部4400从原逻辑卷的开头虚拟页起依次读出数据,复制到现逻辑卷的虚拟页。另外,在以下的步骤14001~步骤14006的说明中,说明复制处理部4400对虚拟页#n进行处理的情况下的例子。此外,在以下的说明中,有时还将虚拟页#n记作“VP#n”。
步骤14001:复制处理部4400从与迁移对象虚拟逻辑卷对应的虚拟逻辑卷信息2040的原逻辑卷标识符2087确定具有原逻辑卷的物理存储***100的标识符、原逻辑卷的逻辑卷标识符,从复制指针2089决定由读出请求指定的地址。此外,复制处理部4400在所确定的物理存储***100指定所确定的逻辑卷的逻辑卷标识符和读出对象的虚拟页的地址,发出读出请求。
步骤14002:复制处理部4400一直待机至从发出读取请求的物理存储***100发来数据,在发来数据的时刻执行步骤14003。另外,存在从发出读取请求的物理存储***100发来无效值的情况。在这种情况下,复制处理部4400接下来执行步骤14007。
步骤14003:此处进行应该分配给现逻辑卷的VP#n的物理页的确保。复制处理部4400适当地选择物理存储***100内的存储组2101,参照该存储组的空闲物理页信息2100来确保空闲物理页。然后在现逻辑卷的逻辑卷信息2000内的多个物理页指针2004中的、从开头起第(n+1)个物理页指针2004,登记指向所确保的物理页的物理页信息2100的指针。进一步,复制处理部4400从空闲存储容量2057减去虚拟页大小。此处选择的存储组2101既可以为任意存储组,或者也可以按照某些选择基准选择存储组2101。
步骤14004:复制处理部4400从发来的数据生成冗余数据。
步骤14005:复制处理部4400将接收到的数据和冗余数据写入在步骤14003确保的物理页所处的存储装置160,因此发出写入请求。物理页是跨属于存储组2101的多个存储装置160定义的区域。因此,此处向多个存储装置160发出写入请求。
步骤14006:复制处理部4400一直待机至从各存储装置160收到完成写入处理的报告的回复。
步骤14007:复制处理部4400在复制指针2089加上1。
步骤14008:复制处理部4400通过对复制指针2089与该逻辑卷的虚拟页数进行比较,检查是否完成复制。在未完成的情况下,即复制指针2089为逻辑卷的虚拟页数以下的情况下(步骤14008:否),复制处理部4400再次从步骤14000起进行处理。在复制已经完成的情况下,即复制指针2089超过逻辑卷的虚拟页数的情况下(步骤14008:是),接下来进行步骤14009。
步骤14009:复制处理部4400在虚拟逻辑卷的有效标志2088保存0(OFF),并且,向具有以原逻辑卷标识符2087确定的原逻辑卷的物理存储***100发送已经完成复制的意思的内容和原逻辑卷的逻辑卷标识符。
步骤14010:复制处理部4400在从具有原逻辑卷的物理存储***100接收到完成报告时结束处理。
图23是向所追加的物理存储***100迁移逻辑卷一侧的物理存储***100、即具有原逻辑卷的物理存储***100的复制处理部4400执行的处理流程。
步骤14011-14015的处理在具有原逻辑卷的物理存储***100从所追加的物理存储***100收到读取请求(在步骤14001发出的请求)时执行。以下,只要没有特别限制,在对步骤14011-14015的说明中记述的处理就是具有原逻辑卷的物理存储***100的复制处理部4400执行的处理。
步骤14011:复制处理部4400通过参照逻辑卷信息2000的物理页指针2004,判断是否在向所指定的虚拟页分配物理页。在分配物理页的情况下,接下来进行步骤14013。
步骤14012:在未分配物理页的情况下,复制处理部4400向请求源的物理存储***100回复无效值,完成处理。
步骤14013:复制处理部4400识别物理页所处的存储组2101(进一步构成存储组2101的存储装置160),向识别出的存储装置160发出数据(虚拟页的数据)的读出请求。另外,在物理页,不仅包含读取对象数据而且还包含读取对象数据的冗余数据,不过此处复制处理部4400不需要读出冗余数据。
步骤14014:复制处理部4400一直待机至完成从存储装置160的数据读出。
步骤14015:复制处理部4400将读出的虚拟页的数据发送至请求源的物理存储***100。进一步,在自身(原逻辑卷的物理存储***100的)空闲存储容量2057加上1虚拟页的大小。由此,结束具有原逻辑卷的物理存储***100收到读取请求时的处理。
接着,进行在从所追加的物理存储***100进行复制完成的报告时(步骤14009)、在具有原逻辑卷的物理存储***100的复制处理部4400进行的处理的说明(省略图示)。因为从所追加的物理存储***100与复制完成的报告一起发来逻辑卷标识符,所以复制处理部4400进行以接收到的逻辑卷标识符确定的逻辑卷的删除。具体而言,进行逻辑卷信息2000的消除即可。此外,此时复制处理部4400还进行将分配给消除对象的逻辑卷的物理页的物理页信息2100迁移至空闲物理页信息队列的处理。之后,向所追加的物理存储***100进行完成报告。
以上是实施例1的说明。实施例1的虚拟存储***由多个物理存储***构成。物理存储***定义逻辑卷并且定义与逻辑卷对应的虚拟逻辑卷而提供给服务器。此外,定义虚拟逻辑卷的物理存储***与定义虚拟逻辑卷所对应的逻辑卷的物理存储***并不一定相同,因此只要在虚拟存储***内的任一物理存储***存在有空闲区域,用户(管理者)就能够使用该区域。
此外,在实施例1的虚拟存储***中,物理存储***不仅管理自身的存储池容量和存储池空闲容量,而且还计算虚拟存储***中所含的各物理存储***的存储池容量的合计值和存储池空闲容量的合计值,将这些合计值分别作为虚拟存储***的存储池容量、存储池空闲容量提供给服务器。由此,用户(管理者)不需要监视各个(物理)存储***的存储池容量(或空闲容量),而仅监视单一的存储***(虚拟存储***)的容量即可。
[变形例]
接着,对实施例1的虚拟存储***的变形例进行说明。在实施例1的虚拟存储***中,当在虚拟存储***中追加物理存储***时,之前属于虚拟存储***的物理存储***内的一部分逻辑卷被迁移至所追加的物理存储器。这虽然是为了确保各物理存储***内的存储池空闲容量,但是在以下说明的变形例中,说明不仅为了确保存储池空闲容量而且还为了实现存储装置的长寿命化而进行逻辑卷的迁移的例子。
变形例的虚拟存储***与物理存储***的硬件结构和各种管理信息与实施例1中的说明并没有不同,因此省略图示。以下以与实施例1中说明的事项不同之处为中心进行说明。由变形例的物理存储***执行的程序与实施例1中说明的程序几乎相同,不过追加内部损耗均衡部4500和***损耗均衡部4600(未图示)。此外,写入请求受理部4100和物理存储***追加处理部4300的处理与实施例1中的说明有若干差异。
首先,对变形例的写入请求受理部4100的处理中与实施例1中的说明的不同之处进行说明。在变形例的物理存储***中,在被分配给各逻辑卷的物理页的种类上存在限制。在变形例的物理存储***100向逻辑卷的各虚拟页分配物理页时(例如执行写入请求受理部4100的步骤6012时),存储组2101的存储组类型2302选择与逻辑卷的存储组类型2003相同的存储组2101。在以下的说明中,将此处选择的存储组2101称为“候选组”。因此,在变形例的物理存储***100中,以在各逻辑卷的逻辑卷信息2000内的存储组类型2003设定有有效的值为前提。
物理存储***100从候选组中选择空闲物理页分配给虚拟页。另外,在从候选组中选择空闲物理页时,物理存储***100优先选择剩余寿命长的候选组所具有的空闲物理页。
另外,在本例中,对进行候选组的选择时,如上述那样存储组2101的存储组类型2302选择与逻辑卷的存储组类型2003相同的存储组的例子进行说明,不过作为其它实施方式,也可以仅仅将共用设备类型的存储组2101作为候选组选择。例如在逻辑卷的存储组类型2003中设定的设备类型为“快闪存储器(SLC)”或“快闪存储器(MLC)”的情况下,也可以采用物理存储***100选择由快闪存储器(SLC或MLC中的任一个)构成的存储组2101作为候选组的方法。
对变形例的剩余寿命的判断方法进行说明。众所周知,闪存的擦除次数存在一定的限制,当擦除次数达到限制时就不能再使用。此处,将闪存的擦除次数达到规定的限制值称为“达到寿命”,将闪存的擦除次数成为接近限制值时的状态称为“剩余寿命短”状态。
另外,在以下说明的变形例中,物理存储器A不使用由快闪存储器构成的存储组2101的擦除次数而使用写入次数来判断存储组2101的剩余寿命的长度。这是因为,由于闪存的擦除次数与写入(重写)次数相关,所以使用写入次数也能够推测寿命。
在进行存储组2101的寿命判断时,具体而言,物理存储***100通过参照存储组2101的存储组信息2300,计算“组I/O数量2304÷最大I/O数2305”。以下,将“组I/O数量2304÷最大I/O数2305”称为“更新度”。是指更新度越小,存储组2101的剩余寿命就越长,相反更新度越大,存储组2101的剩余寿命就越短。
例如在执行写入请求受理部4100的步骤6012时,物理存储***100选择具有空闲物理页的候选组中的更新度最小的存储组2101,选择该存储组2101所具有的空闲物理页。由此,能够将剩余寿命最长的存储组2101的空闲物理页分配给虚拟页。
另外,在进行寿命的判断时,不计算组I/O数量2304(即写入次数)而计算更新度(组I/O数量2304÷最大I/O数2305)的理由是,由于快闪存储器的可重写次数(或可擦除次数)根据设备类型而不同,所以仅单纯根据写入次数来判断寿命并不恰当。
接着对内部损耗均衡部4500的处理进行说明。内部损耗均衡部4500是用于通过进行物理存储***100内的存储装置160间的数据迁移而尽力使各存储装置160的重写次数(擦除次数)相等的程序。另外,此处成为数据迁移处理的对象的存储装置160是以闪存为存储介质的存储装置160,即重写次数存在限制的存储装置160。
另外,以闪存为存储介质的存储装置160(快闪存储器)以在存储装置160的内部也进行所谓的损耗均衡处理,以使得存储装置160内的各闪存的重写次数(或擦除次数)相等的方式进行控制。不过,该处理是公知的处理,因此省略说明。
以下说明内部损耗均衡部4500的处理的概要。内部损耗均衡部4500被定期执行。内部损耗均衡部4500通过参照物理存储***100内的各存储组2101的存储组信息2300来计算2101的更新度。进一步,内部损耗均衡部4500计算物理存储***100内的所有存储组2101的更新度的平均值。
而且,在某个存储组2101(以下,称为“对象组”)的更新度与所计算出的更新度的平均值的差超过规定值的情况下,内部损耗均衡部4500确定属于其存储组2101的物理页中分配给逻辑卷的虚拟页的物理页。为了进行物理页的确定,内部损耗均衡部4500能够选择各逻辑卷信息2000中的、存储组类型2003与对象组的存储组类型2302相同的逻辑卷信息,通过参照由所选择的逻辑卷信息2000的物理页指针2004所指示的物理页信息2100的存储组标识符2104而确定。
然后,内部损耗均衡部4500确定所确定的物理页中累积页I/O数2105最大的物理页(将该物理页称为“迁移源物理页”)。并且,将迁移源物理页的数据迁移至属于更新度最小的存储组2101的空闲物理页(将其称为“迁移目的地物理页”),在已被分配迁移源物理页的虚拟页,以被分配迁移源物理页的方式变更逻辑卷信息2000的物理页指针。
另外,内部损耗均衡部4500进行的、迁移对象数据的选择方法并不限定于此以上说明的方法。只要是以尽力消除各存储装置160或者存储组2101间的重写次数(擦除次数)的不均衡的方式进行数据迁移,就可以使用各种各样的方法。
接着,对变形例的物理存储***追加处理部4300的处理内容进行说明。不过,虚拟存储***190中追加的物理存储***100的物理存储***追加处理部4300进行的处理(图21步骤8001~步骤8007)的内容与实施例1中说明的内容相同,因此此处省略说明。
另一方面,从追加的物理存储***100接收到请求的物理存储***100(在以下的说明中,与实施例1同样地将其称为“物理存储器A”)执行的处理(图21步骤8011以后)与实施例1中说明的处理有若干不同。在实施例1中,在物理存储器A向追加的物理存储***100迁移虚拟逻辑卷时,迁移任意的虚拟逻辑卷均可。另一方面,在变形例中,物理存储器A的物理存储***追加处理部4300在存在剩余寿命短的存储组2101的情况下,优先将被分配存储组2101的物理页的虚拟逻辑卷迁移至所追加的物理存储***100。
对变形例的步骤8011以后的处理的内容进行说明。步骤8011~步骤8022中,步骤8014以外的处理与实施例1中说明的处理相同,因此以下说明在步骤8014进行的内容。另外,以下的处理是物理存储器A的物理存储***追加处理部4300执行的处理,不过为了避免说明变得冗长,在以下的说明中将物理存储器A记作处理的主体。
在物理存储器A的存储池空闲容量不足的情况下(步骤8013:是),执行步骤8014。在步骤8014,物理存储器A首先决定迁移对象虚拟逻辑卷的容量。这是与实施例1中说明的处理相同的处理。即,考虑构成虚拟存储***190的物理存储***100的数量以及所追加的物理存储***100的存储容量而决定迁移对象虚拟逻辑卷的容量即可。另外,以下将此处决定的迁移对象虚拟逻辑卷的容量称为“迁移量”。
接着物理存储器A判断是否存在“组I/O数量2304÷最大I/O数2305”(更新度)超过规定的阈值(例如0.9等预先确定的值)的存储组2101。在变形例中,物理存储***100将更新度超过规定的阈值的存储组2101当作剩余寿命短的存储组2101。不过,对于如未设定最大I/O数2305的存储组2101、例如HDD等那样重写次数没有限制的存储组2101,不作为判断对象。
在没有剩余寿命短的存储组2101的情况下,物理存储器A与实施例1中说明的一样选择任意的虚拟逻辑卷作为迁移对象虚拟逻辑卷。
假设存在剩余寿命短的存储组2101的情况下,物理存储器A提取逻辑卷的存储组类型2003与该存储组2101的存储组类型2302相同的逻辑卷。进一步,物理存储器A对所提取的各逻辑卷,通过参照被分配给逻辑卷的物理页的物理页信息2100,确定被分配剩余寿命短的存储组2101的物理页的逻辑卷。假设存在多个这样的逻辑卷的情况下,物理存储器A从所确定的多个逻辑卷中选择迁移对象逻辑卷,直至达到迁移量。同时,物理存储器A选择对应于迁移对象逻辑卷的虚拟逻辑卷作为迁移对象虚拟逻辑卷。之后的处理与实施例1中说明的处理相同。即,物理存储器A将迁移对象虚拟逻辑卷的标识符以及迁移对象逻辑卷的标识符等通知给所追加的物理存储***100(本存储器)(步骤8016)。另一方面,本存储器通过执行步骤8003~步骤8007,进行将从物理存储器A通知的迁移对象逻辑卷的数据迁移至本存储器中定义的逻辑卷的处理等。
另外在选择迁移对象逻辑卷时,物理存储器A从被分配最多剩余寿命短的存储组2101的物理页的逻辑卷开始优先选择。由此,能够期待进一步减少剩余寿命短的存储组2101的重写次数,延长剩余寿命短的存储组2101的寿命。
另外,以上对进行步骤8013的判断的例子、即物理存储器A的存储池空闲容量不足的情况下进行(虚拟)逻辑卷的迁移的例子进行了说明。不过,作为其它实施方式,也可以不进行步骤8013的判断。即,即使物理存储器A的存储池空闲容量不足,在存在更新度超过规定的阈值的存储组2101的情况下,物理存储器A也可以做出迁移(虚拟)逻辑卷的决定。
此外,作为其它实施方式,在物理存储器A从与剩余寿命短的存储组2101相同的存储组类型的逻辑卷中选择迁移对象逻辑卷时,也可以不优先选择被分配多的剩余寿命短的存储组2101的物理页的逻辑卷,而优先选择累积I/O数2005最多的逻辑卷作为迁移对象逻辑卷。
通过向其它物理存储***100迁移累积I/O数2005最多的逻辑卷,减少对物理存储器A内的各存储组2101的写入次数的总量。此外,因为在物理存储器A定期地运行内部损耗均衡部4500,所以对各存储组2101的重写次数大致均等。因此,能够期待对剩余寿命短的存储组2101的重写次数也减少,作为结果,能够延长该存储组2101的寿命。
接着,对变形例的***损耗均衡部4600的处理说明。***损耗均衡部4600定期执行各物理存储***100。***损耗均衡部4600以使得虚拟存储***190内的各物理存储***100所具有的存储组2101的写入次数相等的方式控制各存储组2101,由此防止确定的物理存储***100的存储组2101的寿命变短。
具体而言,在各物理存储***100所具有的存储组2101的更新度产生不均衡的情况下,具有更新度大的存储组2101的物理存储***100(以下将其称为“物理存储器A”)向具有更新度小的存储组2101的物理存储***100(以下将其称为“物理存储器B”)迁移(虚拟)逻辑卷。
参照图30说明***损耗均衡部4600的处理的流程。另外,在以下的说明中,只要没有特别限定,步骤9001~步骤9007就是物理存储器A的***损耗均衡部4600执行的处理,即,是向物理存储器A以外的物理存储***100迁移(虚拟)逻辑卷的处理。而且,步骤9011~步骤9017是物理存储器B的***损耗均衡部4600执行的处理。
步骤9001:物理存储器A请求虚拟存储***190内的各物理存储***100发送寿命信息和空闲容量,从各物理存储***100取得寿命信息和存储池的空闲容量。寿命信息是指各存储组2101的更新度(组I/O数量2304÷最大I/O数2305)的平均值。
收到该请求的各物理存储***100(还包括物理存储器B)按物理存储***100内的每个存储组2101计算更新度,进一步求取计算出的值的平均值(寿命信息)。另外对最大I/O数2305为NULL的存储组2101,各物理存储***100不进行更新度的计算。然后各物理存储***100将所求得的平均值(寿命信息)和空闲存储容量2057发回物理存储器A(步骤9011)。
步骤9002:物理存储器A求取物理存储器A所具有的存储组2101的寿命信息。具体而言,物理存储器A按物理存储器A内的每个存储组2101计算“组I/O数量2304÷最大I/O数2305”,并进一步求取所计算出的值的平均值(以下,将该平均值记作a)。进一步,物理存储器A计算从虚拟存储***190内的各物理存储***100取得的寿命信息的平均值(以下,将该平均值记作b)。
在(a-b)为规定的值以上的情况下(步骤9002:是),意味着在物理存储器A所具有的存储组2101(平均)剩余寿命与其它物理存储***100所具有的存储组2101(平均)剩余寿命之间产生不均衡,且物理存储器A所具有的存储组2101(平均)剩余寿命短。在这种情况下,物理存储器A决定进行物理存储器A内的一部分虚拟逻辑卷的迁移,进行步骤9003以后的处理。相反,在(a-b)不到规定的值的情况下(步骤9002:否),处理结束。
步骤9003:此处,首先,物理存储器A决定物理存储器A所具有的逻辑卷(和映射该逻辑卷的虚拟逻辑卷)的迁移目的地的物理存储***100。物理存储器A参照从各物理存储***100取得的寿命信息,将具有最小的寿命信息的物理存储***100作为逻辑卷的迁移目的地。以下将被决定为逻辑卷的迁移目的地的物理存储***100称为物理存储器B。
接着,物理存储器A基于从物理存储器B收到的空闲存储容量2057决定迁移的逻辑卷的量。将此处决定的量称为“迁移量”。不过,当向物理存储器B迁移与空闲存储容量2057同量的逻辑卷时,物理存储器B的存储区域会枯竭,因此物理存储器A例如以相当于空闲存储容量2057的x%的量为迁移量即可(x是10等比较小的值)。
进一步,物理存储器A将物理存储器A所具有的存储组2101中的、被分配更新度的最大的存储组2101的物理页的逻辑卷(和虚拟逻辑卷)决定为迁移对象。在符合该条件的逻辑卷有多个,且这些逻辑卷的逻辑容量的合计值超过迁移量的情况下,物理存储器A从被分配最多更新度的最大的存储组2101的物理页逻辑卷开始优先选择为迁移对象逻辑卷。
另外,虽然能够成为迁移对象的逻辑卷(被分配更新度的最大的存储组2101的物理页的逻辑卷)只有1个,但是也可能存在该逻辑卷的逻辑容量超过迁移量的情况。在这种情况下不能进行逻辑卷的迁移。在下一步骤9004进行该判断。
步骤9004:物理存储器A如以上说明的那样判断在步骤9003中选择的逻辑卷是否能够迁移至物理存储器B。在所选择的逻辑卷不能迁移至物理存储器B的情况下(步骤9004:否),处理结束,在能够迁移的情况下,接下来进行步骤9005。
步骤9005:物理存储器A将迁移对象的逻辑卷(和虚拟逻辑卷)的信息发送给物理存储器B。该处理是与步骤8016相同的处理。然后,物理存储器A一直待机至来自物理存储器B的响应被返回。
步骤9006:此处,物理存储器A与实施例1中说明的步骤8021相同的处理,即,向连接迁移对象虚拟逻辑卷的服务器110通知物理存储器A所具有的存储器端口197的存储器端口标识符24003,使所通知的存储器端口标识符24003的信息从服务器端口信息198删除。
步骤9007:此处,物理存储器A进行与实施例1中说明的步骤8022相同的处理而结束处理。
接着说明在物理存储器B进行的处理。在步骤9011,如上所述,从物理存储器A被请求发送寿命信息和空闲容量的各物理存储***100(还包括物理存储器B)计算物理存储***100内的存储组2101中的、由快闪存储器构成的所有存储组2101的更新度的平均值,将所计算出的平均值和空闲存储容量2057返回物理存储器A。之后,物理存储器B一直待机至从物理存储器A送来信息。
步骤9012:物理存储器B收到物理存储器A在步骤9005发送的信息,进行虚拟逻辑卷和现逻辑卷的定义。步骤9012的处理与实施例1中说明的步骤8003大致相同。不过,在步骤9012,不进行虚拟存储的存储容量2053、总物理存储器存储容量2054、总空闲存储容量2055的信息的设定。这是因为此处不发生容量(存储池容量等)的增加。
步骤9013:物理存储器B进行与实施例1中说明的步骤8004相同的处理,即,使服务器110进行对服务器端口信息198的信息设定。
步骤9014:物理存储器B向物理存储器A通知已经完成迁移对象虚拟逻辑卷的定义以及对服务器110的信息设定。这是与实施例1中说明的步骤8005相同的处理。当进行步骤9014时,在物理存储器A进行步骤9006。
步骤9015:物理存储器B在从物理存储器A发回处理完成的通知(步骤9007)时,开始迁移对象虚拟逻辑卷的复制处理。这是与步骤8007相同的处理。复制处理结束后,物理存储器B的***损耗均衡部4600的处理结束。
以上为变形例的说明。在变形例的虚拟存储***中,在追加物理存储***时,将被分配更新度大的存储组的物理页的逻辑卷(和该逻辑卷对应的虚拟逻辑卷)迁移至所追加的物理存储***。此外,以使得虚拟存储***内的各存储组的更新度相等的方式进行物理存储器间内(虚拟)逻辑卷的迁移。由此实现各存储装置的长寿命化。
另外,在以上说明的例子中,基于物理存储***计算出的存储组的写入次数(组I/O数量2304),进行(虚拟)逻辑卷的是否需要迁移的判断和迁移对象(虚拟)逻辑卷的选择。不过,作为其它实施方式,在存储装置160在内部具有计算闪存的擦除次数、向存储控制器通知擦除次数的功能的情况下,物理存储***也可以通过不使用写入次数(组I/O数量2304)而使用从存储装置160取得的擦除次数,来选择移动对象的逻辑卷。
实施例2
接着进行实施例2的说明。因为实施例2的信息***的硬件结构与实施例1的信息***相同,因此省略图示。
实施例2与实施例1的1个不同点在于,在实施例2的虚拟存储***190,可以在1个逻辑卷分配多个物理存储***100的物理页。在实施例2的共享存储器220内定义的信息与实施例1中说明的信息相同,在以下方面不同。
实施例2的物理存储***100不具有实施例1中说明的另一物理存储***信息2070而具有另一物理存储***信息2070’。图24是另一物理存储***信息2070’的形式。另一物理存储***信息2070’是与实施例1中说明的另一物理存储***信息2070相同的信息,不过在另一物理存储***信息2070’,不仅包含另一物理存储***信息2070所具有的信息,而且包含另一物理存储器存储容量2074、另一空闲存储容量2075。另一物理存储器存储容量2074、另一空闲存储容量2075与另一物理存储***标识符2072相同,是按虚拟存储***190内存在的每个物理存储***100存在的信息,分别保存与物理存储***100所具有的存储池容量2058和空闲存储容量2057相同的值。另外,在图24,将为了以另一物理存储***标识符2072-k确定的物理存储***100而设置的另一物理存储器存储容量2074和另一空闲存储容量2075分别记作另一物理存储器存储容量2074-k、另一空闲存储容量2075-k。此外,在以下的说明中,将为了某个物理存储***(假定称为“物理存储器X”)而设置的另一物理存储器存储容量2074和另一空闲存储容量2075分别称为“物理存储器X的另一物理存储器存储容量2074”、“物理存储器X的另一空闲存储容量2075”。
此外,在实施例2中,存储组信息的内容也与实施例1中说明的存储组信息2300不同。图25表示实施例2的物理存储***100所具有的存储组信息2300’的格式。在存储组信息2300’中,不仅包含实施例1中说明的存储组信息2300中所含的信息而且包含使用中页面列表2200’。
使用中页面列表2200’是物理存储***100所具有的管理对象存储组内的物理页中的、用于管理在其它物理存储***100中使用的物理页的信息。在使用中页面列表2200’保存指向在其它物理存储***100中使用的物理页的物理页信息2100的指针。在存在多个在其它物理存储***100中使用的物理页的情况下,存储组信息2300’具有多个使用中页面列表2200’。此外,作为其它实施方式,也可以如由空闲页管理指针2200构成的空闲物理页信息队列那样,按链接列表结构管理在其它物理存储***100中使用的物理页的物理页信息2100。
在实施例2与实施例1中,在逻辑卷信息中进一步存在差异。实施例2的逻辑卷信息与实施例1的逻辑卷信息2000格式相同。因此,在以下的说明中,实施例2的逻辑卷信息也记作“逻辑卷信息2000”,省略图示。
不过,在实施例2中,保存在物理页指针2004的信息的内容与实施例1中说明的内容不同。在实施例2的物理页指针2004,首先保存存有该物理页的物理存储***100的标识符,进一步,在该物理页的物理页信息2100的内容中,保存存储组标识符2104和物理页地址2102。这是因为,在实施例2的逻辑卷中,有时被分配多个物理存储***100的物理页。
在实施例2中,由存储控制器200执行的程序与实施例1中说明的程序相同,执行读取处理执行部4000’、写入请求受理部4100’、写后处理执行部4200’、物理存储***追加处理部4300’、复制处理部4400’。与实施例1一样,这些程序被保存在存储控制器200的存储器270(省略图示)。以下,说明由这些程序进行的处理。另外,在以下的说明中,有时与实施例1一样,使用“本存储器”、“其它存储器”等词语,这些词语的意思与实施例1中说明的意思相同。
使用图16和图26说明读取处理执行部4000’的处理的流程。读取处理执行部4000’进行的处理与实施例1中说明的读取处理执行部4000大致相同,至少步骤5000~步骤5006与图16中记载的相同。以下使用图26进行读取处理执行部4000’的后半部分处理(具体而言步骤5007以后的处理)的说明。另外,读取处理执行部4000’的后半部分处理与实施例1中说明的处理共同之处颇多,因此以下以与实施例1中说明的读取处理执行部4000不同之处为中心进行说明。
步骤5007与实施例1中的说明相同。接着,在步骤5008,在缓存210不存在所请求的数据的情况下(步骤5008:否),读取处理执行部4000’接下来进行步骤15000。在缓存210存在请求的数据的情况下(步骤5008:是),读取处理执行部4000’接下来进行步骤5009,结束处理。步骤5009与实施例1中的说明相同。
步骤15000:读取处理执行部4000’通过参照被分配给虚拟页的物理页的物理页指针2004,来判断该物理页是否为本存储器具有的物理页,其中的虚拟页包含由读取请求指定的区域。具体而言,读取处理执行部4000’判断保存在物理页指针2004的、物理存储***100的标识符是否是本存储器的标识符。在本存储器所具有的物理页的情况下(步骤15000:是),读取处理执行部4000’进行步骤5010~步骤5013,之后结束处理。步骤5010~步骤5013与实施例1中的说明相同。
步骤15001:在包含由读取请求指定的区域的物理页为其它存储器的物理页的情况下(步骤15000:否),进行步骤15001。在步骤15001,读取处理执行部4000’向具有包含由读取请求指定的区域的物理页的物理存储***100发出读取请求。虽然在此处发出的读取请求(命令)中包含读取对象区域的地址,但是读取处理执行部4000’生成将物理页指针2004中保存的存储组标识符2104和物理页地址2102指定为读取对象区域的地址的命令。然后,读取处理执行部4000’将所生成的命令向具有读取对象的物理页的物理存储***100发出。
步骤15002:读取处理执行部4000’一直待机至从读取请求发出目的地的物理存储***100发回处理完成的报告和读取数据。在收到处理完成的报告之后,读取处理执行部4000’执行步骤5012、步骤5013,然后结束处理。
另外,接收到该读取请求的物理存储***100从指定的存储组标识符2104和物理页地址2102计算访问对象的存储装置160和访问对象地址,向该存储装置160发出指定所计算出的地址的读出请求。之后,物理存储***100将读出的数据发送至请求源的物理存储***100,完成处理。
接着,使用图18和图27说明写入请求受理部4100’的处理流程。写入请求受理部4100’进行的处理多与实施例1的写入请求受理部4100相同。至少步骤6000~6007与图18中记载的步骤相同。以下,使用图27对后半部分处理(具体而言,步骤6008以后的处理)、特别以与实施例1中说明的写入请求受理部4100的处理不同之处为主进行说明。另外,在图27的说明中,有时还将本存储器称为“物理存储器A”。另外,只要没有特别禁止,图27中记载的处理就由物理存储器A的写入请求受理部4100’进行。
写入请求受理部4100’不进行实施例1的写入请求受理部4100进行的步骤6010和步骤6011,而执行以下的步骤。
步骤16000:在未对由写入请求指定的区域分配物理页的情况下(步骤6009:否),执行步骤16000。写入请求受理部4100’从总空闲存储容量2055和空闲存储容量2057减去虚拟页大小。此外,向其它物理存储***100请求从总空闲存储容量2055和物理存储器A的空闲存储容量(其它物理存储***100所具有的另一物理存储***信息2070’中的、物理存储器A的另一空闲存储容量2075)减去虚拟页大小,一直待机至在其它物理存储***100完成处理。
接收到该请求的其它存储器将总空闲存储容量2055减去虚拟页容量,进一步,将物理存储器A的另一空闲存储容量2075减去虚拟页容量。该处理结束后,其它存储器向发出请求的物理存储***100(物理存储器A)报告处理完成。
步骤16001:写入请求受理部4100’检查总空闲存储容量2055,如有必要,则请求追加新的物理存储***100。
步骤16002:写入请求受理部4100’判断在物理存储器A是否有空闲页。具体而言,物理存储器A所具有的存储***信息2050中,只要空闲存储容量2057不成为负的值就具有空闲页,而如果是负值就没有空闲页。在物理存储器A中存在空闲页的情况下,即空闲存储容量2057不是负的值的情况下(步骤16002:否),写入请求受理部4100’接下来执行步骤6012。步骤6012、步骤6013与实施例1中的说明相同。
步骤16003:写入请求受理部4100’通过参照另一物理存储***信息2070’的另一空闲存储容量2075,检查在其它存储器是否存在空闲物理页(是否存在另一空闲存储容量2075为1虚拟页以上大小的物理存储***100)。在未找到具有空闲物理页的物理存储***100的情况下,向服务器110返回错误而结束写入处理。
在找到具有空闲物理页的物理存储***100的情况下,写入请求受理部4100’向具有空闲物理页的物理存储***100请求空闲物理页的分配(步骤16004)。不过,在进行步骤16004的说明之前,首先对找到具有空闲物理页的物理存储***100的情况下在步骤16003进行的处理进行说明。在以下的说明中,将被请求空闲物理页的分配的物理存储***100记作“物理存储器B”。
首先说明物理存储器A的写入请求受理部4100’进行的处理。写入请求受理部4100’令空闲存储容量2057为0。进一步,写入请求受理部4100’对虚拟存储***190内的其它各物理存储***100请求令物理存储器A的另一空闲存储容量2075为0、将物理存储器B的另一空闲存储容量2075减去1页的量,一直待机至从各物理存储***100返回完成为止。
然后,接收到该请求的各物理存储***100进行另一物理存储***信息2070’内的信息的更新。具体而言,各物理存储***100令物理存储器A的另一空闲存储容量2075为0,将物理存储器B的另一空闲存储容量2075减去1页的量,该处理结束后,向物理存储器A发出完成的报告(不过,物理存储器B的另一空闲存储容量2075仅由物理存储器B以外的物理存储***100更新)。以上是在步骤16003,物理存储器A进行的处理和从物理存储器A受理请求的各物理存储***100进行的处理的内容。
步骤16004:物理存储器A的写入请求受理部4100’向物理存储器B发出分配物理页的请求,等待来自物理存储器B的响应。当在物理存储器B进行物理页的确保时,作为响应信息向物理存储器A返回物理页的信息。具体而言,物理页的信息是指应该保存在物理页指针2004的信息,即具有物理页的物理存储***100的标识符、物理页所处的存储组2101的标识符、存储组2101内的地址。物理存储器A的写入请求受理部4100’在从物理存储器B收到响应信息时,在物理页指针2004设定所接收到的信息。
另一方面,从物理存储器A接收到分配物理页的请求的物理存储器B选择适当的存储组信息2300,从空闲页管理指针2200选择1个空闲物理页,将所选择的空闲物理页的信息(该空闲物理页所属的物理存储***的标识符和存储组的标识符、以及物理页地址2102)发送至物理存储器A。另外,为了使得此处选择的物理页在物理存储器B或其它物理存储***100不使用,物理存储器B将此处选择的空闲物理页的物理页信息2100从空闲物理页信息队列除去,将指向该物理页信息2100的指针保存在使用中页面列表2200’。此外,物理存储器B将存储***信息2050内的空闲存储容量2057减去1页的量。
之后,物理存储器A的写入请求受理部4100’执行步骤6013,结束处理。
图28是实施例2的写后处理执行部4200’的处理流程。在写后处理执行部4200’,不仅进行实施例1中说明的写后处理执行部4200进行的处理,而且执行以下的步骤。另外,此处说明由写后处理执行部4200’转储的数据为限制在逻辑卷上的1虚拟页内的大小的数据的情况下的例子。
步骤17000:写后处理执行部4200’在步骤7000之后执行步骤17000。在步骤17000,写后处理执行部4200’基于附加于缓存210上的写入数据的信息,确定在步骤7000选择的写入数据的写入目的地虚拟页,进一步,确定在该虚拟页设定的物理页指针2004。然后,写后处理执行部4200’从所确定的物理页指针2004的内容判断在本存储器是否存在被分配给虚拟页的物理页。该判断例如与在步骤15000进行的判断相同。
在为本存储器所具有的物理页的情况下(步骤17000:是),写后处理执行部4200’进行与实施例1相同的处理(步骤7001~步骤7005)。
步骤17001:在步骤7000选择的写入数据的写入目的地为其它物理存储***100的物理页的情况下(步骤17000:否),写后处理执行部4200’向该物理存储***100发出作为写入目的地地址指定保存在物理页指针2004的存储组标识符2104和物理页地址2102的写入请求。
步骤17002:写后处理执行部4200’一直待机至完成在步骤17001发出的写入请求。写入请求完成后,写后处理执行部4200’执行步骤7005,结束处理。
此外,接收到该写入请求的物理存储***100从由写入请求指定的存储组标识符2104和物理页地址2102计算出成为写入数据的写入目的地的存储装置160和存储装置160内的地址。之后,进行与图20的步骤7002~7004相同的处理,在完成在存储装置160的写入后,向请求源的物理存储***100进行完成报告,结束处理。
对接着实施例2的物理存储***追加处理部4300’的处理流程进行说明。其中,物理存储***追加处理部4300’执行的处理与实施例1中说明的物理存储***追加处理部4300的处理(图21)几乎相同,因此以下参照图21说明不同之处。
首先,由所追加的物理存储***100执行的处理与实施例1中说明的处理(图21步骤8001~步骤8007)相同。接着,从所追加的物理存储***100接收通知的其它物理存储***100(将其称为“物理存储器A”)的处理与实施例1中说明的处理(图21步骤8011~步骤8022)大致相同,不过步骤8015的处理并不相同。
物理存储器A的物理存储***追加处理部4300’在步骤8015向另一物理存储***信息2070’追加所追加的物理存储***100的信息。具体而言,首先,追加所追加的物理存储***100的物理存储***标识符和所追加的物理存储***100所具有的存储器端口197的存储器端口标识符。这些处理是~实施例1的步骤8015相同的处理。
进一步,物理存储器A的物理存储***追加处理部4300’在所追加的物理存储***100的另一物理存储器存储容量2074和另一空闲存储容量2075设定所追加的物理存储***100的存储池容量2058(步骤8015’)。除此以外与实施例1中的说明相同。
接着,进行复制处理部4400’的处理流程的说明。复制处理部4400’进行的处理大部分与实施例1中说明的复制处理部4400的处理相同,因此以下以不同点为中心进行说明。
另外,在本实施例中,对所追加的物理存储***100对数据的复制源逻辑卷(现逻辑卷)分配的物理页为所追加的物理存储***100所具有的物理页的例子进行说明。不过,也可以分配属于虚拟存储***190的任意的物理存储***100的物理页。此外,以下将所追加的物理存储***100记作“物理存储器A”,将向物理存储器A迁移虚拟逻辑卷的物理存储***100记作“物理存储器B”。
物理存储器A的复制处理部4400’执行的处理与实施例1中说明的处理(步骤14000~步骤14010)大致相同,不过在步骤14009和步骤14010进行以下的处理方面不同。
在步骤14009,物理存储器A首先进行与实施例1相同的处理。然后,物理存储器A对虚拟存储***190内的各物理存储***100进行从物理存储器A的另一空闲存储容量2075减去迁移对象的逻辑卷的逻辑容量的指示。
接着,在步骤14010,从物理存储器B(具有原逻辑卷的物理存储***100)接收到完成报告后,物理存储器A向虚拟存储***190内的各物理存储***100进行在物理存储器B的另一空闲存储容量2075加上迁移对象的逻辑卷的逻辑容量的指示。这以外的处理与实施例1中说明的处理相同,因此省略复制处理部4400’的处理流程的图示。
图29表示由接收到所追加的物理存储***100发出的物理页的读出请求(步骤14001)的物理存储***100(即具有原逻辑卷的物理存储***100)的复制处理部4400’进行的处理的流程。另外,在以下的说明中,将具有原逻辑卷的物理存储***100称为“请求源存储器”。
步骤14011:复制处理部4400’通过参照逻辑卷信息2000的物理页指针2004,判断是否向所指定的虚拟页分配物理页。在分配物理页的情况下,接下来进行步骤15000’。
步骤14012:在未分配物理页的情况下,复制处理部4400’向请求源的物理存储***100发回无效值,完成处理。该处理与实施例1中的说明相同。
步骤15000’:步骤15000’、15001’、15002’与读取处理执行部4000’进行的处理(步骤15000~步骤15002)相同。即,在步骤15000’,复制处理部4400’判断包含由读取请求指定的区域的物理页是否是请求源存储器所具有的物理页。在是请求源存储器所具有的物理页的情况下(步骤15000’:是),复制处理部4400’进行步骤14013~步骤14015,由此从请求源存储器内的存储装置160读出数据,向请求源的物理存储***100返回数据。步骤14013~步骤14015与实施例1中的说明相同。
步骤15001’:在步骤15000’的判断中,在包含由读取请求指定的区域的物理页不是请求源存储器所具有的物理页的情况下(步骤15000:否),复制处理部4400’向具有包含由读取请求指定的区域的物理页的物理存储***100发出读取请求。该处理与读取处理执行部4000’在步骤15001进行的处理相同。
步骤15002’:步骤15001’之后,复制处理部4400’一直待机至从发出读取请求的物理存储***100发回读取数据。之后将读取数据向请求源的物理存储***100发回数据(步骤14015),结束处理。
以上是实施例2的说明。实施例2的虚拟存储***不仅具有与实施例1的虚拟存储***相同的功能,而且能够向逻辑卷的虚拟页分配虚拟存储***内的任意的物理存储***具有的页。在设置有多个(物理)存储***的信息***中,各存储***的空闲容量的合计值为用户期望(想生成的)数据卷的容量以上,不过在各个物理存储器中可能存在并不存在用户期望的容量的空闲区域的情况。实施例2的虚拟存储***能够使用多个物理存储***所具有的空闲区域(空闲页)来定义逻辑卷,因此即使在上述那样的情况下,也能够有效地使用存储区域。
以上对本发明的实施例进行了说明,不过它们只是由于本发明的说明的例示,并不是将本发明的范围仅限定于这些实施例之意。即,本发明还能够以其它各种方式实施。
在以上说明的实施例中,当在虚拟存储***追加物理存储***时,向服务器通知虚拟存储的存储容量2053(即虚拟存储***的存储池的容量)、总物理存储器存储容量2054和总空闲存储容量2055(虚拟存储***的存储池的空闲容量)的信息。不过,并不一定通知该所有信息。例如也可以仅通知存储池的空闲容量(总空闲存储容量2055)。
此外,在以上说明的实施例中,作为虚拟存储的存储容量2053和总空闲存储容量2055的值,说明了使用将属于存储池的存储装置160的容量(或空闲容量)换算为虚拟页的量而得到值的例子。不过并不一定将存储池的容量和空闲容量换算为虚拟页的量。存储***(虚拟存储***中所含的物理存储***)也可以将属于存储池的存储装置160的容量(或空闲容量)作为存储池的容量(或空闲容量)进行计算而提供给服务器。
此外,在以上说明的实施例中,在物理存储***被追加至虚拟存储***的时刻,从物理存储***向服务器通知虚拟存储***的存储池的空闲容量的信息等,作为其它实施方式,也可以物理存储***不自发地向服务器发送这些信息,而在收到来自服务器的询问的时刻,将这些信息从物理存储***通知给服务器。
此外,在以上说明的各实施例中,物理存储***具有缓存210、共享存储器220和存储器270等多个种类的存储器。不过,作为其它实施方式,也可以采用存储装置仅具有单一种类的存储器的结构。例如,也可以仅具有存储器270。在这种情况下,所有信息(来自服务器110的写入数据、虚拟逻辑卷信息等管理信息等)保存在相同的存储器270。
此外,物理存储***的硬件结构也可以为与服务器相同的结构。例如,也可以代替以上的实施例中说明的物理存储***,在个人计算机等通用的计算机(以下,将其仅称为“计算机”)搭载(或连接)多个存储装置160,在计算机上执行以上说明的各种程序(读取处理执行部4000和物理存储***追加处理部4300等)。在这种情况下,计算机从服务器受理对(虚拟)逻辑卷的I/O请求,进行在存储装置的数据的保存或来自存储装置的数据的读出。
此外,采用在计算机上执行以上说明的各种程序的结构的情况下,也可以使得以上实施例中说明的、在物理存储***上执行的各种程序和由服务器执行的程序均在同一计算机上执行。在这种情况下,例如通过在计算机上执行形成虚拟机的管理程序,在计算机上至少形成执行由服务器执行的程序(应用程序1100等)的虚拟机和执行在以上的实施例中说明的各种程序(图15中记载的各程序)的虚拟机即可。
附图标记的说明
100 物理存储***
110 服务器
120 SAN
160 存储装置
180 存储器管理服务器
190 虚拟存储***
195 服务器端口
197 存储器端口
198 服务器端口信息
200 存储控制器
210 高速缓冲存储器
220 共享存储器
250 连接单元
260 处理器
270 存储器
275 缓冲器
2050 存储***信息
2040 虚拟逻辑卷信息
2070 另一物理存储***信息
2000 逻辑卷信息
2300 存储组信息
2500 存储装置信息
4000 读取处理执行部
4100 写入请求受理部
4200 写后处理执行部
4300 物理存储***追加处理部
4400 复制处理部
2100 物理页信息。
Claims (10)
1.一种具有多个物理存储***的虚拟存储***,所述物理存储***包括存储数据的存储设备和控制所述数据的读写的控制器,所述虚拟存储***的特征在于:
各个所述物理存储***,具有相同的虚拟存储标识符而形成所述虚拟存储***,分配所述存储设备的存储区域来形成存储池卷,并且分配所述存储池卷来形成要提供给信息处理装置的虚拟卷,管理所述存储设备的容量和可用容量,
所述多个物理存储***中的任一个物理存储***,获取所述多个物理存储***中的除所述任一个物理存储***之外的其它物理存储***的可用容量的信息,基于所述任一个物理存储***的可用容量的信息和所获取的所述其它物理存储***的可用容量的信息,判断是否需要改变对所述存储池卷的分配,在判断为需要改变分配的情况下,作为所述任一个物理存储***的第一物理存储***将作为所述其它物理存储***的第二物理存储***的存储设备的存储区域追加分配给所述第一物理存储***的存储池卷。
2.如权利要求1所述的虚拟存储***,其特征在于:
在判断为需要改变所述分配的情况下,参考多个所述其它物理存储***的空闲容量来判断是否能够改变对所述第一物理存储***的分配。
3.如权利要求2所述的虚拟存储***,其特征在于:
所述第一物理存储***,在所述第二物理存储***有所述空闲容量的情况下向所述第二物理存储***请求改变分配,接收所述第二物理存储***的分配后的存储区域信息,并将所述存储区域信息设定为所述第一物理存储***的存储区域信息。
4.如权利要求1所述的虚拟存储***,其特征在于:
所述任一个物理存储***基于所述获取的容量的信息,共享所述虚拟存储***所提供的虚拟存储的存储容量、作为各所述物理存储***的存储容量的合计值的总存储容量、总空闲存储容量、以及所述任一个物理存储***和所述其它物理存储***的存储容量。
5.如权利要求1所述的虚拟存储***,其特征在于:
所述多个物理存储***各自运行用于形成多个虚拟机的***管理程序。
6.一种具有多个物理存储***的虚拟存储***的控制方法,所述物理存储***包括存储数据的存储设备和控制所述数据的读写的控制器,所述虚拟存储***的控制方法的特征在于:
各个所述物理存储***,具有相同的虚拟存储标识符而形成所述虚拟存储***,分配所述存储设备的存储区域来形成存储池卷,并且分配所述存储池卷来形成要提供给信息处理装置的虚拟卷,管理所述存储设备的容量和可用容量,
所述多个物理存储***中的任一个物理存储***,获取所述多个物理存储***中的除所述任一个物理存储***之外的其它物理存储***的可用容量的信息,基于所述任一个物理存储***的可用容量的信息和所获取的所述其它物理存储***的可用容量的信息,判断是否需要改变对所述存储池卷的分配,在判断为需要改变分配的情况下,作为所述任一个物理存储***的第一物理存储***将作为所述其它物理存储***的第二物理存储***的存储设备的存储区域追加分配给所述第一物理存储***的存储池卷。
7.如权利要求6所述的虚拟存储***的控制方法,其特征在于:
在判断为需要改变所述分配的情况下,参考多个所述其它物理存储***的空闲容量来判断是否能够改变对所述第一物理存储***的分配。
8.如权利要求7所述的虚拟存储***的控制方法,其特征在于:
所述第一物理存储***,在所述第二物理存储***有所述空闲容量的情况下向所述第二物理存储***请求改变分配,接收所述第二物理存储***的分配后的存储区域信息,并将所述存储区域信息设定为所述第一物理存储***的存储区域信息。
9.如权利要求6所述的虚拟存储***的控制方法,其特征在于:
所述任一个物理存储***基于所述获取的容量的信息,共享所述虚拟存储***所提供的虚拟存储的存储容量、作为各所述物理存储***的存储容量的合计值的总存储的存储容量、总空闲存储容量、以及所述任一个物理存储***和所述其它物理存储***的存储容量。
10.如权利要求6所述的虚拟存储***的控制方法,其特征在于:
所述多个物理存储***各自运行用于形成多个虚拟机的***管理程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111180393.5A CN113867647A (zh) | 2016-02-29 | 2016-02-29 | 虚拟存储***及其控制方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111180393.5A CN113867647A (zh) | 2016-02-29 | 2016-02-29 | 虚拟存储***及其控制方法 |
PCT/JP2016/055968 WO2017149581A1 (ja) | 2016-02-29 | 2016-02-29 | 仮想ストレージシステム |
CN201680082569.4A CN108701002B (zh) | 2016-02-29 | 2016-02-29 | 虚拟存储*** |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680082569.4A Division CN108701002B (zh) | 2016-02-29 | 2016-02-29 | 虚拟存储*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113867647A true CN113867647A (zh) | 2021-12-31 |
Family
ID=59743544
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680082569.4A Active CN108701002B (zh) | 2016-02-29 | 2016-02-29 | 虚拟存储*** |
CN202111180393.5A Pending CN113867647A (zh) | 2016-02-29 | 2016-02-29 | 虚拟存储***及其控制方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680082569.4A Active CN108701002B (zh) | 2016-02-29 | 2016-02-29 | 虚拟存储*** |
Country Status (4)
Country | Link |
---|---|
US (3) | US10452293B2 (zh) |
JP (1) | JP6807376B2 (zh) |
CN (2) | CN108701002B (zh) |
WO (1) | WO2017149581A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870916A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 存储管理方法及设备 |
JP2018077787A (ja) * | 2016-11-11 | 2018-05-17 | 富士通株式会社 | ストレージ制御装置およびストレージ制御プログラム |
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 |
US10599354B1 (en) * | 2018-04-30 | 2020-03-24 | Amazon Technologies, Inc. | Block storage with volume locality placement based on performance requirements |
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 |
US10768837B2 (en) * | 2018-10-31 | 2020-09-08 | EMC IP Holding Company LLC | Non-disruptive migration of a virtual volume in a clustered data storage system |
JP6857673B2 (ja) * | 2019-02-14 | 2021-04-14 | 株式会社日立製作所 | マルチストレージノードシステム、マルチストレージノードシステムの容量管理方法 |
JP6898393B2 (ja) * | 2019-03-22 | 2021-07-07 | 株式会社日立製作所 | ストレージシステム及びデータ転送方法 |
CN111026615B (zh) * | 2019-12-20 | 2022-03-22 | 浪潮电子信息产业股份有限公司 | 一种逻辑卷列表获取方法、装置及电子设备和存储介质 |
US11494128B1 (en) | 2020-01-28 | 2022-11-08 | Pure Storage, Inc. | Access control of resources in a cloud-native storage system |
US11200175B2 (en) * | 2020-03-20 | 2021-12-14 | Arm Limited | Memory accessor invailidation |
US11853236B2 (en) * | 2020-11-05 | 2023-12-26 | Synopsys, Inc. | Enriched auto command feature for I3C host controller |
US11531467B1 (en) | 2021-01-29 | 2022-12-20 | Pure Storage, Inc. | Controlling public access of resources in a secure distributed storage system |
US11520516B1 (en) | 2021-02-25 | 2022-12-06 | Pure Storage, Inc. | Optimizing performance for synchronous workloads |
US11733897B1 (en) | 2021-02-25 | 2023-08-22 | Pure Storage, Inc. | Dynamic volume storage adjustment |
US11726684B1 (en) | 2021-02-26 | 2023-08-15 | Pure Storage, Inc. | Cluster rebalance using user defined rules |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153481A1 (en) * | 2003-01-21 | 2004-08-05 | Srikrishna Talluri | Method and system for effective utilization of data storage capacity |
US7698501B1 (en) * | 2005-04-29 | 2010-04-13 | Netapp, Inc. | System and method for utilizing sparse data containers in a striped volume set |
JP4933861B2 (ja) | 2005-09-22 | 2012-05-16 | 株式会社日立製作所 | ストレージ制御装置、データ管理システムおよびデータ管理方法 |
US7778960B1 (en) * | 2005-10-20 | 2010-08-17 | American Megatrends, Inc. | Background movement of data between nodes in a storage cluster |
JP2007265270A (ja) * | 2006-03-29 | 2007-10-11 | Hitachi Ltd | ストレージシステム及び記憶領域割当て方法 |
JP5069011B2 (ja) | 2007-01-29 | 2012-11-07 | 株式会社日立製作所 | ストレージモジュール及び容量プール空き容量調整方法 |
JP5117120B2 (ja) * | 2007-06-18 | 2013-01-09 | 株式会社日立製作所 | ストレージ装置のボリュームを管理する計算機システム、方法及びプログラム |
US8122505B2 (en) * | 2007-08-17 | 2012-02-21 | International Business Machines Corporation | Method and apparatus for detection of malicious behavior in mobile ad-hoc networks |
US8407436B2 (en) | 2009-02-11 | 2013-03-26 | Hitachi, Ltd. | Methods and apparatus for migrating thin provisioning volumes between storage systems |
US8495250B2 (en) * | 2009-12-16 | 2013-07-23 | International Business Machines Corporation | Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system |
CN102483683B (zh) * | 2009-12-24 | 2014-12-10 | 株式会社日立制作所 | 提供虚拟卷的存储*** |
US8918585B2 (en) * | 2010-01-28 | 2014-12-23 | Hitachi, Ltd. | Management system calculating storage capacity to be installed/removed |
JP5451875B2 (ja) * | 2010-04-30 | 2014-03-26 | 株式会社日立製作所 | 計算機システム及びその記憶制御方法 |
US8423713B2 (en) * | 2010-09-06 | 2013-04-16 | Hitachi, Ltd. | Cluster type storage system and method of controlling the same |
US8732346B2 (en) * | 2010-12-17 | 2014-05-20 | Microsoft Corporation | Coordination of direct I/O with a filter |
CN103080895B (zh) * | 2010-12-22 | 2016-01-27 | 株式会社日立制作所 | 包括具有存储虚拟化功能和容量虚拟化功能二者的多个存储装置的存储*** |
WO2012127528A1 (en) * | 2011-03-23 | 2012-09-27 | Hitachi, Ltd. | Storage system and method of controlling the same |
US8706963B2 (en) * | 2011-06-02 | 2014-04-22 | Hitachi, Ltd. | Storage managing system, computer system, and storage managing method |
WO2012178032A1 (en) * | 2011-06-23 | 2012-12-27 | CohortFS, LLC | Dynamic data placement for distributed storage |
JP2013114624A (ja) * | 2011-11-30 | 2013-06-10 | Hitachi Ltd | ストレージシステム及びプール容量縮小の制御方法 |
WO2013175529A1 (en) * | 2012-05-23 | 2013-11-28 | Hitachi, Ltd. | Storage system and storage control method for using storage area based on secondary storage as cache area |
WO2014064756A1 (ja) * | 2012-10-22 | 2014-05-01 | 株式会社日立製作所 | ストレージプールから実記憶領域を仮想ボリュームへ割り当てる方法及び計算機システム |
WO2014147657A1 (en) | 2013-03-18 | 2014-09-25 | Hitachi, Ltd. | Compound storage system and storage control method |
-
2016
- 2016-02-29 CN CN201680082569.4A patent/CN108701002B/zh active Active
- 2016-02-29 WO PCT/JP2016/055968 patent/WO2017149581A1/ja active Application Filing
- 2016-02-29 JP JP2018502858A patent/JP6807376B2/ja active Active
- 2016-02-29 CN CN202111180393.5A patent/CN113867647A/zh active Pending
-
2017
- 2017-07-11 US US15/646,364 patent/US10452293B2/en active Active
-
2019
- 2019-10-10 US US16/597,967 patent/US10956063B2/en active Active
-
2021
- 2021-03-04 US US17/191,812 patent/US11829617B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10452293B2 (en) | 2019-10-22 |
US20210240370A1 (en) | 2021-08-05 |
US10956063B2 (en) | 2021-03-23 |
JPWO2017149581A1 (ja) | 2018-12-27 |
CN108701002B (zh) | 2021-10-29 |
US20170308316A1 (en) | 2017-10-26 |
WO2017149581A1 (ja) | 2017-09-08 |
US11829617B2 (en) | 2023-11-28 |
US20200042213A1 (en) | 2020-02-06 |
CN108701002A (zh) | 2018-10-23 |
JP6807376B2 (ja) | 2021-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108701002B (zh) | 虚拟存储*** | |
US8832371B2 (en) | Storage system with multiple flash memory packages and data control method therefor | |
JP6000376B2 (ja) | 特性の異なる複数種類のキャッシュメモリを有する情報処理装置 | |
US8069191B2 (en) | Method, an apparatus and a system for managing a snapshot storage pool | |
JP5437373B2 (ja) | 複数のフラッシュパッケージを有するストレージシステム | |
US20110246701A1 (en) | Storage apparatus and its data control method | |
WO2015162758A1 (ja) | ストレージシステム | |
WO2017149592A1 (ja) | ストレージ装置 | |
JP7178916B2 (ja) | メモリシステムおよび制御方法 | |
US11079956B2 (en) | Storage system and storage control method | |
JP5597266B2 (ja) | ストレージシステム | |
JP6817340B2 (ja) | 計算機 | |
JP7373018B2 (ja) | 仮想ストレージシステム | |
JP5768118B2 (ja) | 複数のフラッシュパッケージを有するストレージシステム | |
US11550488B2 (en) | Computer system and load distribution method | |
JP6138318B2 (ja) | 複数のフラッシュパッケージを有するストレージシステム | |
JP5945040B2 (ja) | 複数のフラッシュパッケージを有するストレージシステム | |
JP6605762B2 (ja) | 記憶ドライブの故障により消失したデータを復元する装置 | |
WO2018051446A1 (ja) | オプショナルなデータ処理機能を有するストレージシステムを含んだ計算機システム、および、記憶制御方法 | |
JP2020027433A (ja) | 情報システム |
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 |