CN101539841B - 高可用性以及低容量的动态存储区域分配 - Google Patents
高可用性以及低容量的动态存储区域分配 Download PDFInfo
- Publication number
- CN101539841B CN101539841B CN2009100048387A CN200910004838A CN101539841B CN 101539841 B CN101539841 B CN 101539841B CN 2009100048387 A CN2009100048387 A CN 2009100048387A CN 200910004838 A CN200910004838 A CN 200910004838A CN 101539841 B CN101539841 B CN 101539841B
- Authority
- CN
- China
- Prior art keywords
- capacity pool
- virtual volume
- volume
- storage subsystem
- storage
- 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.)
- Active
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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
同时提供动态存储区域分配和高可用性的数据存储系统和方法。该系统包括外部存储卷和连接到一起并连接到外部存储卷的两个存储子系统。每个存储子系统包括硬盘驱动和高速缓冲存储区,每个存储子系统包括至少一个虚拟卷和至少一个容量池。从至少一个容量池的存储部件中分配至少一个虚拟卷。该容量池包括硬盘驱动和至少一部分外部存储卷。响应于数据访问请求,将容量池的存储部件分配给虚拟卷。该系统还包括连接到存储子系统并配置来在存储子系统之间切换输入/输出路径的主计算机。每个存储子系统适于将接收到的写I/O请求复制到其它存储子系统。基于接收到来自其它存储子系统的请求,防止存储子系统的容量池的存储部件被分配给该存储子系统的虚拟卷。
Description
技术领域
本发明一般涉及计算机存储系统,更具体地,涉及计算机存储系统中的动态存储区域分配(thin-provisioning)。
背景技术
动态存储区域分配(thin-provisioning)是一种适用于大规模集中的计算机盘存储系统、存储区域网(SAN)及存储虚拟系统的机制。基于随需和即时,动态存储区域分配允许空间被容易地分配给服务器。术语动态存储区域分配用于与传统配置(fat provisioning)形成对比,传统配置指在存储阵列上的传统的分配方法,在该存储阵列上,存储容量的大存储池(large pool)被分配给单个应用程序(application),但是保留未使用的部分。
在存储整合环境中(其中许多应用共享访问相同的存储阵列),动态存储区域分配允许管理员保留单独的空闲空间缓冲池以对所有应用程序的数据增长需求提供服务。通过动态存储区域分配,能够自动增加存储容量使用效率,而没有沉重的管理费用。各组织能够预先购买更少的存储容量,能够根据实际的业务使用推迟存储容量升级,并且能够节省与维持不使用的硬盘容量运转相关的运行费用。
存储整合环境能够提供过度配置(over-allocation)或过度预订(over-subscription)。过度配置或过度预订是允许对服务器应用程序分配比在存储阵列本身上物理地保留的存储容量更多的存储容量。这允许应用存储容量的增长和减少的灵活性,而不必须准确地预测容量将增长或减少多少。当应用程序实际写入数据时(而不是最初分配存储容量时)才提供阵列上的物理存储容量。
在2006年10月31日向Kano提出的美国专利No.7,130,960中揭示了一种通过动态存储区域分配来减少数据存储容量的浪费的方法,将其全部并入本文作为参照。动态存储区域分配通过防止将存储容量分配给未被写入的数据区来减少存储容量的浪费。
另一方面,高可用性是系统设计规程(protocol)及确保在特定的检测取样间隔时间过程中某种程度的运行连续性相关的工具。可用性指用户社区(user community)访问系统(无论是提交新的工作、更新或改变现有的工作,还是收集先前的工作的结果)的能力。如果用户无法访问系统,则说明系统不可用。
增加可用性的一种方法是具有同步的复制系统,日本专利2007-072538中揭示了该方法。该技术包括在两个或更多个存储子系统中的数据复制系统、一个或多个外部存储子系统以及I/O服务器中的路径改变功能。当一个存储子系统由于意外的故障(例如,由于I/O路径断开或设备出错)而停止工作时,I/O服务器将I/O路径改变到其它的存储子系统。
对于存储系统,动态存储区域分配和高可用性都是良好的特性。然而,该两种方法具有互相冲突的方面。
发明内容
本发明提供充分地解决一个或多个上述及其它问题的方法和系统,这些问题与用于计算机存储系统中的动态存储区域分配的传统技术相关。
本发明的各方面提供用于提供高可用性并减少存储系统的容量要求的方法和设备。
根据本发明的一个方面,一种存储系统包括主计算机、两个或更多个存储子系统及一个或更多个外部存储子系统。存储子系统可以被参照作为第一存储子系统。主计算机被耦合到两个或更多个存储系统上并能够改变存储子系统之间的I/O路径。两个或更多个存储子系统能够访问外部存储卷并将外部存储卷作为它们自己的存储容量。这些存储子系统包括动态存储区域分配功能。动态存储区域分配功能能够使用外部存储卷作为容量池的部件。当接收到来自其它存储子系统的请求时,动态存储区域分配功能还能够排除容量池区被分配。存储子系统互相通信并且当存储子系统接收到写I/O时,存储子系统能够将写I/O互相复制。
根据本发明的一个方面,提供一种计算机化的数据存储系统,该系统包括至少一个外部卷、包括第一存储子系统和第二存储子系统的两个或更多个存储子系统,第一存储子系统包括第一虚拟卷,第二存储子系统包括第二虚拟卷,第一虚拟卷和第二虚拟卷形成对。在本发明的系统中,第一虚拟卷和第二虚拟卷是动态存储区域分配卷;第一虚拟卷可使用来从与第一虚拟卷相关联的第一容量池中分配容量;第二虚拟卷可用于从与第二虚拟卷相关联的第二容量池中分配容量;该容量包括至少一个外部卷;该至少一个外部卷由第一容量池和第二容量池共享;该至少一个外部卷、所述第一存储子系统或所述第二存储子系统存储至少一个动态存储区域分配信息表;基于动态存储区域分配的分配处理的执行,如果第一存储子系统已经从所共享的至少一个外部卷中分配了容量,则第二存储子系统可用来参照分配信息并建立虚拟卷地址和容量池地址之间的关系。
根据本发明的另一个方面,提供一种计算机化的数据存储系统,该系统包括外部存储卷,耦合到一起并耦合到外部存储卷的两个或更多个存储子系统,每一个存储子系统包括高速缓冲存储区,每一个存储子系统包括至少一个虚拟卷和至少一个容量池,从至少一个容量池的存储部件中分配至少一个虚拟卷,该至少一个容量池包括至少一部分外部存储卷。响应于数据访问请求,将至少一个容量池的存储部件分配给虚拟卷。本发明的存储系统还包括耦合到两个或更多个存储子系统并可用于在两个或更多个存储子系统之间切换输入/输出的主计算机。基于接收到两个或更多个存储子系统中的第一存储子系统发出的数据写请求,第一存储子系统被配置来至少对两个或更多个存储子系统中的第二存储子系统提供已接收的数据写请求,并且基于接收到来自第一存储子系统的请求,第二存储子系统可用于防止至少一个容量池的至少一个存储部件被分配给第二存储子系统的至少一个虚拟卷。
根据本发明的又一方面,提供一种使用耦合到两个或更多个存储子系统的数据存储的主计算机执行的方法,两个或更多个存储子系统被耦合到一起并耦合到外部存储卷,每一个存储子系统包括高速缓冲存储区,每一个存储子系统包括至少一个虚拟卷和至少一个容量池,从至少一个容量池分配至少一个虚拟卷。至少一个容量池包括至少一部分外部存储卷。至少一个虚拟卷是动态存储区域分配卷。本发明的方法包括:将两个或更多个存储子系统的第一存储子系统的第一虚拟卷与两个或更多个存储子系统的第二存储子系统的第二虚拟卷配对为主卷和从卷;及基于接收到来自第一存储子系统的请求,防止第二存储子系统的至少一个容量池的至少一个存储部件被分配给第二虚拟卷。
根据本发明的另一方面,提供一种包括一个或多个序列的指令的计算机可读介质,当由一个或多个处理器执行该指令时,使一个或多个处理器执行使用耦合到两个或更多个存储子系统的数据存储的主计算机执行的方法。两个或更多个存储子系统被耦合到一起并耦合到外部存储卷。每一个存储子系统包括高速缓冲存储区、至少一个虚拟卷和至少一个容量池。从至少一个容量池中分配至少一个虚拟卷。该至少一个容量池包括至少一部分外部存储卷。在每一个存储子系统中,至少一个虚拟卷是动态存储区域分配卷。本发明的方法包括:将两个或更多个存储子系统的第一存储子系统的第一虚拟卷与两个或更多个存储子系统的第二存储子系统的第二虚拟卷配对为主卷和从卷;及基于接收到来自第一存储子系统的请求,防止第二存储子系统的至少一个容量池的至少一个存储部件被分配给第二虚拟卷。
在下面的描述中部分地阐明与本发明相关的其它方面,并且该其它方面部分地将从该描述中显而易见的,或通过本发明的实施可获知的。通过部件和各种部件的结合及在下面的具体描述和所附权利要求中特定指出的方面,可以实现并获得本发明的各方面。
应该理解,前面及下面的描述仅是示例与解释,并不意于以任何形式来限制主张的发明及其申请。
附图说明
并入本文并构成说明书的一部分的附图举例说明本发明的实施例,并且与说明书一起用于解释和说明本发明的技术的原理。特定地:
图1说明根据本发明的各方面的存储系统。
图2说明根据本发明的各方面的存储系统的主计算机的示例性存储器。
图3说明根据本发明的各方面的示例性卷管理表。
图4和图5示出用于根据本发明的各方面的存储子系统的存储控制器的存储器的示例性结构。
图6、7、8、9、10、11、12、13、14、15、16、17及18根据本发明的各方面更详细地示出图4和图5的程序和表格。
图19示出根据本发明的各方面的容量池组块、容量池页及硬盘高速缓冲存储器之间的关系。
图20说明根据本发明的各方面的虚拟卷页、虚拟卷槽及虚拟卷之间的关系。
图21说明根据本发明各方面的容量池管理表、容量池部件管理表、容量池组块管理表、RAID组管理表及容量池组块之间的关系。
图22说明根据本发明的各方面的虚拟卷、虚拟卷页、虚拟卷管理表、虚拟卷页管理表、容量池管理表、容量池组块、容量池页及容量池部件管理表之间的关系。
图23说明根据本发明各方面的虚拟卷、虚拟卷页、容量池组块、容量池页及容量池页管理表之间的关系。
图24说明根据本发明各方面的高速缓冲存储器槽、高速缓冲存储器管理表和磁盘槽之间的关系。
图25说明根据本发明的各方面的两个存储子系统的虚拟卷和对管理表之间的关系。
图26说明根据本发明各方面的虚拟卷、RAID组和外部卷之间的关系。
图27说明根据本发明的各方面的执行卷操作等待程序的示例性方法。
图28说明根据本发明的各方面执行对生成程序的示例性方法。
图29说明根据本发明各方面的执行对删除程序的示例性方法。
图30说明根据本发明各方面的执行槽操作程序的示例性方法。
图31说明根据本发明各方面的执行写I/O操作程序的示例性方法。
图32说明根据本发明各方面的执行读I/O操作程序的示例性方法。
图33A和图33B示出根据本发明各方面的执行容量池页分配程序的示例性方法。
图34说明根据本发明各方面的执行高速缓冲存储器升级程序的示例性方法。
图35说明根据本发明各方面的执行硬盘刷新程序的示例性方法。
图36、图37及图38示出根据本发明各方面的执行高速缓冲存储器降级程序的示例性方法。
图39说明根据本发明各方面的执行容量池回收程序的示例性方法。
图40说明根据本发明各方面的执行容量池组块解除(release)程序的示例性方法。
图41提供根据本发明各方面的对主卷写I/O的时序。
图42提供根据本发明各方面的对从卷写I/O的时序。
图43提供根据本发明各方面的从主卷对外部卷降级的时序。
图44提供根据本发明各方面的从从卷对外部卷降级的时序。
图45说明根据本发明的各方面的存储系统。
图46说明根据本发明的其它方面的另一容量池管理程序的示例性结构。
图47A和图47B示出根据本发明的其它方面的执行容量池页分配的示例性方法。
图48说明根据本发明的其它方面的外部存储子系统。
图49说明根据本发明其它方面的外部存储子系统的存储器的示例性结构。
图50说明存储控制器的存储器中存储的容量池管理程序
图51说明根据本发明其它方面的虚拟卷页管理表的示例性结构。
图52说明根据本发明其它方面的执行虚拟卷页管理的示例性方法。
图53说明根据本发明的其它方面的从主卷对外部卷降级的示例性时序。
图54说明根据本发明的其它方面的从从卷对外部卷降级的示例性序列。
图55是说明可以执行本发明的系统的计算机平台的示例性实施例。
具体实施方式
在下面的具体描述中,将参考所附附图,其中用相同的参考标记指明相同的功能部件。通过说明而非限定,上述附图示出根据本发明的原理的特定实施例和实施方式。这些实施方式被充分详细的描述以使本领域技术人员能够实施本发明,并且将会理解,可以使用其它实施方式,并且不脱离本发明的范围和宗义,可以进行各种部件的结构改变和/或替换。因此,不能限制性的解释下面的详细描述。此外,可以以在通用计算机上运行的软件的形式、特定硬件的形式或软件和硬件结合的形式来实现所描述的本发明的各种实施例。
当将包括动态存储区域分配和高可用性的两种技术相结合以用于减少存储空间的浪费并快速和容易的访问存储卷的双重目的时,某些问题出现。例如,如果结合该两种技术,则需要两倍的存储容量。这是由于页管理表(pagemanagement table)没有被存储子系统共享的事实。因此,存在两个存储子系统的页管理表对两个不同的存储子系统的动态存储区域分配卷进行分配并分配相同的容量池区的问题。如果该两个存储子系统试图对相同的空间进行I/O操作时,这就引起了冲突。
另外,如果在存储子系统之间共享页管理表来防止上述冲突,则存储子系统之间的通信或锁定冲突引起延时。
在图1、2、3、4、5到18中示出并描述根据本发明的各方面的存储系统的构成。
图1说明根据本发明的各方面的存储系统。
图1中示出的存储系统包括两个或更多个存储子系统100、400,主计算机300,以及外部卷621。存储系统还可以包括一个或更多个存储网络200,500。可以直接或通过未示出的网络将存储子系统100,400耦合在一起。可以直接或通过存储网络200将主计算机耦合到存储子系统100,400。可以直接或通过存储网络500将外部卷621耦合到存储子系统100,400。
主计算机300包括CPU 301、存储器302及拖拽式存储接口(tow storageinterface)303s。CPU 301用于执行在存储器302中存储的程序和表格。通过存储网络200将存储接口302耦合到存储子系统100上的主接口114。
存储子系统100包括存储控制器110、磁盘单元120及管理终端130。
存储控制器110包括用于运行在存储器112中存储的程序和表格的CPU111,用于存储程序、表格及数据的存储器112,用于将存储控制器耦合到磁盘单元的磁盘接口(该接口可以是SCSI I/F)116,用于通过存储网络200将存储控制器耦合到主计算机300的存储接口303的主接口(该接口可以是光纤通道I/F)115,用于将存储控制器耦合到管理终端130的存储控制接口133的管理终端接口(该接口可以是NIC I/F)114,用于将存储控制器耦合到其它存储子系统400上的存储控制器接口417的存储控制器接口(该接口可以是光纤通道I/F)117,以及用于通过存储网络500将存储控制器110耦合到外部卷621的外部存储控制器接口(该接口可以是光纤通道I/F)118。主接口115接收到来自主计算机300的I/O请求并通知CPU 111。管理终端接口114接收到来自管理终端130的卷、磁盘及容量池操作请求并通知CPU 111。
磁盘单元120包括例如硬盘驱动器(HDD)121等磁盘。
管理终端130包括用于管理由管理终端执行的处理的CPU 131,存储器132,用于将管理终端耦合到存储控制器110上的接口114并用于将卷、磁盘及容量池操作发送到存储控制器110的存储控制器接口(该接口可以是NIC)133,以及例如键盘、鼠标或监视器等用户接口134。
存储子系统400包括存储控制器410、磁盘单元420以及管理终端430。这些部件具有与对于存储子系统100描述的这些部件相似的构成。在本段的剩余部分描述存储子系统400的部件。存储控制器410包括用于运行在存储器412中存储的程序和表格的CPU 411,用于存储程序、表格及数据的存储器412,用于将存储控制器耦合到磁盘单元的磁盘接口(该接口可以是SCSI I/F)416,用于通过存储网络200将存储控制器耦合到主计算机300的存储接口303的主接口(该接口可以是光纤通道I/F)415,用于将存储控制器耦合到管理终端430的存储控制接口433的管理终端接口(该接口可以是NIC I/F)414,用于将存储控制器耦合到其它存储子系统400上的存储控制器接口417的存储控制器接口(该接口可以是光纤通道I/F)417,以及用于通过存储网络500将存储控制器410耦合到外部卷621的外部存储控制器接口(该接口可以是光纤通道I/F)418。主接口415接收到来自主计算机300的I/O请求并通知CPU 411。管理终端接口414接收到来自管理终端430的卷、磁盘及容量池操作请求并通知CPU 411。磁盘单元420包括例如磁盘驱动器(HDD)421等磁盘。管理终端430包括用于管理由管理终端执行的处理的CPU 431,存储器432,用于将管理终端耦合到存储控制器410上的接口414并用于将卷、磁盘及容量池操作发送到存储控制器410的存储控制器接口(该接口可以是NIC)433,以及例如键盘、鼠标或监视器等用户接口434。
图2说明用于根据本发明的各方面的存储系统的主计算机的示例性存储器。
图2的主计算机300的存储器302包括卷管理表302-11。
图3说明根据本发明的各方面的示例性卷管理表。
卷管理表包括用于将信息卷配对的两个主卷信息栏302-11-01、302-11-02,其可以被择一地选择使用以假设一个卷故障时通过改变从一个卷到另一个卷的路径来帮助挽救数据。通过该种在形成存储系统的存储子系统上的存储卷的配对,提供了提高数据可用性的存储冗余。
图4和图5示出用于根据本发明的各方面的存储子系统的存储控制器的存储器的示例性结构。图6、7、8、9、10、11、12、13、14、15、16、17及18根据本发明的各方面更详细地示出图4的程序和表格。
图4可以与存储子系统100的存储器112对应,图5可以于存储子系统400的存储器412对应。这些存储器也可以属于图1的存储子系统100、400。示出被存储在存储器112、412中的一系列程序和表格。由于两个存储器112、114相似,下面仅更详细地描述图4。
存储控制器的存储器112中存储的程序包括卷操作程序112-02。如图6所示,卷操作程序包括卷操作等待程序112-02-1,对(pair)生成程序112-02-2以及对(pair)解除程序112-02-3。卷操作等待程序112-02-1是系统驻留程序,当CPU 111接收到“对(pair)生成”或“对(pair)解除”请求时执行该程序。对生成程序112-02-2建立存储子系统100的存储卷和存储子系统400之间的卷重复(duplication)的关系,当CPU 111接收到“对生成”请求时执行该程序。由卷操作等待程序112-02-1来调用对生成程序112-02-2。对解除程序112-02-3被卷操作等待程序112-02-1调用并解除存在于存储子系统100的存储卷和存储子系统400之间的卷重复的关系。当CPU 111接收到“对解除”请求时执行对解除程序112-02-3。
存储控制器的存储器112中存储的程序还包括I/O操作程序112-04。如图7所示,I/O操作程序112-04包括写I/O操作程序112-04-1及读I/O操作程序112-04-2。写I/O操作程序112-04-1是系统驻留程序,该程序将I/O数据从主计算机300传输到高速缓冲存储区112-20,当CPU 111接收到写I/O请求时执行该程序。读I/O操作程序112-04-2也是系统驻留程序,该程序将I/O数据从高速缓冲存储区112-20传输到主计算机300,当CPU 111接收到读I/O请求时执行该程序。
存储控制器的存储器112中存储的程序还包括磁盘访问程序112-05。如图8所示,磁盘访问程序112-05包括磁盘刷新程序112-05-1、高速缓冲存储器升级程序112-05-2及高速缓冲存储器降级程序112-05-3。磁盘刷新程序112-05-1是系统驻留程序,该程序搜索脏的(dirty)高速缓冲存储器数据并对磁盘刷新该数据,当CPU 111的负荷低时执行该程序。高速缓冲存储器升级程序112-05-2将数据从磁盘121传输到高速缓冲存储区112-05-20,当CPU 111需要访问磁盘121中的数据时执行该程序。高速缓冲存储器降级程序112-05-3从高速缓冲存储区传输数据,当磁盘刷新程序112-05-1对磁盘121刷新脏的(dirty)高速缓冲存储器数据时执行该程序。
存储控制器的存储器112中存储的程序还包括容量池管理程序112-08。如图9所示,容量池管理112-08包括容量池页分配程序112-08-1、容量池回收程序112-08-2及容量池扩充(extension)程序112-08-3。容量池页分配程序112-08-1接收到来自容量池的新的容量池页和容量池组块并将请求发送到其它存储子系统以排除不受限制(arbitrary)的组块。容量池回收程序112-08-2是系统驻留程序,该程序执行来自容量池的回收,当CPU 111的负荷低时执行该程序。容量池扩充(extension)程序112-08-3是系统驻留程序,当CPU 111接收到“容量池扩充”请求时执行该程序,并且该程序将特定的RAID组或外部卷621添加到特定的容量池。
存储控制器的存储器112中存储的程序还包括槽操作程序112-09。如图19所示,在来自其他存储子系统的请求之后该程序运行来将槽121-3锁定或解锁。
存储控制器的存储器112中存储的表格包括RAID组管理表112-11。如图10所示,RAID组管理表112-11包括RAID组号码112-11-1栏(该栏示出在存储控制器110、410中的每一个RAID组的ID),RAID等级和RAID组织112-11-02栏,HDD号码112-11-03,HDD容量112-11-04,以及共享存储子系统的列表112-11-05。在RAID等级栏112-11-02,作为条目的号码“10”表示“镜象和条带化(striping)”,号码“5”表示“奇偶条带化”,号码“6”表示“双奇偶条带化”,条目“EXT”表示使用外部卷621,条目“N/A”表示RAID组不存在。在HDD号码112-11-03栏,如果RAID等级信息112-11-02是“10”、“5”或“6”,则表示磁盘121,424的ID列表被安排在RAID组,RAID组的容量包括磁盘121,421。在该表的最后一栏示出通过RAID组配对的存储子系统。
存储控制器的存储器112中存储的表格还包括虚拟卷管理表112-12。如图11所示,虚拟卷管理表112-12包括卷号码或ID栏112-12-01、卷容量栏112-12-02、容量池号码栏112-12-03以及正在被使用的当前组块栏112-12-05。卷栏112-12-01包括存储控制器110、410中的每一个虚拟卷的ID。卷容量栏112-12-02包括相应的虚拟卷的存储容量。容量池号码栏112-12-03与虚拟卷有关并且分配容量以存储来自该容量池数据。虚拟卷从RAID组的组块或外部卷获得其容量池页。在正在被使用的当前组块栏112-12-05中示出虚拟卷当前正在使用的组块。该栏示出RAID组以及当前用于各种数据存储操作的组块的组块号码。
存储控制器的存储器112中存储的表格还包括虚拟卷页管理表112-13。如图12所示,虚拟卷页管理表112-13包括提供虚拟卷140中的虚拟卷页140-1的ID的虚拟卷页地址112-13-01栏、相关的RAID组号码112-13-02以及容量池页地址112-13-03。RAID组号码112-13-02包括所分配的容量池页(其包括外部卷621),并且该栏中的条目N/A表示虚拟卷页不分配容量池页。容量池页地址112-13-03包括相关的容量池页的开始逻辑地址。
存储控制器的存储器112中存储的表格还包括容量池管理表112-14。如图13所示,容量池管理表112-14包括容量池号码112-14-01、RAID组列表112-14-02以及空闲容量信息112-14-03。容量池号码112-14-01包括存储控制器110、410中的容量池的ID。RAID组列表112-14-02包括容量池中的RAID组的列表。条目N/A表示容量池不存在。空闲容量信息112-14-03示出容量池中的总的空闲区的容量。
存储控制器的存储器112中存储的表格还包括容量池部件管理表112-15。如图14所示,容量池部件管理表112-15包括示出RAID组号码的顺序栏112-15-01、容量池号码112-15-02、空闲组块队列索引112-15-03、已使用的组块队列索引112-15-04及排除的组块队列索引112-15-05。RAID组号码的顺序栏112-15-01示出存储控制器110、410中的RAID组的ID。容量池号码112-15-02示出该RAID组所属的容量池的ID。空闲组块队列索引112-15-03包括空闲组块队列索引的号码。已使用的组块队列索引112-15-04包括已使用的组块队列索引的号码。排除的组块队列索引112-15-05示出所忽略的组块队列索引的号码。RAID组以队列的方式来管理空闲组块、被使用的组块及忽略的组块。
存储控制器的存储器112中存储的表格还包括容量池组块管理表112-16。如图15所示,容量池组块管理表112-16包括以下各栏:容量池组块号码112-16-01、虚拟卷号码112-16-02、已使用容量112-16-03、已删除容量112-16-04以及下一个组块指针112-16-05。容量池组块号码112-16-01包括RAID组中的容量池组块的ID。虚拟卷号码112-16-02包括使用容量池组块的虚拟卷号码。已使用容量112-16-03包括容量池组块的总的使用容量。当虚拟卷从容量池组块获得容量池页时,该参数增大容量池页大小。已删除容量112-16-04包括从容量池组块总的删除的容量。当虚拟卷通过卷格式化或虚拟卷页再分配来解除容量池页时,该参数增大容量池页大小。下一个组块指针112-16-05包括其它容量池组块的指针。容量池组块具有队列结构。空闲的组块队列索引112-15-03和已使用的组块队列索引112-15-04是图14示出的队列的索引。
存储控制器的存储器112中存储的表格还包括容量池页管理表112-17。如图16所示,容量池页管理表112-17包括示出容量池组块中的容量池页的偏移值的容量池页索引112-17-01和示出参照容量池页的虚拟卷页的虚拟卷页号码112-17-02。在该栏中,条目“null”表示该页被删除或没有被分配。
存储控制器的存储器112中存储的表格还包括对(pair)管理表112-19。如图17所示,对管理表112-19包括示出卷号码112-19-01、被配对的子系统号码112-19-02及被配对的卷号码112-19-03。卷号码信息112-19-01示出存储控制器110、410中的虚拟卷的ID。被配对的子系统信息112-19-02示出被配对的卷所属的存储子系统的ID。被配对的卷号码112-19-03示出在被配对的虚拟卷自己的存储子系统中被配对的卷的ID。对状态信息112-19-04以主(master)、从(slave)或N/A示出在对(pair)中卷的作用。主表示卷能够从外部卷操作动态存储区域分配容量分配。从表示当分配应该发生时卷询问主。如果主已经从外部卷分配了容量池页,则从使虚拟卷页与前述外部卷的容量池页相联系。条目N/A表示卷与其它虚拟卷不具有任何关系。
存储控制器的存储器112中存储的表格还包括高速缓冲存储器管理表112-18。如图18所示,高速缓冲存储器管理表112-18包括用于包括高速缓冲存储器槽号码112-18-01、磁盘号码或逻辑单元号码(LUN)112-18-02、磁盘地址或逻辑块地址(LBA)112-18-03、下一个槽指针112-18-04、锁定状态112-18-05、队列的种类112-18-11以及队列索引指针112-18-12的栏。高速缓冲存储器槽号码112-18-01包括高速缓冲存储区112-20中的高速缓冲存储器槽的ID,高速缓冲存储区112-20包括多个高速缓冲存储器槽。如图20所示,磁盘号码112-18-02包括磁盘121或虚拟卷140的号码,其中高速缓冲存储器槽存储数据。磁盘号码112-18-02能够识别与高速缓冲存储器槽号码相应的磁盘121或虚拟卷140。磁盘地址112-18-03包括高速缓冲存储器在其中存储数据的磁盘的地址。高速缓冲存储器槽具有队列结构,下一个槽指针112-18-04包括下一个高速缓冲存储器槽号码。条目“null”表示队列的末尾。在锁定状态112-18-05栏,条目“lock”表示槽被锁定。条目“解锁(unlock)”表示槽未被锁定。当状态是“锁定(lock)”时,通过“锁定”,CPU 111、411无法重写并且CPU 111、411等待直到状态变为“解锁”。队列信息112-18-11的种类示出高速缓冲存储器槽队列的种类。在该栏,条目“空闲”表示具有未被使用的高速缓冲存储器槽的队列,条目“干净(clean)”表示具有存储与磁盘槽相同的数据的高速缓冲存储器槽的队列,条目“脏(dirty)”表示具有存储与磁盘槽中的数据不同的数据的高速缓冲存储器槽的队列,因此,存储控制器110将来需要将高速缓冲存储器槽数据刷新到磁盘槽。队列索引指针112-18-12包括高速缓冲存储器槽队列的索引。
存储控制器的存储器112、412还包括高速缓冲存储器112-20。高速缓冲存储器112-20包括由高速缓冲存储器管理表112-18管理的高速缓冲存储器槽的号码112-20-1。图19示出高速缓冲存储器槽。
图17到24示出并描述根据本发明的各方面的存储系统的逻辑结构。在图19到24中,实线表示通过指针参照的目标,虚线表示通过计算参照的目标。
图19说明根据本发明的各实施例的容量池组块、容量池页及磁盘高速缓冲存储器之间的关系。
磁盘单元120中的每一个磁盘121被划分为多个磁盘槽121-3。容量池组块121-1包括以RAID组配置的多个磁盘槽121-3。容量池组块121-1可以包括零个或多个容量池页121-2。容量池组块121-1的大小是固定的。容量池页121-2可以包括一个或多个磁盘槽121-3。容量池页121-2的大小也是固定的。条带块RAID中的每一个磁盘槽131-3的大小是固定的并且与图24中示出的高速缓冲存储器槽112-20-1的大小相同。磁盘槽包括主数据或奇偶数据。
图20说明根据本发明的各方面的虚拟卷页、虚拟卷槽及虚拟卷之间的关系。
虚拟卷140从容量池分配容量,通过I/O操作主计算机300可以访问虚拟卷140。虚拟卷包括虚拟卷槽140-2。一个或多个虚拟卷槽形成虚拟卷页140-1。虚拟卷槽140-2具有与高速缓冲存储器槽112-20-1或磁盘槽121-3相同的容量。
图21说明根据本发明各实施例的容量池管理表、容量池部件管理表、容量池组块管理表、RAID组管理表及容量池组块之间的关系。
容量池管理表112-14、容量池部件管理表112-15、容量池组块管理表112-16、RAID组管理表112-11及容量池组块121-1之间的关系被示出。如所示出的,容量池管理表112-14根据RAID组列表112-14-02参照容量池部件管理表112-15。容量池部件管理表112-15根据容量池号码112-15-02参照容量池管理表112-14。容量池部件管理表112-15根据空闲组块队列112-15-03、已使用的组块队列112-15-04及忽略的组块队列112-15-05来参照容量池组块管理表112-16。容量池部件管理表112-15和RAID组管理表112-11之间的关系是固定的。容量池组块121-1和容量池组块管理表112-16之间的关系也是固定的。在用于将一个组块指向另一个组块的容量池组块管理表112-16内使用已删除的组块队列112-16-04。
图22说明根据本发明的各方面的虚拟卷、虚拟卷页、虚拟卷管理表、虚拟卷页管理表、容量池管理表、容量池组块、容量池页及容量池部件管理表之间的关系。
虚拟卷管理表112-12根据容量池号码信息112-12-03参照容量池管理表112-14。虚拟卷管理表112-12根据当前组块信息112-12-05参照已分配的容量池组块121-1。容量池管理表112-14根据RAID组列表112-14-02参照磁盘或外部卷621上的RAID组。虚拟卷页管理表112-13根据容量池页地址112-13-03和容量池页大小参照容量池页121-2。虚拟卷140和虚拟卷管理表112-12之间的关系是固定的。虚拟卷管理表112-12和虚拟卷页管理表112-13之间的关系是固定的。虚拟卷页140-1和虚拟卷页管理表112-13之间的关系是固定的。
图23说明根据本发明各方面的虚拟卷、虚拟卷页、容量池组块、容量池页及容量池页管理表之间的关系。
虚拟卷140、虚拟卷页140-1、容量池组块121-1、容量池页121-2及容量池页管理表112-17之间的关系被示出。容量池组块管理表112-16根据虚拟卷号码112-16-02参照虚拟卷140。容量池页管理表112-17根据虚拟卷页号码112-17-02参照虚拟卷页140-1。容量池组块121-1和量池组块管理表112-16之间的关系是固定的。根据容量池页管理表的条目将容量池页管理表112-17和容量池页121-2相联系是可能的。
图24说明根据本发明各方面的高速缓冲存储器槽、高速缓冲存储器管理表和磁盘槽之间的关系。
高速缓冲存储器槽112-20-1、高速缓冲存储器管理表112-18和磁盘槽121-3之间的关系被示出。高速缓冲存储器管理表112-18根据磁盘号码112-18-02和磁盘地址112-18-03参照磁盘槽121-3。高速缓冲存储器管理表112-18和高速缓冲存储器槽112-20-1之间的关系是固定的。
图25说明根据本发明的各实施例的两个存储子系统的虚拟卷和对管理表之间的关系。
根据对管理表112-19来建立属于一个存储子系统100的虚拟卷140和在两个存储子系统100、400之一上的虚拟卷之间的关系。对管理表112-19根据每一个子系统的对管理表112-19的被配对的子系统112-19-02和配对的卷112-19-03栏中的值来将一个存储子系统100的虚拟卷140与另一个存储子系统400的虚拟卷140相联系。
图26说明根据本发明各方面的虚拟卷、RAID组和外部卷之间的关系。
虚拟卷140、RAID组和外部卷621之间的关系被示出。通过将存储子系统100的一个虚拟卷140和存储子系统400的一个虚拟卷140相联系来建立一种类型的配对。在另一种类型的配对中,存储子系统100的虚拟卷页140-1参照属于外部卷621或相同子系统100的磁盘121的容量池页121-2。存储子系统400的虚拟卷页140-1参照属于外部卷621或相同存储子系统400的磁盘121的容量池页121-2。由存储子系统100、400的被配对的虚拟卷140共享外部卷621的相同的容量池页121-1。因此,可以在存储子系统和每一个存储子系统的虚拟卷之间对虚拟卷140配对。但是,每一个存储子系统的虚拟卷仅与相同的存储子系统的磁盘配对。
图27到38示出由存储子系统100的CPU 111或存储子系统400的CPU411执行的方法的流程图。虽然关于存储子系统100的CPU 111说明下面的特性,但是这些特性同样适用于存储子系统400。
图27说明根据本发明的各方面的执行卷操作等待程序的示例性方法。
在图27的流程图中示出图6的执行卷操作等待程序112-02-1的一种示例性方法。该方法开始于112-02-1-0。在112-02-1-1,该方法确定CPU是否已经接收到卷操作请求。如果CPU已经接收到卷操作请求,则该方法前进到步骤112-02-1-2。如果CPU 111没有接收到该请求,则该方法重复该确定步骤112-02-1-1。在112-02-1-2,该方法确定接收到的请求是否是“对生成”请求。如果已经接收到“对生成”请求,则该方法调用对生成程序112-02-1-2并在112-02-1-3执行该程序。在步骤112-02-1-3之后,该方法返回到步骤112-02-1-1以等待下一个请求。如果接收到的请求不是“对生成”请求,则然后在112-02-1-4,该方法确定所接收到的消息是否是“对删除”消息。如果在CPU111接收到“对删除”请求,则该方法前进到步骤112-02-1-5。在112-02-1-5,CPU 111调用对删除程序112-02-3以破坏在两个或多个存储子系统之间的现有的虚拟卷配对。如果没有接收到“对删除”请求,则该方法返回到步骤112-02-1-1。同样,在步骤112-02-1-5之后,该方法返回到步骤112-02-1-1。
图28说明根据本发明的各方面执行对生成程序的示例性方法。
在图28的流程图中示出执行图6的对生成程序112-02-2的一个示例性方法。可以由任一存储子系统的CPU执行该方法。该方法开始于112-02-2-0。在112-02-2-1,该方法确定指定的虚拟卷140是否已经与其它卷配对。如果图17的被配对的子系统信息112-19-02、被配对的卷号码112-19-03及对状态信息112-19-04被设置为“N/A”,则虚拟卷还没有被配对。如果对于该卷来说对存在,则该方法确定在112-02-2-11错误发生。如果对不存在,则该方法前进到步骤112-02-2-2,在112-02-2-2检查指定的虚拟卷140的状态。这里,该方法确定指定卷的需要的状态是否是主。如果该状态被确定为主,则该方法前进到112-02-2-3,在112-02-2-3,对其它存储子系统发送“对生成”请求。在112-02-2-3,将“对生成”请求消息发送到其它存储子系统以请求与主状态的指定的卷建立配对关系。
在112-02-2-4,该方法等待CPU以接收返回的消息。在112-02-2-5,检查返回的消息。如果消息是“ok”,则配对信息已经被成功设置并且该方法前进到步骤112-02-2-6。在112-02-2-6,该方法根据对管理表112-19中的信息设置指定的虚拟卷140的信息,对管理表112-19包括被配对的自系统信息反馈112-19-02、被配对的卷号码信息112-19-03及指定的虚拟卷的主或从状态112-19-04。然后该方法前进到步骤112-02-2-7,在步骤112-02-2-7,“完成(done)”消息被发送到“对生成”请求的发出者。通常由主计算机300、管理终端130或管理终端430发出“对生成”请求。在112-02-2-10,对生成程序112-02-2结束。
如果在112-02-2-2指定虚拟卷的状态没有被确定为主,则该状态为从,并且该方法前进到112-02-2-8。在112-02-2-8,该方法根据在对管理表112-19中关于指定的虚拟卷140的信息(例如被配对的子系统信息112-19-02、被配对的卷号码信息112-19-03及状态112-19-04)来设置指定的虚拟卷140及其对之间的配对关系。在112-02-2-9,CPU将“OK”消息发送到“对生成”请求的发出者。“对生成”请求的发出者可以是包括“主”卷的其它存储子系统。该步骤之后,在112-02-2-10对生成程序112-02-2结束。
图29说明根据本发明各方面的执行对删除程序的示例性方法。
在图29的流程图中示出执行图6的对删除程序112-02-3的一个示例性方法。可由任一存储子系统的CPU执行该方法。
该方法开始于112-02-3-0。在112-02-3-1,该方法确定指定的虚拟卷是否已经以主/从关于与其它卷配对。如果图17的被配对的子系统信息112-19-02、被配对的卷号码112-19-03及对状态信息112-19-04被设置为“N/A”,则虚拟卷还没有被配对。如果对于该卷来说对不存在,则由于不存在要删除的对,因此该方法确定在112-02-3-11错误已经发生。如果对存在,则该方法前进到步骤112-02-3-2,在112-02-3-2检查指定的虚拟卷140的状态。这里,该方法确定指定卷的需要的状态是否是主。如果该状态被确定为主,则该方法前进到112-02-3-3,在112-02-2-3,对其它存储子系统发送“对删除”请求以请求解除指定的卷及其从卷之间的配对关系。
在112-02-3-4,该方法等待CPU以接收返回的消息。在112-02-3-5,检查返回的消息。如果消息是“ok”,则配对信息已经被成功移除,并且该方法前进到步骤112-02-3-6。在112-02-3-6,该方法从对管理表112-19中移除关于对的信息,对管理表112-19包括被配对的自系统信息反馈112-19-02、被配对的卷号码信息112-19-03及指定的虚拟卷的主或从状态112-19-04。然后该方法前进到步骤112-02-3-7,在步骤112-02-3-7,“完成(done)”消息被发送到“对删除”请求的发出者。通常由主计算机300、管理终端130或管理终端430发出“对删除”请求。在112-02-3-10,对删除程序112-02-2结束。
如果在112-02-3-2指定虚拟卷的状态没有被确定为主,则该状态为从,并且该方法前进到112-02-3-8。在112-02-3-8,该方法从对管理表112-19中移除指定的虚拟卷140及其对之间的配对关系。该步骤包括从对管理表112-19中移除被配对的子系统信息112-19-02、被配对的卷号码信息112-19-03及状态112-19-04。在112-02-3-9,CPU将“OK”消息发送到“对删除”请求的发出者。“对删除”请求的发出者可以是包括“主”卷的其它存储子系统。该步骤之后,在112-02-3-10对删除程序112-02-3结束。
图30说明根据本发明各方面的执行槽操作程序的示例性方法。
在图30的流程图中示出执行图4和图5的槽操作程序112-09的一个示例性方法。与图26和27示出的方法相同,可由任一存储子系统的CPU执行该方法。
该方法开始于112-09-0。在112-09-1,该方法确定槽操作请求是否已经被接收到。如果已经接收到该请求,则该方法前进到步骤112-09-2。如果CPU 111没有接收到该请求,则该方法重复该步骤112-09-1。在步骤112-09-2,该方法确定所请求的操作的类型。如果CPU 111已经接收到“槽锁定”请求,则该方法前进到步骤112-09-3。如果CPU 111没有接收到“槽锁定”请求,则该方法前进到步骤112-09-4。在112-09-3,该方法通过将“锁定”状态写入高速缓冲存储器管理表112-18中的锁定状态栏112-18-05来试图锁定槽。但是,如果状态已经被设置为“锁定”,则无法完成该步骤。当状态是“锁定”时,CPU 111等待直到状态变为“解锁”。在CPU结束写“锁定”状态之后,该方法前进到步骤112-09-6,在步骤112-09-6将确认发送到请求发出者。该步骤之后,在112-09-7槽操作程序结束。在112-09-4,该方法检查已接收到的操作请求来确定“槽解锁”请求是否已经被接收到。如果该请求不是“槽解锁”请求,则该方法返回到112-09-1来检查下一个请求。如果该请求是“槽解锁”请求,则该方法前进到112-09-5。在112-09-5,该方法将“解锁”状态写入高速缓冲存储器管理表112-18中的锁定状态栏112-18-05。在将“解锁”状态写入该表完成之后,该方法前进到步骤112-09-6,在步骤112-09-6,确认被返回到请求发送者,在112-09-7槽操作程序结束。
图31说明根据本发明各方面的执行写I/O操作程序的示例性方法。
在图31的流程图中示出执行图7的写I/O操作程序112-04-1的一个示例性方法。可由任一存储子系统的CPU执行该方法。
该方法开始于112-04-1-0。在112-04-1-1,该方法检查所接收到的请求是否是写I/O请求。如果写I/O请求没有被接收到,则该方法重复步骤112-04-1-1。如果写I/O请求被接收到,则该方法前进到步骤112-04-1-2。在112-04-1-2,该方法检查以确定发送写I/O请求的发起者。主计算机300或存储子系统100、400之一可以发送该请求。如果该请求是由主计算机300发送的,则该方法前进到112-04-1-5。如果该请求是由其它存储子系统发送的,则该方法前进到112-04-1-3。
如果该请求是由存储子系统之一发送的,则在112-04-1-3,该方法通过参照对状态信息来检查该存储子系统的状态。如果该状态是“主”或“N/A”,则该方法前进到步骤112-04-1-5。如果该状态是“从”,则该方法前进到步骤112-04-1-4。在112-04-1-4,该方法复制并发送写I/O到在其它存储子系统中是从的被配对的虚拟卷。通过参照图17中所示的对管理表112-19中的被配对的卷子系统栏112-19-02及被配对的卷号码112-19-03来确定写I/O目标。然后,该方法前进到步骤112-04-1-5。
如果该请求的发起者是主计算机300或具有主虚拟卷状态的存储子系统之一,则该方法直接到达112-04-1-5。如果该请求的发起者是具有从虚拟卷状态的存储子系统之一,则该方法在达到112-04-1-5之前经过112-04-1-4。在112-04-1-5,该方法搜索高速缓冲存储器管理表112-18以寻找与用于I/O写数据的虚拟卷相关的高速缓冲存储器槽112-20-1。这些高速缓冲存储器槽被链接到“空闲”、“干净”或“赃”队列。如果CPU找到空闲的高速缓冲存储器槽112-20-1,则然后该方法前进到步骤112-04-1-7。如果CPU没有找到空闲的高速缓冲存储器槽112-20-1,则该方法前进到步骤112-04-1-6。在112-04-1-6,该方法获得被链接到在图18和24中示出的高速缓冲存储器管理表112-18的“空闲”队列的高速缓冲存储器槽112-20-1,然后该方法前进到步骤112-04-1-7。
在112-04-1-7,该方法通过将“锁定”状态写到被链接到所选择的槽的锁定状态栏112-1-8-05来试图锁定该槽。当状态是“锁定”时,CPU无法重写该槽,并等待直到状态变为“解锁”。在写“锁定”状态结束之后,CPU前进到步骤112-04-1-8。在112-04-1-8,该方法将写I/O数据从主计算机300或从其它存储子系统传送到高速缓冲存储器槽112-20-1。在112-04-1-9,该方法将“解锁”状态写入锁定状态栏112-18-05。在CPU完成写“解锁”之后,该方法前进到112-04-1-10。
在112-04-1-10,该方法可以检查一次或多次来确定发送写I/O请求的发起者。可选择地,该信息可以被保存并对于CPU是可用的。如果主计算机300发送了该请求,则该方法返回到112-04-1-1。如果存储子系统之一发送了该请求,则该方法前进到112-04-1-11。在112-04-1-11,该方法通过参照图17所示的对管理表112-19的对状态栏来检查其数据将被写入高速缓冲存储器槽的虚拟卷的状态。如果状态被设置为“从”或“N/A”,则该方法返回到步骤112-04-1-1。如果状态是“主”,则该方法前进到112-04-1-12。在112-04-1-12,该方法将写I/O复制并发送到的其它存储子系统中的被配对的虚拟卷(其应该是从卷)。该方法通过参照对管理表格112-19的被配对的卷子系统栏112-19-02和被配对的卷号码栏112-19-03来寻找写I/O目标。然后,该方法返回到112-04-1-1。
图32说明根据本发明各方面的执行读I/O操作程序的示例性方法。
在图32的流程图中示出执行图7的读I/O操作程序112-04-2的一个示例性方法。可由任一存储子系统的CPU执行该方法。
该方法开始于112-04-2-0。在112-04-2-1,该方法确定是否已经接收到的读I/O请求。如果读请求没有被接收到,则该方法重复步骤112-04-2-1。如果读请求被接收到,则该方法前进到步骤112-04-2-2。在112-04-2-2,该方法搜索链接到“干净”或“赃”队列的高速缓冲存储器管理表112-18以寻找该I/O请求的高速缓冲存储器槽112-18-1。如果CPU找到相应顶的高速缓冲存储器槽112-18-1,则然后该方法前进到步骤112-04-2-6。如果CPU没有找到相应的高速缓冲存储器槽,则然后该方法前进到步骤112-04-2-3。在112-04-2-3,该方法寻找链接到高速缓冲存储器管理表112-18的“空闲”队列的高速缓冲存储器槽112-20-1并前进到步骤112-04-2-4。在112-04-2-4,CPU搜索虚拟卷页管理表112-13并寻找虚拟卷页参照的容量池页121-2。然后该方法前进到步骤112-04-2-5。在112-04-2-5,CPU调用高速缓冲存储器升级程序112-05-2以将数据从磁盘槽121-3传送到图24所示的高速缓冲存储器槽112-20-1。在112-04-2-5之后,该方法前进到112-04-2-6。
在112-04-2-6,CPU 111试图将“锁定”状态写入链接到所选择的槽的锁定状态栏112-18-05。当该状态是“锁定”时,CPU 111和CPU 411不能重写该槽并等待知道该状态变为“解锁”。在结束写“锁定”之后,该方法前进到步骤112-04-2-7。在112-04-2-7,CPU 111将读I/O数据从高速缓冲存储器槽112-20-1传送到主计算机300并前进到112-04-2-8。在112-04-2-8,CPU改变该槽的状态以通过将“解锁”状态写入锁定状态栏112-18-05来解锁。在该方法解锁该槽之后,返回112-04-2-1来等待下一个读I/O操作。
图33A和图33B示出根据本发明各方面的执行容量池页分配程序的示例性方法。
在图33A和图33B的流程图中示出执行图9的容量池页分配程序112-08-1的一个示例性方法。可由任一存储子系统的CPU执行该方法,该方法用于执行容量池页分配。
该方法开始于112-08-1-0。在112-08-1-1,该方法通过参照对管理表112-19中的对状态栏112-19-04来检查虚拟卷140的状态。如果该状态是“主”或“N/A”,则该方法前进到步骤112-08-1-5。如果该状态是“从”,则该方法前进到步骤112-08-1-2。在112-08-1-2,该方法发送请求到主卷所属的存储子系统,该主卷寻找被参照的容量池页。该方法通过参照对管理表112-19中的被配对的卷子系统栏112-19-02及被配对的卷号码112-19-03确定存储子系统。同样地,该方法获得关于虚拟卷页和容量池页之间的关系的信息。然后,该方法前进到112-08-1-3。在112-08-1-3,该方法通过参照图10的RAID组管理表中的RAID等级栏112-11-02来检查该页的源。如果在该表中,RAID等级的状态被表示为“EXT”,则该页属于外部卷,该方法前进到步骤112-08-1-5。否则,对于RAID等级栏中的其它条目,该页属于内部卷,该方法前进到步骤112-08-1-4。在112-08-1-4,该方法根据在虚拟卷页管理表112-13和容量池页管理表112-17中提供的信息来设置虚拟卷页和容量池页之间的关系。该步骤之后,该方法结束,在112-08-1-12,容量池管理程序112-08-1的CPU的执行停止。
如果参照页的存储子系统的状态被确定为“主”或“N/A”,则该方法前进到步骤112-08-1-5。在112-08-1-5,该方法确定外部卷是否与使用RAID组中的信息的容量池组块和由图11的虚拟卷管理表112-12的容量池栏112-12-05当前使用的容量池组块有关。如果当前组块栏112-12-05的条目是“N/A”,则该方法前进到步骤112-08-1-7。如果当前组块栏112-12-05具有除了“N/A”的条目,则该方法前进到步骤112-08-1-6。在112-08-1-6,该方法检查前述容量池页中的空闲页大小。如果在组块中发现空闲页,则该方法前进到步骤112-08-1-8。如果在组块中没有发现空闲页,则该方法前进到步骤112-08-1-7。在112-08-1-7,该方法通过移动并将当前组块栏112-12-05参照的容量池页管理表112-17和在图16的容量池部件管理表112-15中使用的组块队列索引112-15-04相关系来解除旧的容量池组块。然后,该方法前进到步骤112-08-1-8。
在112-08-1-8,该方法将容量池部件管理表112-15的空闲组块队列索引112-15-03正在参照的容量池页管理表112-17连接到当前的组块栏112-12-05。然后,该方法前进到步骤112-08-1-9。
在112-08-1-9,该方法通过读取RAID组管理表112-11的RAID等级栏112-11-02来检查新的容量池组块是否属于例如外部卷621等共享的外部卷。如果RAID等级栏中的状态没有被标为“EXT”,则该方法前进到步骤112-08-1-11。如果RAID等级栏中的状态是“EXT”,则该方法前进到步骤112-08-1-10。在112-08-1-10,该方法将“组块解除”请求消息发送到其它存储子系统,这些子系统共享用于新的容量池组块的相同的外部卷。可以通过广播发送该请求消息。
在112-08-1-10之后,如果RAID等级栏中的状态没有被标为“EXT”,则该方法前进到步骤112-08-1-11。在112-08-1-11,该方法通过设置图12的虚拟卷页管理表112-13和图17的容量池页管理表112-17的虚拟卷页和容量池页之间的关系来将最近获得的容量池页分配给虚拟卷页。该步骤之后,在112-08-1-12,该方法和容量池管理程序112-08-1的执行结束。
图34说明根据本发明各方面的执行高速缓冲存储器升级程序的示例性方法。
在图34的流程图中示出执行图8的高速缓冲存储器升级程序112-05-2的一个示例性方法。可由任一存储子系统的CPU执行该方法。
该方法开始于112-05-2-0。高速缓冲存储器升级方法可以包括由CPU执行的高速缓冲存储器升级程序112-05-2。在112-05-2-1,该方法如图24所示将槽数据从磁盘槽121-3传送到高速缓冲存储器槽112-20-1。在112-05-2-2,高速缓冲存储器升级程序。
图35说明根据本发明各方面的执行磁盘刷新程序的示例性方法。
在图35的流程图中示出执行图8的磁盘刷新程序112-05-1的一个示例性方法。可由任一存储子系统的CPU执行该方法。
该方法开始于112-05-1-0。磁盘刷新方法可以包括由CPU执行的磁盘刷新程序112-05-1。在112-05-1-1,该方法搜索用于高速缓冲存储器槽的高速缓冲存储器管理表112-18的“脏”队列。如果找到该槽,则该方法获得是脏队列槽的脏队列的第一个槽,并且该方法前进到112-05-1-2。在112-05-1-2,该方法调用高速缓冲存储器降级程序112-05-3并将脏的高速缓冲存储器槽降级。该步骤之后,该方法返回到步骤112-05-1-1,在112-05-1-1继续搜索脏的高速缓冲存储器槽。同样,如果在112-05-1-1没有找到脏的高速缓冲存储器槽,则该方法返回到112-05-1-1的相同步骤以继续寻找该槽。
图36、图37及图38示出根据本发明各方面的执行高速缓冲存储器降级程序的示例性方法。
在图34A、34B及34C的流程图中示出执行图8的高速缓冲存储器降级程序112-05-3的一个示例性方法。可由任一存储子系统的CPU执行该方法。
该方法开始于112-05-3-0。可以通过由CPU执行高速缓冲存储器降级程序112-05-3来执行示出的该方法。在112-05-3-1,该方法通过参照图17的对管理表112-19的状态栏112-19-04来检查虚拟卷140的状态。如果该状态是“主”或“N/A”,则该方法前进到图37的步骤112-08-3-8。如果该状态是“从”,则该方法前进到步骤112-05-3-2。在112-05-3-2,该方法检查有关于包括要被降级的槽的虚拟卷页的容量池分配的状态。该方法从图12的虚拟卷页管理表112-13中读取相关的RAID组号码112-13-02及容量池页地址112-13-03。如果该参数不是“N/A”,则该方法前进到步骤112-05-3-5。如果该参数是“N/A”,则该方法前进到步骤112-05-3-3。在112-05-3-3,该方法调用容量池页分配程序112-08-1以将新的容量池页分配给该槽,并且该方法前进到步骤112-05-3-4。在112-05-3-4,该方法将“0”数据填充到最近分配的页的槽以将该页格式化。该页的被写入的区没有被重写。然后该方法前进到112-05-3-5。在112-05-3-5,该方法试图将“锁定”状态写入与选择的槽相关的锁定状态栏112-18-05。从而锁定该槽。当该状态是“锁定”时,CPU不能在该槽重写数据并等待直到该状态变为“解锁”。在该方法完成写“锁定”状态之后,该方法前进到步骤112-05-3-6。在112-05-3-6,该方法将槽数据从高速缓冲存储器槽121-20-1传送到磁盘槽121-3,并且该方法前进到步骤112-05-3-7。在112-05-3-7,该方法将“解锁”状态写入锁定状态栏112-18-05。在写入“解锁”完成之后,在112-05-3-30高速缓冲存储器降级程序结束。
如果该卷的状态是从,则该方法从112-05-3-1前进到112-05-3-8,在112-05-3-8该方法检查关于包括该槽的虚拟卷页的容量池分配的状态。该方法读取虚拟卷页管理表112-13中的相关的RAID组号码112-13-02及容量池页地址112-13-03。如果该参数是“N/A”,则该方法前进到步骤112-05-3-20。如果该参数不是“N/A”,则存在与该虚拟卷中的槽相关的容量池页,并且该方法前进到步骤112-05-3-10。在112-05-3-10,该方法确定在主卷的存储子系统中的容量池页的分配状态。这里,该方法通过参照图17的对管理表112-19的被配对卷子系统栏112-19-02和被配对的卷号码栏112-19-03栏来确定存储子系统,并且该方法获得虚拟卷页和容量池页之间的关系。然后该方法前进到112-05-3-11。在112-05-3-11该方法通过从虚拟卷管理表中读取相关的RAID组号码112-13-02和容量池页地址112-13-03来检查包括该槽的虚拟卷页的容量池分配的状态。如果该参数是“N/A”,则不存在已分配给主槽的容量池页,并且该方法前进到步骤112-05-3-12。在112-05-3-12,该方法休眠合适长度的时间以等待完成主的分配,然后该方法返回步骤112-05-3-10。如果该参数不是“N/A”,则存在已分配给主槽的容量池页,并且该方法前进到步骤112-05-3-13。在112-05-3-13,该方法根据虚拟卷页管理表112-13和容量池页管理表112-17中的信息来设置虚拟卷页和主卷的容量池页之间的关系。然后,该方法前进到步骤112-05-3-20。
在112-05-3-20,该方法将“槽锁定”消息发送到主卷的存储子系统。在该方法接收到消息已经被接收到的确认之后,该方法前进到步骤112-05-3-21。在112-05-3-21,该方法询问关于主卷的槽状态。在该方法接收到应答之后,该方法前进到步骤112-05-3-22。在112-05-3-22,该方法检查主卷的槽状态。如果该状态是“脏”,则该方法前进到步骤112-05-3-23。如果该状态不是“脏”,则该方法前进到步骤112-05-3-27。在112-05-3-23,该方法试图通过将“锁定”状态写入与高速缓冲存储器管理表中的所选择的槽相关的锁定状态栏112-18-05来锁定该槽。当该状态是“锁定”时,CPU不能通过另一个“锁定”命令重写该槽。在CPU已经完成写入“锁定”状态之后,该方法前进到步骤112-05-3-24。在112-05-3-24,该方法将从的槽状态改变为“干净”,并且该方法前进到步骤112-05-3-25。在112-05-3-25,该方法将“解锁”状态写入高速缓冲存储器管理表中的锁定状态栏112-18-05,并且该方法前进到步骤112-05-3-26。在112-05-3-26,该方法将“槽解锁”消息发送到主卷的存储子系统。在该方法接收到确认之后,在112-05-3-30,该方法结束高速缓冲存储器降级程序112-05-3。
如果主槽状态是“脏”,则在112-05-3-27该方法试图将“锁定”状态写入与所选择的槽相关的锁定状态栏112-18-05。当该状态是“锁定”时,CPU不能通过另一个“锁定”命令重写该状态,并且CPU等待直到该状态变为“解锁”。在完成写入“锁定”状态之后,CPU前进到步骤112-05-3-28。在112-05-3-28,该方法将槽数据从高速缓冲存储器槽112-20-1传送到磁盘槽121-3。在完成该传送之后,该方法将高速缓冲存储器槽112-20-1与图18的高速缓冲存储器管理表112-18中的队列索引指针112-18-12的“干净”队列相关联。然后,该方法前进到步骤112-05-3-26,在将解锁请求发送到主卷的存储子系统之后,在112-05-3-30该方法结束。
图39说明根据本发明各方面的执行容量池回收程序的示例性方法。
在图39的流程图中示出执行图9的容量池回收程序112-08-2的一个示例性方法。可由任一存储子系统的CPU执行该方法。
该方法开始于112-08-2-0。在112-08-2-1,该方法搜索容量池组块管理表112-16来寻找与由容量池部件管理表112-15索引的被使用的组块队列相关的组块。该方法参照已删除的容量栏112-16-04并检查与该组块相应的值是否大于0,从而该方法将该组块当作“部分被删除的组块”。如果该方法没有找到“部分被删除的组块”,则该方法重复步骤112-08-2-1。
如果该方法找到部分被删除的组块,则该方法前进到步骤112-08-2-2。在112-08-2-2,该方法访问与由容量池部件管理表112-15索引的“空闲组块”队列相关的容量池组块管理表112-16以分配新的容量池组块121-1替代部分被删除的组块。然后,该方法前进到步骤112-08-2-3。
在112-08-2-3,该方法使指针清零以在步骤112-08-2-4和步骤112-08-2-7之间重复。为了使指针清零,该方法将指针A设置到当前分配的组块的第一个槽并将指针B设置到最近分配的组块的第一个槽。然后,该方法前进到步骤112-08-2-4。
在步骤112-08-2-4,该方法确定槽是否处于组块的已删除的页。为了进行该确定,该方法读取容量池页管理表112-17、从容量池页索引112-17-1来计算页的偏移量并检查虚拟卷页号码112-17-02。如果虚拟卷页号码112-17-02是“空”,则该方法前进到112-08-2-6。如果虚拟卷页号码112-17-02不是“空”,则该方法前进到112-08-2-5。在112-08-2-5,该方法将数据从由指针A指示的槽复制到由指针B指示的槽。该方法使指针B前进到最近分配的组块的下一个槽。然后该方法前进到步骤112-08-2-6。
在112-08-2-6,该方法检查指针A。如果指针A已经到达当前组块的最后一个槽,则该方法前进到步骤112-08-2-8。如果指针A还没有到达当前组块的最后一个槽,则该方法前进到步骤112-08-2-7。在112-08-2-7,该方法使指针A前进到当前组块的下一个槽。然后该方法返回到步骤112-08-2-4以检查下一个槽。
如果在112-08-2-6指针A已经到达组块的底端,则该方法前进到112-08-2-8。在112-08-2-8,该方法存储已被复制到容量池页管理表112-17的槽的虚拟卷页140-1地址,并改变虚拟卷页管理表以包括最近复制的容量池页121-1地址和大小。然后,该方法前进到步骤112-08-2-9。在112-08-2-9,该方法将当前组块(该组块是已被找到的部分被删除的组块)设置到由容量池部件管理表112-15索引的“空闲组块”队列。然后,该方法返回到步骤112-08-2-1。
图40说明根据本发明各方面的执行容量池组块解除程序的示例性方法。
在图40的流程图中示出执行图9的容量池组块解除程序112-08-3的一个示例性方法。可由任一存储子系统的CPU执行该方法。
该方法开始于112-08-3-0。在112-08-3-1,该方法检查是否已经接收到“组块解除”操作请求。如果没有收到该请求,则该方法重复步骤112-08-3-1。如果已经收到该种请求,则该方法前进到步骤112-08-3-2。在112-08-3-2,该方法搜索用于虚拟卷的容量池组块管理表112-16,该虚拟卷与由容量池部件管理表112-15索引的“空闲组块”队列相关。该方法将从容量池组块管理表112-16获得的目标虚拟卷从“空闲组块”队列发送到“被排除的组块”队列并前进到步骤112-08-3-3。在112-08-3-3,该方法对来自存储子系统的“解除组块”操作请求返回确认。然后,该方法返回步骤112-08-3-1。
图41、图42图43及图44示出对主和从卷的写I/O和降级操作的时序。在这些图中,存储子系统100的虚拟卷140在“主”状态下工作并被参考为140m,存储子系统400的虚拟卷140在“从”状态下工作并被参考为140s。在这些图中,图1的系统被简化以示出主计算机300、存储子系统100(400)及外部卷621。作为140m和140s示出主和从虚拟卷。除了如S1-1所示出的步骤之外,相似地,在紧挨着箭头的圆圈中的号码也示出正在执行的操作的时序。
图41提供根据本发明的各方面的对主卷写I/O的时序。
图41示出的时序相应于写I/O操作程序112-04-1。在S1-1,主计算机300发送写I/O请求和将要写入虚拟卷140m的数据。存储子系统100将写I/O数据存储到它的高速缓冲存储器槽中。当该操作进行时,存储子系统100锁定该槽。在S1-2,在将写I/O数据存储到存储子系统100的高速缓冲存储区之后,存储子系统100复制该写I/O请求以及将要被写入存储子系统400的虚拟卷140s的关联数据。存储子系统400将写I/O数据存储到它的高速缓冲存储器槽中。当该操作进行时,存储子系统400锁定该槽。在S1-3,在将写I/O数据存储到存储子系统400的高速缓冲存储区之后,存储子系统400向存储子系统100返回确认消息。在S1-4,在接收到来自存储子系统400的前述确认之后,存储子系统100将该确认返回到主计算机300。
图42提供根据本发明的各方面的对从卷写I/O的时序。
图42示出的时序也相应于写I/O操作程序112-04-1。在S2-1,主计算机300将写I/O请求和相关的数据发送到虚拟卷140s。在S2-2,存储子系统400将接收到的写I/O请求和相关数据复制并发送到虚拟卷140m。存储子系统100将写I/O数据存储到它的高速缓冲存储器槽中。当该操作进行时,存储子系统100锁定该槽。在S2-3,在将写I/O数据存储到存储子系统100的高速缓冲存储器槽之后,存储子系统100向存储子系统400返回确认消息。在存储子系统400接收到前述确认之后,存储子系统400将写I/O数据存储到它的高速缓冲存储器槽中。当该操作进行时,存储子系统100锁定该槽。在S2-4,在将写I/O数据存储到存储子系统400的高速缓冲存储器槽之后,存储子系统400将确认返回到主计算机300。
图43提供根据本发明的各方面的从主卷对外部卷降级的时序。
图43示出的时序相应于高速缓冲存储器降级程序112-05-3。在S3-1,存储子系统100寻找位于未被分配的虚拟卷页中的脏的高速缓冲存储器槽,获得外部卷621的新的容量池组块以进行分配,并且将“页解除”请求发送到存储子系统400。在S3-2,存储子系统400接收到该请求并进行搜索,并且将找到的是脏的的被共享的前述容量池组块忽略。在忽略完成之后,存储子系统400将确认返回到存储子系统100。随后,在S3-3,在存储子系统100接收到忽略的确认之后,存储子系统100从前述容量池组块中将新的容量池页分配给虚拟卷页。然后,在分配操作结束之后,在S3-4,存储子系统100将脏的高速缓冲存储器槽传送到外部卷621,在该操作过程中,存储子系统100锁定该槽。然后,在S3-5,在传送脏的高速缓冲存储器槽之后,存储子系统100接收到来自外部卷621的确认。在接收到该确认之后,存储子系统100将该槽状态从脏改变为干净,并将该槽解锁。
图44提供根据本发明的各方面的从从卷对外部卷降级的时序。
图44示出的时序也相应于高速缓冲存储器降级程序112-05-3。
在S4-1,存储子系统400寻找脏的高速缓冲存储器槽,该槽位于未被分配的虚拟卷页中。存储子系统400询问存储子系统100关于在虚拟卷140m上的容量池页分配的状态。在S4-2,该请求之后,存储子系统100从容量池页管理表中读取虚拟卷页和容量池页之间的关系并将应答发送到存储子系统400。在S4-3,接收到该应答之后,存储子系统400将虚拟卷页分配给虚拟卷140s上的相同的容量池页。随后在S4-4,存储子系统400将“锁定”请求消息发送到存储子系统100。在S4-5,存储子系统100接收到该消息并锁定位于与虚拟卷140s的前述脏的槽相同的区的目标槽。锁定该槽之后,存储子系统100将确认及虚拟卷140m的槽状态返回到存储子系统400。在S4-6,在确认返回之后,如果虚拟卷140m的槽状态是脏,则存储子系统400将脏的高速缓冲存储器槽传送到外部卷621。在该操作过程中,存储子系统100锁定该槽。在S4-7,在传送脏的高速缓冲存储器槽之后,存储子系统400接收到来自外部卷621的确认。在接收到该确认之后,存储子系统100将槽状态从脏改变为干净,并将该槽解锁。
图45说明根据本发明的各方面的存储系统。
图45所示的存储系统与图1所示的存储系统相似,该系统也包括两个或多个存储子系统100、400及主计算机300。然而,代替外部卷621,图45所示的存储系统包括外部存储子系统600。图45所示的存储系统还包括一个或多个存储网络200。存储子系统100、400可以被直接地耦合在一起。可以直接或通过存储网络200将主计算机耦合到存储子系统100、400。可以直接将外部存储子系统600耦合到存储子系统100、400。
图46说明根据本发明的各方面的在存储子系统100和400中存储的另一容量池管理程序的示例性结构。
容量池管理程序112-08的一个示例性结构包括容量池页分配程序112-08-1a、容量池回收程序112-08-2及容量池扩充(extension)程序112-08-3。当与图9的容量池管理程序112-08相比较时,代替容量池页分配程序112-08-1,图46所示的程序包括容量池页分配程序112-08-1a。
图47A和图47B示出根据本发明的各方面的执行容量池页分配的示例性方法。
在图52的流程图中示出容量池管理分配程序112-08-1a的示例性执行。可以由存储子系统100和400的CPU 111、411执行该程序。
该方法开始于112-08-1a-0。在112-08-1a-2,存储子系统之一的CPU(例如CPU 111)将“获得页分配信息”从存储子系统100发送到外部存储子系统600。页分配信息有关于主卷的虚拟卷页的分配。在CPU 111接收到来自外部存储子系统600的应答之后,该方法前进到112-08-1a-3。
在112-08-1a-3,CPU 111检查该已经从外部存储子系统接收到的应答。如果该应答是“空闲”,则被请求的页不属于外部存储卷,并且CPU 111前进到步骤112-08-1a-5。如果该应答是页号码和卷号码,则被请求的页已经被分配给外部存储系统,并且CPU 111前进到步骤112-08-1a-4。在112-08-1a-4,CPU111根据虚拟卷页管理表112-13a和容量池页管理表112-17来设置虚拟卷页和容量池页之间的关系信息。该步骤之后,在112-08-1a-12,CPU 111结束容量池页分配程序112-08-1a。
当被请求的页还没有被分配给外部卷时,在步骤112-08-1a-5,CPU 111参照容量池页管理表112-17列(该列被虚拟卷管理表112-05的容量池栏112-12-05当前正在使用的RAID组和组块参照)以确定某一栏是否被分配给某一组块。如果当前使用的组块栏112-12-05是“N/A”,则不存在分配给组块的栏,并且CPU 111前进到步骤112-08-1a-8。如果当前使用的组块栏112-12-05没有被设置为“N/A”,则该方法前进到步骤112-08-1a-6。在112-08-1a-6,CPU111检查在前述容量池页中的空闲页大小。如果存在可用的空闲页,则该方法前进到步骤112-08-1a-8。如果不存在可用的空闲页,则该方法前进到步骤112-08-1a-7。在112-08-1a-7,该方法通过将由当前正在使用的组块栏112-12-05参照的容量池管理表112-17移动并耦合到容量池部件管理表112-15的被使用的组块队列索引112-15-04来解除旧的容量池组块。然后,该方法运行到112-08-1a-8。
在112-08-1a-8,该方法通过将由空闲组块队列索引112-15-03指的容量池管理表112-17移动并连接到容量池部件管理表112-15的被使用的组块队列索引112-15-05来获得新的容量池组块。然后,该方法前进到步骤112-08-1a-9。
在112-08-1a-9,CPU 111通过读取RAID等级栏112-11-02来检查以确定新的容量池组块是否属于外部卷621。如果该状态不是“EXT”,则该方法前进到步骤112-08-1a-11。如果该状态是“EXT”,则新的容量池组块不属于外部卷621,并且该方法前进到步骤112-08-1a-10。在112-08-1a-10,该方法选择新的组块中的页并将关于所选择的页的“页分配”请求发送到外部存储子系统。在CPU 111接收到应答之后,该方法前进到步骤112-08-1a-12。在112-08-1a-12,CPU 111检查所接收到的应答。如果该应答是“已经分配”,则该方法返回步骤112-08-1a-10。如果该应答是“成功”,则该方法返回步骤112-08-1a-11。在112-08-1a-11,CPU 111设置虚拟卷页管理表112-13和容量池页管理表112-17中的虚拟卷页和容量池页之间的关系。该步骤之后,在112-08-1a-11,容量池页分配程序112-08-1a结束。
图48说明根据本发明的其它方面的外部存储子系统。
图48中更具体地示出外部存储子系统600。外部存储子系统600包括存储控制器610、磁盘单元620及管理终端630。
存储控制器610包括用于除了已存储的数据还存储程序和表格的存储器612,用于执行存储器中存储的程序的CPU 611,用于耦合到磁盘单元621a的磁盘接口(例如SCSI I/F)616,用于将父存储接口615耦合到存储子系统之一上的外部存储接口118、418的父存储接口(例如光线通道I/F)615、617,以及用于将磁盘控制器耦合到管理终端630上的存储控制器接口633的管理终端接口614。父存储接口615接收到来自存储子系统100I/O的请求并将该请求通知CPU 611。管理终端界面616接收到来自管理终端630的卷、磁盘及容量池操作请求并将该请求通知CPU 611。
磁盘单元620包括例如HDD等磁盘621a。
管理终端630包括用于管理管理终端630的处理的CPU 631,存储器632,用于将存储控制器耦合到管理终端接口614的存储控制器接口(例如NIC)633,及例如键盘、鼠标或监视器等用户接口。存储控制器接口633将卷、磁盘及容量池操作发送到存储控制器610。存储控制器610提供是虚拟卷的外部卷621来存储数据。
图49说明根据本发明其它方面的外部存储子系统的存储器的示例性结构。
图49示出外部卷600的存储器612的一个示例性结构。该存储器包括虚拟卷页管理程序112-01a、I/O操作程序112-04、磁盘访问程序112-05、容量池管理程序112-08a、槽操作程序112-09、RAID组管理表112-11、虚拟卷管理表112-12、虚拟卷页管理表112-13a、容量池管理表112-14、容量池部件管理表112-15、容量池组块管理表112-16、容量池页管理表112-17、对管理表112-19、容量池页管理表112-17、高速缓冲存储器管理表112-18及高速缓冲存储区112-20。
当CPU 611接收到来自存储子系统100之一的“页分配”请求时,虚拟卷页管理程序112-01a运行。如果指定的页已经被分配,则CPU 611向请求方返回错误消息。如果指定的页还没有被分配,则CPU 611存储主卷页和指定的页之间的关系并返回成功消息。虚拟卷页管理程序112-01a是系统驻留程序。
图50说明存储控制器的存储器412中存储的容量池管理程序112-08。
该程序与图9示出的程序相似。
图51说明根据本发明其它方面的虚拟卷页管理表的示例性结构。
虚拟卷页管理表112-13a的一个示例性结构包括虚拟卷页地址112-13a-01、相关的RAID组号码112-13a-02、容量池页地址112-13a-03、主卷号码112-13a-04及主卷页地址112-13a-05。
虚拟卷页地址112-13a-01包括虚拟卷中的虚拟卷页的ID。相关的RAID组号码112-13a-02包括已被分配的容量池页(其包括外部卷621)的RAID组号码或“N/A”,“N/A”表示没有对虚拟卷页被分配RAID存储系统中的容量池页。容量池页地址112-13a-03包括相关的容量池页的逻辑地址或该容量池页的开始地址。主卷号码112-13a-04包括被链接到页的主卷或表示虚拟卷页没有被链接到其它存储子系统的“N/A”。主卷页地址112-13a-05包括相关的主卷页的逻辑地址或表示虚拟卷页没有被链接到其它存储子系统的“N/A”。
图52说明根据本发明其它方面的执行虚拟卷页管理的示例性方法。
示出执行虚拟卷页管理程序112-1a的一个示例性方法。可由外部存储子系统621的CPU 611执行该程序。
该方法开始于112-01a-1。在112-01a-1,该方法确定是否在外部存储子系统上已经接收到“获得页分配信息”请求。如果没有接收到该消息,则该方法前进到步骤112-01a-3。如果CPU 611已经接收到该消息,则该方法前进到步骤112-01a-2。
在112-01a-2,该方法检查关于指定的被请求的页的虚拟卷页管理表112-13a。如果主卷号码112-13a-04和主卷页地址112-13a-05都是“N/A”,则该方法向被请求的存储子系统返回应答“空闲”。如果主卷号码112-13a-04和主卷页地址112-13a-05不是“N/A”,则该方法向被请求的存储子系统返回主卷号码112-13a-04和主卷页地址112-13a-05的值。发送应答之后,该方法返回到步骤112-01a-1以确定下一个请求。
如果没有接收到页分配信息请求消息,则在112-13a-3,该方法确定是否已经接收到“页分配”请求。如果没有,则该方法返回到112-01a-1。如果已经接收到该消息,则该方法前进到112-01a-4。在112-01a-4,该方法检查关于指定的页的虚拟卷页管理表112-13a。如果相关的RAID组号码112-13a-02、容量池页地址112-13a-03、主卷号码112-13a-04及主卷页地址112-13a-05是“N/A”,则还没有完成页分配,并且该方法前进到步骤112-01a-6。在112-01a-6,该方法将指定的值存储到主卷号码112-13a-04及主卷页地址112-13a-05,并且该方法前进到步骤112-01a-7,在112-01a-7,将应答“成功”发送到发出请求的存储子系统以确认页分配的成功完成。然后,该方法返回到步骤112-01a-1。
图53说明根据本发明的各方面的从主卷对外部卷降级的示例性时序。
在示出的示例性降级时序中,存储子系统100的虚拟卷140作为“主”卷140m工作,存储子系统400的虚拟卷140作为“从”卷140s工作。图53示出的时序是驻留在存储控制器的存储器中的执行高速缓冲存储器降级程序112-05-3的一个示例性方法,并示出将页从从主虚拟卷140m降级到外部存储子系统621的时序。
首先,在S3a-1,存储子系统100寻找位于未被分配的虚拟卷页中的脏的高速缓冲存储器槽。存储子系统100将请求发送到外部存储子系统600来分配新的页。第二,在S3a-2,外部存储子系统600接收到该请求并检查和分配新的页。在该操作完成之后,外部存储子系统600将确认返回到存储子系统100。第三,在S3a-3,在分配操作结束之后,存储子系统100将脏的高速缓冲存储器槽传送到外部卷621。在该操作过程中,存储子系统100锁定该槽。最后,在S3a-4,在传送之后,存储子系统100接收到来自外部存储子系统600的确认。在接收到该确认之后,存储子系统100将槽状态从脏改变为干净并将该槽解锁。
图54说明根据本发明的各方面的从从卷对外部卷降级的示例性序列。
在示出的示例性降级时序中,存储子系统100的虚拟卷140作为“主”卷140m工作,存储子系统400的虚拟卷140作为“从”卷140s工作。图54示出的时序是驻留在存储控制器的存储器中的执行高速缓冲存储器降级程序112-05-3的一个示例性方法,并示出将页从从从虚拟卷140s降级到外部存储子系统621的时序。
首先,在S4a-1,包括从虚拟卷140s的存储子系统400寻找位于未被分配的虚拟卷页中的脏的高速缓冲存储器槽。存储子系统400将请求发送到外部存储子系统600来对该槽中的数据分配新的页。第二,在S4a-2,外部存储子系统600接收到该请求并检查和分配新的页。在该操作完成之后,外部存储子系统600将确认返回到存储子系统400。第三,在S4a-3,存储子系统400将“锁定请求”消息发送到存储子系统100。第四,在S4a-4,存储子系统100接收到锁定请求消息并锁定相应于虚拟卷140s的脏的槽的主虚拟卷140m上的目标槽。在存储子系统100锁定该槽之后,存储子系统100将确认消息和虚拟卷140m的槽状态返回到存储子系统400上的从虚拟卷140s。第五,在S4a-5,在分配操作结束之后,存储子系统400将脏的高速缓冲存储器槽传送到外部卷621,并且在该降级操作过程中,存储子系统400锁定该槽。第六,在S4a-6,在传送之后,存储子系统400接收到来自外部存储子系统600的确认消息。在接收到该确认消息之后,存储子系统400将槽状态从脏改变为干净并将该槽解锁。
图55是说明计算机/服务器系统550的实施例,在计算机/服务器系统550上可以执行本发明的实施例。系统5500包括计算机/服务器平台5501、外围设备5502及网络资源5503。
计算机平台5501可以包括用于越过计算机平台5501的各种部件和在计算机平台5501的各种部件中传送信息的数据总线5504或其它通信机构,及与总线5501耦合用于处理信息并执行其它计算和控制任务的处理器5501。计算机平台5501还包括耦合到总线5504用于存储要由处理器5505执行的指令以及各种信息的易失性存储器(例如随机访问存储器(RAM)或其它动态存储设备)5506。易失性存储器5506还可以用于在处理器5505执行指令的过程中存储临时变量或其它中间信息。计算机平台5501可以进一步包括耦合到总线5504用于存储各种系统配置参数及用于处理器5505的静态信息和指令(例如基本输入输出系统(BIOS))的只读存储器(ROM或EPROM)5507或其它静态存储设备。永久存储设备(例如磁盘、光盘或固态闪存设备)5508被提供并被耦合到总线5501以存储信息和指令。
可以经由总线5504将计算机平台5501耦合到显示器(例如,阴极射线管(CRT)、等离子显示器或液晶显示器(LCD))5509以向系统管理员或计算机平台5501的用户显示信息。包括字母数字或其它键盘的输入设备5510被耦合到总线5501以向处理器5505传送信息和命令选择。其它类型的用户输入设备是指针控制设备(例如鼠标、轨迹球或指针方向键盘)5511以对处理器5504传送方向信息和命令选择并控制显示器5509上的指针移动。输入设备通常具有在允许设备到平面上的特定位置的两个轴(第一轴(例如,x)和第二轴(例如,y))上的两种程度的自由。
外部存储设备5512可以经由总线5504被连接到计算机平台5501以为计算机平台提供额外的或可移除的存储容量。在计算机系统5500的实施例中,外部可移除的存储设备5512可用于促进与其它计算机系统交换数据。
本发明有关于计算机系统5500的使用以执行本文描述的技术。在实施例中,本发明的系统可以位于例如计算机平台5501等设备中。根据本发明的一个实施例,响应于执行在易失性存储器5506中包括的一个或多个指令的一个或多个序列的处理器5505,由计算机系统5500执行本文描述的技术。可以从其它计算机可读介质(例如永久存储设备5508)中将该种指令读入易失性存储器5506中。在易失性存储器5506中包括的指令序列的执行使处理器5505执行本文描述的处理步骤。在选择性的实施例中,可以使用硬布线电路代替软件指令或与软件指令结合以执行本发明。从而,本发明的实施例不限于硬件电路和软件的任何特定结合。
本文使用的术语“计算机可读介质”指参与对处理器5505提供指令以执行的任何介质。计算机可读介质只是机器可读介质的一个示例,该种介质可以包括用于执行本文描述的任意方法和/或技术的指令。该种介质可以采用任意形式,包括但不限于非易失性介质、易失性介质及传输介质。非易失性介质包括例如光或磁盘(例如存储设备5508)。易失性介质包括动态存储器(例如易失性存储器5506)。传输介质包括同轴线缆、铜线和纤维光学,还包括数据总线5504等线。
传输介质还可以采用声或光波的形式,例如在无线电波和红外线数据通信过程中产生的波。
普通形式的计算机可读介质包括软盘、柔性盘、磁盘、磁带、任意的其它磁介质、CD-ROM、任意的其它光介质、穿孔卡片、纸带、具有孔图案的任意的其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、闪存驱动、存储卡、任意其它存储器芯片或模块、如下面描述的载波或计算机能够读取的任意其它介质。
在装载处理器5505执行的一个或多个序列的一个或多个指令中可以包括各种形式的计算机可读介质。例如,最初,可以从远程计算机将指令装载到磁盘上。可选择地,远程计算机可以将指令载入其动态存储器中并使用调制解调器通过电话线发送指令。计算机系统5500的本地调制解调器能够接收电话线上的数据并使用远红外发射机将该数据转换为远红外信号。远红外检测器能够接收以远红外信号加载的数据,并且合适的电路能够将数据置于数据总线5504上。总线5504将数据载入易失性存储器5506,处理器5505从易失性存储器5506获取并执行指令。由易失性存储器5506接收到的指令可以被选择性地在处理器5505执行之前或之后存储在永久存储设备5508上。经由因特网,使用本领域已知的各种网络数据通信协议,还可以将该指令下载到计算机平台5501中。
计算机平台5501还包括例如耦合到数据总线5504的网络接口卡5513等通信接口。通信接口5513提供耦合网络链路5514的双路数据通信,网络链路5514被耦合到本地网络5515上。例如,通信接口5513可以是将数据通信连接提供给相应类型的电话线的综合服务数字网络(ISDN)卡或调制解调器。如另一个示例,通信接口5513可以是将数据通信连接提供给兼容的LAN的本地局域网接口卡(LAN NIC),例如已知的802.11a、802.11b、802.11g及蓝牙也用于网络执行。在任意的该种执行中,通信接口5513发送并接收电的、电磁的或光的信号,这些信号装载了表示各种类型的信息的数字数据流。
网络链路5513通常通过一个或多个网络对其它网源提供数据通信。例如,网络链路5514可以通过本地网络5515将连接提供给主计算机5516或网络存储/服务器5517。另外或可选择地,可以通过网关或防火墙5517将网络链路5513连接到例如因特网等广域网5518。从而,计算机平台5501可以访问例如远程网络存储器/服务器等位于因特网5518上的任何地方的网源。另一方面,还可以由处于局域网5515和/或因特网5518上的任何地方的客户来访问计算机平台5501。基于于平台5501类似的计算机平台可以执行网络客户5520和5521本身。
局域网5515和因特网5518都使用装载数字数据流的电的、电磁的或光的信号。通过各种网络的信号及网络链路5514上并通过通信接口5513的信号是传输信息的载波的示例形式,这些信号将数字数据装载到计算机平台5501或从计算机平台5501装载数据。
计算机平台5501能够通过包括因特网5518和局域网5515、网络链路5514及通信接口5513的各种网络来发送消息并接收数据,这些消息和数据包括程序代码。在因特网的示例中,当系统5501作为网络服务器时,其可以通过因特网5518、网关/防火墙5517、局域网5515及通信接口5513来传送用于在客户5520和/或5521上运行的应用程序的被请求的代码或数据。类似地,系统5501可以接收来自其它网源的代码。
如果接收到代码,所接收到的代码可以由处理器5505来执行,和/或被分别存储在永久或易失性存储设备5508和5506,或存储在其它非易失性存储器中以将来执行该代码。以该方式,计算机系统5501可以获得载波形式的应用程序代码。
应该注意,本发明不限于任何特定的防火墙系统,基于内容处理系统的本发明可以被用于任意的三种防火墙操作模式(特定地,NAT、专线(routed)和透明)。
最后,应该理解,本文描述的处理和技术不是固有地与任意特定设备相关,并且可以由部件的任意合适的组合实施本文描述的处理和技术。另外,根据本文描述的宗义可以使用各种类型的通用设备。还可以证明构建特定设备来执行本文描述的方法步骤是有利的。关于特定示例已经描述了本发明,该示例意欲描述所有的方面而非限制。本领域技术人员将理解,硬件、软件及固件的很多不同组合将适于实施本发明。例如,可以以例如Assembler、c/c++、Perl、shell、PHP、Java等各种各样的程序或脚本语言来实施所描述的软件。
此外,通过考虑本文揭示的本发明的说明书和示例,本领域技术人员将清楚本发明的其它实施。可以在具有动态存储区域分配功能的计算机化的存储系统中单独使用或任意结合地使用所描述的实施例的各个方面和/或部件。说明书和示例仅被作为示例考虑,下面的权利要求指定本发明的实际范围和宗义。
Claims (29)
1.一种计算机化的数据存储系统,包括:
a.至少一个外部卷,
b.包括第一存储子系统和第二存储子系统的两个或更多个存储子系统,第一存储子系统包括第一虚拟卷,第二存储子系统包括第二虚拟卷,第一虚拟卷和第二虚拟卷形成对,其中,
i.第一虚拟卷和第二虚拟卷是动态存储区域分配卷;
ii.第一虚拟卷可用来从与第一虚拟卷相关联的第一容量池中分配容量;
iii.第二虚拟卷可用于从与第二虚拟卷相关联的第二容量池中分配容量;及
iv.所述容量包括至少一个外部卷;
v.所述至少一个外部卷由第一容量池和第二容量池共享;
vi.所述至少一个外部卷、所述第一存储子系统或所述第二存储子系统存储至少一个动态存储区域分配信息表;
vii.在动态存储区域分配的分配处理的执行时,如果第一存储子系统已经从所共享的至少一个外部卷中分配了容量,则第二存储子系统可用来参照分配信息并建立虚拟卷地址和容量池地址之间的关系。
2.根据权利要求1所述的计算机化的数据存储系统,其中,第一存储子系统和第二存储子系统中的每一个都包括可用于连接至少一个磁盘驱动器的接口。
3.根据权利要求1所述的计算机化的数据存储系统,其中,第一容量池和第二容量池中的每一个都可被操作以包括至少一个磁盘驱动器。
4.根据权利要求1所述的计算机化的数据存储系统,其中,两个或更多个存储子系统中的每一个都包括:
具有控制器存储器和控制器CPU的存储控制器;
具有被组为RAID组的一个或更多个硬盘的磁盘单元;
管理终端;
其中,硬盘和外部卷中的每一个包括容量池页,
其中,第一RAID组的容量池页中的一个或更多个形成容量池组块,
其中,虚拟卷包括虚拟卷槽,一个或更多个虚拟卷槽形成虚拟卷页,以及
其中,在控制器存储器中包括用于存储数据的高速缓冲存储区,高速缓冲存储区包括高速缓冲存储器槽。
5.根据权利要求4所述的计算机化的数据存储系统,其中,控制器存储器包括:
卷操作模块;
I/O模块,其中I/O模块包括写I/O模块和读I/O模块;
磁盘访问模块,其中磁盘访问模块包括高速缓冲存储器升级模块、盘刷新模块、以及高速缓冲存储器降级模块;
容量池管理模块;
槽操作模块;
虚拟卷管理表;
虚拟卷页管理表;
容量池管理表;
容量池部件管理表;
容量池页管理表;
高速缓冲存储器管理表;
对管理表;
RAID组管理表;及
容量池组块管理表。
6.根据权利要求5所述的计算机化的数据存储系统,
其中,数据存储系统包括主计算机,
其中,主计算机包括存储器,该存储器包括卷管理表,及
其中,卷管理表提供存储子系统中的虚拟卷的配对。
7.根据权利要求5所述的计算机化的数据存储系统,其中,卷操作模块包括:
卷操作等待模块,
对生成模块,及
对删除模块,
其中,对生成模块建立一个存储子系统的虚拟卷和另一个存储子系统中的虚拟卷之间的卷复制关系,及
对删除模块解除所述卷复制关系。
8.根据权利要求5所述的计算机化的数据存储系统,其中,所述容量池管理模块包括容量池页分配模块,
其中,所述容量池页分配模块接收到来自一个存储子系统上的容量池的新的容量池页和新的容量池组块,并向其它存储子系统发送请求以排除其它存储子系统上的任意一个容量池组块。
9.根据权利要求8所述的计算机化的数据存储系统,其中,所述容量池管理模块还包括:
容量池回收模块;及
容量池组块解除模块;
其中,容量池回收模块通过移除包括脏的数据的容量池页来从容量池组块执行回收,及
其中,响应于容量池扩充请求,容量池组块解除模块将一组硬盘或一部分外部卷增加到容量池中。
10.根据权利要求5所述的计算机化的数据存储系统,其中,容量池管理表体现了每一个容量池、与每一个容量池相关的RAID组及在每一个容量池中剩余的空闲容量之间的关系。
11.根据权利要求5所述的计算机化的数据存储系统,其中,容量池部件管理表体现了每一个RAID组、相关的容量池及与空闲容量池组块、被使用的容量池组块及被排除的容量池组块相对应的队列之间的关系。
12.根据权利要求5所述的计算机化的数据存储系统,其中,高速缓冲存储器管理表体现了每一个高速缓冲存储器槽、相应的一个硬盘或相应的一个虚拟卷、该相应的硬盘的地址、该高速缓冲存储器槽的锁定状态、包括高速缓冲存储器槽和相应的队列指针的队列的类型之间的关系,队列的类型是空闲、干净或脏。
13.根据权利要求5所述的计算机化的数据存储系统,其中,对管理表体现了第一存储子系统上的指定虚拟卷和与第一存储子系统配对的被配对的存储子系统、被配对的存储子系统上的被配对的虚拟卷与指定的虚拟卷配对、由指定的虚拟卷和被配对的虚拟卷形成的对中的指定的虚拟卷的主状态或从状态之间的关系。
14.根据权利要求5所述的计算机化的数据存储系统,
其中,容量池管理表根据RAID组来参照容量池部件管理表,
其中,容量池部件管理表根据容量池组块来参照容量池管理表,
其中,容量池部件管理表根据空闲的组块队列、被使用的组块队列及被排除的组块队列来参照容量池组块管理表,
其中,被删除的容量被使用在容量池组块管理表中以用一个容量池组块参照另一个容量池组块,
其中,容量池部件管理表和RAID组管理表之间的关系是固定的,
其中,容量池组块和容量池组块管理表之间的关系也是固定的。
15.根据权利要求5所述的计算机化的数据存储系统,
其中,虚拟卷管理表根据当前正在使用的组块信息来参照对一个虚拟卷分配的被分配的容量池组块,
其中,容量池管理表根据RAID组列表来参照属于磁盘单元或外部卷的一个或更多个RAID组,
其中,虚拟卷页管理表根据容量池页地址和容量池页大小来参照容量池页,
其中,虚拟卷和虚拟卷管理表之间的关系是固定的,
其中,虚拟卷管理表和虚拟卷页管理表之间的关系是固定的,及
其中,虚拟卷页和虚拟卷页管理表之间的关系是固定的。
16.根据权利要求5所述的计算机化的数据存储系统,
其中,容量池组块管理表根据虚拟卷号码来参照虚拟卷,
其中,容量池页管理表根据虚拟卷页号码来参照虚拟卷页,
其中,容量池组块和容量池组块管理表之间的关系是固定的,
其中,根据容量池页管理表的条目将容量池页管理表与容量池页相关联。
17.根据权利要求5所述的计算机化的数据存储系统,其中,对管理表将一个存储子系统上的虚拟卷与另一个存储子系统上的虚拟卷相关联。
18.根据权利要求5所述的计算机化的数据存储系统,其中,外部卷的相同的容量池页能够由不同的存储子系统的被配对的虚拟卷共享。
19.根据权利要求7所述的计算机化的数据存储系统,其中,卷操作等待模块包括:
确定控制器CPU是否已经接收到卷操作请求,该卷操作请求包括对生成请求和对删除请求,
如果控制器CPU已经接收到卷操作请求,则确定该接收到的请求是对生成请求还是对删除请求,
如果对生成请求被接收到,则执行对生成模块,
如果对删除请求被接收到,则执行对删除模块,
其中,对生成请求或对删除请求的发出者是主计算机或一个存储子系统的管理终端。
20.根据权利要求19所述的计算机化的数据存储系统,其中,对生成模块包括:
确定第一存储子系统上的被指定的虚拟卷是否已经与第二存储子系统上的另一个虚拟卷配对;
如果被指定的虚拟卷还没有被配对,则确定被指定的虚拟卷的状态是主或从;
如果被指定的虚拟卷是主,则将对生成请求发送到第二存储子系统,并且如果第二存储子系统接受该请求,则根据对管理表,将被指定的虚拟卷作为主并将第二存储子系统中的一个虚拟卷作为从来进行配对,并将完成消息发送到对生成请求的发出者;及
如果被指定的虚拟卷的状态被确定为从,则根据对管理表,将被指定的虚拟卷作为从并将第二存储子系统中的一个虚拟卷作为主来进行配对,并将OK消息发送到主虚拟卷。
21.根据权利要求7所述的计算机化的数据存储系统,其中,对删除模块包括:
通过参照对管理表,确定形成对的第一子存储系统上的被指定的虚拟卷和第二存储子系统上的另一个虚拟卷之间的配对关系是否存在;
如果找到该对,则将被指定的虚拟卷的状态确定为主或从;
如果被指定的虚拟卷是主,则将对删除请求发送到包括从的第二存储子系统,并请求解除配对关系,接收关于配对关系的解除的确认消息,从对管理表中移除配对关系以及将完成消息发送到请求方;及
如果被指定的虚拟卷是从,则从对管理表中移除配对关系并将确认消息发送到主。
22.根据权利要求5所述的计算机化的数据存储系统,
其中,如果高速缓冲存储器管理表中的高速缓冲存储器槽的状态还没有被设置为锁定,响应于槽锁定请求,通过将锁定状态写入高速缓冲存储器关系表,槽操作模块可用来锁定高速缓冲存储器槽,及
其中,响应于槽解锁请求,通过将解锁状态写入高速缓冲存储器管理表,槽操作模块可用来将高速缓冲存储器解锁。
23.根据权利要求5所述的计算机化的数据存储系统,其中,写I/O模块可用于:
接收来自包括主计算机或一个存储子系统的发出者的写I/O请求;
通过参照高速缓冲存储器槽,相应于包括写I/O数据的虚拟卷,查找高速缓冲存储器槽中的空闲高速缓冲存储器槽的位置;
锁定高速缓冲存储器槽,将写I/O数据写入高速缓冲存储器槽并将该高速缓冲存储器槽解锁;及
如果发出者是具有主状态的虚拟卷,则将写I/O数据复制到相应的从虚拟卷。
24.根据权利要求5所述的计算机化的数据存储系统,其中,读I/O模块可用于:
接收来自主计算机的读I/O请求;
如果读I/O数据在多个高速缓冲存储器槽中的一个高速缓冲存储器槽中是可用的,则将该高速缓冲存储器槽锁定并将读I/O数据发送到主计算机;及
如果读I/O数据在一个硬盘中是可用的,则从多个高速缓冲存储器槽中获得一个空闲的高速缓冲存储器槽,并将读I/O数据从硬盘升级到空闲高速缓冲存储器槽,以获得包括数据的高速缓冲存储器槽,锁定包括数据的高速缓冲存储器槽,并将读I/O数据发送到主计算机。
25.根据权利要求5所述的计算机化的数据存储系统,其中,容量池管理模块中的容量池页分配模块可用于:
如果被参照的容量池页属于从虚拟卷,则从包括相应的主虚拟卷的存储子系统中请求相应的主容量池页,如果主容量池页没有与外部卷关联,则将主容量池页与外部卷相关联;及
如果被参照的容量池页属于主虚拟卷,或被参照的容量池页的主容量池页属于从虚拟卷,则不将该主容量池页与外部卷关联,获得与主虚拟卷关联的容量池组块中的空闲容量池页,或如果没有相关的容量池组块被找到,则获得新的容量池组块并将与容量池组块相关的外部卷中的新的容量池页进行分配。
26.根据权利要求5所述的计算机化的数据存储系统,其中,高速缓冲存储器升级模块可用于传送来自硬盘的数据。
27.根据权利要求5所述的计算机化的数据存储系统,其中,盘刷新模块可用于:
从高速缓冲存储器槽中寻找脏的高速缓冲存储器槽;及
将来自脏的高速缓冲存储器槽的数据降级。
28.根据权利要求5所述的计算机化的数据存储系统,其中,高速缓冲存储器降级模块可用于:
对于包括具有数据的高速缓冲存储器槽的主虚拟卷,识别或分配与该高速缓冲存储器槽相关的容量池页,并将数据从高速缓冲存储器槽传送到具有容量池页的硬盘;
对于包括高速缓冲存储器槽并与容量池页不相关的从虚拟卷,识别分配给被配对的主虚拟卷的容量池页,被配对的主虚拟卷与从虚拟卷配对;及
对于包括高速缓冲存储器槽并与容量池页相关的从虚拟卷,如果被配对的主虚拟卷上的相应的高速缓冲存储器槽是脏的,则将数据从高速缓冲存储器槽传送到硬盘,并且如果被配对的主虚拟卷上的相应的高速缓冲存储器槽是干净的,则将从虚拟卷的状态改变为干净。
29.根据权利要求5所述的计算机化的数据存储系统,其中,将来自包括脏的数据的脏的高速缓冲存储器槽的脏的数据发送到外部卷。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/053,514 US20090240880A1 (en) | 2008-03-21 | 2008-03-21 | High availability and low capacity thin provisioning |
US12/053,514 | 2008-03-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101539841A CN101539841A (zh) | 2009-09-23 |
CN101539841B true CN101539841B (zh) | 2011-03-30 |
Family
ID=40791584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100048387A Active CN101539841B (zh) | 2008-03-21 | 2009-01-19 | 高可用性以及低容量的动态存储区域分配 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20090240880A1 (zh) |
EP (1) | EP2104028A3 (zh) |
JP (1) | JP5264464B2 (zh) |
CN (1) | CN101539841B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9207984B2 (en) | 2009-03-31 | 2015-12-08 | Amazon Technologies, Inc. | Monitoring and automatic scaling of data volumes |
Families Citing this family (122)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008146574A (ja) * | 2006-12-13 | 2008-06-26 | Hitachi Ltd | 記憶制御装置及び記憶制御方法 |
JP4331220B2 (ja) * | 2007-03-07 | 2009-09-16 | 株式会社東芝 | 未使用物理領域自律管理機能を持つストレージ装置 |
JP2009043055A (ja) | 2007-08-09 | 2009-02-26 | Hitachi Ltd | 計算機システム、ストレージ装置及びデータ管理方法 |
US8082400B1 (en) * | 2008-02-26 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | Partitioning a memory pool among plural computing nodes |
US8244868B2 (en) * | 2008-03-24 | 2012-08-14 | International Business Machines Corporation | Thin-provisioning adviser for storage devices |
JP5028381B2 (ja) | 2008-10-22 | 2012-09-19 | 株式会社日立製作所 | ストレージ装置およびキャッシュ制御方法 |
JP5277991B2 (ja) * | 2009-01-27 | 2013-08-28 | 富士通株式会社 | 割当制御プログラム、割当制御装置及び割当制御方法 |
US9705888B2 (en) | 2009-03-31 | 2017-07-11 | Amazon Technologies, Inc. | Managing security groups for data instances |
US8332365B2 (en) | 2009-03-31 | 2012-12-11 | Amazon Technologies, Inc. | Cloning and recovery of data volumes |
US8713060B2 (en) | 2009-03-31 | 2014-04-29 | Amazon Technologies, Inc. | Control service for relational data management |
US9135283B2 (en) | 2009-10-07 | 2015-09-15 | Amazon Technologies, Inc. | Self-service configuration for data environment |
JP2012531654A (ja) * | 2009-10-09 | 2012-12-10 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの通信パス管理方法 |
US8676753B2 (en) | 2009-10-26 | 2014-03-18 | Amazon Technologies, Inc. | Monitoring of replicated data instances |
US8074107B2 (en) | 2009-10-26 | 2011-12-06 | Amazon Technologies, Inc. | Failover and recovery for replicated data instances |
US8335765B2 (en) | 2009-10-26 | 2012-12-18 | Amazon Technologies, Inc. | Provisioning and managing replicated data instances |
WO2011052005A1 (en) * | 2009-10-27 | 2011-05-05 | Hitachi, Ltd. | Storage controller and storage control method for dynamically assigning partial areas of pool area as data storage areas |
US9110594B2 (en) * | 2009-11-04 | 2015-08-18 | Seagate Technology Llc | File management system for devices containing solid-state media |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8639876B2 (en) * | 2010-01-27 | 2014-01-28 | International Business Machines Corporation | Extent allocation in thinly provisioned storage environment |
US8656136B2 (en) * | 2010-02-05 | 2014-02-18 | Hitachi, Ltd. | Computer system, computer and method for performing thin provisioning capacity management in coordination with virtual machines |
US8447943B2 (en) | 2010-02-24 | 2013-05-21 | Hitachi, Ltd. | Reduction of I/O latency for writable copy-on-write snapshot function |
US9965224B2 (en) * | 2010-02-24 | 2018-05-08 | Veritas Technologies Llc | Systems and methods for enabling replication targets to reclaim unused storage space on thin-provisioned storage systems |
US20110238857A1 (en) * | 2010-03-29 | 2011-09-29 | Amazon Technologies, Inc. | Committed processing rates for shared resources |
US8321646B2 (en) * | 2010-04-13 | 2012-11-27 | Dot Hill Systems Corporation | Method and apparatus for rebalancing storage components within a storage tier |
WO2012007999A1 (en) * | 2010-07-16 | 2012-01-19 | Hitachi, Ltd. | Storage control apparatus and storage system comprising multiple storage control apparatuses |
US9626127B2 (en) * | 2010-07-21 | 2017-04-18 | Nxp Usa, Inc. | Integrated circuit device, data storage array system and method therefor |
US8392653B2 (en) | 2010-08-18 | 2013-03-05 | International Business Machines Corporation | Methods and systems for releasing and re-allocating storage segments in a storage volume |
US8380961B2 (en) | 2010-08-18 | 2013-02-19 | International Business Machines Corporation | Methods and systems for formatting storage volumes |
US9176677B1 (en) * | 2010-09-28 | 2015-11-03 | Emc Corporation | Virtual provisioning space reservation |
US8688908B1 (en) | 2010-10-11 | 2014-04-01 | Infinidat Ltd | Managing utilization of physical storage that stores data portions with mixed zero and non-zero data |
EP2583161A1 (en) * | 2010-10-14 | 2013-04-24 | Hitachi, Ltd. | Data migration system and data migration method |
US8533420B2 (en) | 2010-11-24 | 2013-09-10 | Microsoft Corporation | Thin provisioned space allocation |
US8510515B2 (en) * | 2010-12-22 | 2013-08-13 | Hitachi, Ltd. | Storage system comprising multiple storage apparatuses with both storage virtualization function and capacity virtualization function |
US8577836B2 (en) | 2011-03-07 | 2013-11-05 | Infinidat Ltd. | Method of migrating stored data and system thereof |
CN103299265B (zh) * | 2011-03-25 | 2016-05-18 | 株式会社日立制作所 | 存储系统和存储区域分配方法 |
US9367452B1 (en) * | 2011-09-30 | 2016-06-14 | Emc Corporation | System and method for apportioning storage |
US9053033B1 (en) * | 2011-12-30 | 2015-06-09 | Emc Corporation | System and method for cache content sharing |
US9009416B1 (en) * | 2011-12-30 | 2015-04-14 | Emc Corporation | System and method for managing cache system content directories |
US8930947B1 (en) | 2011-12-30 | 2015-01-06 | Emc Corporation | System and method for live migration of a virtual machine with dedicated cache |
US9104529B1 (en) | 2011-12-30 | 2015-08-11 | Emc Corporation | System and method for copying a cache system |
US9235524B1 (en) | 2011-12-30 | 2016-01-12 | Emc Corporation | System and method for improving cache performance |
US9158578B1 (en) | 2011-12-30 | 2015-10-13 | Emc Corporation | System and method for migrating virtual machines |
US9043545B2 (en) * | 2012-01-06 | 2015-05-26 | Netapp, Inc. | Distributing capacity slices across storage system nodes |
US9400723B2 (en) * | 2012-03-15 | 2016-07-26 | Hitachi, Ltd. | Storage system and data management method |
US9460018B2 (en) * | 2012-05-09 | 2016-10-04 | Qualcomm Incorporated | Method and apparatus for tracking extra data permissions in an instruction cache |
JP5752327B2 (ja) * | 2012-06-26 | 2015-07-22 | 株式会社日立製作所 | ストレージシステム、及びストレージシステムの制御方法 |
US9690703B1 (en) * | 2012-06-27 | 2017-06-27 | Netapp, Inc. | Systems and methods providing storage system write elasticity buffers |
US9104590B2 (en) * | 2012-07-20 | 2015-08-11 | Hitachi, Ltd. | Storage system including multiple storage apparatuses and pool virtualization method |
KR102004849B1 (ko) * | 2012-08-02 | 2019-07-29 | 삼성전자 주식회사 | 동적 메모리 재할당 관리 방법과 상기 방법을 수행할 수 있는 장치 |
CN102855093B (zh) * | 2012-08-16 | 2015-05-13 | 浪潮(北京)电子信息产业有限公司 | 实现自动精简配置存储系统动态扩容的系统及方法 |
US8990542B2 (en) | 2012-09-12 | 2015-03-24 | Dot Hill Systems Corporation | Efficient metadata protection system for data storage |
US9052839B2 (en) | 2013-01-11 | 2015-06-09 | Hitachi, Ltd. | Virtual storage apparatus providing a plurality of real storage apparatuses |
CN106412030B (zh) * | 2013-11-05 | 2019-08-27 | 华为技术有限公司 | 一种选择存储资源方法、装置及系统 |
US9323764B2 (en) | 2013-11-12 | 2016-04-26 | International Business Machines Corporation | Copying volumes between storage pools |
US9053002B2 (en) | 2013-11-12 | 2015-06-09 | International Business Machines Corporation | Thick and thin data volume management |
US10120617B2 (en) | 2013-11-12 | 2018-11-06 | International Business Machines Corporation | Using deterministic logical unit numbers to dynamically map data volumes |
US10033811B2 (en) | 2014-01-14 | 2018-07-24 | International Business Machines Corporation | Matching storage resource packs to storage services |
US9509771B2 (en) | 2014-01-14 | 2016-11-29 | International Business Machines Corporation | Prioritizing storage array management commands |
US9529552B2 (en) | 2014-01-14 | 2016-12-27 | International Business Machines Corporation | Storage resource pack management |
US9734066B1 (en) * | 2014-05-22 | 2017-08-15 | Sk Hynix Memory Solutions Inc. | Workload-based adjustable cache size |
WO2016024970A1 (en) * | 2014-08-13 | 2016-02-18 | Hitachi, Ltd. | Method and apparatus for managing it infrastructure in cloud environments |
US9678681B2 (en) * | 2015-06-17 | 2017-06-13 | International Business Machines Corporation | Secured multi-tenancy data in cloud-based storage environments |
US10126985B2 (en) * | 2015-06-24 | 2018-11-13 | Intel Corporation | Application driven hardware cache management |
CN105511890B (zh) * | 2016-01-29 | 2018-02-23 | 腾讯科技(深圳)有限公司 | 一种图形界面更新方法和装置 |
US10394491B2 (en) * | 2016-04-14 | 2019-08-27 | International Business Machines Corporation | Efficient asynchronous mirror copy of thin-provisioned volumes |
CN106126118A (zh) * | 2016-06-20 | 2016-11-16 | 青岛海信移动通信技术股份有限公司 | 存储装置寿命的检测方法及电子设备 |
US10430121B2 (en) | 2016-08-22 | 2019-10-01 | International Business Machines Corporation | Efficient asynchronous mirror copy of fully provisioned volumes to thin-provisioned volumes |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US10880040B1 (en) | 2017-10-23 | 2020-12-29 | EMC IP Holding Company LLC | Scale-out distributed erasure coding |
US10572191B1 (en) | 2017-10-24 | 2020-02-25 | EMC IP Holding Company LLC | Disaster recovery with distributed erasure coding |
US10382554B1 (en) * | 2018-01-04 | 2019-08-13 | Emc Corporation | Handling deletes with distributed erasure coding |
US10783049B2 (en) * | 2018-02-26 | 2020-09-22 | International Business Machines Corporation | Virtual storage drive management in a data storage system |
US10579297B2 (en) | 2018-04-27 | 2020-03-03 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US10594340B2 (en) | 2018-06-15 | 2020-03-17 | EMC IP Holding Company LLC | Disaster recovery with consolidated erasure coding in geographically distributed setups |
US10936196B2 (en) | 2018-06-15 | 2021-03-02 | EMC IP Holding Company LLC | Data convolution for geographically diverse storage |
US11023130B2 (en) | 2018-06-15 | 2021-06-01 | EMC IP Holding Company LLC | Deleting data in a geographically diverse storage construct |
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 |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US10901635B2 (en) | 2018-12-04 | 2021-01-26 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns |
US10931777B2 (en) | 2018-12-20 | 2021-02-23 | EMC IP Holding Company LLC | Network efficient geographically diverse data storage system employing degraded chunks |
US11119683B2 (en) | 2018-12-20 | 2021-09-14 | EMC IP Holding Company LLC | Logical compaction of a degraded chunk in a geographically diverse data storage system |
US10892782B2 (en) | 2018-12-21 | 2021-01-12 | EMC IP Holding Company LLC | Flexible system and method for combining erasure-coded protection sets |
US11023331B2 (en) | 2019-01-04 | 2021-06-01 | EMC IP Holding Company LLC | Fast recovery of data in a geographically distributed storage environment |
US10942827B2 (en) | 2019-01-22 | 2021-03-09 | EMC IP Holding Company LLC | Replication of data in a geographically distributed storage environment |
US10866766B2 (en) | 2019-01-29 | 2020-12-15 | EMC IP Holding Company LLC | Affinity sensitive data convolution for data storage systems |
US10942825B2 (en) | 2019-01-29 | 2021-03-09 | EMC IP Holding Company LLC | Mitigating real node failure in a mapped redundant array of independent nodes |
US10936239B2 (en) | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Cluster contraction of a mapped redundant array of independent nodes |
US10846003B2 (en) | 2019-01-29 | 2020-11-24 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage |
US10877675B2 (en) * | 2019-02-15 | 2020-12-29 | Sap Se | Locking based on categorical memory allocation |
US11029865B2 (en) | 2019-04-03 | 2021-06-08 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes |
US10944826B2 (en) | 2019-04-03 | 2021-03-09 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a mapped redundant array of independent nodes |
US11119686B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Preservation of data during scaling of a geographically diverse data storage system |
US11121727B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Adaptive data storing for data storage systems employing erasure coding |
US11113146B2 (en) | 2019-04-30 | 2021-09-07 | EMC IP Holding Company LLC | Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11209996B2 (en) | 2019-07-15 | 2021-12-28 | EMC IP Holding Company LLC | Mapped cluster stretching for increasing workload in a data storage system |
US11023145B2 (en) | 2019-07-30 | 2021-06-01 | EMC IP Holding Company LLC | Hybrid mapped clusters for data storage |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11228322B2 (en) | 2019-09-13 | 2022-01-18 | EMC IP Holding Company LLC | Rebalancing in a geographically diverse storage system employing erasure coding |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11119690B2 (en) | 2019-10-31 | 2021-09-14 | EMC IP Holding Company LLC | Consolidation of protection sets in a geographically diverse data storage environment |
US11288139B2 (en) | 2019-10-31 | 2022-03-29 | EMC IP Holding Company LLC | Two-step recovery employing erasure coding in a geographically diverse data storage system |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11144220B2 (en) | 2019-12-24 | 2021-10-12 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes |
US11231860B2 (en) | 2020-01-17 | 2022-01-25 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage with high performance |
US11494128B1 (en) | 2020-01-28 | 2022-11-08 | Pure Storage, Inc. | Access control of resources in a cloud-native storage system |
JP7145902B2 (ja) | 2020-03-04 | 2022-10-03 | 株式会社日立製作所 | ストレージシステム及びその制御方法 |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11288229B2 (en) | 2020-05-29 | 2022-03-29 | EMC IP Holding Company LLC | Verifiable intra-cluster migration for a chunk storage system |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11556270B2 (en) * | 2021-01-07 | 2023-01-17 | EMC IP Holding Company LLC | Leveraging garbage collection for raid transformation |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
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 |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
US20230056344A1 (en) * | 2021-08-13 | 2023-02-23 | Red Hat, Inc. | Systems and methods for processing out-of-order events |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1670652A (zh) * | 2004-03-17 | 2005-09-21 | 株式会社日立制作所 | 存储管理方法以及存储管理系统 |
CN1928840A (zh) * | 2005-09-05 | 2007-03-14 | 株式会社日立制作所 | 存储装置虚拟化装置的设备控制交接方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5544347A (en) * | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
US6493804B1 (en) * | 1997-10-01 | 2002-12-10 | Regents Of The University Of Minnesota | Global file system and data storage device locks |
JP3612271B2 (ja) * | 2000-09-12 | 2005-01-19 | 株式会社東芝 | ファイルシステム |
JP2003076592A (ja) * | 2001-09-04 | 2003-03-14 | Hitachi Ltd | データ格納システム |
JP2003316522A (ja) * | 2002-04-26 | 2003-11-07 | Hitachi Ltd | 計算機システムおよび計算機システムの制御方法 |
GB0218891D0 (en) * | 2002-08-14 | 2002-09-25 | Ibm | Method for data retention in a data cache and data storage system |
US7263593B2 (en) * | 2002-11-25 | 2007-08-28 | Hitachi, Ltd. | Virtualization controller and data transfer control method |
JP4606711B2 (ja) * | 2002-11-25 | 2011-01-05 | 株式会社日立製作所 | 仮想化制御装置およびデータ移行制御方法 |
US7130960B1 (en) * | 2005-04-21 | 2006-10-31 | Hitachi, Ltd. | System and method for managing disk space in a thin-provisioned storage subsystem |
JP5057656B2 (ja) * | 2005-05-24 | 2012-10-24 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの運用方法 |
JP4806556B2 (ja) * | 2005-10-04 | 2011-11-02 | 株式会社日立製作所 | ストレージシステム及び構成変更方法 |
JP4945118B2 (ja) * | 2005-11-14 | 2012-06-06 | 株式会社日立製作所 | 記憶容量を効率的に使用する計算機システム |
JP4890033B2 (ja) * | 2006-01-19 | 2012-03-07 | 株式会社日立製作所 | 記憶装置システム及び記憶制御方法 |
JP2007280089A (ja) * | 2006-04-07 | 2007-10-25 | Hitachi Ltd | 容量拡張ボリュームの移行方法 |
JP4920291B2 (ja) * | 2006-04-18 | 2012-04-18 | 株式会社日立製作所 | 計算機システム、アクセス制御方法及び管理計算機 |
JP5124103B2 (ja) * | 2006-05-16 | 2013-01-23 | 株式会社日立製作所 | 計算機システム |
JP5057366B2 (ja) * | 2006-10-30 | 2012-10-24 | 株式会社日立製作所 | 情報システム及び情報システムのデータ転送方法 |
-
2008
- 2008-03-21 US US12/053,514 patent/US20090240880A1/en not_active Abandoned
- 2008-10-14 EP EP08017983A patent/EP2104028A3/en not_active Withdrawn
- 2008-12-19 JP JP2008323103A patent/JP5264464B2/ja not_active Expired - Fee Related
-
2009
- 2009-01-19 CN CN2009100048387A patent/CN101539841B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1670652A (zh) * | 2004-03-17 | 2005-09-21 | 株式会社日立制作所 | 存储管理方法以及存储管理系统 |
CN1928840A (zh) * | 2005-09-05 | 2007-03-14 | 株式会社日立制作所 | 存储装置虚拟化装置的设备控制交接方法 |
Non-Patent Citations (2)
Title |
---|
JP特开2007-293442A 2007.11.08 |
JP特开2008-52512A 2008.03.06 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9207984B2 (en) | 2009-03-31 | 2015-12-08 | Amazon Technologies, Inc. | Monitoring and automatic scaling of data volumes |
Also Published As
Publication number | Publication date |
---|---|
JP5264464B2 (ja) | 2013-08-14 |
CN101539841A (zh) | 2009-09-23 |
JP2009230742A (ja) | 2009-10-08 |
EP2104028A3 (en) | 2010-11-24 |
EP2104028A2 (en) | 2009-09-23 |
US20090240880A1 (en) | 2009-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101539841B (zh) | 高可用性以及低容量的动态存储区域分配 | |
US9946460B2 (en) | Storage subsystem and storage system architecture performing storage virtualization and method thereof | |
CN105739924B (zh) | 基于缓存集群的缓存方法和系统 | |
CN102023813B (zh) | 在动态页重新分配存储系统中的应用和层配置管理 | |
JP4862006B2 (ja) | 計算機システム | |
JP4341897B2 (ja) | 記憶装置システム及びデータ複製方法 | |
JP4115093B2 (ja) | 計算機システム | |
CN106133676B (zh) | 存储系统 | |
EP2120148A2 (en) | Remote storage disk control device and method for controlling the same | |
CN101236480A (zh) | 存储模块及容量池空闲容量调整方法 | |
JP2010533324A (ja) | クラスタ化されたファイル・システムへのファイル・システムのマウンティング | |
CN101799742A (zh) | 用于在存储系统之间转移精简配置卷的方法和装置 | |
JP2001503171A (ja) | 中間データ記憶装置を用いるファイル転送ユーティリティ | |
CN101393536A (zh) | 存储系统 | |
CN101571815A (zh) | 信息系统及i/o处理方法 | |
JP2003162377A (ja) | ディスクアレイシステム及びコントローラ間での論理ユニットの引き継ぎ方法 | |
JPWO2004055675A1 (ja) | ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム | |
CN104272281A (zh) | 计算机系统和应用程序运行环境转移方法 | |
JP2010113587A (ja) | ストレージシステムおよびストレージシステムによるファイルシステムの管理方法 | |
JP5275691B2 (ja) | ストレージシステム | |
JP2010277342A (ja) | 管理プログラム、管理装置および管理方法 | |
EP1486862A2 (en) | Storage system and data reproduction method | |
JP2007073075A (ja) | ボリューム複製機能を有する記憶装置サブシステム、および、それを用いたコンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |