CN102681789A - 在一储存系统架构下产生一虚拟卷的方法及数据存取方法 - Google Patents

在一储存系统架构下产生一虚拟卷的方法及数据存取方法 Download PDF

Info

Publication number
CN102681789A
CN102681789A CN2011104389284A CN201110438928A CN102681789A CN 102681789 A CN102681789 A CN 102681789A CN 2011104389284 A CN2011104389284 A CN 2011104389284A CN 201110438928 A CN201110438928 A CN 201110438928A CN 102681789 A CN102681789 A CN 102681789A
Authority
CN
China
Prior art keywords
main frame
validity check
storage node
data
access command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011104389284A
Other languages
English (en)
Other versions
CN102681789B (zh
Inventor
施明文
方庆华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
INFORTREND Inc
Infortrend Technology Inc
Original Assignee
INFORTREND Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by INFORTREND Inc filed Critical INFORTREND Inc
Publication of CN102681789A publication Critical patent/CN102681789A/zh
Application granted granted Critical
Publication of CN102681789B publication Critical patent/CN102681789B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明是有关于一种在一储存系统架构下产生一虚拟卷的方法及数据存取方法。该储存系统架构包含一主机及至少一磁盘阵列子系统。该些磁盘阵列子系统各包含一储存控制器。该些磁盘阵列子系统的至少其一包含一实体储存阵列及一实体储存媒体阵列。该方法包含:映射该实体储存阵列至多个媒体区,其中,每一媒体区包含多个区段;提供一虚拟池来实现一区段交互参照功能,其中,该虚拟池定义位于该虚拟池的区段中的一区段索引(SI)来交互参照虚拟池区段至实体媒体区位置;提供一转换方法、一程序及一功能中的其一来映射虚拟池容量至一虚拟卷;以及,呈现该虚拟卷给该主机。

Description

在一储存系统架构下产生一虚拟卷的方法及数据存取方法
本申请是原申请申请号201010118235.2,申请日2010年01月23日,发明名称为“在一储存系统架构下产生一虚拟卷的方法及数据存取方法”的发明专利的分案申请。
技术领域
本发明涉及一种虚拟卷生成方法,特别是涉及一种在一储存系统架构下产生一虚拟卷的方法及数据存取方法。
背景技术
在现有习知的技术中,由RAID子系统所映射出来的逻辑磁盘机/分割区(LD/partition)是呈现在主机通道上成为实体卷(physical volume,PV)给主机存取,主机存取这些PV时是直接利用这些LD/partition的LBA来进行存取。因此,一旦RAID子系统将这些PV呈现给主机之后,便很难再变更这些PV及所对应的LD/partition的组态(configuration),特别是,要想减小一个PV及所对应的LD/partition的容量更是完全不可能。这种架构使得RAID子系统的弹性受到一些限制,因而在子系统储存空间的运用上受到很大的限制。
举例而言,若有一个RAID子系统的容量有800GB,原本被组态设定为两个400GB的LD1及LD2后呈现为PV1及PV2给主机存取,结果在使用一阵子后发现PV1的用途只会用到100GB,但是PV2的用途所需要的空间一直增加,400GB的容量最终将不敷使用。在现有习知的技术中,由于PV1的组态无法改变且其中只有100GB容量会被使用,其中另外300GB的容量将闲置而无法使用,反观PV2却因其空间不足只好再另行添购储存设备,形成浪费。
因此,如何增加RAID子系统的使用弹性以避免资源浪费的问题,实为储存业界的一大课题。
发明内容
本发明的目的之一在于提供一种执行储存虚拟化的储存子系统及储存系统架构及其方法,以解决现有习知技术所面临的问题,提高磁盘阵列子系统的使用弹性。
本发明的另一目的在于提供一种执行储存虚拟化的储存子系统及储存系统架构及其方法,以解决现有习知技术所面临的问题,避免资源浪费的问题。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。
根据本发明的一实施例,其是提供一种在一储存系统架构下产生一虚拟卷的方法。该储存系统架构包含有一主机及至少一磁盘阵列子系统,该至少一磁盘阵列子系统包含有一磁盘阵列控制器及一实体储存媒体阵列。首先,该方法先映射该实体储存媒体阵列成一或多个媒体区,并于该至少一磁盘阵列子系统中的其一中提供一虚拟化模块而为一主控磁盘阵列子系统;接着,该虚拟化模块依据一区段分配机制选取该一或多个媒体区中的至少一媒体区而形成一虚拟池;然后,该虚拟化模块依据该区段分配机制形成至少一虚拟卷并管理该至少一虚拟卷;之后,该虚拟化模块呈现该至少一虚拟卷给该主机;最后,在该至少一磁盘阵列子系统的每一者中均设置有一有效性检查模块,用以查核来自该主机的一输出入存取命令的有效性。
依据本发明的一实施样态,其中该映射该实体储存媒体阵列成一或多个媒体区步骤还包含有:在该至少一磁盘阵列子系统的每一者中均设置有一有效性检查模块,用以查核来自该主机的一输出入存取命令的有效性,以判断该输出入存取命令位址的正确性。
依据本发明的一实施样态,其中该映射该实体储存媒体阵列成一或多个媒体区的该步骤还包含有:先将该实体储存媒体阵列映射成一或多个具有独立冗余磁盘阵列(RAID)功能保护的实体卷,再将该一或多个实体卷每一者映射成一或多个媒体区。
依据本发明的一实施样态,其中形成至少一虚拟卷并管理该至少一虚拟卷的该步骤还包含有:设定一虚拟卷容量作为该至少一虚拟卷的储存容量,其中,所有该至少一虚拟卷的该虚拟卷容量的总和可大于该实体储存媒体阵列的储存容量的总和;以及当接收到该输出入存取命令且需要已指定给该至少一虚拟卷使用的储存空间外的储存空间时,指定(assign)该实体储存媒体阵列中的储存空间给该虚拟卷。
依据本发明的一实施样态,其中形成至少一虚拟卷并管理该至少一虚拟卷的该步骤还包含有:设定一保留容量作为该至少一虚拟卷的保留储存容量;分派该实体储存媒体阵列中的储存空间作为该至少一虚拟卷的保留储存空间,其大小等于该保留储存容量;以及,当接收到该输出入存取命令且需要已指定给该至少一虚拟卷使用的储存空间外的储存空间时,指定该保留储存空间给该虚拟卷。
依据本发明的一实施样态,其提供一种在一储存系统架构下产生一虚拟卷的方法。该方法还包含有:当该至少一虚拟卷中的已使用的储存容量的总和达到一门槛值时,产生一事件通知信号给该磁盘阵列控制器。
依据本发明的一实施样态,其是提供一种在一储存系统架构下产生一虚拟卷的方法。该方法还包含有:当该虚拟池中的已使用容量的总和达到一门槛值时,产生一事件通知信号给该磁盘阵列控制器。
依据本发明的一实施样态,其是提供一种在一储存系统架构下产生一虚拟卷的方法。该方法还包含有:依据一有效性检查序号查核来自该主机的该输出入存取命令的有效性。
依据本发明的一实施样态,其中查核该输出入存取命令的有效性的该步骤还包含有:当该输出入存取命令为有效命令,则依据该输出入存取命令存取该实体储存媒体阵列。
依据本发明的一实施样态,其中查核该输出入存取命令的有效性的该步骤还包含有:当该输出入存取命令非为有效命令,则传送一错误发生讯息给该主机。
依据本发明的一实施样态,其中查核该输出入存取命令的有效性的该步骤还包含有:当主机收到该错误发生讯息后,向该虚拟化模块发出一数据位置查询命令,以获得新的有效性查询序号。
依据本发明的一实施样态,其中查核该输出入存取命令的有效性的该步骤还包含有:该有效性检查模块是对每一媒体区储存有一或多个有效性检查序号,且每一有效性检查序号是对应至一或多个实体区段;以及,比对储存着的该一或多个有效性检查序号中与该主机的该输出入存取命令所系属的媒体去相关的VCSN中的一最新有效性检查序号与该输出入存取命令中的一有效性检查序号。
依据本发明的一实施样态,其中比对该一或多个有效性检查序号中与该主机的该输出入存取命令所系属的媒体去相关的VCSN中的一最新有效性检查序号的该步骤还包含有:在该最新有效性检查序号小于该输出入存取命令中的该有效性检查序号时,则判定该输出入存取命令非为有效命令。
依据本发明的一实施样态,其中比对该一或多个有效性检查序号中与该主机的该输出入存取命令所系属的媒体去相关的VCSN中的一最新有效性检查序号的该步骤还包含有:在该输出入存取命令中的该有效性检查序号为大于或等于该最新有效性检查序号时,撷取该输出入存取命令的一数据存取位址;依据该数据存取位址撷取一第一有效性检查序号;以及,比对该第一有效性检查序号与该输出入存取命令中的该有效性检查序号。
依据本发明的一实施样态,其中比对该第一有效性检查序号与该输出入存取命令中的该有效性检查序号的该步骤还包含有:在该输出入存取命令中的该有效性检查资讯小于该第一有效性检查序号时,判定该输出入存取命令非为有效命令。
依据本发明的一实施样态,其中比对该第一有效性检查序号与该输出入存取命令中的该有效性检查序号的该步骤还包含有:在该输出入存取命令中的该有效性检查资讯大于或等于该第一有效性检查序号时,判定该输出入存取命令为有效命令。
依据本发明的一实施样态,其是提供一种在一储存系统架构下产生一虚拟卷的方法。该方法还包含有:针对该至少一虚拟卷的一特定实体区段位置范围发送一更新的有效性检查序号给所有从属磁盘阵列子系统;当主控磁盘阵列子系统接收到来自主机的数据位置查询命令时,回复一特殊的有效性检查序号给该主机;以及,该主机依据该特殊的有效性检查序号而将一与该特定实体区段位置范围相关的输出入存取命令发送给主控磁盘阵列子系统处理。
依据本发明的一实施样态,其是提供一种在一储存系统架构下产生一虚拟卷的方法。该方法还包含有:当该主控磁盘阵列子系统收到该与该特定实体区段位置范围相关的输出入存取命令时,进行一与该特定实体区段位置范围相关的输出入存取命令的一数据服务程序,其中,该数据服务程序是虚拟卷快照程序。
依据本发明的一实施样态,其是提供一种在一储存系统架构下产生一虚拟卷的方法,且该至少一磁盘阵列子系统还包含一第二磁盘阵列子系统是一从属磁盘阵列子系统,该方法包含有:当该第二磁盘阵列子系统中的有效性检查序号与该主控磁盘阵列子系统中的有效性检查序号不一致时,该主控磁盘阵列子系统执行一再同步程序来使该些磁盘阵列子系统中的有效性检查序号同步化。
依据本发明的一实施样态,其是提供一种在一储存系统架构下产生一虚拟卷的方法,其中该至少一磁盘阵列子系统还包含一第二磁盘阵列子系统是一从属磁盘阵列子系统,该方法还包含有:在该至主控磁盘阵列子系统发生重设、电源关后重开及失效转移中的其一时,执行一再同步程序来使该些磁盘阵列子系统中的有效性检查序号同步化。
依据本发明的一实施样态,其中执行该再同步程序的该步骤包含有:该虚拟化模块发送一命令给该第二磁盘阵列子系统以清除其中的有效性检查序号;以及,该虚拟化模块将最新有效性检查序号发生给该第二磁盘阵列子系统中。
为达到上述目的,根据本发明的另一实施例,提供一种在一储存系统架构下的数据存取方法,且该储存系统架构包含有一主机及多个储存节点。该方法先检查所欲存取的一输出入存取命令的一数据位置资讯是否出现在该主机的一快取内存(或称为快取记忆体)中,其中,若该数据位置资讯出现在该主机的该快取内存中,则该主机依据该数据位置资讯发送该输出入存取命令至该些储存节点中的一目标储存节点,且该输出入存取命令包含一第一有效性检查资讯;之后,该目标储存节点利用该第一有效性检查资讯检查该输出入存取命令的有效性,以判断该输出入存取命令位址的正确性;最后,若该输出入存取命令为有效命令,则该目标储存节点执行该输出入存取命令。
依据本发明的一实施样态,其是提供一种在一储存系统架构下的数据存取方法,且该储存系统架构包含有一主机及多个储存节点。该方法还包含有:提供一有效性检查序号代理人于该目标储存节点,用以检查该输出入存取命令中的该第一有效性检查资讯的有效性。
依据本发明的一实施样态,其是提供一种在一储存系统架构下的数据存取方法,且该储存系统架构包含有一主机及多个储存节点。该方法还包含有:若该数据位置资讯不在该主机的该快取内存中,则该主机产生一数据位置询问命令给该些储存节点中的一主控储存节点;接着,该主控储存节点依据该数据位置询问命令回复该数据位置资讯给该主机,且该数据位置资讯中包含有该第一有效性检查资讯(VCI);然后,该主机更新位于该快取内存中的该数据位置资讯;以及,该主机依据该数据位置资讯发送一输出入存取命令至该些储存节点中的该目标储存节点,其中,该输出入存取命令包含该第一有效性检查资讯(VCI)。
依据本发明的一实施样态,其是提供一种在一储存系统架构下的数据存取方法,且该储存系统架构包含有一主机及多个储存节点。该方法还包含有:若该输出入存取命令非为有效命令,则该目标储存节点回传一错误发生讯息给该主机。
依据本发明的一实施样态,其是提供一种于一储存系统架构下之数据存取方法,且该储存系统架构包含有一主机及多个储存节点。该方法更还包含有:当该主机进行初始化时,扫描该些储存节点的储存空间来产生一媒体区识别码对储存节点交互参照表,并依据一媒体区识别码及该媒体区识别码对储存节点交互参照表来确定该目标储存节点,其中,该数据位置资讯包含有该媒体区识别码。
依据本发明的一实施样态,其中检查该输出入存取命令的有效性的该步骤还包含:该目标储存节点检查被包含于该输出入存取命令的该第一有效性检查资讯与来自于该主控储存节点的一第二有效性检查资讯间的一致性。
依据本发明的一实施样态,其中检查该输出入存取命令的有效性的该步骤还包含:若该第一有效性检查资讯与该第二有效性检查资讯不一致时,则该目标储存节点回复一错误发生指示讯息给该主机。
依据本发明的一实施样态,其中检查该输出入存取命令的有效性之该步骤还包含:该目标储存节点检查该输出入存取命令中的该第一有效性检查资讯的一寿命。
依据本发明的一实施样态,其是提供一种在一储存系统架构下的数据存取方法,且该储存系统架构包含有一主机及多个储存节点。该方法还包含有:若该第一有效性检查资讯的该寿命为超过一有效寿命时,则使位于该主机中的该快取内存中的该数据位置资讯或所有数据位置资讯无效,且该主机产生一数据位置询问命令给该些储存节点的该主控储存节点;以及,该主控储存节点依据该数据位置询问命令回复该数据位置资讯给该主机,且该数据位置资讯中包含一第一有效性检查资讯(VCI)。
另外,为达到上述目的,根据本发明的另一实施例,提供一种在一储存系统架构下的数据存取方法,且该储存系统架构包含有一主机及多个储存节点。该方法先经由该主机传送一数据位置询问命令给该些储存节点的一主控储存节点;然后,当该主控储存节点接收到该数据位置询问命令时,该主控储存节点传送一数据位置资讯给该主机,其中,该数据位置资讯中包含一第一有效性检查资讯(VCI);接着,该主机依据该数据位置识别码传送一输出入存取命令给该些储存节点中的一目标储存节点,其中,该输出入存取命令包含该第一有效性检查资讯(VCI);之后,该目标储存节点利用该第一有效性检查资讯检查该输出入存取命令的有效性,以判断该输出入存取命令位址的正确性;最后,若该输出入存取命令为有效命令,则该目标储存节点执行该输出入存取命令。
依据本发明的一实施样态,其是提供一种在一储存系统架构下的数据存取方法,且该储存系统架构包含有一主机及多个储存节点。该方法还包含有:提供一有效性检查序号代理人于该目标储存节点,用以检查该输出入存取命令中的该第一有效性检查资讯的有效性。
依据本发明的一实施样态,其是提供一种在一储存系统架构下的数据存取方法,且该储存系统架构包含有一主机及多个储存节点。该方法还包含有:若该输出入存取命令非为有效命令,则该目标储存节点传送一错误发生讯息给该主机。
依据本发明的一实施样态,其是提供一种在一储存系统架构下的数据存取方法,且该储存系统架构包含有一主机及多个储存节点。该方法还包含有:当该主机进行初始化时,扫描该些储存节点的储存空间来产生一媒体区识别码对储存节点交互参照表;以及,依据一媒体区识别码及该媒体区识别码对储存节点交互参照表来确定该目标储存节点,其中,该数据位置资讯包含有该媒体区识别码。
依据本发明的一实施样态,其是提供一种在一储存系统架构下的数据存取方法,且该储存系统架构包含有一主机及多个储存节点,其中检查该输出入存取命令的有效性的该步骤还包含:该目标储存节点比对该输出入存取命令中的该第一有效性检查资讯与来自该主控储存节点的一第二有效性检查资讯。
依据本发明的一实施样态,其中比对该第一有效性检查资讯与该第二有效性检查资讯的该步骤还包含:若该第一有效性检查资讯与该第二有效性检查资讯为一致,则该输出入存取命令为有效命令。
依据本发明的一实施样态,其中比对该第一有效性检查资讯与该第二有效性检查资讯的该步骤还包含:若该第一有效性检查资讯与该第二有效性检查资讯不为一致,则该输出入存取命令非为有效命令。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1A是依据本发明的一实施例的包含一个独立冗余磁盘阵列子系统的储存系统架构1示意图。
图1B是依据本发明的一实施例的RAID层204所映射出的逻辑磁盘机(logical drive,LD)与实体卷(physical volume)的关系示意图。
图1C是依据本发明的一实施例的实体卷与其中的媒体区与分区(sector)的关系示意图。
图1D是依据本发明的一实施例的实体卷与其中的媒体区与实体区段(section)的关系示意图。
图2A是依据本发明的另一实施例的储存系统架构30的示意图。
图2B是图2A实施例的储存系统架构30中,依据本发明的一实施例的虚拟池与媒体区及虚拟卷关系的示意图。
图2C,是依据本发明的一实施例的用于虚拟池的一区段分配系统的数据结构的示意图。
图3A,其是依据本发明的一实施例的由多个RAID子系统中的媒体区所形成的虚拟池的示意图。
图3B是依据本发明图3A的虚拟池中所包含的实体区段的数据结构的一实施例示意图。
图3C是依据本发明图3A的虚拟池中所包含的实体区段的数据结构的另一实施例示意图。
图3D是依据本发明图3A的虚拟池中所包含的实体区段的数据结构的又一实施例示意图。
图4A是依据本发明的一实施例的BAT 2137的示意图。
图4B是依据本发明的另一实施例的BAT 2137的示意图。
图4C及图4D是依据本发明的一实施例之“分散式数据”功能的示意图。
图5是依据本发明的一实施例的用于虚拟池的一区段分配系统的V2P表与P2V表的数据结构的示意图。
图6A是依据本发明的一实施例的P2V Table 5137表的示意图。
图6B是依据本发明的另一实施例的P2V Table 5137表的示意图。
图7A是依据本发明的一实施例的V2P Table 5135表的示意图。
图7B是依据本发明的另一实施例的V2P Table 5135表的示意图。
图8A是当具有V2P表时的VBI与其所对应的实体区段LBA的映射关系的示意图。
图8B是当发生数据区段迁徙时,VBI与其所对应的实体区段LBA的映射关系的变化的示意图。
图8C是当只有P2V表而无V2P表时,VBI与其所对应的实体区段LBA的映射关系的示意图。
图8D是当只有P2V表而无V2P表时,当发生数据区段迁徙时,VBI与其所对应的实体区段LBA的映射关系的变化的示意图。
图9是依据本发明的另一实施例的储存系统架构90的示意图。
图10是依据本发明的又一实施例的储存系统架构92的示意图。
图11,其是本发明图10的实施例的储存系统架构92指定媒体区的示意图。
图12A是当没有V2P表及P2V表时的VBI与其所对应的实体区段起始位置的映射关系的示意图。
图12B是当没有V2P表及P2V表时,若发生数据区段迁徙时,VBI与其所对应的实体区段LBA的映射关系的变化的示意图。
图13是依据本发明的一实施例的因移除ME而引发的迁徙作业的流程图。
图14是依据本发明的一实施例的因增加ME而引发的迁徙作业的流程图。
图15是依据本发明的另一实施例的因移除ME而引发的迁徙作业的流程图。
图16是依据本发明的另一实施例的因增加ME而引发的迁徙作业的流程图。
图17是依据本发明的一实施例的主机10或主机代理人110向主控子系统20A的虚拟化层202A询问VCSN的流程图。
图18是依据本发明的一实施例的接受IO请求的VCSN代理人确认其所携带VCSN的有效性的流程图。
图19是依据本发明的一数据储存架构中的直接媒体区存取功能的一实施例的流程图。
图20A及图20B是依据本发明的一数据储存架构中的直接媒体区存取功能的另一实施例的流程图。
图21是依据本发明的虚拟卷快照(virtual volume snapshot)的一数据结构的一实施例的示意图。
1,30,90,92:储存系统架构        10:主机
110:代理人                        200:储存虚拟化控制器
20,20A,20B,20C:独立冗余磁盘阵列子系统(RAID子系统)
202,202A,202B,202C:虚拟化层    203A,203B,203C:ME服务器层
204,204A,204B,204C:RAID层      205A,205B,205C:VCSN代理人
211,51:区段分配系统(SAS)         215,515:节点表
213a,213b:区块关联集区段分配串列
2131,5131:属性区块               2133,5133:目录
2135:日志                         2137:区块关联表
2139:数据区域                     400:PSD阵列
41:卷区块索引                     42:位置索引
43:区块索引位元映像(BAB)          410:实体储存媒体
513a:P2V/V2P SAL                  5135:V2P表
5137:P2V表                        61:虚拟索引
63:实体索引
8:实体区段索引对实体逻辑区段位址映射函数
81:实体区段索引                   82:ME ID
83:起始位址                       84:分区数量
VV:虚拟卷                         VP:虚拟池
具体实施方式
请参阅图1A,是依据本发明的一实施例的一个数据储存系统架构(简称储存系统架构)1。该储存系统架构1是由一主机10与一个独立冗余磁盘阵列子系统(redundant array of independent disks subsystem,RAIDsubsystem,以下称为RAID子系统)20通过沟通管道(communicationchannel)而连接在一起而组成。该RAID子系统20包含一个储存虚拟化控制器(storage virtualization controller,SVC)200及一具有多个实体储存媒体(physical storage device,PSD)410的PSD阵列400。其中该些PSD 410可以为HDD、CD、VCD、DVD、TAPE、SSD、Flash Memory、EEPROM等储存媒体。此外,依据本发明的另一实施例,一个RAID子系统亦可包含多个设定为冗余组态的储存虚拟化控制器200,以当一个储存虚拟化控制器200失效时,另一个储存虚拟化控制器200仍能正常运作而接管失效控制器的工作。
依据本发明的一实施例,在一个RAID子系统20中,通过储存虚拟化控制器200及应用程序的操作,是在RAID层204之前加入一虚拟化层(virtualization layer)202,也就是在主机10与RAID层204之间加入该虚拟化层202,而使得来自主机10而欲存取PSD阵列400中的数据的IO请求(Input/Output request)均会先为该虚拟化层202所处理,再由该RAID层204来处理。需说明的是,该虚拟化层202及该RAID层204是包含于储存虚拟化控制器200中。此外,在后文中,该虚拟化层亦被称为虚拟化模块,而该RAID层亦被称为RAID模块。
请参阅图1B、图1C及图1D,其中图1B是依据本发明的一实施例的RAID层204所映射出的逻辑磁盘机(logical drive,LD)与实体卷(physicalvolume,PV)的关系,图1C是依据本发明的一实施例的实体卷与其中的媒体区与分区(sector)的关系,及图1D是依据本发明的一实施例的实体卷与其中的媒体区与实体区段(section)的关系。图1B中显示,在RAID层204中,一或多个PSDs的各分区区块(block)(或称为“分区(sector)”)组成一或多个逻辑磁盘机(logical drive,LD),每一个LD也可以被进一步切割成一或多个分割区(partition),每一个LD或分割区是包含多个分区区块,且每个分区区块是对应到一逻辑区块位址(logical block address,LBA),在此亦称为实体LBA(physical LBA,phyLBA),该些PhyLBA是连续定址,例如图1C所示的PhyLBA1、PhyLBA2与PhyLBA3......等。每一个LD或分割区是对应到一个实体卷(physical volume,PV),每个实体卷是可切割成一个或多个实体媒体区(physical media extent,physical ME,后简称媒体区,ME)而被提供给虚拟化层202使用。每个媒体区是以一个实体区段(physical section)(或称为“区段(section)”)为单位储存数据,一个实体区段(section)可以包含有一至多个分区区块。以上所称的分区区块在储存媒体(例如硬盘)的观点来看,相当于一个分区(sector)的单位。媒体区中的每个实体区段(section)皆对应到一个表示实体区段起始位置的LBA以及一个表示实体区段长度的“分区数(sector count)”,由此可知,图1D所示的LBA1、LBA2与LBA3......等并不一定是连续的位址。在虚拟化层202中,是对RAID层204所呈现出来的媒体区进行管理以产生一个虚拟池(virtual pool,VP)(图未示),包含有一或多个媒体区,并由该虚拟池VP中产生一或多个虚拟卷(virtual volume,VV)(图未示),拟化层202A并将该些虚拟卷呈现给主机10供其进行IO请求存取数据。该虚拟池VP及该虚拟卷将于下文中藉由图2A的实施例加以说明。
请参阅图2A,其是依据本发明的另一实施例的储存系统架构30。储存系统架构30是由多个RAID子系统20通过沟通管道(communicationchannel)而连接在一起而组成,该沟通管道可以是一区域网路(LAN)、广域网路(WAN)、储存区域网路(SAN)、网际网路(Internet)、沟通连结(communication interconnect)、或其他任何可以让RAID子系统20间互相传递讯息的沟通管道。在储存系统架构30中,只需要有一个RAID子系统20A中设置有虚拟化层202A,即可将所有RAID子系统20中的储存空间加以虚拟化成为一或多个虚拟卷VV给主机10存取。其中,设置有虚拟化层202A的RAID子系统称为主控(master)RAID子系统20A,简称主控子系统(master subsystem)20A,被主控子系统20A管理的其他RAID子系统20称为从属(slave)RAID子系统20B、20C,简称从属子系统(slave subsystem)20B、20C。在每一子系统20A、20B、20C中,分别建置有一媒体区服务器层(ME Server Layer)203A、203B、203C在各RAID层204A、204B、204C之上,以将各该RAID层204A、204B、204C中的媒体区呈现出来,供主控子系统20A的虚拟化层202A或其他装置(例如主机10等)管理使用。在本实施例中,该媒体区服务器层203A是可建置于主控子系统20A的虚拟化层202A中或独立于虚拟化层202A之外(图未示),而RAID子系统20B及20C则无虚拟化层而为从属子系统。在此储存系统架构30中,该主机10可仅与RAID子系统20A联系,而该RAID子系统20A是与该RAID子系统20B及RAID子系统20C联系,所有来自主机10进入储存系统架构30中的IO请求是进入RAID子系统20A并为其虚拟化层202A所接收,虚拟化层202A则检查该IO请求所系属的(associated)数据是属于哪些RAID子系统20A、20B、20C,而对那些RAID子系统的RAID层204A、204B、204C发出对应的IO请求以进行数据存取,并由该虚拟化层202A将结果回报给主机10。
依据本发明的另一实施例,主控子系统可以是一个RAID HEAD而无任何PSD于其中;在此种情况下,该主控子系统的储存空间仅能由其从属子系统中提供。
为更清楚说明本发明图2A的实施例的详细运作方式,请参阅图2B。图2B是图2A实施例的储存系统架构30中,依据本发明的一实施例的虚拟池与媒体区及虚拟卷关系的示意图。储存系统架构30分配媒体区的示意图显示出RAID子系统20A、20B及20C是各自包含有媒体区ME1至MEn,且经过虚拟化层202A的管理后产生一个虚拟池(virtual pool,以下称VP),包含有一或多个媒体区(例如RA-ME1至RA-ME5、RB-ME1至RB-ME5、RC-ME1至RC-ME5,其中RA、RB及RC是分别表示RAID子系统20A、20B及20C),并由该虚拟池VP中产生一或多个虚拟卷(virtual volume,以下称VV),例如VV1、VV2、VV3至VVm等m个虚拟卷,虚拟化层202A将该些虚拟卷VV呈现给主机10供其进行IO请求存取。
依据本发明的一实施例,当储存系统架构30被建立好之后,该些VV被呈报给主机10的卷容量是一虚拟卷容量,储存为该VV的一区块关联集(Block Association Set,BAS)属性,但并未真正被分配或指定给该些VV,而是等到有主机10写入IO请求发生时,才会有储存空间从VP中分配给相关的VV,这称为低额容量提供(thin provisioning)。依据本发明的另一实施例,当储存系统架构30被建立好之后,该些VV被呈报给主机10的卷容量是一实际卷容量,这称为全额容量提供(full provisioning)。从VP中分配给VV的储存空间是以实体区段(section)为最小单位,每一个区段可以包含一个或多个区块(block)(或称为“分区(sector)”)。
此外,依据本发明的一实施例,当原先产生的VV已经呈现给主机10进行IO请求存取之后,在VP的资源尚足够时,仍可俟后新增VV以供主机10的其他用途。又且,依据本发明的又一实施例,当原先产生的VV已经呈现给主机10进行IO请求存取之后,若有一VV的原有用途已不存在而使该VV无继续存在的必要时,亦可将其自VP中移除,并将其中的容量释出至该VP中供其他VV利用。
另外,依据本发明的又一实施例,当VP的容量已经不够其中的VV使用时,如果在该储存系统架构30中尚存有可用的ME的话,亦可新增ME至VP中而让该VP的容量增加以供其VV使用。又且,依据本发明的再一实施例,在一个VP中的ME,若是未被任何VV所使用时,亦可自VP中移除。如果在VP中的一个ME(例如ME1)上的被使用容量是小于该VV中另一个ME(例如ME2)上的未使用容量的话,则可将该个ME(即ME1)上的有效数据迁徙至该另一个ME(即ME2)上,并将该个ME(即ME1)移除。
请参阅图2C,是依据本发明的一实施例的用于虚拟池的一区段分配系统的数据结构的示意图。主控RAID子系统20A于虚拟化层202A产生一或多个虚拟池(VP),一虚拟池系设置有一区段分配系统(section allocationsystem,后简称SAS)211来进行虚拟卷VV的管理操作。亦请参阅图2B的实施例,当主控RAID子系统20A管理RAID子系统20A、20B及20C中的媒体区RA-ME1至RA-ME5、RB-ME1至RB-ME5、RC-ME1至RC-ME5时,称该些媒体区RA-ME1至RA-ME5、RB-ME1至RB-ME5、RC-ME1至RC-ME5系属(associated)于虚拟化层202A或主控RAID子系统20A。依据本发明的一实施例,该SAS 211是一类似档案系统(file-system-like)结构,可包含一或多个媒体区,这些媒体区是由一或多个作为媒体区段供应者(mediasection providers)的实体卷(physical volume)经过切割所形成。SAS 211可以包含一或多个区块关联集区段分配串列(block association setsection allocation list,BAS SAL)213a、213b及一节点表(InodeTable)215。节点表215用以记录区块关联集区段分配串列213a、213b内容存放位置的资讯,即区块关联集区段分配串列213a、213b内容的指标(pointer),使系统可以通过节点表215正确取得区块关联集区段分配串列213a、213b的内容。此SAS 211和与其关联的每个ME皆有一唯一识别码(identity,ID)。关于区块关联集区段分配串列213a、213b,以一种比喻的说法是:区块关联集区段分配串列213a、213b可以视作是SAS 211中的档案,档案可以分做许多种,区块关联集区段分配串列213a、213b则是其中一种用作特定用途的档案。
依据本发明的一实施例,该区块关联集区段分配串列,是VV的数据结构,每个区块关联集区段分配串列213a、213b映射出一个VV,包含有:一属性区块(Attribute Block)2131,用以记载此区块关联集区段分配串列213a、213b之ID、大小以及相关设定等资讯;一目录(directory)栏位2133,记载指引、管理该区块关联集区段分配串列213a、213b中各实体区段的资讯;一日志(Journal)栏位2135,用以存放运作日志,以供系统发生错误或断电情事时可供恢复(recovery)之用;一区块关联表(Block AssociationTable,以下称BAT)栏位2137,用以储存指向数据区(Data Area)2139的参考资讯;以及数据区2139,用以存放主机所发出的IO请求的数据,并且所存放数据的位置将记录于区块关联集区段分配串列213a、213b分别所包含的BAT 2137中。依据本发明的另一实施例,该SAS也可以包含其他种类的SAL,而非一定要使用前述的BAS SAL。
依据本发明的一实施例,建立一VV的第一步骤即是建置一个虚拟池,此是藉由建置一SAS与虚拟池对应而达成。接着,BAS SAL与BAT应被建置并将其所对应的VV映射至一主机通道上之CH/ID/LUN。最后,当主机写入IO请求发生之时,虚拟化层会向SAS取得足够的空间以存放IO请求数据,并将该些IO请求数据的存放位置记录于该BAT中。
当一个虚拟池建立时,必须指定一个或多个媒体区给此虚拟池,并将这些媒体区及其所对应的实体LBA(phyLBA)储存于SAS的描述数据栏位中。
请参阅图3A,其是依据本发明的一实施例之由多个RAID子系统中的媒体区所形成的虚拟池的示意图。图3A中是储存系统架构30中具有3个子系统RA 20A、RB 20B及RC 20C,各被对应到ME1至ME5,每个ME具有10000个实体区段,且每个实体区段是对应一LBA,称之为实体LBA(phyLBA),故每个ME均对应10000个实体LBA。例如RA ME1是对应RA-ME1-00001至RA-ME1-10000,RB ME3是对应RB-ME3-00001至RA-ME1-10000,RC ME4是对应RC-ME4-00001至RA-ME1-10000等等。在ME中的各实体区段的LBA被称为实体LBA,是因为在现有习知技术中没有虚拟化层202A的情况下,子系统RA 20A、RB 20B及RC 20C将其LD/分割区呈现为实体卷给主机10后,主机10是以该LBA对实体卷进行IO存取;也因为该LBA被称为实体LBA,故其所构成的区段称为实体区段(physical section)。
假设当一个虚拟池(即VP1)建立之时,VP1中是被组态设定(configure)成包含有RA的ME1、RB的ME1、以及RC的ME1,则在SAS 211的METADATA(图未示)中会将这些ME以及其所包含的实体区段记录起来,例如以一实体LBA清单的方式来记录,如图3B所示;或是以一实体区段索引(physicalsection index,PSI)对实体LBA表的方式来记录,如图3C及3D图所示。
图3B是依据本发明图3A的虚拟池中所包含的实体区段的数据结构的一实施例示意图。在图3B的实施例中,实体LBA清单中的每一个项目是具有三个栏位,第一个栏位(field)为该ME的ID或索引,第二个栏位表示该ME的起始位址(start address)(或称为基础区块位址(base blockaddress)),是指向该ME的起始LBA;第三个栏位表示该ME的实体区块数量(section count)。藉由实体LBA清单中各个ME的先后顺序(sequence)与各区块在各个ME中的先后顺序,可得到各区块在VP中的先后顺序,再利用每一实体区段所包含的分区数量,可以算出每一实体区段的先后顺序及其起始位址,其中每一区段的先后顺序在此是定义为该VP中各区段的实体区段索引(physical section index,PSI)。
图3C及图3D是依据本发明图3A的虚拟池中所包含的实体区段的数据结构的另两个实施例的示意图,其中是以实体区段索引(PSI)对实体区段表(physical section index to physical section table,PSI2PS table)来储存PSI与实体区段的之对照资讯(cross-referencing information)。该表中是具有四个栏位:PSI 81、ME ID 82、起始位址(start address)83(或称为基础区块位址)、分区数量(sector count)84,分别表示该PSI 81、该PSI 81所对应实体区段的ME ID 82、该实体区段的起始位址(LBA)83、及该实体区段所包含的分区数量84。具体而言,图3C的实施例中,是假设每个实体区段包含一个分区(sector),该第一个项目(entry)是表示PSI=00001的实体区段是对应至RA-ME1-00001开始的1个分区(sector);则最后一个项目中系表示PSI=30000的实体区段是对应至RC-ME1-10000开始的1个分区。图3D的实施例中,是假设每个区段包含100个分区,该第一个项目是表示PSI=001的实体区段系对应至RA-ME1-00001开始的100个分区;该第二个项目是表示PSI=002的实体区段是对应至RA-ME1-00101开始的100个分区;最后一个项目是表示PSI=300的实体区段是对应至RC-ME1-09901开始的100个分区。
在图3C与图3D中,是在每一记录中储存有一实体区段索引(PSI)与其所对应的实体媒体区的实体区段LBA。实施本发明时,图3C与图3D亦可用其他方式储存并经由计算而得到对应关系,例如图3B所示者。
除了图3B、图3C及图3D的方式之外,只要能找出PSI与其所对应的实体媒体区的实体LBA的映射关系的函数或方法,例如:利用特定的运算关系或公式,皆可用于本发明中。
虽然在图3A的实施例中是以该3个子系统RA 20A、RB 20B及RC 20C的各自第一个ME构成一个VP1,但是依据本发明的另一实施例,VP的ME数量亦可以是其他数目,例如4个、5个等等,且其不必在3个子系统中轮流加入ME至VP1中,亦不必依照每个子系统中ME的先后顺序将ME加入VP1中。例如,VP1中若有5个ME时,其先后顺序可为RA ME1、RB ME1、RA ME3、RB ME2、RA ME2。
虽然在图3A与图3D的实施例中是设定该些子系统RA 20A、RB 20B及RC 20C的ME数量皆为5个,且该些ME的区段数量相同,皆为100,但是依据本发明的又一实施例,每个子系统RA 20A、RB 20B及RC 20C的ME数量可以不同,且每个ME的区段数量也可以不同,又且该每个子系统RA 20A、RB 20B及RC 20C的总实体区段数量也可以互不相同,例如该RA具有5个ME,其中RA ME1的实体区段数量为100且RA ME2-ME5的实体区段数量为50,该RB具有4个ME,其中RB ME1-ME2的实体区段数量为60且该RB ME3-ME4的实体区段数量为80,该RC具有6个ME,其中RC ME1-ME6的实体区段数量皆为50。
关于BAT 2137,再请参阅图4A。图4A是依据本发明的一实施例的BAT2137的示意图。该BAT 2137的每一个项目(entry)具有3个栏位:一卷区块索引(Volume Block Index,VBI)栏位41、一位置索引(location index)栏位42及一区块索引位元映像(block association bitmap,BAB)栏位43,分别储存有VBI、区段索引(section index,以下称SI)及BAB。该VBI是虚拟卷VV1所使用的卷区块(volume block)的顺序。该位置索引是该卷区块所对应的该SI,依据本发明的一实施例,该位置索引是指向该卷区块所对应的实体区段的之起始PSI(start PSI),此是在没有V2P映射表的情况下;依据本发明的另一实施例,该位置索引系指向该卷区块所对应的虚拟区段的起始虚拟索引(virtual index,VI),此是在有V2P映射表的情况下;其中V2P映射表将于稍后详细说明。该BAB是用以判断该PSI所对应的实体区段是否为VV1所使用。
卷区块的大小可为一个或多个区段大小,而当一个VV1的大小固定时,卷区块愈大则卷区块数量愈少,其所对应的VBI数量也愈少,因而项目也愈少,使得整个BAT 2137的大小也变少;反之,当卷区块愈小则VBI愈多,使得整个BAT 2137的大小也变大。当一个卷区块只包含一个区段时,则一个VBI所对应到的起始SI即是该卷区块所对应的区段之SI;当一个卷区块对应多个区段时,则一个VBI所对应到的起始SI只是该卷区块所对应的多个区段中的第一个区段的SI,而该卷区块所对应的其他区段则可利用该SI而得到。
举例来说,在图4A中所显示者系一个卷区块对应一个区段的情形。在第1到第4个项目及第7个项目中,若BAB栏位43为1,则表示这5个项目的位置索引栏位42中(location index)001、002、101、201及299所对应的区段已经被VV1所使用,且其所对应的VBI栏位41分别为001、002、003、004及007。在第5个项目与第6个项目中,其BAB为0,表示第5个与第6个位置索引栏位42尚未对应到区段因而未被VV1所使用。若是VV1对主机10宣告具有10个VBI,但是位置索引栏位42中的008、009及010均未被使用,则依据本发明的第一种实施方式,BAT 2137可以具有10个项目,但位置索引栏位42中的008、009及010对应的BAB栏位43均为0;而依据本发明的第二种实施方式,倘若BAT 2137只具有7个项目,惟需记载项目7已为最后一个项目。
必须说明的是,上述具有BAB的数据结构仅是本发明的一实施例;依据本发明的另一实施例,当亦可以仅将BAT存放于快取缓冲内存(cachebuffer)中而不使用BAB。
请参图4B,是依据本发明的另一实施例的BAT 2137的示意图。BAT 2137的每一个项目(entry)具有2个栏位:一位置索引栏位42及一区块索引位元映像(block association bitmap,BAB)栏位43,分别储存有PSI及BAB,而该些项目的顺序即可对应出VBI。举例来说,若VV1对主机10宣告具有10个VBI,则位置索引及BAB的数量均需要有10个以与该10个VBI对应,不论其实际上是否已为VV1所使用(亦即BAB为1)。此种实施方式的好处在于可省去VBI栏位41所占据的空间。
由于一个卷区块是包含一或多个实体区段(例如为m个),且一个实体区段是包含一或多个分区(例如为n个),故一个卷区块是包含m乘n个(mxn)分区。而主机端所使用的LBA是连续定址的且每一LBA所对应的储存空间大小是一分区的大小,故主机端IO请求的LBA所对应的VBI的关系为:VBI=主机LBA/(mxn)。
虽然以上是以图4A及图4B说明一BAT 2137的数据结构,但是只要是能找出VBI与VV1中实际使用的区段的位置索引(亦即BAB为1的位置索引栏位41)的映射关系(mapping)的方法,皆为本发明的范畴。
依据本发明的一低额容量提供(thin provisioning)实施例,当一虚拟卷VV建立好并呈现给主机10后,但尚未收到主机10写入IO请求之前,没有被分配任何实际的容量,因为在该虚拟卷VV中并无数据,故其BAT中的BAB均为零,没有任何PSI被用于该虚拟卷VV中;然而,一虚拟卷容量系被储存为一个BAS属性并呈报给主机10,主机10因而会认为此一虚拟卷之容量是该虚拟卷容量。
依据本发明的一实施例,若是在虚拟化层202A中有足够的快取缓冲(cache buffer)(图未示)的话,可将虚拟卷VV(含VV1)中的全部的MATADATA及区块关联集区段分配串列213a、213b以及虚拟池VP(含VP1)中的一实体对虚拟区段索引映射表(physical-to-virtual section index mappingtable,简称physical-to-virtual mapping table,P2V table,或P2V表)5135,其储存于V2P及一虚拟对实体区段索引映射表(virtual-to-physical section index mapping table,简称virtual-to-physical mapping table,V2P table,或V2P表)5137存入该快取缓冲中,则IO处理的延迟(latency)将很小,因而降低储存虚拟化的时间成本(overhead)。P2V表与V2P表将于后文中说明。
依据本发明的另一实施例,一虚拟卷VV在建立时亦可设定一保留容量(reserved capacity),以确保该虚拟卷VV可具有一最小容量。举例而言,若该虚拟卷VV的虚拟卷容量为400GB,但是其保留容量(reservedcapacity)是设定为100GB,则其最小容量将会是100GB。此可利用SAS区段保留机制(section reservation mechanism)而达成。当该虚拟卷VV的实际容量尚不足该保留容量时,该SAS区段保留机制会将该保留容量与实际容量差额的容量保留起来,并随着实际容量的增加而减小所保留的容量,直到实际容量已达到该保留容量为止。
依据本发明的一实施例的全额容量提供(full provisioning)实施例,在储存系统架构30建立之时,即会将卷容量的空间分配给该虚拟卷VV,故该虚拟卷VV中呈报给主机10的卷容量是一实际卷容量,此可确保此VV一定可以用到呈报给主机10的卷容量。
依据本发明的容量提供(provisioning)实施例,其具有以下三种实施样态:第一、是利用上述SAS区段保留机制(section reservationmechanism)而达成;第二、是利用区段分配机制(section allocationmechanism)而达成;第三、是利用区段指定机制(section assignmentmechanism)而达成。
依据第一种实施样态的“区段保留机制”进行无容量提供(noprovisioning)时,虚拟卷VV的虚拟容量只是藉由一个数值的设定而被保留起来,并未被真正地分配(allocate)或指定(assign)给虚拟卷VV,故此一操作非常快速,而空间的实际分配与指定则是等到主机的IO请求发生时才进行。若是有空间需要从虚拟卷VV中释放出来,则也只要更改虚拟容量的设定值即可。因此虚拟卷VV要更改其虚拟容量将会具有很大的弹性而非常容易进行且快速。
依据第二种实施样态的“区段分配机制”进行全额容量提供(fullprovisioning)时,虚拟卷VV的虚拟容量只是先被分配(allocate),并未被真正地指定(assign)给他们,故此一操作会较慢于第一种实施样态的区段保留机制,而空间的实际指定则是等到主机的IO请求发生时才进行。如果虚拟卷VV要更改其虚拟容量将会较难于第一种实施样态的区段保留机制。依据本发明的一实施例,当进该区段分配机制是利用一已分配区段串列(allocated section list)将已分配的区段记录下来。之后,当收到主机的IO请求且需要已指定给该至少一虚拟卷使用的储存空间外的储存空间时,会从该已分配区段串列中提供数据区段指定给虚拟卷VV使用。
依据第三种实施样态的“区段指定机制”进行预先容量提供(pre-provisioning)时,虚拟卷VV的虚拟容量已被实际地指定(assign)给他们,故此一操作会较慢于第一种实施样态的区段保留机制及第二种实施样态的区段分配机制,但主机的IO请求进行时可将循序的(sequential)数据连续地(contiguously)排列,可得到较佳的循序读取效能。依据本发明的一实施例,区段的指定是藉由将位置索引(location index)填入虚拟卷VV的BAT中而达成,其实施例请见图4A及图4B的相关说明。由于虚拟容量已经实际指定(assign)给某一虚拟卷VV,因此无法将已经指定的空间释放出来。除非利用其他机制(例如BAB等)记录被指定给虚拟卷VV的容量中,实际被主机的IO请求所使用掉的空间才有可能将其释放(例如利用迁徙功能等)。
依据本发明的一实施例,一虚拟池VP是可对于其中所用掉的容量或所剩余的容量进行事件通知(event notification),此事件通知门槛(threshold)可依容量水准(capacity level)而设或是容量百分比(capacity percentage)而设。例如:假设一虚拟池VP的总容量为800GB,可设定当用掉的容量达到700GB时发出事件通知,当用掉的容量达到80%(560GB)时发出事件通知,或是两者皆设任一达到即发出事件通知。依据本发明的另一实施例,该此事件通知门槛亦可依特定虚拟卷VV容量占虚拟池VP总容量百分比而设。例如,当一个虚拟池VP中提供有10个虚拟卷VV时,平均一个虚拟卷VV的容量占虚拟池VP总容量百分比为10%,故可设定当一虚拟卷VV的容量占虚拟池VP总容量百分比达20%或30%(意味着为预估平均值的两倍或三倍)时即发出事件通知。又如,当一虚拟卷VV的容量占虚拟池VP总容量百分比达50%(意味着为已达虚拟池VP总容量的一半)时即发出事件通知。又或,当某特定的虚拟卷VV的容量占虚拟池VP总容量百分比达特定值时(意味着为已达到某一预估值)时即发出事件通知。
依据本发明的一实施例,该储存系统架构30可以利用单一管理窗口来管理多个子系统或多个卷的容量分配及利用,具有容量管理方便的优点。该储存系统架构30,依据本发明的一实施例,在VV空间不敷使用时,可以加大其呈报给主机10的卷容量(无论其为虚拟卷容量或实体卷容量);依据本发明的一实施例,当VP空间不敷使用时,可以向ME提供者取得可用的ME容量来使用。依据本发明的一实施例,当一个VP中的(例如VP1)的空间不敷使用而另一个VP中的(例如VP2)的空间尚有可利用的空间时,可将另一个VP(即VP2)的可利用空间释出并将的提供给该个VP(即VP1)使用。例如,当VP1的空间不敷使用,则VP2可利用迁徙功能将某一ME移除再将该ME新增入VP1,而使得VP1增加可用的ME空间。
依据本发明的一实施例,当整个储存系统架构30中的储存空间不敷使用时,可以经过简单的组态设定(configure),即可将一新的RAID子系统加入储存系统架构30中,并为各个VP及VV所使用。
利用本发明的低额容量提供(thin provisioning)功能,一个VP可以映射出多个VV,这些VV的各别虚拟卷容量总合可以超过该VP的总容量,如此可以使子系统或储存系统架构30在储存空间的运用上具有很大的弹性。
举例而言,当一个VP(例如图2B中的VP)的总容量为800GB时,可以映射出多个VV(例如VV1、VV2及VV3),每个VV均有一虚拟卷容量呈报给主机10(例如VV1的虚拟卷容量为400GB、VV2的虚拟卷容量为500GB、VV3的虚拟卷容量为700GB),所有VV的虚拟卷容量的总合(1600GB)可以超过该总容量,但是实际使用时则视写入各个VV中的实际IO请求的数据量来决定各个VV中的实际使用容量。例如,当使用之时判断VV1需要200G、VV2需要250G、VV3需要350G,故将其各自的虚拟卷容量为以上的设定结果在使用一阵子后发现VV1的用途只会用到100GB,但是VV2的用途所需要的空间一直增加,可能会用到500GB,而VV3的容量却因为IT预算的改变而根本从未使用,结果当时真正的使用空间是VV1为80GB、VV2为470GB、VV3为0GB。此时,由于800GB的VP只用掉了550GB,尚有250GB的空间可以使用,若是还有需求,仍可以产生新的VV,如VVm等。
因此,由以上所述可知,储存虚拟化的优点在于其储存系统的管理方便及系统的扩充性。
关于媒体区服务器层(ME server layer)203A、203B及203C,依据本发明的一实施例,一个ME仅可系属(associated)于一个主控子系统20A的虚拟化层202A而为其管理及使用。依据本发明的一实施例,每一子系统20A、20B、20C分别建置有一ME服务器层203A、203B及203C于RAID层204A、204B及204C的上,以将该RAID层204A、204B及204C中的ME呈现出来供所系属的虚拟化层202A管理使用,并为其本身所在的子系统20A、20B、20C的虚拟化层202A找到所系属的ME供其管理使用。该ME服务器层203A、203B及203C会将其所在的子系统20A、20B、20C的每一个ME所系属的主控子系统20A加以记录。依据本发明的一实施例,在图1A中的实施例中亦有媒体区服务器层,虽然于图1A中并未绘示。
依据本发明的一实施例,是可自虚拟池中移除媒体区,兹说明如下。
首先,在媒体区的区段中的数据是被迁徙至其他媒体区的区段中。迁徙目的地是由该区段相关的(associated)虚拟卷的“分散式数据”属性所决定(亦请参阅与“区段迁徙(Section Migration)”及“分散式数据(Distributed Data)”等主题)。其次,被清空的区段于是被从所连结的BAS SAL中抽掉。{Then,the emptied sections are then swapped out ofthe BAS SALs to which they are linked.}最后,当要被移除的媒体区中的所有区段以此种方式被释出后,该媒体区是自该SAS中移除。
请参阅图9,其是依据本发明的又一实施例的储存系统架构90的示意图。该储存系统架构90不论其架构、运作方式或数据结构,大致上与图2A的实施例相同,相同之处在此不予赘述,并仅就差异之处做说明。
储存系统架构90,是多个RAID子系统(RA 20A、RB 20B、RC 20C)及一主机10与其相连而成。图9的实施例与图2A的实施例相较的下,图9的实施例是增设一主机代理人(Agent or Host Agent)110于主机10中,且主机10可通过该主机代理人110的协助而直接与所有的子系统20A、20B、20C联系以存取其数据。藉此改善单一主控子系统20可能会成为系统效能的瓶颈的问题。在本发明第二实施例中,从属子系统20B、20C与主控子系统20A的联系可在主机代理人110及该ME服务器层203A、203B及203C的协助下而进行,其细节将于下文中说明。
在具有主机代理人110的架构下,每一个从属子系统20B、20C必须将它的实体媒体区呈现给有权限存取该媒体区所属的虚拟卷的主机代理人110以供其使用,而主机代理人110必须将这些媒体区遮蔽起来而不为主机上层所见,且亦不为其他主机所见。此一功能是由媒体区服务器所执行。
主机代理人110会使用一数据位置询问命令发送给主控子系统20A的虚拟化层202A向其询问主机10欲存取数据的位置。依据本发明的一实施例,该数据位置询问命令是可为自定的数据分布询问SCSI命令(proprietary data distribution query SCSI command)发送给主控子系统20A的虚拟化层202A向其询问主机10欲存取数据的位置,然后根据主控子系统20A的虚拟化层202A的回复资讯直接在数据实体所在的子系统20A、20B、20C上进行数据存取,详细说明如后。在主机代理人110的数据分布询问SCSI命令的IO请求中,提供了定义要存取的虚拟范围的逻辑区块位址/区块数量(LBA/Block-Count defining virtual range to beaccessed)。子系统20A、20B、20C在收到询问命令后,则回应以一实体媒体识别码/逻辑区块位址/区块数量/有效性检查序号的清单(list ofphysical ME-ID/LBA/Block-Count/VCSN),该清单含括了所询问的范围。另一方面,主机代理人110进一步与各个子系统20A、20B、20C的ME服务器层203A、203B、203C沟通,以得知各个子系统20A、20B、20C所呈现出来可供存取的ME的相关资讯,据以判断上述清单中所记载的ME ID是属于哪一个子系统20A、20B、20C。然后,主机代理人110便可以根据以上资讯,使用自定的读/写SCSI命令(proprietary Read/Write SCSI commands)直接对该ME ID所属的子系统发出数据读取或写入的IO请求(或称为输出入存取命令(IO access command))。除了逻辑区块位址/区块数量之外,该些自定的读/写SCSI命令另包含了一有效性检查序号(Validity CheckSequence Number,VCSN)于其命令描述码区块(command descriptor block,CDB)(图未示)中,用以供接受命令的子系统验证该命令的有效性,其中当该IO请求为有效命令,则依据该IO请求存取RAID子系统20A、20B、20C,而当该IO请求非为有效命令,则拒绝该IO请求。依据本发明的另一实施例,该数据位置询问命令是可为依据其他通讯协定所定义的数据位置询问命令。
依据本发明的一实施例,各子系统20A、20B、20C的RAID层204A、204B、204C之上更设有一有效性检查模块,以本实施例而言,是分别为一“有效性检查序号代理人”(Validity Check Sequence Number Agent,以下称VCSN代理人)205A、205B、205C,做为在主机代理人110与RAID层204A、204B、204C之间处理读取/写入输出入要求(Read/Write IO request)(或称为输出入存取命令(IO access command))的桥梁,其工作之一便是验证由主机代理人110所发出的自定的读/写SCSI命令所携带的VCSN的有效性,藉以判断该输出入存取命令位址的正确性。在主控子系统20A中,VCSN代理人205A可以独立设置于虚拟化层202之外,抑或是设置于虚拟化层202A之内(图未示)。在各子系统20A、20B、20C中,VCSN代理人205A、205B、205C可分别与ME服务器层203A、203B、203C分开独立设置,或是两者整合在一起(图未示)。
依据本发明的一实施例,更可于具有数据迁徙功能时对每一ME增设一VCSN参数。该VCSN值是由主控子系统20A的虚拟化层202A决定并告知ME所在的子系统20A、20B、20C的VCSN代理人205A、205B、205C,而由VCSN代理人205A、205B、205C实际使用VCSN值以决定其所接收的IO请求(或称为输出入存取命令(IO access command))的有效性。举例来说,每当执行一次迁徙操作时,主控子系统20A的虚拟化层202A便进行迁徙操作的ME的VCSN加1(incremented),并通知该ME所属的子系统的VCSN代理人205A、205B、205C,让该VCSN代理人205A、205B、205C可以根据新VCSN值验证数据存取的有效性,其详细内容将于后文中说明。依据本发明的一实施例,一次迁徙操作可以针对一实体区段进行迁徙操作。若是某一位置的数据在被主机10或代理人110询问之时到该主机10或代理人110真正发出IO请求之前已经发生改变,藉由VCSN代理人205A、205B、205C的设置可以确认从属子系统侦测到此改变并拒绝该IO请求,以迫使主机10或代理人110再次向主控子系统20A询问相关资讯。此外,于本实施例中,主控子系统20A可以以一特殊VCSN,(或称为保留(reserved)VCSN),例如“0”,但不以此限制本发明,以回应主机10或代理人110的询问,该特殊VCSN表示该主机10或代理人110所发出的IO请求必须都通过主控子系统20A来处理。
在本实施例中,更可在主控子系统20A需要主机10或代理人110先向主控子系统20A询问再决定如何进行主机的IO请求时将该VCSN改变。例如,主控子系统20A要主机10或代理人110更改IO请求位址时,或是主控子系统20A在主机10或代理人110发出IO请求前要先进行其他数据操作时,或是数据要被写至好几个位址时,或是IO请求由主控子系统20A来处理时,将该VCSN改变。依据实施本发明的一实施例,主控子系统清除(purge)从属子系统20B、20C的VCSN快取(cache),由于此时的从属子系统20B、20C的VCSN快取(cache)已没有任何数据,则主机10或主机代理人110所发出的IO请求所携带的VCSN便无法通过一致性检查,如此可使所有的IO请求都被拒绝。
依据本发明的一实施例的有效性检查序号的建制重点说明如下:
(1)在主控子系统把有效性检查序号加1,但是在真正服务读/写请求的从属子系统检查序号。
(2)依据本发明的一实施例,每执行一次迁徙操作时,有效性检查序号是被加1且通过自定带内SCSI命令送至从属端子系统。依据本发明的另一实施例,每当主控子系统需要主机代理人先向其询问再决定如何进行主机IO请求时,则将该VCSN改变。
(3)回应于数据分布询问SCSI命令,将该有效性检查序号与实体媒体识别码/逻辑区块位址/区块数量一起回复给主机代理人。
(4)主机代理人在其发给媒体ID所在的子系统的自定读/写SCSI命令中,是包含有该有效性检查序号。
(5)从属子系统检查在CDB中的有效性检查序号,以之与自主控子系统所接收到的最新有效性检查序号相比。如果两者不同,则从属端将拒绝请求,并附带以意涵说明数据(sense data)以指出原因。
(6)然后主机代理人必须再度询问以更新映射。
(7)依据本发明的一实施例,有效性检查序号具有一有效寿命与其系属,该有效寿命是与其位元数量相依。举例而言,如果假设每秒有100个迁徙操作及用16元位长度来记录序号,则序号的有效寿命是小于2**16/100秒的某一值。
(8)如果主机代理人利用快取暂存映射关系数据的话,则其必须监控有效性检查序号的寿命。有效性检查序号的寿命的开始时点必须自询问被发出之时开始起算,而非从回应收到时起算。
(9)如果已经超过有效寿命的话,主机代理人必须将其映射快取清空并再度询问。如果在一个IO请求的执行期间中可能会发生超过有效寿命的情形的话,则主机代理人应于发出该IO请求之前再度询问。
依据本发明的另一实施例,亦可不建置该VCSN机制,例如,当储存系统架构不执行迁徙操作时。此时,在图6中亦可不在各子系统20A、20B、20C的RAID Layer 204A、204B、204C之上设置VCSN Agent 205A、205B、205C。又例如,当储存系统架构通过主控子系统执行迁徙操作时;这是因为该主控子系统知道其所系属的数据的实体区段所在的实际位置之故。
依据本发明的又一实施例,亦可当储存系统架构不执行迁徙操作时建置该VCSN机制,例如:每当主控子系统需要主机代理人先向其询问再决定如何进行主机I O请求时,则将该VCSN改变,而当主机IO向主控子系统询问时(可能是因IO请求被从属子系统拒绝,也可能是直接询问),以保留VCSN回复主机,则主机将会因而直接向主机代理人发出IO请求。
请参阅图10,其是依据本发明的再一实施例的储存系统架构92的示意图。第三实施例与第二实施例大致上相同,相同之处在此不予赘述,并仅就差异之处做说明。储存系统架构92是多个RAID子系统(RA 20A、RB 20B、RC 20C)及一主机10与其相连而成,且在主机10中亦设有一主机代理人110。图10的实施例与图9的实施例相较之下,图10的实施例主机10在主机代理人110的协助下不仅与所有的子系统20A、20B、20C均有联系,而且每个子系统20A、20B、20C中分别设有虚拟化层202A、202B、202C,即他们各自可做为主控子系统。藉此,主机10可以在代理人110的协助下直接对各子系统20A、20B、20C进行存取,以改善了储存系统架构90的主控子系统20A可能会成为系统效能的瓶颈的问题,且提高了系统资源运用上的弹性。
请参阅图11,其是本发明图10的实施例的储存系统架构92指定媒体区的示意图。储存系统架构92中的子系统20A、20B、20C是分别产生一VP-A100A、VP-B 100B、VP-C 100C,除了各自拥有的ME之外,其他的ME皆可被指派给VP-A 100A、VP-B 100B、VP-C 100C的其中任一而供其使用。
依据本发明的一实施例,该些储存系统架构是可设置“分散式数据(Distributed Data)”属性,则在某些情况下会启动一分散式数据功能而使得储存系统架构中的数据以分散的方式储存(attribute)。依据本发明的一实施例,该“分散式数据”属性是可针对每一虚拟卷各别设定(The″distributed data”attribute supported per Virtual Volume.)。依据本发明的另一实施例,该“分散式数据”属性是可针对一个虚拟池设定因而其中的每一虚拟卷均具有该“分散式数据”属性或均不具有该“分散式数据”功能性。
依据本发明的一实施例,各个实体区段是自不同的媒体区以轮流的方式被分配给一个BAS SAL。
举例而言,假设在图3A及3D的实施例中,当一个VV1向VP要空间时,其方式是利用图4C及图4D说明如下。当第一次写入IO发生时,虚拟化层会轮流向RA-ME1、RB-ME1、RC-ME1取得其中的可用区段。假设该IO只需要使用到2个区段的空间,则PSI为001及101的区段将会被指定给VV1,如图4C所示。当使用一阵子之后,在另一次收到主机写入IO时,VV1的空间已不足够,假设此时VV1总共实际会用到5个区段的空间,则其PSI依序为201、002、102,如图4D所示。由于VV中所使用的区段对于各ME而言大体上是均匀分布的,故主机IO存取会被分散到各ME上进行,对于子系统而言主机IO存取也较为分散,故各子系统的工作负荷较为平衡,因而此功能性具有负荷平衡(load balance)的功能。
依据本发明的另一实施例,当“分散式数据属性是被设定给一个虚拟卷且媒体区是被增加至该虚拟卷所在的池中的话,则增加媒体区至池中会启动迁徙操作而将在该BAS SAL中的某些数据迁徙至新增加的媒体区的实体区段中。有关数据迁徙功能的细节将于下文中说明。
当媒体区的实体区段中的数据是被迁徙至其他媒体区的实体区段中时,迁徙目的地是由该实体区段相关的虚拟卷的『分散式数据』属性所决定。有关数据迁徙功能的细节将于下文中说明。
依据本发明的一实施例,该些储存系统架构是可设置区段迁徙(Section Migration)功能,则在某些情况下会启动此区段迁徙功能。
依据本发明的一实施例,当增加媒体区至虚拟池中且“分散式数据属性是被设定给任一个虚拟卷时,会启动数据区段迁徙操作。
依据本发明的又一实施例,当进行媒体区自虚拟池中移除操作以释放属于要被移除的媒体区的数据区段时,会启动区段迁徙操作。
依据本发明的一实施例,数据迁徙功能的建制重点如下;
(1)在SAS中为数据迁徙功能而设置一实体区段对虚拟区段交互参照机制(physical section versus virtual section cross-referencingmechanism)。依据本发明的一实施方式,实体区段对虚拟区段交互参照机制的实施是可藉由设置一实体到虚拟区段索引映射表(P2V表)而达成。依据本发明的一实施方式,实体区段对虚拟区段交互参照机制的实施是可藉由,设置一实体到虚拟区段索引映射表(P2V表)及一虚拟到实体区段索引映射表(V2P表)而达成。其中该(P2V表)及/或(V2P表)是由SAS中的区段分配串列(SAL)所构成,称为P2V/V2P SAL。
(2)介于BAS SAL及SAS管理层间的界面是藉由虚拟区段索引(而非实体区段索引)所完成,此一虚拟区段索引在区段迁徙的过程中将不会改变。
(3)虚拟对实体区段索引映射表是用以加速虚拟区段索引转换成为实体区段索引。每一个存取一BAS SAL(或虚拟卷)的数据区段的主机IO请求必须参考虚拟对实体区段索引映射表以找到实际数据所在位置的实体区段索引。
(4)在区段迁徙过程中,所有的SAS区段数据更新是被暂停。此是藉由锁定机制而达成。同样的,在获得锁定之前,迁徙程序(migration deamon)不能进行迁徙。
(5)将虚拟区段索引转换成为实体区段索引需要读取描述数据,因而成为一冻结操作(blocking operation)。
(6)在所建置的虚拟区段索引中,SAS提供客户端使用不变的虚拟区段索引(VSI)而非会迁徙的实体区段索引。
(7)实体对虚拟映射数据是储存于每个媒体区的SAT中或是另一个类似于SAT的表中。维护实体对虚拟映射表的目的是在迁徙以及其他维护操作的过程中加速交互参照。
(8)虚拟对实体映射表是储存于该SAS的一个保留的SAL中。虚拟区段索引是基于在该虚拟对实体映射表中的可用的项目而分配。在迁徙中,仅修改该区段索引映射项目,不须修改区段索引,因为SAS对其客户端使用不变的虚拟索引。
(9)依据本发明的一实施方式,虚拟对实体及实体对虚拟映射表是以具有复本的方式储存,以确保媒体错误(media errors)将不致造成映射数据无可挽回的遗失(fatal loss)。依据本发明的另一实施方式,虚拟对实体及实体对虚拟映射表是可以不具复本的方式储存。
(10)依据本发明的一实施方式,SAS日志功能也将P2V/V2P映射表SAL纳入其中。依据本发明的另一实施方式,SAS日志功能也可不将P2V/V2P映射表SAL纳入其中。
根据本发明的一实施例,若是有新的ME加入某一VP且该VP中设定有“分散式数据”属性,或VP中有ME需要移除,则会启动一区段迁徙(SectionMigration)作业。为使区段迁徙前后,ME中各卷区块(Volume Block)的VBI与其位置索引(Location Index)之间的虚拟对应关系不变(请参考图4A与图4B),因此,在本发明的一实施例中,采用一虚拟对实体区段索引映射表(Virtual-to-Physical(V2P)section index mapping table,以下简称V2P Table)以及一实体对虚拟区段索引映射表(Physical-to-Virtual(P2V)section index mapping table,以下简称P2V Table)各自记录虚拟索引(Virtual Index)对实体索引(Physical Index)与实体索引(PhysicalIndex)对虚拟索引(Virtual Index)的对应关系。
请参照图5,在SAS中V2P Table与P2V Table是以区段分配表(sectionallocation list,SAL)的型式储存,其对应有一节点表(Inode Table)。此储存有V2P Table与P2V Table的SAL专供SAS本身管理使用,而不呈现出去供主机存取数据之用。该SAL有一属性区块(Attribute Block),用以记载此SAS ID以及相关设定等资讯;有一目录(directory)栏位,用以记载指引、管理该SAL中各区段(section)的资讯;有一储存V2P Table的栏位、以及有一储存P2V Table的栏位。
根据本发明的一实施例,P2V Table 5137的数据格式可如图6A与图6B所示,两者同样是记载实体索引(Physical Index)对虚拟索引(VirtualIndex)的对应关系。不同的是,图6B并不如图6A般有记录实体索引(Physical Index)的栏位,而是依照记录虚拟索引(Virtual Index)的各项目(entry)的先后顺序而推知其对应的实体索引(Physical Index)。
根据本发明的一实施例,V2P Table 5135的数据格式可如图7A与图7B所示,两者同样是记载虚拟索引(Virtual Index)对实体索引(PhysicalIndex)的对应关系。不同的是,图7B并不如图7A般有记录虚拟索引(Virtual Index)的栏位,而是依照记录实体索引(Physical Index)的各项目(entry)的先后顺序而推知其对应的虚拟索引(Virtual Index)。
举例来说,本发明是利用V2P Table 5135与P2V Table 5137而使得区段迁徙前后虚拟卷(VV)中各卷区块索引栏位41中的VBI对位置索引栏位42中的位置索引(location index)的虚拟对应关系不变,而不使数据区段迁徙作业影响到上层应用端的区块索引资讯。以下举一实例说明如何应用V2P Table 5135与P2V Table 5137使得虚拟对应关系不变。假设主机10发出一IO请求给虚拟化层202A欲对VBI=001的卷区块存取数据,请参照图4A及图4B。首先于虚拟化层202A内找到VBI=001所对应的BAB项目(entry),得知该VBI=001的卷区块有被其VV1所使用,然后找VBI=001所对应的位置索引为001。在有V2P Table 5135的情况下,图4A及图4B中所示的位置索引是对应到图6A及图6B中的虚拟索引(virtual index)61,据此,可以找到虚拟索引=001(图中绘示为“1”)所对应的实体索引(physical index)63为002。有了实体索引之后,可以查询一如图3C或图3D的记录表或经由一特定的运算规则或公式,而得知实体索引=002时所对应到的实体区段位置。若以图3D为例,实体索引=002便对应到PSI 81,然后查询该表(或以一特定的运算规则或公式取代)便可以得知PSI=002时的实体区段位置是在ME ID为RA-ME1、起始位址(LBA)为101的连续100个分区的处。假设主控子系统20A将数据迁徙至另一ME(例如,RB-ME1),则V2P Table 5135中的实体索引63会根据数据的迁徙而改变,例如:虚拟索引=001(图中绘示为“1”)所对应的实体索引63由002改为对应PSI=101。如此一来,VBI对位置索引的虚拟对应关系可以不用改变,通过V2P Table 5135的转换仍然可以顺利对应到迁徙后新的数据位置,例如:ME ID为RB-ME1、起始位址(LBA)为001的连续100个分区。
请参阅图8A,是当具有V2P表时,VBI与其所对应的实体区段LBA的映射关系的示意图。在一个具有V2P表的主控子系统中,虚拟化层是可利用该区块关联表(BAT)、该V2P表、及该实体区段索引对实体区段LBA映射函数(或表)8得到VBI与其所对应的实体区段LBA的映射关系。当一VBI为已知时,可利用该区块关联表找到其所对应的位置索引,再以该位置索引找到该V2P表的虚拟索引而找到其所对应的实体索引,再以该实体索引作为该实体区段索引并利用该实体区段索引对实体区段LBA映射函数而找到其所对应的实体区段位址。
以下说明如何利用上述的VBI与其所对应的实体区段LBA的映射关系得到一主机命令中的LBA与其所对应的实体区段LBA及分区位址。当一个主控子系统收到一个来自主机的命令时,该命令中所带的LBA(例如一IO存取命令的LBA或一数据位址查询命令中所欲查询的LBA)是被转换成其所对应的VBI及位址相关资讯(例如区段资讯及/或分区资讯),接着可以利用上述方式找该VBI到所对应的实体区段LBA,再利用该些位址相关资讯(例如区段资讯及/或分区资讯)找到所对应的分区位址。
请参阅图8B,是当发生数据区段迁徙时,VBI与其所对应的实体区段LBA的映射关系的变化的示意图。在图8A的时间之后,当一个虚拟池中发生数据区段迁徙时,若该数据所在实体区段从RA-ME1中PSI=002的一分区处迁徙到RB-ME1中PSI=101另一分区处时,则该V2P表中的PI由002改变成101,而该区块关联表(BAT)则并未发生改变。
请参阅图8C,是当只有P2V表而无V2P表时,VBI与其所对应的实体区段LBA的映射关系的示意图。在一个具有P2V表的主控子系统中,虚拟化层是可利用该区块关联表(BAT)、该P2V表、及该实体索引对实体区段LBA映射函数得到VBI与其所对应的实体区段LBA的映射关系。当一VBI为已知时,可利用该区块关联表找到其所对应的位置索引,再以该位置索引找到该P2V表的虚拟索引而找到其所对应的实体索引,再以该实体索引利用该实体索引对实体区段LBA映射函数而找到其所对应的实体区段LBA。其中,由于P2V表中是以实体索引次序存放虚拟索引(VI)值,在寻找该P2V表中的虚拟索引(VI)与该位置索引(LI)相同者时,无法直接找到虚拟索引(VI)值,而必须对实体索引内容一一撷取出再与位置索引(LI)比较。
请参阅图8D,是当只有P2V表而无V2P表时,当发生数据区段迁徙时,VBI与其所对应的实体区段LBA的映射关系的变化的示意图。当该数据所在实体区段从RA-ME1中PSI=002的一分区处迁徙到RB-ME1中PSI=101另一分区处时,则该P2V表中的由原本的PI=002对应至VI=001改变成PI=101对应至VI=001,而该区块关联表(BAT)则并未发生改变。
由图8C及图8D中可以得知,若从PI=001开始检索VI=001时的PI值,当PI=002时可以较快找到VI=001,而当PI=101时则较慢找到VI=001。由于在图8C及图8D中的P2V表中的VI值是不规则排列而必须对实体索引内容一一撷取出再与位置索引(LI)比较,故较为费时。
值得注意的是,在本发明的一实施例中,若是不考虑迁徙作业,且没有V2P Table 5135与P2V Table 5137,图4A、图4B中所示的位置索引(LI)是实体区段索引(PSI),即对应至图3C或图3D中所示的PSI。
请参阅图12A,是当没有V2P表及P2V表时,VBI与其所对应的实体区段LBA的映射关系的示意图。在一个没有V2P表及P2V表的主控子系统中,虚拟化层是可利用该区块关联表(BAT)及该实体索引对实体区段LBA映射函数得到VBI与其所对应的实体区段LBA的映射关系。当一VBI为已知时,可利用该区块关联表找到其所对应的位置索引,再以该位置索引利用该实体索引对实体区段LBA映射函数而找到其所对应的实体区段LBA。
以下说明如何利用上述的VBI与其所对应的实体区段LBA的映射关系得到一主机命令中的LBA与其所对应的实体区段LBA及分区位址。当一个主控子系统收到一个来自主机的命令时,该命令中所带的LBA(例如一IO存取命令的LBA或一数据位址查询命令中所欲查询的LBA)是被转换成其所对应的VBI及位址相关资讯(例如区段资讯及/或分区资讯),接着可以利用上述方式找该VBI到所对应的实体区段LBA,再利用该些位址相关资讯(例如区段资讯及/或分区资讯)找到所对应的分区位址。
在发生数据区段迁徙而需变更卷区块索引(VBI)与实体区段LBA的映射关系时,若有P2V表及/或V2P表的话,仅需变更P2V表及V2P表中虚拟索引与实体索引的映射关系,即便是在SAS中尚具有其他数据结构会使用位置索引来映射实体区段LBA时亦是如此,而如图8B及图8D所示。在发生数据区段迁徙而需变更VBI与实体区段LBA的映射关系时,若无P2V表及V2P表的话,则需变更BAT表中的卷区块索引与位置索引的映射关系,而如图12B所示。
若SAS中尚具有其他数据结构会使用卷区块索引与位置索引来映射实体区段位置时(例如另一BAT表),则需变更所有数据结构中卷区块索引与位置索引的映射关系。此时,由于没有特定数据结构记录需变更的位置索引是用于哪些数据结构中(例如一BAT表),SAS须将所有具有位置索引的数据结构(例如所有的BAT表)扫瞄一次,以找出是否其中具有该需变更的位置索引,并于找出后针对每一数据结构中的位置索引进行变更,系统效能会因而大幅降低,甚至于低到令人无法接受的程度。
请参阅图21,其中是显示有依据本发明的虚拟卷快照(virtual volumesnapshot)功能性的一数据结构的一实施例。在本实施例中,该SAS 211中另可包含用于虚拟卷快照功能性的数据结构。SAS 211可以包含一或多个用于区块关联集区段分配串列BAS SAL#1、BAS SAL#2等及一节点表,是用以记录是进行时间点(point-in-t ime;简写为PIT)备份(backup)的基础。区块关联表(Block Association Tables),以下简称BAT,是储存在此BAS的中。BAT是用以储存交互参考资讯以与具有原始储存位置(LBA)的备份数据相对应,亦即每个BAT内是记录有指向其所对应的PIT快照影像(SnapshotImage)的资讯。而备份数据(快照影像)亦储存于此BAS之中。
依据本发明的一实施例,该区块关联集区段分配串列另包含有:一属性区块(Attribute Block),用以记载此区块关联集区段分配串列的ID、大小以及相关设定等资讯;一目录(directory)栏位,记载指引、管理该区块关联集区段分配串列中各实体区段的资讯;一日志(Journal)栏位,用以存放运作日志,以供系统发生错误或断电情事时可供恢复(recovery)之用。
由于该虚拟卷快照功能亦是利用BAT表来记录卷区块索引与位置索引的映射关系,一旦发生数据区段迁徙而需变更卷区块索引与实体区段LBA的映射关系时,亦须将所有的BAT表扫瞄一次,以找出是否其中具有该需变更的位置索引,并于找出后针对每一BAT表中的位置索引进行变更。
由于图10的实施例中的该些子系统20A、20B及20C均是主控子系统,子系统20A、20B及20C也均是从属子系统,则各子系统的ME服务器层203A、203B、203C会将其自身的RAID层204A、204B及204C中的每一个ME记录其各自所系属的主控子系统20A、20B、20C并将其呈现出来,且主控子系统20A、20B、20C的ME服务器层203A、203B、203C会将自身的虚拟化层202A、202B、202C所系属的ME找到供其管理使用。假设虚拟化层202A产生一VP-A 100A、虚拟化层202B产生一VP-B 100B、虚拟化层202C产生一VP-C 100C,则ME服务器层203A会记录RA-ME1系属于子系统20A,RA-ME2、RA-ME3、RA-ME4系属于子系统20C;ME服务器层203B会记录RB-ME1系属于子系统20A,RB-ME5、RB-ME6系属于子系统20C;ME服务器层203C会记录RC-ME1系属于子系统20A,RC-ME2、RC-ME3、RC-ME6系属于子系统20B。
以上所述的各储存系统架构实施例是本发明对于储存虚拟化的应用。更甚者,依据本发明的一实施例,在该些储存系统架构实施例中是可建制数据迁徙功能性。以下是本发明在数据迁徙上功能性的说明。
虽然在前述的例子中,仅例示有一个主机10连接于一主控子系统20A上,但是依据本发明的其他实施例,可以有多个主机10连接于一主控子系统20A上。
图13是依据本发明的一实施例的因移除ME而引发的迁徙作业的流程图。在本实施例中,当主控子系统20A的虚拟化层202A接到一将被移除的ME所对应的一移除时,首先,在步骤501,根据该移除讯息,找出该将被移除的ME所系属的SAS(VP)。步骤501的寻找过程可以从任一SAS(VP)开始,如果判断结果不是,再寻找另一个SAS(VP)来加以判断;或者是可以多个SAS(VP)同时进行判断。在步骤502,找到与该将被移除的ME所系属的SAS(VP)后,则从该SAS(VP)的SAT中取得与将被移除的ME关联的实体区段资讯。在步骤503,根据所取得的实体区段资讯,从第一个区段开始。在步骤504,在进行该区段的迁徙作业之前,虚拟化层先将该将被移除的ME的VCSN加1、且通知该ME所系属的子系统的VCSN代理人其加1后的VCSN。在步骤505,更改VCSN的相关作业完成后,开始复制(Copy)或搬移(Move)该将被移除的ME所包含的实体区段的数据到另一个ME。在步骤506,然后判断该将被移除的ME上所包含的实体区段数据是否皆已复制或移动到另一或多个ME;当判断该将被移除的ME上的所有实体区段上的数据已完成复制或移动至其他该复数媒体区其中的一或多个时,则移除该将被移除的媒体区,此流程是完成。否则,在步骤506,当判断该将被移除的ME上尚有实体区段未完成复制或移动至其他ME其中的一或多个时,则执行步骤507,取得下一个实体区段的资讯,然后重复进行步骤504到步骤506的流程。
图14是依据本发明的一实施例的因增加ME而引发的迁徙作业的流程图。在本实施例中,当主控子系统20A的虚拟化层202A接到一新增讯息得知有新的ME加入某一SAS(VP)时,首先,在步骤601,根据该新增讯息,找出该新增ME所系属的SAS;接着,计算该SAS(VP)中所有ME已经使用的实体区段的总实体区段数,此资讯可以由该SAS(VP)的SAT中获得。在步骤602,利用该总实体区段数及ME数(亦包含该新增的ME),以计算出每一个系属于该SAS(VP)的ME的一平衡后的实体区段数(balanced sectioncount)。在步骤603,选取一来源ME(Source ME)开始进行处理,其中来源ME是指SAS(VP)中原有的所有ME为。在步骤604,判断是否所有的来源ME皆已处理过。若步骤604的判断结果为“是”,则结束此流程。若步骤604的判断结果为“否”,则至步骤605。在步骤605,判断正在处理中的来源ME的实体区段数是否大于该平衡后的实体区段数。若步骤605判断为“是”,则至步骤606进行该来源ME的VCSN更改程序,包括将该来源ME的VCSN加1、且通知该来源ME所系属的子系统的VCSN代理人其加1后的VCSN(步骤606),然后至步骤607将该来源ME的区段数据复制或搬移到新增的ME(目标ME)。以上作业完成后,来源ME的实体区段数将因移出数据而减少,因此回到步骤605,继续比较已使用区段的实体区段数是否大于计算出来的平衡后的实体区段数,如果判断结果为“是”,重复步骤606与步骤607。若步骤605判断为“否”,即正在处理中的ME的实体区段数不大于该平衡后的实体区段数时,则进行步骤608以取得下一ME进行处理,然后再回到步骤604判断所有的ME是否已处理完成,重复进行之后的判断与处理。
图13与图14所描述的流程系处理只有1个ME移除与1个新ME加入的情况。若是移除或加入第1个ME之后且图13或图14的流程还在进行中,又移除或加入第2个ME,根据本发明的一实施例,图13或图14的流程将因移除或加入第2个ME而重新开始。在图14的流程,因为第1个加入的ME已经接收了一些搬移进去的实体区段上的数据,因此第1个加入的ME相对于第2个加入的ME而言,亦可能扮演传递数据的来源ME角色。
以上图13与图14是以ME为基础而进行的迁徙作业。接下来的图15与图16是以SAL为基础而进行的迁徙作业。
请参照图15,是依据本发明的另一实施例的因移除ME而引发的迁徙作业的流程图。当主控子系统20A的虚拟化层202A接到一将被移除的ME所对应的一移除讯息时,首先,在步骤701,根据该移除讯息,找出该将被移除的ME所系属的SAS(VP)。步骤701的寻找过程可以从任一SAS(VP)开始,如果判断结果不是,再寻找另一个SAS(VP)来加以判断;或者是可以多个SAS(VP)同时进行判断。接着,在步骤702,找到与该将被移除的ME所系属的SAS(VP)后,判断所系属的该SAS(VP)中的所包含的所有区块关联集区段分配串列是否已确认。若步骤702的判断为“是”,则移除该将被移除的媒体区,此一流程结束。若步骤702的判断结果为“否”,则进行步骤703,亦即,当该复数区块关联集区段分配串列尚有未完成确认者时,选择一区块关联集区段分配串列进行确认。若步骤703的判断结果为“是”,则进行步骤704,取得另一个SAL的资讯,并回到步骤702。若步骤703的判断结果为“否”,则进行步骤705,判断该区块关联集区段分配串列中目前进行处理的实体区段是否关联于该将被移除的媒体区。当步骤705的判断结果为“是”时,表示该目前进行处理的实体区段是关联于该将被移除的媒体区,此时进行步骤706,虚拟化层202先将该将被移除的ME的VCSN加1、且通知该ME所系属的子系统的VCSN Agent其加1后的VCSN。在更改VCSN的相关作业完成后,进行步骤707,复制(Copy)或搬移(Move)该目前进行处理的实体区段上的数据至其他该复数媒体区的其中之一。然后取得下一个区段的资讯(步骤708),并回到步骤703,重复进行步骤703到步骤708的流程。当步骤705的判断结果为“否”时,表示该目前进行处理的实体区段并非关联于该将被移除的媒体区,此时进行步骤708,到步骤708取得下一个区段的资讯,并重复之后的流程。
请参照图16,是依据本发明的另一实施例的因增加ME而引发的迁徙作业的流程图。当主控子系统20A的虚拟化层202A接到一新增ME的新增讯息时,首先,找出该新增ME所系属的SAS(VP),寻找过程可以从任一SAS(VP)开始,如果判断结果不是,再寻找另一个SAS(VP)来加以判断;或者是可以多个SAS(VP)同时进行判断。在步骤801中,根据该新增讯息,找出该新增媒体区所系属的该区段分配系统。在步骤802,判断所系属的该区段分配系统中所包含的所有复数区块关联集区段分配串列是否皆已确认。当步骤802的判断结果为“是”时,表示所有该复数区块关联集区段分配串列已完成确认,则此流程结束。然而,当步骤802的判断结果为“否“时,表示该复数区块关联集区段分配串列尚有未完成确认者,则进行步骤803。在步骤803,选择一区块关联集区段分配串列进行确认,判断是否已经到了目前进行确认的SAL的终点(end of list,EOL)。若步骤803的判断结果为“是”,则进行步骤804,取得另一个BAS SAL的资讯,并回到步骤802。若步骤803的判断结果为“否”,则进行步骤805,进一步判断该BAS SAL在与目前进行确认的区段关联的ME中是否有较多的区段数。若步骤805的判断结果为“是”,表示该目前进行确认的实体区段所关联的该媒体区中已使用的实体区段数大于新增媒体区的该实体区段数,则进行步骤806,虚拟化层202先将该新增的ME的VCSN加1、且通知该ME所系属的子系统的VCSN代理人其加1后的VCSN。更改VCSN的相关作业完成后,进行步骤807,开始复制(copy)或搬移(Move)该区段的数据到新增的ME。然后进行步骤808,取得下一个区段的资讯,并回到步骤803,重复进行步骤803到步骤807的流程。如果步骤805的判断结果为“否”,表示该所关联的该媒体区中已使用的实体区段数不大于新增媒体区的该实体区段数,则到步骤808取得下一个区段的资讯,并重复之后的流程。
以上图15与图16所描述的流程是处理只有1个ME移除与1个新ME加入的情况。若是移除或加入第1个ME之后,且图15或图16的流程还在进行中,又移除或加入第2个ME,根据本发明的一实施例,图15或图16的流程将因移除或加入第2个ME而重新开始,也就是该SAS(VP)中的所有SAL需要重新进行确认。
在进行迁徙作业的过程中,主机仍可能随时对进行迁徙作业的ME发出读取/写入数据的IO请求。为避免在迁徙作业的过程中存取到错误的数据,在本发明的一实施例中,每一ME是设定一有效性检查序号(VCSN),每当ME中的一个实体区段上的数据要迁徙之前,主控子系统的虚拟化层必须先更改该ME的VCSN,并通知该ME系属的子系统的VCSN代理人,使得VCSN代理人可以根据VCSN来判断IO请求的有效性。
图17是依据本发明的一实施例的主机10或主机代理人110向主控子系统20A的虚拟化层202A询问VCSN的流程图。图18是依据本发明的一实施例的接受IO请求的VCSN代理人确认其所携带VCSN的有效性的流程图。需说明的是,IO请求是可由主机10或主机10内所包含的代理人110所发出,而以下为简化说明,仅以代理人110发出IO请求做为说明,熟悉该技术领域的人士应当可轻易推得,主机10亦可取代代理人110而发出IO请求,或是以RAID子系统观之,该IO请求是由该主机10所发出。
请同时参照图17与图9。在步骤901,代理人110发出包含一自定的数据分布询问SCSI命令的IO请求向主控子系统20A的虚拟化层202A询问欲存取的目标数据(target data)的实体位置资讯。在步骤902,主控子系统20A的虚拟化层202A在收到询问命令后,则回应代理人110一实体媒体识别码/逻辑区块位址/区块数量/有效性检查序号的清单(list ofphysical ME-ID/LBA/Block-Count/VCSN),该清单含括了所询问的范围,然后结束此一询问流程。在本发明的一实施例中,步骤902在进行回应之前,必须先确认代理人110所询问的目标数据所在的ME是否正在实体区段上的数据进行区段迁徙作业的过程中。如果确认结果为“是”,则主控子系统20A可能延迟回应直到实体区段上的数据区段迁徙作业结束,或是回应一个「Busy」的讯息给代理人110指示它等一下再试一次,或是回复一个指示(例如:reserved VCSN)要求代理人110所发出的IO请求必须发送至主控子系统20A。
请同时参照图18与图6。在步骤903,代理人110根据该清单的资讯对目标数据所在的目标RAID子系统发出IO请求。在步骤904,该IO请求由目标RAID子系统中的VCSN代理人所接收。在步骤905,VCSN代理人将该IO请求中所携带的VCSN与虚拟化层202A通知的VCSN做比较,看两者是否一致,若是一致,表示该IO请求中所携带的VCSN是有效的,反之则是无效。在步骤907,若是步骤905的比较结果是该IO请求中所携带的VCSN是有效的,则VCSN代理人将该IO请求转移给RAID层。在步骤908,RAID层处理完该IO请求后,将处理的结果经由VCSN代理人回复给代理人110。在步骤906,若是步骤905的比较结果是该IO请求中所携带的VCSN不是有效的,则VCSN代理人拒绝该IO请求并结束此一确认流程。
综上所述,代理人110被拒绝存取后,可能会有两种做法:第一种做法,再向主控子系统20A的虚拟化层202A询问正确的VCSN,然后再根据正确的VCSN发出另一IO请求以存取数据,也就是再重复进行一次图17与图18的流程。第二种做法,代理人110放弃直接向ME所在的子系统发出IO请求,而是转而寻求主控子系统20A的虚拟化层202A协助存取数据。
值得注意的是,图17所描述的询问VCSN的流程可能发生在发出IO请求之前或之后,端视代理人110在何时有此需求。举例来说,如果之前已经有IO请求存取过相同区块的数据,则代理人110会有与该数据区块对应的VCSN的记录,此时代理人110可以不要进行图17的询问流程,而是直接根据之前的记录向目标RAID子系统发出IO请求,也就是直接进行图18的流程。若是此IO请求所携带的VCSN为无效而被拒绝,则代理人110可能马上或在下次发出IO请求前,进行图17的询问流程。
请参阅图19,图19是依据本发明的一储存系统架构中的直接媒体区存取功能的一实施例的流程图。在此,主机通过一主机代理人(host agent)来处理IO存取等事项。因此,主机代理人先扫描该些ME来以便得知与该些ME相关的ME组态/位置(configuration/location)等资讯,并据以产生一份清单用以记录ME属性及他们位于哪一个ME服务器之下,如:媒体区识别码对储存节点交互参照表(ME-identifier-to-storage-nodecross-reference table)(步骤2100);然后,主机代理人接收到来自于主机之一IO请求(步骤2102);接着,主机代理人传送一数据位置询问命令(data location query command)给一虚拟池主控者(VPM)来得到被定址数据的实体位置(步骤2104),其中,该数据位置询问命令是由一命令码、一虚拟卷识别码/代号(handle)及欲存取的区块范围(基础区块位址(baseblock address)与区块数(block count))所构成。该虚拟池主控者在接收到该数据位置询问命令后,会发送一数据位置描述码(data locationdescriptor)给主机代理人,其中,该数据位置识别码包含有一数据位置资讯(data location information)(步骤2106);再者,主机代理人依据该数据位置资讯产生一IO请求(步骤2108),其中,在图19中所示,IO请求又称作为IO存取命令(IO access command);接着,主机代理人使用媒体区识别码(ME ID)及该媒体区识别码对储存节点交互参照表来确定所要存取的目标储存节点后,就发送出一IO请求给该目标储存节点,其中,媒体区识别码是被包含于该数据位置资讯中(步骤2110)。该目标储存节点的媒体区服务器查验该IO请求中的有效性检查资讯(Validity CheckInformation,VCI)是否与来自该虚拟卷主控者中的有效性检查资讯(步骤2112及步骤2114)一致;若该IO请求中的有效性检查资讯与来自该虚拟卷主控者中的有效性检查资讯与该虚拟卷主控者中的有效性检查资讯一致,则该目标储存节点的该媒体区服务器执行该IO请求(步骤2116);而若该IO请求中的有效性检查资讯与该虚拟卷主控者中的有效性检查资讯与来自该虚拟卷主控者中的有效性检查资讯不一致,则该目标储存节点的该媒体区服务器回复一错误指示信号(error indication)给该主机代理人,且该主机代理人再次执行上述的步骤2104(步骤2118)。
在本实施例中,该主机代理人并不需要将来自该虚拟卷主控者中的有效性检查资讯储存起来,但是必须于每次发出IO请求之前,先向该虚拟卷主控者发出一数据位置询问命令后,才能向目标ME发出IO请求。
请参阅图20A及图20B,图20A及图20B是依据本发明的一储存系统架构中的直接媒体区存取机制的另一实施例的流程图。在此,主机代理人先扫描该些ME来以便得知与该些ME相关的ME组态/位置(configuration/location)等资讯,并据以产生一份清单用以记录ME属性及他们位于哪一个ME服务器之下,如:媒体区识别码对储存节点交互参照表(ME-identifier-to-storage-node cross-reference table)(步骤2202);然后,主机代理人接收到来自于主机的一IO请求(步骤2204)。然后,主机代理人在发送一IO请求给一储存节点前,会先检查该数据位置资讯是否存在于其快取内存中(步骤2206及步骤2208);若该数据位置资讯不存在于主机代理人的快取内存中,主机代理人传送一数据位置询问命令(data location query command)给一虚拟池主控者(VPM)来得到被定址数据的实体位置(步骤2210),其中,该数据位置询问命令是由一命令码、一虚拟卷识别码/代号(handle)及欲存取的区块范围(基础区块位址(baseblock address)与区块数(block count))所构成。该虚拟池主控者在接收到该数据位置询问命令后,会发送一数据位置描述码给主机代理人,其中,该数据位置识别码包含有一数据位置资讯(data locationinformation)(步骤2212);接着,主机代理人会将该数据位置资讯储存在其快取内存中(步骤2214)并决定是否检查该有效性检查资讯的寿命(步骤2216)。承上步骤2206及步骤2208,若该数据位置资讯存在于主机代理人的快取内存中,主机代理人决定是否检查该有效性检查资讯的寿命(步骤2216)。
承上述的步骤2216,若决定不检查该有效性检查资讯的寿命,该主机代理人依据该数据位置资讯产生一IO请求(步骤2230);接着,主机代理人使用媒体区识别码及该媒体区识别码对储存节点交互参照表来确定所要存取的目标储存节点后,就发送出一IO请求给该目标储存节点,其中,媒体区识别码是被包含于该数据位置资讯(步骤2232);然后,该目标储存节点的媒体区服务器检查该IO请求中的有效性检查资讯(VCI)是否与来自该虚拟卷主控者中的有效性检查资讯(步骤2234及步骤2236)一致。
承上述的步骤2236,若该IO请求中的有效性检查资讯与来自该虚拟卷主控者中的有效性检查资讯与该虚拟卷主控者中的有效性检查资讯一致,则该目标储存节点的该媒体区服务器执行该IO请求(步骤2238);而若该IO请求中的有效性检查资讯与来自该虚拟卷主控者中的有效性检查资讯与该虚拟卷主控者中的有效性检查资讯不一致,则该目标储存节点的该媒体区服务器回复一错误指示信号(error indication)给该主机代理人(步骤2240),且该主机代理人再次将其所属的快取内存中的特定数据位置资讯或全部数据位置资讯视为无效(步骤2242),并再次执行步骤2210。
承上述的步骤2216,当决定检查该有效性检查资讯的寿命,则该主机代理人判定该数据位置资讯的寿命是否已过完(elapsed)(步骤2218);若该数据位置资讯的寿命已过完(即已超过其有效寿命),则该主机代理人将其所属的快取内存中的特定数据位置资讯或全部数据位置资讯视为无效(步骤2220),并再次执行步骤2210;若该数据位置资讯的寿命尚未过完(即尚未超过其有效寿命),则执行步骤2230。
在本实施例中,该主机代理人必须将得自该虚拟卷主控者中的有效性检查资讯储存于一储存装置中,例如一快取内存中,而于每次欲向目标ME发出IO请求之前,先检查该IO请求的数据位置资讯已储存于该储存装置中,若该数据位置资讯已储存于该储存装置中时,可以直接向目标ME发出IO请求而不必向该虚拟卷主控者发出一数据位置询问命令。
在此,针对上述实施例中的有效性检查资讯的查验(步骤2112及步骤2114)作一细部说明。在本发明的有效性检查资讯的查验的一实施例中,该目标储存节点还包含有一有效性检查单元,用以执行下列步骤来检查源自该主机代理人的每一IO请求的有效性。
承上所述,该些步骤包含有:首先,该有效性检查单元接收到来自该主机代理人的一IO请求后,会依据该IO请求所欲存取的ME来选择对应的一ME服务器(server),其中,该IO请求包含有一有效性检查资讯,且该有效性检查资讯还包含有一有效性检查序号。
接着,该有效性检查单元撷取该ME服务器(server)中的一或多个有效性序号中的最新有效性检查序号与该IO请求中的一有效性检查序号进行比对;当该IO请求中的有效性检查序号大于该最新有效性检查序号时,则该有效性检查单元不将该IO请求视一有效的IO请求,并执行上述实施例中的步骤2118;而当该IO请求中的有效性检查序号不大于(i.e.小于或等于)该最新有效性检查序号时,则该有效性检查单元依据该IO请求所欲存取的位址来撷取一有效性检查序号(后称“对应于该位址的该有效性检查序号”),并比对该IO请求中的该有效性检查序号与对应于该位址的该有效性检查序号。
若对应于该位址的该有效性检查序号大于该IO请求中的该有效性检查序号,则该有效性检查单元不将该IO请求视为一有效的IO请求,并执行上述实施例中的步骤2118;而若对应于该位址的该有效性检查序号不大于(i.e.小于或等于)该IO请求中的该有效性检查序号,则该有效性检查单元将该IO请求视为一有效的IO请求,并执行上述实施例中的步骤2116。
在本实施例中所述的步骤2112、2114、2116及2118,在说明图19时,已有说明,故在此不予赘述。在上述有主机代理人的情况下,在该主机向主控子系统发出数据位置询问命令以取得数据位置资讯时,该主控子系统是以数据位置询问命令中的主机LBA利用图8A及图8C中的方式而得到数据位置资讯。
虽然前述的各实施例是以RAID子系统来说明,但,依据本发明的一实施例,该RAID子系统亦可以由没有RAID功能的磁盘阵列子系统(disk arraysubsystem)替代而不影响发明实质。在此情形下,该实体卷是通过该储存虚拟化控制器200而由没有RAID功能的磁盘阵列子系统所直接映射而成。
直接媒体区存取功能的一实施例的详细说明
一种克服某些传统储存系统架构的效能瓶颈的方法是,使主机(包含设置其中的主机代理人,以下同)可以直接发出IO至一储存节点(storagenode),且该储存节点(storage node)中包含数据所在的ME,而非间接地通过一虚拟卷主控者。以上的方法,统称为“直接媒体区存取(Direct MEAccess)”功能。其中,作为该虚拟池主控者的储存节点即为前述的其中设置有虚拟化层202的储存虚拟化控制器200。
为了实施“直接媒体区存取”功能,主机首先必须记录一ME的清单以决定该些ME的属性且找出它们在哪一媒体区服务器(ME Server)之下。这通常是藉由一扫描操作而达成,该扫描操作搜集关于ME组态/位置(configuration/location)的资讯。若是系统中ME组态/位置是固定的,主机只需要在初始化程序时扫描ME组态/位置一次。然而,若是系统中ME组态/位置可能动态地改变,例如一ME的所有权可能由一储存节点转移至另一储存节点,则需要一个机制通知主机(host)有一个改变发生,以便主机可以再做一次扫描。仅在改变后单纯地回复一错误条件(例如:a“UnitAttention”)以回应从主机接收的第一命令,可能不足以避免基于改变前的状态而产生的输出入存取命令被执行,因为目前发出的输出入存取命令可能在主机接收到错误通知之前已经前往媒体区服务器了(说明:在本实施例中,此媒体区服务器本身包含有VCSN代理人的功能,以下同)。比较倾向的做法是:让媒体区服务器拒绝所有的输出入存取命令直到它从主机收到状态改变的确认回应。
其中一种此类机制是,要求主机在对某一目标ME发出任何输出入存取命令之前须先要到该ME的存取许可(access permission)。若是ME组态/位置发生改变,存取许可便会从所有的主机清除掉,如此将导致所有以该ME作为目标的输出入存取命令会随着“存取许可未要求(AccessPermissions Not Requested)”错误资讯而失败。在侦测到此错误条件之时,主机将清除所有与该特定ME关联的状态资讯,不只包括ME组态/位置资讯,亦包括主机快取中所有与该ME关联的数据位置资讯(data locationinformation)。然后主机将重新扫描以得到更新的ME资讯,且向管理该MF的新媒体区服务器重新要求存取许可,得到存取许可之后,输出入存取命令便可重新发出至该新媒体区服务器。
主机与媒体区服务器有效性确认程序与资讯快取储存的一实施例的详细说明
“直接媒体区存取”功能需要建制一通讯协定,让主机可以藉由该协定判定输出入存取命令的目标数据的目前位置。此通讯协定,以下称为“数据位置询问(Data Location Query)”通讯协定,包含发出一询问命令(即“数据位置询问命令”),该询问命令是由一命令码、虚拟卷识别码或代号(handle)、以及欲存取的区块范围(基础区块位址(base block address)与区块数(block count))所构成。该询问命令是由主机发送至“虚拟池主控者(Virtual Pool Master,以下简称为VP Master或VPM)”以得到被定址数据范围的实体位置。回应该询问命令的是一组涵盖全部范围的“数据位置描述码(Data Location Descriptor)”,每一该描述码是由一ME识别码、基础区块位址、区块数与有效性检查资讯(validity checkinformation,VCI)所组成。主机维持一“ME识别码对储存节点交互参照表(ME-identifier-to-storage-node cross-reference table)”,该表使主机可以决定经由哪一储存节点(storage node)可以存取到“数据位置描述码”中所定义的ME。当接收到回应该“数据位置询问”的“数据位置描述码”之后,主机发出一或多个输出入请求(IO requests,或简称为IOs)至储存节点(storage nodes),此是通过“ME识别码对储存节点交互参照表”,藉由交互参照包含于“数据位置码描述码”中的ME识别码对照储存节点识别码(storage node identifiers)而确认。一般来说,一个“数据位置描述码”对应一个IO。如果一组识别码(identifier)识别出相同的ME且其包含的区块范围是连续的,则可以使用单一IO去存取该组识别码所涵盖的所有数据,而不是根据每个识别码都发出一个IO,藉此可以减少存取数据的时间成本(overhead)。
“数据位置描述码”中的有效性确认资讯系用以供“媒体区服务器(Media Extent server,以下简称为ME Server)”判断输出入存取命令中包含的数据位置资讯(ME识别码与区块范围)是否是最新的,其中该输出入存取命令是由主机根据从虚拟池主控者(VPM)回复的“数据位置描述码”中的资讯产生。数据的位置可能因为某些操作而改变,例如:数据位置迁徙,此改变可能发生在虚拟池主控者因回应“数据位置询问”而回复主机数据位置资讯之时至输出入存取命令被媒体区服务器接收到的时间点之间。在此一情况下,假如IO真的为媒体区服务器所执行的话,则可能发生数据损坏,因为输出入存取命令所要存取的位置不是主机想要存取数据的实际位置。虽然假如主机快取储存数据位置资讯以试图减少其发出至虚拟池主控者的“数据位置询问”命令的数量时,非常有可能经常遭遇到上述输出入存取命令存取位置错误而导致数据损坏的事件,但是即使主机在接收到数据位置资讯后立即产生并发出与“数据位置询问”命令的结果关联的输出入存取命令,仍有可能发生此类事件。
“有效性检查资讯”典型地包含与一虚拟池的成员ME关联的一有效性检查序号(Validity Check Sequence Number,以下简称为VCSN)。每次当ME有任何数据的实际位置改变,或是一虚拟卷(VV)在虚拟池主控者的数据发生改变或操作状态发生改变,或虚拟池(virtual pool)本身的操作状态发生改变,且此改变需要主机在发出输出入存取命令之前再次询问虚拟池主控者之时,虚拟池主控者就会将VCSN加1。如果VCSN可能会发生绕回(wrap around)的情形而使得VCSN在增加足够次数后可能会再发生相同的值,则虚拟池主控者可以实施一由主机监视的VCI有效寿命。如果当主机发出一数据位置询问命令(data location query command)之时与目前时间之间,已经过一段大于VCI有效寿命的时间时,主机将先主动地使VCI失效且再次询问虚拟池主控者与欲存取数据范围关联的最新VCI。此有效寿命资讯可以是一个事先定义的值,由主机藉由一单独命令或一组命令向虚拟池主控者询问,或者由“数据位置描述码”本身中的VCI回复。
“直接媒体区存取”功能,以最简单的实施来说,每执行一次IO存取,至少需要发出两个命令到储存节点群(storage node group)。首先发出的命令是数据位置询问命令,其被发送至扮演虚拟池主控者角色的储存节点以决定数据位于哪一个ME。然后,一组包含一至多个实际的读/写命令(actual read/write command)被发至作为特定媒体区服务器的储存节点。典型地,实际的读/写命令会被分发给储存节点群(storage node group)中的数个储存节点,而数据位置询问命令一定是都发送至虚拟池主控者。如此的结果是,如果虚拟池主控者处理数据位置询问命令的能力已经到了所能负担的极限的话,则可能终将成为效能瓶颈之所在。
为了减少一定要发出的数据位置询问命令的数量,以减少虚拟池主控者的负担,主机可以将数据位置询问命令的回应结果储存于快取(cache)中,以备未来可能的参照之用。若是采用这种做法,主机将先检查其快取中的数据位置资讯,以确认将要发送的IO所欲存取的区块位址范围所对应的数据位置资讯是否已出现在快取之中。如果该区块位址范围所对应的数据位置资讯已出现在快取中,则主机不须发出数据位置询问命令至虚拟池主控者,因为决定数据位置的资讯已经存在于主机的快取之中。在这种情况下,主机将根据其快取的位置资讯直接产生一或多个输出入存取命令并且直接发送至个别媒体区服务器所在的个别的储存子系统。
如果一个媒体区服务器侦查到输出入存取命令中的资讯与其从虚拟池主控者接收到的资讯并不一致,该媒体区服务器将会回复一个错误发生指示(error indication)给主机。根据此错误资讯,主机可能使其数据位置资讯快取(data location information cache)中的某些特定资讯失效,其中该定资讯是与导致错误回复的区块位址为相关联的(associated);或者,它可能使快取中的所有资讯都失效,无论其区块位址为何。无论是哪一种情况,主机都必须再发出数据位置询问命令至虚拟池主控者以得到最新的数据位置资讯,该最新的数据位置资讯于是可以储存于主机的快取之中,然后根据此更新后的资讯发出一或多个输出入存取命令至个别的媒体区服务器。
典型地,当输出入存取命令中携带的有效性检查资讯与从虚拟池主控者接收到的有效性检查资讯(VCI)之间的不一致被侦测到时,媒体区服务器将回复一错误资讯,该错误资讯指示主机只需要使储存于快取中且与输出入存取命令所携带的一或多个区块位址关联的数据位置资讯失效即可。可能的情形是,例如,在主机由虚拟池主控者取得数据位置资讯之时至输出入存取命令被发出的时间点之间,输出入存取命令所定址的数据中的某些的位置已经改变(例如:起因于迁徙操作)。
然而,在有些情况下,可能有必要使快取中所有的数据位置资讯皆失效。举例来说,假如媒体区服务器无法判断输出入存取命令所携带的VCI是否有效,因为该媒体区服务器不再有该特定VCI的记录,则媒体区服务器可能会回复主机一个错误资讯,指出与引发此错误资讯的VCI符合的VCI数据所属的所有快取数据资讯应该都使其失效。另一种情况是,假如虚拟池主控者重设(reset)或电源关后重开(power-cycled),虚拟池主控者可能会遗失所有之前产生的VCI的记录。在这种情况下,虚拟池主控者必须通知所有的媒体区服务器之前由其得到的所有有效性检查资讯都须使其失效,并且主机任何尝试发出的输出入存取命令都须拒绝,直到主机已经执行一个程序,该程序包含使所有快取储存的数据位置资讯皆无效。
除了从媒体区服务器接收到错误发生指示时使已快取储存的关联的数据位置资讯失效之外,主机典型地将再发送出一数据位置询问命令至虚拟池主控者以得到输出入存取命令所涵盖区块位址范围的最新数据位置资讯。假如所回复的任何数据位置描述码中的VCI中的VCSN等同于在媒体区服务器中产生错误的VCI的VCSN,由于主机知道媒体区服务器并不认为该VCSN是有效的,主机可以发出一指示(indication)给虚拟池主控者表示其可能发现在虚拟池主控者与媒体区服务器之间有一关于该特定区块位址范围的不一致现象。收到此指示(indication)之后,虚拟池主控者将典型地进行一与媒体区服务器的再同步程序。该再同步程序的一可能实施例可能包含发出一命令至媒体区服务器以清除其VCI快取,并且,可以在同一命令中执行或是在随后的命令执行,设立包含最新VCSN的最新VCI至媒体区服务器使得媒体区服务器可以更新其快取中的资讯。
以上所述的再同步程序,称为“有效性检查资讯再同步程序(ValidityCheck Information Re-synchronization Procedure)”,一般来说只要虚拟池主控者怀疑媒体区服务器的VCI不与之同步,也会随时进行。举例来说,当虚拟池主控者开机(power on)、重设(reset)或电源关后重开(powercycled)之时,因为其不知该些有呈现媒体区(ME)供其管理的媒体区服务器的目前状态,虚拟池主控者一般会进行此再同步程序以确认媒体区服务器的VSI有重设回与虚拟池主控者的初始状态相同。在一冗余控制器对的组态下,若是失效转移(failover)程序发生,须让第二控制器接管原本做为虚拟池主控者的主要控制器的工作,则亦会因相同的原因而进行此一再同步程序。
以下两件事是重要的:媒体区服务器发出讯息给所有主机要求其清除与目标ME关联的存取许可做为“有效性检查资讯再同步程序”的一部分,以及主机在侦测到“存取许可未要求”错误资讯时会清除(purge)所有快取储存中关于该特定ME的数据位置资讯。这至少需要涵盖到以下的情形:虚拟池主控者由一储存节点变换至另一个,此可能发生在一冗余控制器储存子系统中,当原本做为虚拟池主控者的控制器失效而导致另一个控制器接管其角色之时。因为另一个控制器可能没有与该特定ME关联的任何VCI状态的记录,它可能会开始由VCI初始状态来更新该ME的VCI。在虚拟池初始化作业期间,新的虚拟池主控者将与该特定ME关联的媒体区服务器进行上述的再同步程序,以确定该媒体区服务器上快取储存的VCI与新虚拟池主控者记录的VCI是同步的。然而,如果主机持续发出输出入存取命令,且该些输出入存取命令包含由原本虚拟池主控者得到的VCI,则可能该些资讯对媒体区服务器而言似乎是有效的,因此即使用来产生输出入存取命令的数据位置资讯可能已经过时了,该些输出入存取命令亦可能会不慎地被接受。为避免此种可能导致严重数据损坏的情况,媒体区服务器可以要求所有主机清除与该特定ME相关的存取许可做为“有效性检查资讯再同步程序”的一部分。同时,在侦测到“存取许可未要求”错误资讯时,其中该错误资讯是因接收到来自主机的任何以该特定ME为目标的输出入存取命令而传递出去,主机会清除快取储存中所有与该ME关联的数据位置资讯,且再发出数据位置询问命令至虚拟池主控者并于俟后才再发出以该ME为目标的任何输出入存取命令。在虚拟池主控者的角色由一储存节点转移至另一储存节点之后,此将确定输出入存取命令是依据最新的数据位置资讯而再发送至该媒体区服务器。
为简化实施内容,一般来说虚拟池主控者总是在“数据位置描述码”中回复VCI的VCSN的目前值,而不是要改变之前的最后的VCSN的值。当虚拟池主控者因一关联的特定区块范围的改变发生而增加VCSN的值时,其发送该区块范围的更新的VCI至该区块范围所在的ME的媒体区服务器。该媒体区服务器记录该区块范围的更新的VCI。在由主机接收到一输出入存取命令时,媒体区服务器比较该输出入存取命令中的VCI对照它自己记录的VCI。包含于该输出入存取命令的VCI中的VCSN被拿来与从虚拟池主控者接收到的最新VCSN做比较。假如前者比后者大,表示不在有效的范围内且该输出入存取命令会被拒绝。假如前者小于或等于后者,表示其被视为在有效范围之内,然后该输出入存取命令的VCI中的VCSN更被拿来与媒体区服务器中为该特定区块范围记录的VCSN做比较。如果前者小于后者,则表示该区块范围在主机由虚拟池主控者得到该VCI之后有发生改变,因而使得该VCI无效,所以拒绝该输出入存取命令。另一方面,如果前者大于或等于后者,则表示该输出入存取命令的VCI一定是在该区块范围发生改变之后得到,此意谓着VCI有效,且该输出入存取命令可以被接受且正常处理。
典型地,由于资源有限,一个媒体区服务器只能够保有从虚拟池主控者接收到的有限数量的有效性检查资讯。由于这样的原因,媒体区服务器可能会采取一快取机制(caching mechanism),以试图并最大化可以正确地决定一由主机接收到的输出入存取命令的有效性的可能性。其中一此类快取机制是单纯地保持最近由虚拟池主控者接收到的有效性检查资讯。如果有新资讯进来,且没有足够的资源可以储存该新资讯,则目前储存的最旧的资讯会被从快取中清除(purge),以空出足够的空间储存该新资讯。由于从虚拟池主控者接收到的有效性检查资讯所包含的VCSN是循序增加,储存于此快取中的VCI会包含一特定范围中的所有VCSN。就其而论,在检查包含于主机输出入存取命令的有效性检查资讯时,只有三种可能的状况需要处理,各别是:在输出入存取命令中的有效性检查资讯的VCSN小于媒体区服务器快取储存的有效性检查资讯的VCSN的最小值、介于媒体区服务器快取储存的有效性检查资讯的VCSN的最小值与最大值之间、以及大于媒体区服务器快取储存的有效性检查资讯的VCSN的最大值。
如果在输出入存取命令中的有效性检查资讯的VCSN是介于媒体区服务器快取储存的有效性检查资讯的VCSN的最小值与最大值之间,则媒体区服务器检查输出入存取命令所涵盖的区块位址是否出现在其VCI快取之中。假如输出入存取命令所涵盖的区块位址都出现在媒体区服务器的VCI快取之中,并且媒体区服务器记录的关联的VCSN也都小于或等于包含于输出入存取命令的有效性检查资讯的对应VCSN,则该输出入存取命令会被视为有效且被接受。然而,若是有任何输出入存取命令涵盖的区块位址没有出现在媒体区服务器的VCI快取之中,或者有任何记录在媒体区服务器的VCI快取的VCSN,该些VCSN与输出入存取命令涵盖的该些区块位址有关联,且该些VCSN中的任一大于输出入存取命令中包含的有效性检查资讯的对应VCSN,则该特定的VCSN会被判定为失效(stale)或无效(invalid)。在此情形下,媒体区服务器会典型地回复“无效的有效性检查资讯(“InvalidValidity Check Information”)”错误资讯,指出与该特定区块位址关联的数据位置资讯是无效的,因此主机只需要使该特定资讯无效。
须注意的是,可能在媒体区服务器的VCI快取中储存有多组的有效性检查资讯皆对应到同一特定区块范围。可能的原因是,该区块范围的位置可能已经有多于一次的改变。因此,在执行上述的检查作业时,若是媒体区服务器的VCI快取中出现一定址的区块范围对应有多组的有效性检查资讯,则包含于输出入存取命令中的有效性检查资讯的VCSN将被拿来与媒体区服务器的VCI快取中该些有相同区块范围的项目中VCSN为最大者的项目(entry)做比较。为最佳化资源的使用效率,媒体区服务器可能会使其VCI快取中的某一或某些项目失效并再利用其储存空间,该某一或某些项目的区块范围有被其他具有更大VCSN的项目涵盖到。此再利用功能将导致一个结果,媒体区服务器的VCI快取中可能有些介于最大与最小VCSN之间的项目不会出现在快取之中。
如果任何与输出入存取命令中的有效性检查资讯的任何区块位址关联的VCSN是小于媒体区服务器快取储存的有效性检查资讯的VCSN的最小值,则媒体区服务器无法判定输出入存取命令中的有效性检查资讯的有效性,因此,媒体区服务器将典型地回复“有效性检查资讯有效性无法决定(“Validity Check Information validity undetermined”)”错误资讯,指出所有主机端快取储存的数据位置资讯,且该数据位置资讯有一关联的VCSN等于考虑中的VCSN,皆都应使其失效。
如果任何与输出入存取命令中的有效性检查资讯的任何区块位址关联的VCSN是大于媒体区服务器快取储存的有效性检查资讯的VCSN的最大值,媒体区服务器将典型地回复“有效性检查资讯超出范围(“Validity CheckInformation out-of-range”)”错误资讯,指出所有主机端快取储存的数据位置资讯都应使其失效,因为在主机和媒体区服务器之间出现严重的不一致,此不一致可能表示主机和储存子系统之间严重缺乏同步。
以上后两种状况的一或两者,媒体区服务器可能选择简单地回应“无效的有效性检查资讯”错误资讯,指出与该特定区块位址关联的数据位置资讯是无效的,以求减少主机必须处理的事件数量,从而简化技术的实施内容。另一方面,主机也可以简单地不去分辨不同的错误条件,直接对与该特定区块位址关联的数据位置资讯使其失效,并不去理会媒体区服务器回复的是那一种错误资讯。然而另一个在第二种状况的可能实施例是媒体区服务器回复“有效性检查资讯超出范围”错误资讯,指出所有快取储存的数据位置资讯,无论其关联的VCSN为何,都应使其失效,或者主机从媒体区服务器接收到“有效性检查资讯有效性无法决定”错误资讯时使所有快取储存的数据位置资讯都失效。
横跨媒体区的数据分布的一实施例的详细说明
当主机发出一输出入存取命令以写入数据至一虚拟卷(VV)且还没有实体区块被分配去容置该数据范围时,虚拟池主控者必须在一或多个组成该虚拟池的ME上配置实体区块。可能是最简单的配置计划是,首先由一个ME配置区块,当该ME满了之后再开始由第二个ME配置,以此类推。然而由效能的观点来看,让输出入存取命令存取的数据散布于多个ME以分散负担至多个媒体区服务器与ME是较有利的。具有将数据散布于多个媒体区服务器且/或ME的特性的虚拟池或虚拟卷,是具有一“分散式数据(DistributedData)”的属性。
典型地,当一虚拟池或虚拟卷具有一“分散式数据(Distributed Data)”的属性时,虚拟池主控者将以平均分散数据在虚拟池的所有的MEs且/或媒体区服务器的方式,配置实体空间给被写入的虚拟卷(VV)以容置数据。在大部分的情况中,数据分布得越平均,则MEs且/或媒体区服务器所分摊的负担越平均,也因此效能越好。
一既简单又可让IO存取在大部分的IO负担条件下可以均匀分散的数据分布方案是,单纯地将数据分段(striping)储存于所有的MEs,以下称为“分段数据分布(Striped Data Distribution)”。虚拟卷(VV)的可定址空间被划分为固定长度的区块,其中第一个区块位于第一个ME、第二个区块位于第二个ME,以下以此类推,直到抵达最后一个ME,则下一个区块又回去设置在第一个ME、再下一个区块设置在第二个ME,以下以此类推。在这种分布的下,存取范围小于一个区块的输出入存取命令将只在一个ME、或者最多在二个ME存取数据(如果数据范围刚好跨越两个区块)。在这些情况之下,以多个同时发生的独立的IO存取负担,虚拟池中所有的MEs将近乎平均地被存取,因而改善了效能。对于那些一次横跨多个区块而存取大数据的输出入存取命令,每一此命令将导致同时存取多个MEs,由于同时存取与数据传输,此将减少完成该命令所需的时间,从而改善效能。
当一新的ME增加至一虚拟池中,需要进行数据迁徙以实施“分段数据分布”,以便将一些数据分散至新的ME。此数据迁徙可能不只需要由现存的MEs移动数据至新的ME,亦可能需要重新分配数据至所有现存的MEs,以便维持虚拟池中所有MEs的数据分布的分段(striped)特性。因此,“分段数据分布”的实施不只在当ME成员被移出虚拟池时需要做数据迁徙,当有新MEs加入虚拟池时亦需要做数据迁徙。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的方法及技术内容作出些许的更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (17)

1.一种在一储存系统架构下的数据存取方法,该储存系统架构包含有一主机及多个储存节点,其特征在于该方法包含以下步骤:
检查所欲存取的一输出入存取命令的一数据位置资讯是否出现在该主机的一快取内存中;
若该数据位置资讯出现在该主机的该快取内存中,则该主机依据该数据位置资讯发送该输出入存取命令至该些储存节点中的一目标储存节点,其中,该输出入存取命令包含一第一有效性检查资讯(VCI);
该目标储存节点利用该第一有效性检查资讯检查该输出入存取命令的有效性,以判断该输出入存取命令位址的正确性;以及
若该输出入存取命令为有效命令,则该目标储存节点执行该输出入存取命令。
2.根据权利要求1所述的方法,其特征在于其中还包含有:
提供一有效性检查序号代理人(VCSN agent)于该目标储存节点,用以检查该输出入存取命令中的该第一有效性检查资讯的有效性。
3.根据权利要求1所述的方法,其特征在于其中还包含有:
若该数据位置资讯不在该主机的该快取内存中,则该主机产生一数据位置询问命令给该些储存节点中的一主控储存节点;
该主控储存节点依据该数据位置询问命令回复该数据位置资讯给该主机,且该数据位置资讯中包含有该第一有效性检查资讯(VCI);
该主机更新位于该快取内存中的该数据位置资讯;以及
该主机依据该数据位置资讯发送一输出入存取命令至该些储存节点中的该目标储存节点,其中,该输出入存取命令包含该第一有效性检查资讯(VCI)。
4.根据权利要求1所述的方法,其特征在于其中还包含有:
若该输出入存取命令非为有效命令,则该目标储存节点回传一错误发生讯息给该主机。
5.根据权利要求1所述的方法,其特征在于其中还包含有:
当该主机进行初始化时,扫描该些储存节点的储存空间来产生一媒体区识别码对储存节点交互参照表,并依据一媒体区识别码(ME ID)及该媒体区识别码对储存节点交互参照表来确定该目标储存节点,其中,该数据位置资讯包含有该媒体区识别码。
6.根据权利要求1或3所述的方法,其特征在于其中检查该输出入存取命令的有效性的该步骤还包含:
该目标储存节点检查被包含于该输出入存取命令的该第一有效性检查资讯与来自于该主控储存节点的一第二有效性检查资讯间的一致性。
7.根据权利要求6所述的方法,其特征在于其中还包含:
若该第一有效性检查资讯与该第二有效性检查资讯不一致时,则该目标储存节点回复一错误发生讯息(error indication)给该主机。
8.根据权利要求1或3所述的方法,其特征在于其中还包含:
该目标储存节点检查该输出入存取命令中的该第一有效性检查资讯的一寿命。
9.根据权利要求8所述的方法,其特征在于其中还包含:
若该第一有效性检查资讯的该寿命为超过一有效寿命时,则使位于该主机中的该快取内存中的该数据位置资讯或所有数据位置资讯无效,且该主机产生一数据位置询问命令给该些储存节点的该主控储存节点;以及
该主控储存节点依据该数据位置询问命令回复该数据位置资讯给该主机,且该数据位置资讯中包含一第一有效性检查资讯(VCI)。
10.一种在一储存系统架构下的数据存取方法,该储存系统架构包含有一主机及多个储存节点,其特征在于该方法包含以下步骤:
该主机传送一数据位置询问命令给该些储存节点的一主控储存节点;
当该主控储存节点接收到该数据位置询问命令时,该主控储存节点传送一数据位置资讯给该主机,其中,该数据位置资讯中包含一第一有效性检查资讯(VCI);
该主机依据该数据位置识别码传送一输出入存取命令给该些储存节点中的一目标储存节点,其中,该输出入存取命令包含该第一有效性检查资讯(VCI);
该目标储存节点利用该第一有效性检查资讯检查该输出入存取命令的有效性,以判断该输出入存取命令位址的正确性;以及
若该输出入存取命令为有效命令,则该目标储存节点执行该输出入存取命令。
11.根据权利要求10所述的方法,其特征在于其还包含有:
提供一有效性检查序号代理人于该目标储存节点,用以检查该输出入存取命令中的该第一有效性检查资讯的有效性。
12.根据权利要求10所述的方法,其特征在于其还包含有:
若该输出入存取命令非为有效命令,则该目标储存节点传送一错误发生讯息给该主机。
13.根据权利要求10所述的方法,其特征在于其还包含有:
当该主机进行初始化时,扫描该些储存节点的储存空间来产生一媒体区识别码对储存节点交互参照表。
14.根据权利要求13所述的方法,其特征在于其还包含有:
依据一媒体区识别码(ME ID)及该媒体区识别码对储存节点交互参照表来确定该目标储存节点,其中,该数据位置资讯包含有该媒体区识别码。
15.根据权利要求10所述的方法,其特征在于其中检查该输出入存取命令的有效性的该步骤还包含:
该目标储存节点比对该输出入存取命令中的该第一有效性检查资讯(VCI)与来自该主控储存节点的一第二有效性检查资讯。
16.根据权利要求15所述的方法,其特征在于其中比对该第一有效性检查资讯与该第二有效性检查资讯的该步骤还包含:
若该第一有效性检查资讯与该第二有效性检查资讯为一致,则该输出入存取命令为有效命令。
17.根据权利要求15所述的方法,其特征在于其中比对该第一有效性检查资讯与该第二有效性检查资讯的该步骤还包含:
若该第一有效性检查资讯与该第二有效性检查资讯不为一致,则该输出入存取命令非为有效命令。
CN201110438928.4A 2009-01-23 2010-01-23 在一储存系统架构下产生一虚拟卷的数据存取方法 Active CN102681789B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14665909P 2009-01-23 2009-01-23
US61/146,659 2009-01-23
US18557809P 2009-06-09 2009-06-09
US61/185,578 2009-06-09

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2010101182352A Division CN101788890B (zh) 2009-01-23 2010-01-23 在一储存系统架构下产生一虚拟卷的方法及数据存取方法

Publications (2)

Publication Number Publication Date
CN102681789A true CN102681789A (zh) 2012-09-19
CN102681789B CN102681789B (zh) 2015-03-25

Family

ID=42170380

Family Applications (3)

Application Number Title Priority Date Filing Date
CN2010101182348A Active CN101819506B (zh) 2009-01-23 2010-01-23 执行储存虚拟化的储存子系统及储存系统架构及其方法
CN2010101182352A Active CN101788890B (zh) 2009-01-23 2010-01-23 在一储存系统架构下产生一虚拟卷的方法及数据存取方法
CN201110438928.4A Active CN102681789B (zh) 2009-01-23 2010-01-23 在一储存系统架构下产生一虚拟卷的数据存取方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN2010101182348A Active CN101819506B (zh) 2009-01-23 2010-01-23 执行储存虚拟化的储存子系统及储存系统架构及其方法
CN2010101182352A Active CN101788890B (zh) 2009-01-23 2010-01-23 在一储存系统架构下产生一虚拟卷的方法及数据存取方法

Country Status (4)

Country Link
US (4) US8510508B2 (zh)
EP (2) EP2211262A3 (zh)
CN (3) CN101819506B (zh)
TW (3) TWI514147B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095700A (zh) * 2015-04-29 2016-11-09 Emc公司 在存储系统中复制和使用网格层级元数据的方法和系统
CN110096219A (zh) * 2018-01-31 2019-08-06 伊姆西Ip控股有限责任公司 从驱动器组生成的驱动器区段池的有效容量

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4958739B2 (ja) * 2007-11-09 2012-06-20 株式会社日立製作所 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
JP5112246B2 (ja) * 2008-10-09 2013-01-09 株式会社日立製作所 ストレージシステム及び通信方法
US8225039B2 (en) * 2009-10-09 2012-07-17 Hitachi, Ltd. Storage controller and virtual volume control method
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US8386834B1 (en) * 2010-04-30 2013-02-26 Network Appliance, Inc. Raid storage configuration for cached data storage
CN102419694A (zh) * 2010-09-27 2012-04-18 智微科技股份有限公司 存取储存装置的方法与电子系统
WO2012114492A1 (ja) * 2011-02-24 2012-08-30 株式会社日立製作所 計算機システム、及びその管理方法、並びにプログラム
US8452819B1 (en) * 2011-03-22 2013-05-28 Amazon Technologies, Inc. Methods and apparatus for optimizing resource utilization in distributed storage systems
WO2013070273A1 (en) * 2011-04-01 2013-05-16 Nexsan Corporation Journaling raid system
CN102841758B (zh) * 2011-06-20 2015-09-30 钜贯德科技股份有限公司 高效能虚拟磁盘管理系统
US9417821B2 (en) 2011-09-30 2016-08-16 Intel Corporation Presentation of direct accessed storage under a logical drive model
JP2013122691A (ja) * 2011-12-12 2013-06-20 Fujitsu Ltd 割り当て装置およびストレージ装置
US9838269B2 (en) * 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
WO2013160939A1 (en) * 2012-04-24 2013-10-31 Hitachi, Ltd. Backup system and backup method
US8930374B2 (en) 2012-06-29 2015-01-06 Nokia Corporation Method and apparatus for multidimensional data storage and file system with a dynamic ordered tree structure
US8856079B1 (en) * 2012-09-28 2014-10-07 Emc Corporation Application programming interface for efficient object information gathering and listing
CN103034567B (zh) * 2012-12-06 2015-09-09 华为技术有限公司 发现并修复损坏数据的装置和方法
CN103870398B (zh) * 2012-12-11 2017-04-26 晨星软件研发(深圳)有限公司 存储器存取权限控制方法与相关存储器管理系统
CN103049521B (zh) * 2012-12-19 2015-11-11 广东电子工业研究院有限公司 可实现多属性复合条件查询的虚拟表索引系统及方法
US9514151B1 (en) 2012-12-21 2016-12-06 Emc Corporation System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US9591099B1 (en) 2012-12-21 2017-03-07 EMC IP Holding Company LLC Server connection establishment over fibre channel using a block device access model
US9647905B1 (en) 2012-12-21 2017-05-09 EMC IP Holding Company LLC System and method for optimized management of statistics counters, supporting lock-free updates, and queries for any to-the-present time interval
US9531765B1 (en) 2012-12-21 2016-12-27 Emc Corporation System and method for maximizing system data cache efficiency in a connection-oriented data proxy service
US9473590B1 (en) 2012-12-21 2016-10-18 Emc Corporation Client connection establishment over fibre channel using a block device access model
US9563423B1 (en) 2012-12-21 2017-02-07 EMC IP Holding Company LLC System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US9473591B1 (en) * 2012-12-21 2016-10-18 Emc Corporation Reliable server transport over fibre channel using a block device access model
US9712427B1 (en) 2012-12-21 2017-07-18 EMC IP Holding Company LLC Dynamic server-driven path management for a connection-oriented transport using the SCSI block device model
US10445229B1 (en) * 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9235471B2 (en) * 2013-04-29 2016-01-12 Netapp, Inc. Background initialization for protection information enabled storage volumes
TW201445429A (zh) * 2013-05-22 2014-12-01 Asmedia Technology Inc 磁碟陣列系統及資料處理方法
CN104301345B (zh) * 2013-07-17 2018-04-27 阿里巴巴集团控股有限公司 一种Cache集群中删除数据的方法及系统
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US10261960B2 (en) 2014-09-12 2019-04-16 Scality, S.A. Snapshots and forks of storage systems using distributed consistent databases implemented within an object store
US10366070B2 (en) 2015-02-20 2019-07-30 Scality S.A. Locking and I/O improvements of systems built with distributed consistent database implementations within an object store
US10248682B2 (en) 2015-02-20 2019-04-02 Scality, S.A. Object storage system capable of performing snapshots, branches and locking
WO2015145617A1 (ja) * 2014-03-26 2015-10-01 株式会社日立製作所 ストレージシステム及び記憶制御方法
US9348526B2 (en) * 2014-03-28 2016-05-24 Scale Computing, Inc. Placement engine for a block device
US10235053B1 (en) * 2014-03-31 2019-03-19 Emc Corporation Method and system for using host driver for flexible allocation fast-sideways data movements
US9612769B1 (en) * 2014-06-30 2017-04-04 EMC IP Holding Company LLC Method and apparatus for automated multi site protection and recovery for cloud storage
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
WO2016033718A1 (zh) 2014-09-01 2016-03-10 华为技术有限公司 访问文件的方法、装置和存储系统
SG11201701365XA (en) 2014-09-01 2017-03-30 Huawei Tech Co Ltd File access method and apparatus, and storage system
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
WO2016056815A1 (ko) 2014-10-06 2016-04-14 엘지전자 주식회사 무선 통신 시스템에서 nbifom에 관련된 신호 송수신 방법 및 이를 위한 장치
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US10067688B2 (en) * 2015-01-23 2018-09-04 Qualcomm Incorporated Storage resource management in virtualized environments
WO2016122514A1 (en) * 2015-01-29 2016-08-04 Hewlett Packard Enterprise Development Lp Communications over a serial attached small computer interface (sas)
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US20160259573A1 (en) * 2015-03-03 2016-09-08 International Business Machines Corporation Virtual tape storage using inter-partition logical volume copies
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US20170017420A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US20170017414A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Implementing Hierarchical Distributed-Linked Lists For Network Devices
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10275160B2 (en) 2015-12-21 2019-04-30 Intel Corporation Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller
US10013168B2 (en) 2015-12-24 2018-07-03 Intel Corporation Disaggregating block storage controller stacks
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
JP2018010507A (ja) * 2016-07-14 2018-01-18 富士通株式会社 メモリ管理プログラム、メモリ管理方法及びメモリ管理装置
US10200376B2 (en) 2016-08-24 2019-02-05 Intel Corporation Computer product, method, and system to dynamically provide discovery services for host nodes of target systems and storage resources in a network
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10176116B2 (en) 2016-09-28 2019-01-08 Intel Corporation Computer product, method, and system to provide discovery services to discover target storage resources and register a configuration of virtual target storage resources mapping to the target storage resources and an access control list of host nodes allowed to access the virtual target storage resources
TWI607303B (zh) * 2016-10-14 2017-12-01 喬鼎資訊股份有限公司 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法
TWI587152B (zh) * 2016-10-26 2017-06-11 先智雲端數據股份有限公司 用於延長雲端服務系統中磁碟預期壽命值的方法及使用該方法的系統
CN106681660B (zh) * 2016-12-17 2020-02-07 郑州云海信息技术有限公司 Io调度方法及io调度装置
US10282094B2 (en) * 2017-03-31 2019-05-07 Samsung Electronics Co., Ltd. Method for aggregated NVME-over-fabrics ESSD
CN108733308B (zh) * 2017-04-17 2021-06-22 伊姆西Ip控股有限责任公司 用于管理盘池的方法和设备
US10922303B1 (en) * 2017-08-17 2021-02-16 Amazon Technologies, Inc. Early detection of corrupt data partition exports
US10579288B2 (en) * 2017-08-31 2020-03-03 Micron Technology, Inc. Prioritized security
US10628200B2 (en) * 2017-11-02 2020-04-21 Red Hat Israel, Ltd. Base state for thin-provisioned volumes
JP6967959B2 (ja) * 2017-12-08 2021-11-17 キオクシア株式会社 メモリシステムおよび制御方法
CN109976662B (zh) * 2017-12-27 2022-06-14 浙江宇视科技有限公司 数据存储方法、装置及分布式存储系统
US10725941B2 (en) 2018-06-30 2020-07-28 Western Digital Technologies, Inc. Multi-device storage system with hosted services on peer storage devices
US10409511B1 (en) * 2018-06-30 2019-09-10 Western Digital Technologies, Inc. Multi-device storage system with distributed read/write processing
US11249852B2 (en) 2018-07-31 2022-02-15 Portwonx, Inc. Efficient transfer of copy-on-write snapshots
US10592144B2 (en) 2018-08-03 2020-03-17 Western Digital Technologies, Inc. Storage system fabric with multichannel compute complex
US11354060B2 (en) 2018-09-11 2022-06-07 Portworx, Inc. Application snapshot for highly available and distributed volumes
US11061604B2 (en) 2018-09-28 2021-07-13 Infortrend Technology, Inc. Method and storage system architecture for accessing data by means of a compatible module
CN111124250B (zh) 2018-10-30 2023-11-21 伊姆西Ip控股有限责任公司 用于管理存储空间的方法、设备和计算机程序产品
CN111522499B (zh) 2019-02-01 2023-08-08 香港商希瑞科技股份有限公司 运维数据读取装置及其读取方法
US11132138B2 (en) 2019-09-06 2021-09-28 International Business Machines Corporation Converting large extent storage pools into small extent storage pools in place
US10901645B1 (en) 2019-09-06 2021-01-26 International Business Machines Corporation Converting small extent storage pools into large extent storage pools in place
US11494128B1 (en) 2020-01-28 2022-11-08 Pure Storage, Inc. Access control of resources in a cloud-native storage system
CN113625937A (zh) * 2020-05-09 2021-11-09 鸿富锦精密电子(天津)有限公司 存储资源处理装置及方法
CN112621719B (zh) * 2020-12-11 2022-09-02 珠海格力电器股份有限公司 示教器系统文件保护方法、装置、存储介质及示教器
US11531467B1 (en) 2021-01-29 2022-12-20 Pure Storage, Inc. Controlling public access of resources in a secure distributed storage system
US11842083B2 (en) * 2021-02-03 2023-12-12 Infortrend Technology, Inc. Storage system architecture with dual storage virtualization controllers and the data access method thereof
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
US11733922B2 (en) 2021-05-06 2023-08-22 EMC IP Holding Company LLC Method for data reconstruction in a RAID system having a protection pool of storage units
US11748016B2 (en) 2021-05-06 2023-09-05 EMC IP Holding Company LLC Method for adding disks in a raid system having a protection pool of storage units
US11640343B2 (en) * 2021-05-06 2023-05-02 EMC IP Holding Company LLC Method for migrating data in a raid system having a protection pool of storage units
JP2023000085A (ja) * 2021-06-17 2023-01-04 キオクシア株式会社 メモリシステム及び情報処理システム
US11782791B2 (en) * 2021-08-25 2023-10-10 Western Digital Technologies, Inc. System and method for memory hang recovery using a distributed power management system
CN115237351B (zh) * 2022-08-02 2023-08-15 苏州启恒融智信息科技有限公司 Nand块动态重映射、读写命令处理方法及存储设备
TWI815735B (zh) * 2022-11-21 2023-09-11 中華電信股份有限公司 一種具備空間回收之序列化儲存系統、方法及其電腦可讀媒介

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725169A (zh) * 2004-07-19 2006-01-25 普安科技股份有限公司 储存虚拟化控制器主机端输出入请求绕送的方法
CN1849577A (zh) * 2003-08-14 2006-10-18 克姆佩棱特科技公司 虚拟磁盘驱动系统和方法
US20080086616A1 (en) * 2006-10-04 2008-04-10 Masayasu Asano Computer system, data migration monitoring method and data migration monitoring program

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3181398B2 (ja) * 1992-10-06 2001-07-03 三菱電機株式会社 アレイ型記録装置
US6857059B2 (en) * 2001-01-11 2005-02-15 Yottayotta, Inc. Storage virtualization system and methods
US6895466B2 (en) * 2002-08-29 2005-05-17 International Business Machines Corporation Apparatus and method to assign pseudotime attributes to one or more logical volumes
US6938120B2 (en) * 2002-08-29 2005-08-30 International Business Machines Corporation Apparatus and method to form one or more premigration aggregates comprising a plurality of least recently accessed virtual volumes
JP2004259079A (ja) * 2003-02-27 2004-09-16 Hitachi Ltd データ処理システム
JP2005165444A (ja) * 2003-11-28 2005-06-23 Hitachi Ltd ディスクアレイ装置、及びディスクアレイ装置の制御方法
US20060101204A1 (en) * 2004-08-25 2006-05-11 Bao Bill Q Storage virtualization
US8229985B2 (en) * 2005-02-07 2012-07-24 Cisco Technology, Inc. Arrangement for a distributed file system having data objects mapped independent of any data object attribute
EP1816563B1 (en) 2006-01-26 2016-04-27 Infortrend Technology, Inc. Method of managing data snapshot images in a storage system
US7949847B2 (en) * 2006-11-29 2011-05-24 Hitachi, Ltd. Storage extent allocation method for thin provisioning storage
US8321652B2 (en) * 2008-08-01 2012-11-27 Infineon Technologies Ag Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
US8225039B2 (en) * 2009-10-09 2012-07-17 Hitachi, Ltd. Storage controller and virtual volume control method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1849577A (zh) * 2003-08-14 2006-10-18 克姆佩棱特科技公司 虚拟磁盘驱动系统和方法
CN1725169A (zh) * 2004-07-19 2006-01-25 普安科技股份有限公司 储存虚拟化控制器主机端输出入请求绕送的方法
US20080086616A1 (en) * 2006-10-04 2008-04-10 Masayasu Asano Computer system, data migration monitoring method and data migration monitoring program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095700A (zh) * 2015-04-29 2016-11-09 Emc公司 在存储系统中复制和使用网格层级元数据的方法和系统
CN106095700B (zh) * 2015-04-29 2020-04-21 Emc公司 在存储系统中复制和使用网格层级元数据的方法和系统
CN110096219A (zh) * 2018-01-31 2019-08-06 伊姆西Ip控股有限责任公司 从驱动器组生成的驱动器区段池的有效容量
CN110096219B (zh) * 2018-01-31 2022-08-02 伊姆西Ip控股有限责任公司 从驱动器组生成的驱动器区段池的有效容量

Also Published As

Publication number Publication date
US9946460B2 (en) 2018-04-17
US20100199041A1 (en) 2010-08-05
CN102681789B (zh) 2015-03-25
US20100199040A1 (en) 2010-08-05
TWI432959B (zh) 2014-04-01
TW201028852A (en) 2010-08-01
TWI467370B (zh) 2015-01-01
EP2211263A2 (en) 2010-07-28
TW201028851A (en) 2010-08-01
TW201510725A (zh) 2015-03-16
US8510508B2 (en) 2013-08-13
CN101819506B (zh) 2012-12-05
EP2211263A3 (en) 2013-01-23
US8612679B2 (en) 2013-12-17
CN101788890B (zh) 2012-02-08
US20140068200A1 (en) 2014-03-06
US20170177237A1 (en) 2017-06-22
EP2211262A2 (en) 2010-07-28
CN101819506A (zh) 2010-09-01
TWI514147B (zh) 2015-12-21
US9588892B2 (en) 2017-03-07
EP2211262A3 (en) 2013-01-09
CN101788890A (zh) 2010-07-28

Similar Documents

Publication Publication Date Title
CN101788890B (zh) 在一储存系统架构下产生一虚拟卷的方法及数据存取方法
CN104636080B (zh) 存储系统及用于其的方法
US8667241B2 (en) System for data migration from a storage tier allocated to a virtual logical volume
US9971709B1 (en) Data migration techniques
EP2854021B1 (en) Control device for a storage system capable of acting as a constitutent element of a virtual storage system
CN100590607C (zh) 存储系统以及存储区域释放方法以及存储装置
CN106030500B (zh) 存储系统的数据迁移方法
JP5111204B2 (ja) ストレージシステム及びストレージシステムの管理方法
US9661078B1 (en) Federated namespace management
US8386707B2 (en) Virtual disk management program, storage device management program, multinode storage system, and virtual disk managing method
US20100036896A1 (en) Computer System and Method of Managing Backup of Data
CN101826043A (zh) 非同步资料卷复制的方法及其储存系统
CN103793271A (zh) 用于在镜像卷之间进行切换的方法和系统
US11061604B2 (en) Method and storage system architecture for accessing data by means of a compatible module
CN101373418B (zh) 存储系统和访问方法
JP2004355638A (ja) 計算機システム及びそのデバイスの割り当て方法
WO2014087465A1 (ja) ストレージ装置及びストレージ装置移行方法
JP2023000777A (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