CN101819506A - 执行储存虚拟化的储存子系统及储存系统架构及其方法 - Google Patents

执行储存虚拟化的储存子系统及储存系统架构及其方法 Download PDF

Info

Publication number
CN101819506A
CN101819506A CN201010118234A CN201010118234A CN101819506A CN 101819506 A CN101819506 A CN 101819506A CN 201010118234 A CN201010118234 A CN 201010118234A CN 201010118234 A CN201010118234 A CN 201010118234A CN 101819506 A CN101819506 A CN 101819506A
Authority
CN
China
Prior art keywords
entity
section
media areas
virtual
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201010118234A
Other languages
English (en)
Other versions
CN101819506B (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 CN101819506A publication Critical patent/CN101819506A/zh
Application granted granted Critical
Publication of CN101819506B publication Critical patent/CN101819506B/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

一种执行储存虚拟化的储存子系统及储存系统架构及其方法。该方法包含:提供区段分配系统用以管理至少一磁碟阵列子系统中的第一媒体区及第二媒体区;借由区块关联表得到主机逻辑区块位址所对应的位置索引;借由实体区段对虚拟区段交互参照机制得到位置索引所对应的位于第一媒体区中的第一实体区段的位置资讯;将第一实体区段中的资料复制或搬移至在第二媒体区中的第二实体区段中;更新实体区段对虚拟区段交互参照机制中的交互参照,以使得借由实体区段对虚拟区段交互参照机制所得到的位置索引所对应的位置资讯为第二实体区段的位置资讯;及定址于主机逻辑区块位址的主机输入/输出请求利用第二实体区段的位置资讯存取第二实体区段中的资料。

Description

执行储存虚拟化的储存子系统及储存系统架构及其方法
技术领域
本发明涉及一种储存虚拟化的方法,特别是涉及一种可弹性扩充储存容量的储存虚拟化的方法。
背景技术
公知技术中,由磁碟阵列子系统(disk array subsystem)所映射出来的逻辑磁碟机(Logical Drive,LD)或分割区(partition)呈现在主机通道上成为实体卷(physical volume,PV)给主机存取,主机存取这些实体卷时直接利用逻辑磁碟机或分割区的逻辑区块位址(logical block address,LBA)以进行存取。因此,一旦磁碟阵列子系统将这些实体卷呈现给主机之后,便难以再变更这些实体卷及其对应的逻辑磁碟机或分割区的组态(configuration);特别是,欲减小一个实体卷及其对应的逻辑磁碟机或分割区的容量更是完全不可能。此架构使得磁碟阵列子系统在容量上的弹性受到一些限制,因而使磁碟阵列子系统的储存空间的运用上受到很大的限制。
举例而言,若一个磁碟阵列子系统的容量有800GB,原本被组态设定为两个400GB的逻辑磁碟机,其分别称为LD1及LD2,然后分别呈现一实体卷,其分别称为PV1及PV2,至主机存取,结果在使用一阵子后发现PV1的用途只会用到100GB,但是PV2的用途所需要的空间一直增加,如此将使得400GB的容量最终将不敷使用。在公知技术中,由于PV1的组态无法改变且只使用100GB容量,而闲置的300GB容量却无法使用。反之,PV2却因其空间不足只好再另行添购储存设备而形成该RAID子系统在资源上的浪费。
再者,在某些公知资料储存系统架构下,在磁碟阵列子系统之间抑或是无法进行资料迁徙、抑或是在进行资料迁徙时的系统效能不彰,这对于资料储存系统资源的使用弹性及/或系统效能有着负面的影响。
又且,在某些公知资料储存系统架构下,虽在磁碟阵列子系统之间可以进行资料迁徙,但是却无法具有RAID功能的保护,这对于现今资料可利用性(data availability)要求高涨的资讯时代而言是难以接受的。
此外,在某些公知资料储存系统架构下,所有的输出入存取命令(IOaccess commands)都必须经由储存节点(storage node)中的一个主控储存节点(master storage node)来发出以被恰当地执行,即使该输出入存取命令所系属的资料本身并不位于该节点中的实体储存装置中。在有沉重IO负担的情况下,系统的效能可能最终仅取决于该主控储存节点的IO处理能力。
因此,如何增加磁碟阵列子系统在储存资源上更有弹性以避免资源浪费问题,实为储存业界的一大难题。
发明内容
本发明的目的在于,提供一种新的执行储存虚拟化的储存子系统及储存系统架构及其方法,所要解决的技术问题是使其增加磁碟阵列子系统在储存资源上更有弹性以避免资源浪费问题,非常适于实用。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。
依据本发明的一实施例,提出一种存取资料的方法,用于存取一储存系统架构中的资料,该储存系统架构包含至少一磁碟阵列子系统,该方法包含下列步骤:提供一区段分配系统(Section Allocation System,SAS)用以管理该至少一磁碟阵列子系统中的一第一媒体区及一第二媒体区;借由一区块关联表得到一主机逻辑区块位址(LBA)所对应的一位置索引;借由一实体区段对虚拟区段交互参照机制得到该位置索引所对应的位于该第一媒体区中的一第一实体区段的一位置资讯;将该第一实体区段中的资料复制或搬移至于该第二媒体区中的一第二实体区段中;更新该实体区段对虚拟区段交互参照机制中的交互参照,以使得借由该实体区段对虚拟区段交互参照机制所得到的该位置索引所对应的位置资讯系该第二实体区段的位置资讯;以及一定址于该主机逻辑区块位址的一主机输入/输出请求利用该第二实体区段的位置资讯存取该第二实体区段中的资料。
依据本发明的一实施态样,提供一区块关联集区段分配串列(blockassociation set section allocation list,BAS SAL)及一实体对虚拟/虚拟对实体(P2V/V2P)区段分配串列于该区段分配系统中;利用该区块关联集区段分配串列产生该区块关联表;以及利用该P2V/V2P区段分配串列产生该实体区段对虚拟区段交互参照机制。
依据本发明的另一实施态样,提供一实体对虚拟映射表(P2V table)于该实体区段对虚拟区段交互参照机制中,以使借由该实体区段对虚拟区段交互参照机制可得到该位置索引所对应的该第一实体区段的该位置资讯。
依据本发明的再一实施态样,产生一虚拟对实体映射表(V2P table)于该P2V/V2P区段分配串列中,用以辅助该实体对虚拟映射表以加速索引到该第二实体区段。
依据本发明的再一实施态样,还包含一节点表索引该区块关联集区段分配串列。
依据本发明的再一实施态样,该P2V/V2P区段分配串列包含一属性区块,用以记载该区段分配系统的一区段分配系统识别码及其相关设定资讯;一目录,用以记载指引、管理该多个媒体区所含的多个实体区段(section)上的资讯;一虚拟对实体映射表栏位,用以储存一虚拟对实体映射表;以及一实体对虚拟映射表栏位,用以储存一实体对虚拟映射表。
依据本发明的再一实施态样,还包含下列步骤:接收该多个媒体区中的一将被移除的媒体区所对应的一移除讯息;根据该移除讯息,找出该将被移除的媒体区所系属的该区段分配系统;取得来自该区段分配系统所的属的该将被移除的媒体区的一实体区段资讯;根据所取得的该实体区段资讯,复制或搬移该将被移除的媒体区所包含多个实体区段中的一第三实体区段上的资料至其他该多个媒体区的其中之一;以及判断该将被移除的媒体区上所包含的所有该多个实体区段上的资料是否已复制或搬移至其他该多个媒体区其中的一个或多个媒体区中。
依据本发明的再一实施态样,当判断该将被移除的媒体区上的所有该多个实体区段上的资料尚有实体区段未完成复制或搬移至其他该多个媒体区其中的一个或多个时,则到该多个实体区段中的一第四实体区段;以及进行「复制或搬移该将被移除的媒体区所包含多个实体区段中的该第四实体区段上的资料至其他该多个媒体区的其中之一」的步骤。
依据本发明的再一实施态样,还包含下列步骤:当判断该将被移除的媒体区上的所有该多个实体区段上的资料已完成复制或搬移至其他该多个媒体区其中的一个或多个时,则移除该将被移除的媒体区。
依据本发明的再一实施态样,在该「复制或搬移该将被移除的媒体区所包含多个实体区段中的一第三实体区段上的资料至其他该多个媒体区的其中之一」步骤之后还包含下列步骤:根据所取得的该媒体区的该实体区段资讯,增加该将被移除的媒体区所具有的一有效性检查序号(VCSN),并通知该将被移除的媒体区所系属的一VCSN代理人其增加后的该有效性检查序号。
依据本发明的再一实施态样,还包含下列步骤:接收一新增媒体区的一新增讯息;根据该新增讯息,找出该新增媒体区所系属的该区段分配系统;计算该区段分配系统中所有的该多个媒体区中已使用的多个实体区段的一总实体区段数;考虑该新增媒体区所包含的一实体区段数及该总实体区段数,以计算出各该多个媒体区的一平衡后的实体区段数(balancedsection count);处理该多个媒体区的其中之一;判断正在处理中的该媒体区的该实体区段数是否大于该平衡后的实体区段数;当该正在处理中的多个媒体区的实体区段数大于该平衡后的实体区段数时,复制该多个媒体区中已使用的多个实体区段上的资料至该新增媒体区;以及重复进行该「判断正在处理中的该媒体区的实体区段数是否大于该平衡后的实体区段数」的步骤。
依据本发明的再一实施态样,还包含下列步骤:当所有的该多个媒体区已处理完成时,结束此增加流程。
依据本发明的再一实施态样,还包含下列步骤:当该总实体区段数不大于该平衡后的实体区段数时,则取得该多个媒体区中的下一个媒体区进行处理;以及判断所有的该多个媒体区是否处理完成。
依据本发明的再一实施态样,在「复制该多个媒体区中已使用的多个实体区段上的资料至该新增媒体区」的步骤前,还包含下列步骤:增加处理中的该媒体区的一有效性检查序号(VCSN),并通知处理中的该媒体区所系属的一VCSN代理人其增加后的该有效性检查序号。
依据本发明的再一实施态样,还包含下列步骤:接收该多个媒体区中的一将被移除的媒体区所对应的一移除讯息;根据该移除讯息,找出该将被移除的媒体区所系属的该区段分配系统;判断所系属的该区段分配系统中所包含的所有多个区块关联集区段分配串列是否皆已确认;当该多个区块关联集区段分配串列尚有未完成确认者时,选择一区块关联集区段分配串列进行确认;判断该区块关联集区段分配串列中目前进行处理的一第五实体区段是否关联于该将被移除的媒体区;当该第五实体区段是关联于该将被移除的媒体区时,复制该第五实体区段上的资料至其他该多个媒体区的其中之一;以及当该第五实体区段并非关联于该将被移除的媒体区时,则到该区块关联集区段分配串列中的下一个实体区段。
依据本发明的再一实施态样,还包含下列步骤:当所有该多个区块关联集区段分配串列已完成确认时,则移除该将被移除的媒体区。
依据本发明的再一实施态样,还包含下列步骤:当判断已到目前进行确认的该区段分配串列的终点时,则到该多个区段分配串列中的下一个区块关联集区段分配串列;以及重复进行「判断所系属的该区段分配系统中所包含的所有多个区块关联集区段分配串列是否皆已确认」的步骤。
依据本发明的再一实施态样,还包含下列步骤:当该第五实体区段上的资料复制至其他该多个媒体区的其中之一后,则到该区块关联集区段分配串列中的一第六实体区段;以及进行「判断是否已到目前进行确认的该多个区块关联集区段分配串列中的该区段分配串列的终点」的步骤。
依据本发明的再一实施态样,在「复制该第五实体区段上的资料至其他该多个媒体区的其中之一」的步骤前,还包含下列步骤:增加该将被移除的媒体区所具有的一有效性检查序号(VCSN),并通知该至少一将被移除的媒体区所系属的一VCSN代理人其增加后的该有效性检查序号。
依据本发明的再一实施态样,还包含下列步骤:接收一新增媒体区的一新增讯息;根据该新增讯息,找出该新增媒体区所系属的该区段分配系统;判断所系属的该区段分配系统中所包含的所有多个区块关联集区段分配串列是否皆已确认;当该多个区块关联集区段分配串列尚有未完成确认者时,选择一区块关联集区段分配串列进行确认;判断该区块关联集区段分配串列中目前进行确认的一第五实体区段所关联的一媒体区中已使用的实体区段数是否大于该新增媒体区的一实体区段数目;当该第五实体区段所关联的该媒体区中已使用的实体区段数大于新增媒体区的该实体区段数时,复制该第五实体区段上的资料至该至少一新增媒体区;以及当该所关联的该媒体区中已使用的实体区段数不大于新增媒体区的该实体区段数时,则到该区块关联集区段分配串列中的下一个实体区段。
依据本发明的再一实施态样,还包含下列步骤:当所有该多个区块关联集区段分配串列已完成确认时,则结束此增加流程。
依据本发明的再一实施态样,还包含下列步骤:当判断已到目前进行确认的该区块关联集区段分配串列的终点时,则到该多个区块关联集区段分配串列中的下一个区块关联集区段分配串列;以及重复进行「判断所系属的该区段分配系统中所包含的所有多个区块关联集区段分配串列是否皆已确认」的步骤。
依据本发明的再一实施态样,还包含下列步骤:当该第五实体区段上的资料复制至其他该多个媒体区的其中之一后,则到该区段分配串列中的下一个实体区段;以及进行「判断是否已到目前进行确认的该多个区块关联集区段分配串列中的该区块关联集区段分配串列的终点」的步骤。
依据本发明的再一实施态样,在「复制该第五实体区段上的资料至该至少一新增媒体区」的步骤前,还包含下列步骤:增加处理中的该媒体区其中的一有效性检查序号(VCSN),并通知处理中的该媒体区所系属的一VCSN代理人其增加后的该有效性检查序号。
依据本发明的再一实施态样,还包含索引该区块关联集中的一区块关联表(BAT),以使该区块关联表指向该虚拟对实体映射表。
依据本发明的再一实施态样,该区段分配系统还包含一实体区段索引对实体逻辑区块位址映射函数(physical location index to LBA mappingfunction),该实体区段索引表用以记载该第一实体区段及该第二实体区段的资讯。
依据本发明的再一实施态样,该实体区段索引表包含一实体区段索引(physical section index,PSI)、一媒体区识别码、一逻辑区块位址(logical block address,LBA)以及一分区数(section count)。
依据本发明的再一实施态样,该实体位置索引对实体逻辑区块位址映射函数为一实体区段索引对实体逻辑区块位址映射表。
依据本发明的再一实施态样,该至少一磁碟阵列子系统包含多个实体储存元件(physical storage device,PSD)。
依据本发明的另一实施例,提出一种存取一资料储存系统架构中的资料的方法,该资料储存系统架构包含至少一磁碟阵列子系统,该方法包含下列步骤:提供一区段分配系统于该至少一磁碟阵列子系统中的一主控子系统中,用以管理一虚拟池,该虚拟池中包含有该磁碟阵列子系统中所映射出的一第一媒体区及一第二媒体区;提供一区块关联集区段分配串列于该区段分配系统中,用以管理一提供一P2V/V2P区段分配串列于该区段分配系统中,用以产生一P2V表;虚拟卷,该虚拟卷被呈现给一主机以供其存取资料;收到一第一主机命令,该第一主机命令中带有一要被转换(convert)的一主机LBA;利用与该区块关联集区段分配串列关联的一区块关联表及与该P2V/V2P区段分配串列关联的一P2V表而将要被转换的该主机LBA转换而得到一实体区段索引;利用一实体区段索引对实体区段LBA映射函数将该实体区段索引转换成为位于该第一媒体区中的一第一实体区段的一第一实体LBA;收到一第二主机命令,为一IO存取命令且带有该主机LBA;以及利用该第一实体LBA存取位于该第一媒体区中的该第一实体区段中的资料。
依据本发明的一实施态样,更包含以下的步骤:进行资料迁徙而将该第一实体区段中的一资料复制或搬移至位于该第二媒体区中的一第二实体区段中,并将该资料迁徙的位置相关资讯更改至该P2V表中,其中该第二实体区段具有一第二实体LBA;收到一第二主机命令,为一IO存取命令且带有该主机LBA;以及利用该第二实体LBA存取位于该第二媒体区中的该第二实体区段中的资料。
依据本发明的实施例再提出一种存取磁碟阵列子系统架构中的资料的方法,该磁碟阵列子系统架构包含至少一磁碟阵列子系统,该至少一磁碟阵列子系统包含的至少一第一媒体区,该至少一第一媒体区包含多个逻辑区块位址,该方法包含下列步骤:提供一区段分配系统用以管理该至少一第一媒体区,该区段分配系统中包含有利用一区块关联表(blockassociation table,BAT)、一实体对虚拟索引映射表(P2V index mappingtable)以及一实体位置索引与实体逻辑区块位址映射函数(physicallocation index to phyLBA mapping function);接收来自一主机的一输入/输出请求,该输入/输出请求包含一主机LBA;利用该区块关联表(blockassociation table,BAT)、该P2V表及一由该P2V表所产生的V2P表两者之一、及该实体位置索引与实体逻辑区块位址映射函数从该主机LBA得到一第一实体逻辑区块位址(LBA);以及利用该第一实体逻辑区块位址针对一第一媒体区进行输入/输出存取。
依据本发明的一实施态样,更包含以下的步骤:将该输入/输出请求转换出一卷区块索引(Volume Block Index,VBI);利用该区块关联表(blockassociation table,BAT)由该VBI得到一虚拟索引(virtual index);利用该P2V表及一由该P2V表所产生的V2P表两者之一,由该虚拟索引得到一实体索引(physical location index);以及利用该实体索引以及该实体位置索引对实体逻辑区块位址映射函数得到一实体逻辑区块位址(LBA)。
依据本发明的另一实施态样,更包含以下的步骤:进行资料迁徙而将该第一实体区段中的一资料复制或搬移至位于该第二媒体区中的一第二实体区段中,并将该资料迁徙的位置相关资讯更改至该P2V表及/或该V2P表中,其中该第二实体区段具有一第二实体LBA;接收来自一主机的一输入/输出请求,该输入/输出请求包含一主机LBA;利用该区块关联表(blockassociation table,BAT)、该P2V表及一由该P2V表所产生的V2P表两者之一、及该实体位置索引与实体逻辑区块位址映射函数从该主机LBA得到一第一实体逻辑区块位址(LBA);以及利用该第一实体逻辑区块位址针对一第一媒体区进行输入/输出存取。
依据本发明的再一实施态样,更包含以下的步骤:将该输入/输出请求转换出一卷区块索引(Volume Block Index,VBI);利用该区块关联表(blockassociation table,BAT)由该VBI得到一虚拟索引(virtual index);利用该P2V表及一由该P2V表所产生的V2P表两者之一,由该虚拟索引得到一实体索引(physical location index);以及利用该实体索引以及该实体位置索引对实体逻辑区块位址映射函数得到一实体逻辑区块位址(LBA)。
依据本发明的再一实施态样,更包含以下的步骤:进行资料迁徙而将该第一实体区段中的一资料复制或搬移至位于该第二媒体区中的一第二实体区段中,并将该资料迁徙的位置相关资讯更改至该P2V表及/或该V2P表中,其中该第二实体区段具有一第二实体LBA;收到一第二主机命令,为一IO存取命令且带有该主机LBA;以及利用该第二实体LBA存取位于该第二媒体区中的该第二实体区段中的资料。
依据本发明的再一实施例,提出一种在储存系统架构中产生虚拟卷的方法,该架构包含一主机及一或多个储存子系统,每一子系统包含一或多个储存控制器及一实体储存装置阵列,该方法包含以下的步骤:将该实体储存装置阵列映射成为一或多个媒体区(ME),每一该媒体区包含多个实体区段,每一该实体区段具有一实体逻辑区块位址(LBA);产生一区段分配系统(SAS)用于管理该至少一媒体区,该区段分配系统包含至少一区块关联集区段分配串列(BAS SAL),每一区块关联集区段分配串列用于将该一或多个媒体区的多个实体区段映射成为一虚拟卷,每一区块关联集区段分配串列为其所对应的虚拟卷记录一区块关联表(BAT)及一卷容量,该区块关联表可用于将一主机LBA转换成为一位置索引及至少一虚拟对实体表(V2P表)记录有该位置索引与该实体LBA间的交互参照资讯;以及将该虚拟卷呈现给该主机。
依据本发明的一实施态样,该虚拟对实体表可用以从该位置索引得到一实体索引,且该区段分配系统更包含一实体索引对实体逻辑区块位址映射函数,可藉以由该实体索引来该得到一实体逻辑区块位址(LBA)。
依据本发明的另一实施态样,该方法更包含:接收来自一主机的一输入/输出请求,该输入/输出请求包含一主机LBA;利用该区块关联表(blockassociation table,BAT)、该P2V表及一由该P2V表所产生的V2P表两者之一、及该实体位置索引与实体逻辑区块位址映射函数从该主机LBA得到一第一实体逻辑区块位址(LBA);以及利用该第一实体逻辑区块位址针对一第一媒体区进行输入/输出存取。
依据本发明的另再一实施态样,该方法更包含:提供一虚拟卷快照功能性,该快照功能性的资料结构包含一第二BAS SAL,且由该第二BAS SAL产生一或多个BAT,每一该BAT具有一位置索引栏位用以索引该P2V或V2P中的虚拟索引,藉以执行虚拟卷快照功能。
借由上述技术方案,本发明执行储存虚拟化的储存子系统及储存系统架构及其方法至少具有下列优点及有益效果:本发明能增加磁碟阵列子系统在储存资源上更有弹性以避免资源浪费问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图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:    代理人
20,20A,20B,20C:独立冗余磁碟阵列子系统(RAID子系统)
200:              储存虚拟化控制器
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通过沟通管道(communication channel)而连接在一起而组成,该沟通管道可以是一局域网(LAN)、广域网路(WAN)、储存局域网(SAN)、网际网络(Internet)、联机通讯(communicationinterconnect)、或其他任何可以让RAID子系统20间互相传递讯息的沟通管道。在储存系统架构30中,只需要有一个RAID子系统20A中设置有虚拟化层202A,即可将所有RAID子系统20中的储存空间加以虚拟化成为一或多个虚拟卷VV给主机10存取。其中,设置有虚拟化层202A的RAID子系统称为主控(master)RAID子系统20A,简称主控子系统(mastersubsystem)20A,被主控子系统20A管理的其他RAID子系统20称为从属(slave)RAID子系统20B、20C,简称从属子系统(slave subsystem)20B、20C。在每一子系统20A、20B、20C中,分别建置有一媒体区服务器层(MEServer Layer)203A、203B、203C于各RAID层204A、204B、204C之上,以将各该RAI D层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 block address)),指向该ME的起始LBA;第三个栏位表示该ME的实体区块数量(sectioncount)。借由实体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及RC20C的ME数量皆为5个,且该些ME的区段数量相同,皆为100,但是依据本发明的又一实施例,每个子系统RA 20A、RB 20B及RC 20C的ME数量可以不同,且每个ME的区段数量也可以不同,又且该每个子系统RA 20A、RB20B及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个(m x n)分区。而主机端所使用的LBA为连续定址的且每一LBA所对应的储存空间大小为一分区的大小,故主机端IO请求的LBA所对应的VBI的关系为:VBI=主机LBA/(m x n)。
虽然以上以图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,但是其保留容量(reserved capacity)设定为100GB,则其最小容量将会是100GB。此可利用SAS区段保留机制(section reservation mechanism)而达成。当该虚拟卷VV的实际容量尚不足该保留容量时,该SAS区段保留机制会将该保留容量与实际容量差额的容量保留起来,并随着实际容量的增加而减小所保留的容量,直到实际容量已达到该保留容量为止。
依据本发明的一实施例的全额容量提供(full provisioning)实施例,在储存系统架构30建立之时,即会将卷容量的空间分配给该虚拟卷VV,故该虚拟卷VV中呈报给主机10的卷容量为一实际卷容量,此可确保此VV一定可以用到呈报给主机10的卷容量。
依据本发明的容量提供(provisioning)实施例,其具有以下三种实施样态:第一、利用上述SAS区段保留机制(section reservation mechanism)而达成;第二、利用区段分配机制(section allocation mechanism)而达成;第三、利用区段指定机制(section assignment mechanism)而达成。
依据第一种实施样态的「区段保留机制」进行无容量提供(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)而设或是容量百分比(capacitypercentage)而设。例如:假设一虚拟池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命令(proprietarydata distribution query SCSI command)发送给主控子系统20A的虚拟化层202A向其询问主机10欲存取资料的位置,然后根据主控子系统20A的虚拟化层202A的回复资讯直接在资料实体所在的子系统20A、20B、20C上进行资料存取,详细说明如后。在主机代理人110的资料分布询问SCSI命令的IO请求中,提供了定义要存取的虚拟范围的逻辑区块位址/区块数量(LBA/Block-Count defining virtual range to be accessed)。子系统20A、20B、20C在收到询问命令后,则回应以一实体媒体识别码/逻辑区块位址/区块数量/有效性检查序号的清单(list of physical 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 accesscommand))。除了逻辑区块位址/区块数量之外,该些自定的读/写SCSI命令另包含了一有效性检查序号(Validity Check Sequence 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机制,例如:每当主控子系统需要主机代理人先向其询问再决定如何进行主机IO请求时,则将该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)与实体索引(Physical Index)对虚拟索引(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般有记录虚拟索引(VirtualIndex)的栏位,而是依照记录实体索引(Physical Index)的各项目(entry)的先后顺序而推知其对应的虚拟索引(Virtual Index)。
举例来说,本发明利用V2P Table 5135与P2V Table 5137而使得区段迁徙前后虚拟卷(VV)中各卷区块索引栏位41中的VBI对位置索引栏位42中的位置索引(location index)的虚拟对应关系不变,而不使资料区段迁徙作业影响到上层应用端的区块索引资讯。以下举一实例说明如何应用V2PTable 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”)所对应的实体索引(physicalindex)63为002。有了实体索引之后,可以查询一如图3C或图3D的记录表或经由一特定的运算规则或公式,而得知实体索引=002时所对应到的实体区段位置。若以图3D为例,实体索引=002便对应到PSI 81,然后查询该表(或以一特定的运算规则或公式取代)便可以得知PSI=002时的实体区段位置是在ME ID为RA-ME1、起始位址(LBA)为101的连续100个分区之处。假设主控子系统20A将资料迁徙至另一ME(例如,RB-ME1),则V2P Table5135中的实体索引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-time;简写为PIT)备份(backup)的基础。区块关联表(Block Association Tables),以下简称BAT,储存在此BAS之中。BAT用以储存交互参考资讯以与具有原始储存位置(LBA)的备份资料相对应,亦即每个BAT内记录有指向其所对应的PIT快照影像(Snapshot Image)的资讯。而备份资料(快照影像)亦储存于此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(step 606),然后至步骤607将该来源ME的区段资料复制或搬移到新增的ME(目标ME)。以上作业完成后,来源ME的实体区段数将因移出资料而减少,因此回到step 605,继续比较已使用区段的实体区段数是否大于计算出来的平衡后的实体区段数,如果判断结果为「是」,重复step 606与step607。若步骤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)该目前进行处理的实体区段上的资料至其他该多个媒体区的其中之一。然后取得下一个区段的资讯(step 708),并回到步骤703,重复进行步骤703到步骤708的流程。当步骤705的判断结果为「否」时,表示该目前进行处理的实体区段并非关联于该将被移除的媒体区,此时进行步骤708,到step 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中是否有较多的区段数。若step 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)及欲存取的区块范围(基础区块位址(base blockaddress)与区块数(block count))所构成。该虚拟池主控者在接收到该资料位置询问命令后,会发送一资料位置描述码(data location descriptor)给主机代理人,其中,该资料位置识别码包含有一资料位置资讯(datalocation information)(步骤2106);再者,主机代理人依据该资料位置资讯产生一IO请求(步骤2108),其中,于图19中所示,IO请求又称作为IO存取命令(IO access command);接着,主机代理人使用媒体区识别码(MEID)及该媒体区识别码对储存节点交互参照表来确定所要存取的目标储存节点后,就发送出一IO请求给该目标储存节点,其中,媒体区识别码被包含于该资料位置资讯中(步骤2110)。该目标储存节点的媒体区服务器查验该IO请求中的有效性检查资讯(Validity Check Information,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包含有一或多个清单,该些清单记录有ME的区段及其所对应的VCSN值。
接着,该有效性检查单元撷取与该IO请求相关的ME的该清单中的一个或多个有效性序号中的一最新有效性检查序号,并将该最新有效性检查序号与该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资讯,且向管理该ME的新媒体区服务器重新要求存取许可,得到存取许可之后,输出入存取命令便可重新发出至该新媒体区服务器。
主机与媒体区服务器有效性确认程序与资讯快取储存的一实施例的详细说明
「直接媒体区存取」功能需要建制一通讯协定,让主机可以借由该协定判定输出入存取命令的目标资料的目前位置。此通讯协定,以下称为「资料位置询问(Data Location Query)」通讯协定,包含发出一询问命令(即「资料位置询问命令」),该询问命令由一命令码、虚拟卷识别码或代号(handle)、以及欲存取的区块范围(基础区块位址(base block address)与区块数(block count))所构成。该询问命令由主机发送至「虚拟池主控者(Virtual Pool Master,以下简称为VP Master或VPM)」以得到被定址资料范围的实体位置。回应该询问命令的是一组涵盖全部范围的「资料位置描述码(Data Location Descriptor)」,每一该描述码由一ME识别码、基础区块位址、区块数与有效性检查资讯(validity check information,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)。
「资料位置描述码」中的有效性确认资讯用以供「媒体区服务器(MediaExtent 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 (38)

1.一种存取资料的方法,用于存取一储存系统架构中的资料,该储存系统架构包含至少一磁碟阵列子系统,其特征在于,该方法包含下列步骤:
提供一区段分配系统用以管理该至少一磁碟阵列子系统中的一第一媒体区及一第二媒体区;
借由一区块关联表得到一主机逻辑区块位址所对应的一位置索引;
借由一实体区段对虚拟区段交互参照机制得到该位置索引所对应的位于该第一媒体区中的一第一实体区段的一位置资讯;
将该第一实体区段中的资料复制或搬移至在该第二媒体区中的一第二实体区段中;
更新该实体区段对虚拟区段交互参照机制中的一交互参照,以使得借由该实体区段对虚拟区段交互参照机制所得到的该位置索引所对应的位置资讯为该第二实体区段的位置资讯;以及
一定址于该主机逻辑区块位址的一主机输入/输出请求利用该第二实体区段的位置资讯存取该第二实体区段中的资料。
2.如权利要求1所述的方法,其特征在于,还包含下列步骤:
提供一区块关联集区段分配串列及一实体对虚拟/虚拟对实体区段分配串列于该区段分配系统中;
利用该区块关联集区段分配串列产生该区块关联表;以及
利用该实体对虚拟/虚拟对实体区段分配串列产生该实体区段对虚拟区段交互参照机制。
3.如权利要求1所述的方法,其特征在于,还包含下列步骤:
提供一实体对虚拟映射表于该实体区段对虚拟区段交互参照机制中,以借由该实体区段对虚拟区段交互参照机制得到该位置索引所对应的该第一实体区段的该位置资讯。
4.如权利要求3所述的方法,其特征在于,还包含下列步骤:
产生一虚拟对实体映射表于该实体对虚拟/虚拟对实体区段分配串列中,用以辅助该实体对虚拟映射表以加速索引到该第二实体区段。
5.如权利要求1所述的方法,其特征在于,其中还包含一节点表索引该区块关联集区段分配串列。
6.如权利要求3所述的方法,其特征在于,其中该实体对虚拟/虚拟对实体区段分配串列包含:
一属性区块,用以记载该区段分配系统的一区段分配系统识别码及其相关设定资讯;
一目录,用以记载指引、管理该多个媒体区所含的多个实体区段上的资讯;
一虚拟对实体映射表栏位,用以储存一虚拟对实体映射表;以及
一实体对虚拟映射表栏位,用以储存一实体对虚拟映射表。
7.如权利要求1所述的方法,其特征在于,还包含下列步骤:
接收该多个媒体区中的一将被移除的媒体区所对应的一移除讯息;
根据该移除讯息,找出该将被移除的媒体区所系属的该区段分配系统;
取得来自该区段分配系统所系属的该将被移除的媒体区的一实体区段资讯;
根据所取得的该实体区段资讯,复制或搬移该将被移除的媒体区所包含多个实体区段中的一第三实体区段上的资料至其他该多个媒体区的其中之一;以及
判断该将被移除的媒体区上所包含的所有该多个实体区段上的资料是否已复制或搬移至其他该多个媒体区其中的一个或多个媒体区中。
8.如权利要求7所述的方法,其特征在于,还包含下列步骤:
当判断该将被移除的媒体区上的所有该多个实体区段上的资料尚有实体区段未完成复制或搬移至其他该多个媒体区其中的一个或多个时,则到该多个实体区段中的一第四实体区段;以及
进行「复制或搬移该将被移除的媒体区所包含多个实体区段中的该第四实体区段上的资料至其他该多个媒体区的其中之一」的步骤。
9.如权利要求7所述的方法,其特征在于,还包含下列步骤:
当判断该将被移除的媒体区上的所有该多个实体区段上的资料已完成复制或搬移至其他该多个媒体区其中的一个或多个时,则移除该将被移除的媒体区。
10.如权利要求7所述的方法,其特征在于,其中在该「复制或搬移该将被移除的媒体区所包含多个实体区段中的一第三实体区段上的资料至其他该多个媒体区的其中之一」步骤之后还包含下列步骤:
根据所取得的该媒体区的该实体区段资讯,增加该将被移除的媒体区所具有的一有效性检查序号,并通知该将被移除的媒体区所系属的一有效性检查序号代理人其增加后的该有效性检查序号。
11.如权利要求1所述的方法,其特征在于,还包含下列步骤:
接收一新增媒体区的一新增讯息;
根据该新增讯息,找出该新增媒体区所系属的该区段分配系统;
计算该区段分配系统中所有的该多个媒体区中已使用的多个实体区段的一总实体区段数;
考虑该新增媒体区所包含的一实体区段数及该总实体区段数,以计算出各该多个媒体区的一平衡后的实体区段数;
处理该多个媒体区的其中之一;
判断正在处理中的该媒体区的该实体区段数是否大于该平衡后的实体区段数;
当该正在处理中的多个媒体区的实体区段数大于该平衡后的实体区段数时,复制该多个媒体区中已使用的多个实体区段上的资料至该新增媒体区;以及
重复进行该「判断正在处理中的该媒体区的实体区段数是否大于该平衡后的实体区段数」的步骤。
12.如权利要求11所述的方法,其特征在于,还包含下列步骤:
当所有的该多个媒体区已处理完成时,结束该增加流程。
13.如权利要求11所述的方法,其特征在于,还包含下列步骤:
当该总实体区段数不大于该平衡后的实体区段数时,则取得该多个媒体区中的下一个媒体区进行处理;以及
判断所有的该多个媒体区是否处理完成。
14.如权利要求11所述的方法,其特征在于,其中在「复制该多个媒体区中已使用的多个实体区段上的资料至该新增媒体区」的步骤前,还包含下列步骤:
增加处理中的该媒体区的一有效性检查序号,并通知处理中的该媒体区所系属的一有效性检查序号代理人其增加后的该有效性检查序号。
15.如权利要求1所述的方法,其特征在于,还包含下列步骤:
接收该多个媒体区中的一将被移除的媒体区所对应的一移除讯息;
根据该移除讯息,找出该将被移除的媒体区所系属的该区段分配系统;
判断所系属的该区段分配系统中所包含的所有多个区块关联集区段分配串列是否皆已确认;
当该多个区块关联集区段分配串列尚有未完成确认者时,选择一区块关联集区段分配串列进行确认;
判断该区块关联集区段分配串列中目前进行处理的一第五实体区段是否关联于该将被移除的媒体区;
当该第五实体区段是关联于该将被移除的媒体区时,复制该第五实体区段上的资料至其他该多个媒体区的其中之一;以及
当该第五实体区段并非关联于该将被移除的媒体区时,则到该区块关联集区段分配串列中的下一个实体区段。
16.如权利要求15所述的方法,其特征在于,还包含下列步骤:
当所有该多个区块关联集区段分配串列已完成确认时,则移除该将被移除的媒体区。
17.如权利要求15所述的方法,其特征在于,还包含下列步骤:
当判断已到目前进行确认的该区段分配串列的终点时,则到该多个区段分配串列中的下一个区块关联集区段分配串列;以及
重复进行「判断所系属的该区段分配系统中所包含的所有多个区块关联集区段分配串列是否皆已确认」的步骤。
18.如权利要求15所述的方法,其特征在于,还包含下列步骤:
当该第五实体区段上的资料复制至其他该多个媒体区的其中之一后,则到该区块关联集区段分配串列中的一第六实体区段;以及
进行「判断是否已到目前进行确认的该多个区块关联集区段分配串列中的该区段分配串列的终点」的步骤。
19.如权利要求15所述的方法,其特征在于,其中在「复制该第五实体区段上的资料至其他该多个媒体区的其中之一」的步骤前,还包含下列步骤:
增加该将被移除的媒体区所具有的一有效性检查序号,并通知该至少一将被移除的媒体区所系属的一有效性检查序号代理人其增加后的该有效性检查序号。
20.如权利要求1所述的方法,其特征在于,还包含下列步骤:
接收一新增媒体区的一新增讯息;
根据该新增讯息,找出该新增媒体区所系属的该区段分配系统;
判断所系属的该区段分配系统中所包含的所有多个区块关联集区段分配串列是否皆已确认;
当该多个区块关联集区段分配串列尚有未完成确认者时,选择一区块关联集区段分配串列进行确认;
判断该区块关联集区段分配串列中目前进行确认的一第五实体区段所关联的一媒体区中已使用的实体区段数是否大于该新增媒体区的一实体区段数目;
当该第五实体区段所关联的该媒体区中已使用的实体区段数大于新增媒体区的该实体区段数时,复制该第五实体区段上的资料至该至少一新增媒体区;以及
当该所关联的该媒体区中已使用的实体区段数不大于新增媒体区的该实体区段数时,则到该区块关联集区段分配串列中的下一个实体区段。
21.如权利要求20所述的方法,其特征在于,还包含下列步骤:
当所有该多个区块关联集区段分配串列已完成确认时,则结束该增加流程。
22.如权利要求20所述的方法,其特征在于,还包含下列步骤:
当判断已到目前进行确认的该区块关联集区段分配串列的终点时,则到该多个区块关联集区段分配串列中的下一个区块关联集区段分配串列;以及
重复进行「判断所系属的该区段分配系统中所包含的所有多个区块关联集区段分配串列是否皆已确认」的步骤。
23.如权利要求20所述的方法,其特征在于,还包含下列步骤:
当该第五实体区段上的资料复制至其他该多个媒体区的其中之一后,则到该区段分配串列中的下一个实体区段;以及
进行「判断是否已到目前进行确认的该多个区块关联集区段分配串列中的该区块关联集区段分配串列的终点」的步骤。
24.如权利要求20所述的方法,其特征在于,其中在「复制该第五实体区段上的资料至该至少一新增媒体区」的步骤前,还包含下列步骤:
增加处理中的该媒体区其中的一有效性检查序号,并通知处理中的该媒体区所系属一有效性检查序号代理人其增加后的该有效性检查序号。
25.如权利要求1所述的方法,其特征在于,还包含:
索引该区块关联集中的一区块关联表,以使该区块关联表指向该虚拟对实体映射表。
26.如权利要求1所述的方法,其特征在于,其中该区段分配系统还包含一实体区段索引对实体逻辑区块位址映射函数,该实体区段索引表用以记载该第一实体区段及该第二实体区段的资讯。
27.如权利要求26所述的方法,其特征在于,其中该实体区段索引表包含一实体区段索引、一媒体区识别码、一逻辑区块位址以及一分区数。
28.如权利要求26所述的方法,其特征在于,其中该实体位置索引对实体逻辑区块位址映射函数为一实体区段索引对实体逻辑区块位址映射表。
29.如权利要求1所述的方法,其特征在于,其中该至少一磁碟阵列子系统包含多个实体储存元件。
30.一种存取一资料储存系统架构中的资料的方法,该资料储存系统架构包含至少一磁碟阵列子系统,其特征在于,该方法包含下列步骤:
提供一区段分配系统于该至少一磁碟阵列子系统中的一主控子系统中,用以管理一虚拟池,该虚拟池中包含有该磁碟阵列子系统中所映射出的一第一媒体区及一第二媒体区;
提供一区块关联集区段分配串列于该区段分配系统中,用以管理一虚拟卷,该虚拟卷被呈现给一主机以供其存取资料;
提供一实体对虚拟/虚拟对实体区段分配串列于该区段分配系统中,用以产生一实体对虚拟表;
收到一第一主机命令,该第一主机命令中带有一要被转换的一主机逻辑区块位址;
利用与该区块关联集区段分配串列关联的一区块关联表及与该实体对虚拟/虚拟对实体区段分配串列关联的一实体对虚拟表而将要被转换的该主机逻辑区块位址转换而得到一实体区段索引;
利用一实体区段索引对实体区段逻辑区块位址映射函数将该实体区段索引转换成为位于该第一媒体区中的一第一实体区段的一第一实体逻辑区块位址;
收到一第二主机命令,为一IO存取命令且带有该主机逻辑区块位址;以及
利用该第一实体逻辑区块位址存取位于该第一媒体区中的该第一实体区段中的资料。
31.如权利要求30所述的方法,其特征在于,还包含以下的步骤:
进行资料迁徙而将该第一实体区段中的一资料复制或搬移至位于该第二媒体区中的一第二实体区段中,并将该资料迁徙的位置相关资讯更改至该实体对虚拟表中,其中该第二实体区段具有一第二实体逻辑区块位址;
收到一第二主机命令,为一IO存取命令且带有该主机逻辑区块位址;以及
利用该第二实体逻辑区块位址存取位于该第二媒体区中的该第二实体区段中的资料。
32.一种存取磁碟阵列子系统架构中的资料的方法,该磁碟阵列子系统架构包含至少一磁碟阵列子系统,该至少一磁碟阵列子系统包含至少一第一媒体区,该至少一第一媒体区包含多个逻辑区块位址,其特征在于,该方法包含下列步骤:
提供一区段分配系统用以管理该至少一第一媒体区,该区段分配系统中包含有利用一区块关联表、一实体对虚拟索引映射表以及一实体位置索引与实体逻辑区块位址映射函数;
接收来自一主机的一输入/输出请求,该输入/输出请求包含一主机逻辑区块位址;
利用该区块关联表、该实体对虚拟表及一由该实体对虚拟表所产生的虚拟对实体表两者之一、及该实体位置索引与实体逻辑区块位址映射函数从该主机逻辑区块位址得到一第一实体逻辑区块位址;以及
利用该第一实体逻辑区块位址针对一第一媒体区进行输入/输出存取。
33.如权利要求32所述的方法,其特征在于,还包含以下的步骤:
将该输入/输出请求转换出一卷区块索引;
利用该区块关联表由该卷区块索引得到一虚拟索引;
利用该实体对虚拟表及一由该实体对虚拟表所产生的虚拟对实体表两者之一,由该虚拟索引得到一实体索引;以及
利用该实体索引以及该实体位置索引对实体逻辑区块位址映射函数得到一实体逻辑区块位址。
34.如权利要求32所述的方法,其特征在于,还包含以下的步骤:
进行资料迁徙而将该第一实体区段中的一资料复制或搬移至位于该第二媒体区中的一第二实体区段中,并将该资料迁徙的位置相关资讯更改至该实体对虚拟表及/或该虚拟对实体表中,其中该第二实体区段具有一第二实体逻辑区块位址;
收到一第二主机命令,为一IO存取命令且带有该主机逻辑区块位址;以及
利用该第二实体逻辑区块位址存取位于该第二媒体区中的该第二实体区段中的资料。
35.一种在储存系统架构中产生虚拟卷的方法,该架构包含一主机及一个或多个储存子系统,每一子系统包含一个或多个储存控制器及一实体储存装置阵列,其特征在于,该方法包含以下的步骤:
将该实体储存装置阵列映射成为一个或多个媒体区,每一该媒体区包含多个实体区段,每一该实体区段具有一实体逻辑区块位址;
产生一区段分配系统用于管理该至少一媒体区,该区段分配系统包含:
至少一区块关联集区段分配串列,每一区块关联集区段分配串列用于将该一个或多个媒体区的多个实体区段映射成为一虚拟卷,每一区块关联集区段分配串列为其所对应的虚拟卷记录一区块关联表及一卷容量,该区块关联表用于将一主机逻辑区块位址转换成为一位置索引;以及
至少一虚拟对实体表记录有该位置索引与该实体逻辑区块位址间的交互参照资讯;及
将该虚拟卷呈现给该主机。
36.如权利要求35所述的方法,其特征在于,其中该虚拟对实体表可用以从该位置索引得到一实体索引,且该区段分配系统还包含一实体索引对实体逻辑区块位址映射函数,可藉以由该实体索引来该得到一实体逻辑区块位址。
37.如权利要求36所述的方法,其特征在于,该方法还包含:
接收来自一主机的一输入/输出请求,该输入/输出请求包含一主机逻辑区块位址;
利用该区块关联表、该实体对虚拟表及一由该实体对虚拟表所产生的虚拟对实体表两者之一、及该实体位置索引与实体逻辑区块位址映射函数从该主机逻辑区块位址得到一第一实体逻辑区块位址;以及
利用该第一实体逻辑区块位址针对一第一媒体区进行输入/输出存取。
38.如权利要求36所述的方法,其特征在于,该方法还包含:提供一虚拟卷快照功能性,该快照功能性的资料结构包含一第二区块关联集区段分配串列,且由该第二区块关联集区段分配串列产生一个或多个区块关联表,每一该区块关联表具有一位置索引栏位用以索引该实体对虚拟或虚拟对实体中的虚拟索引,藉以执行虚拟卷快照功能。
CN2010101182348A 2009-01-23 2010-01-23 执行储存虚拟化的储存子系统及储存系统架构及其方法 Active CN101819506B (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

Publications (2)

Publication Number Publication Date
CN101819506A true CN101819506A (zh) 2010-09-01
CN101819506B CN101819506B (zh) 2012-12-05

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 After (2)

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

Country Status (4)

Country Link
US (4) US8612679B2 (zh)
EP (2) EP2211262A3 (zh)
CN (3) CN101819506B (zh)
TW (3) TWI432959B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049521A (zh) * 2012-12-19 2013-04-17 广东电子工业研究院有限公司 一种支持多属性复合条件查询的虚拟表索引机制及方法
CN109901790A (zh) * 2017-12-08 2019-06-18 东芝存储器株式会社 存储器系统及控制方法

Families Citing this family (100)

* 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 株式会社日立製作所 ストレージシステム及び通信方法
EP2450785A1 (en) * 2009-10-09 2012-05-09 Hitachi Ltd. Data 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 智微科技股份有限公司 存取储存装置的方法与电子系统
GB2496556B (en) 2011-02-24 2013-11-13 Hitachi Ltd Computer system and management method for the computer system and program
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 钜贯德科技股份有限公司 高效能虚拟磁盘管理系统
EP2761481A4 (en) 2011-09-30 2015-06-17 Intel Corp PRESENTATION OF DIRECT ACCESS STORAGE DEVICE IN LOGIC READER 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 晨星软件研发(深圳)有限公司 存储器存取权限控制方法与相关存储器管理系统
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
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
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
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
US9473590B1 (en) 2012-12-21 2016-10-18 Emc Corporation Client connection establishment over fibre channel using a block device access model
US9473591B1 (en) * 2012-12-21 2016-10-18 Emc Corporation Reliable server transport over fibre channel using a block device access model
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
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
US10248682B2 (en) 2015-02-20 2019-04-02 Scality, S.A. Object storage system capable of performing snapshots, branches and locking
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
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
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
CN105579977B (zh) 2014-09-01 2020-04-14 华为技术有限公司 访问文件的方法、装置及存储系统
CN105580010B (zh) 2014-09-01 2019-02-19 华为技术有限公司 访问文件的方法、装置和存储系统
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
US10466913B2 (en) * 2015-04-29 2019-11-05 EMC IP Holding Company LLC Method and system for replicating and using grid level metadata in a storage system
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
CN109976662B (zh) * 2017-12-27 2022-06-14 浙江宇视科技有限公司 数据存储方法、装置及分布式存储系统
CN110096219B (zh) * 2018-01-31 2022-08-02 伊姆西Ip控股有限责任公司 从驱动器组生成的驱动器区段池的有效容量
US10409511B1 (en) * 2018-06-30 2019-09-10 Western Digital Technologies, Inc. Multi-device storage system with distributed read/write processing
US10725941B2 (en) 2018-06-30 2020-07-28 Western Digital Technologies, Inc. Multi-device storage system with hosted services on peer storage devices
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
TWI710909B (zh) * 2018-09-28 2020-11-21 普安科技股份有限公司 具多平台相容性模組之資料儲存子系統之儲存系統架構及其方法
CN111124250B (zh) 2018-10-30 2023-11-21 伊姆西Ip控股有限责任公司 用于管理存储空间的方法、设备和计算机程序产品
CN111522499B (zh) * 2019-02-01 2023-08-08 香港商希瑞科技股份有限公司 运维数据读取装置及其读取方法
US11010280B1 (en) * 2019-03-13 2021-05-18 Parallels International Gmbh System and method for virtualization-assisted debugging
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
CN113625937B (zh) * 2020-05-09 2024-05-28 富联精密电子(天津)有限公司 存储资源处理装置及方法
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
TWI829080B (zh) 2021-02-03 2024-01-11 普安科技股份有限公司 具有雙儲存虛擬化控制器之資料儲存系統架構及其資料存取方法
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
US11989449B2 (en) 2021-05-06 2024-05-21 EMC IP Holding Company LLC Method for full 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
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
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 中華電信股份有限公司 一種具備空間回收之序列化儲存系統、方法及其電腦可讀媒介

Family Cites Families (15)

* 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 データ処理システム
CN101566929B (zh) 2003-08-14 2013-10-16 克姆佩棱特科技公司 虚拟磁盘驱动系统和方法
JP2005165444A (ja) * 2003-11-28 2005-06-23 Hitachi Ltd ディスクアレイ装置、及びディスクアレイ装置の制御方法
US7814293B2 (en) * 2004-07-19 2010-10-12 Infotrend Technology Inc. Redundant controller host-side IO rerouting
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
TWI353536B (en) * 2006-01-26 2011-12-01 Infortrend Technology Inc Virtualized storage computer system and method of
JP4757165B2 (ja) * 2006-10-04 2011-08-24 株式会社日立製作所 計算機システム、データ移行監視方法及びデータ移行監視プログラム
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
EP2450785A1 (en) 2009-10-09 2012-05-09 Hitachi Ltd. Data storage controller and virtual volume control method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049521A (zh) * 2012-12-19 2013-04-17 广东电子工业研究院有限公司 一种支持多属性复合条件查询的虚拟表索引机制及方法
CN103049521B (zh) * 2012-12-19 2015-11-11 广东电子工业研究院有限公司 可实现多属性复合条件查询的虚拟表索引系统及方法
CN109901790A (zh) * 2017-12-08 2019-06-18 东芝存储器株式会社 存储器系统及控制方法
CN109901790B (zh) * 2017-12-08 2023-02-21 铠侠股份有限公司 存储器系统及控制方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN101819506B (zh) 执行储存虚拟化的储存子系统及储存系统架构及其方法
EP2854021B1 (en) Control device for a storage system capable of acting as a constitutent element of a virtual storage system
US8762672B2 (en) Storage system and storage migration method
US7337292B2 (en) Method and apparatus for data relocation between storage subsystems
CN106030500B (zh) 存储系统的数据迁移方法
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
US8386707B2 (en) Virtual disk management program, storage device management program, multinode storage system, and virtual disk managing method
EP2562636A2 (en) Storage controller and storage control method
US20100036896A1 (en) Computer System and Method of Managing Backup of Data
JP2007279898A (ja) ストレージシステム及び同システムに適用されるアクセス処理方法
JP2000099272A (ja) 記憶制御装置及びこれを用いたデータ格納システムの取り扱い方法
EP2107450A1 (en) Storage system
CN101236480A (zh) 存储模块及容量池空闲容量调整方法
CN103793271A (zh) 用于在镜像卷之间进行切换的方法和系统
EP2206045A2 (en) Thin provisioning migration and scrubbing
CN110221779A (zh) 分布式持久性内存存储系统的构建方法
CN113448502B (zh) 分布式存储系统和存储控制方法
CN101373418B (zh) 存储系统和访问方法
US20200272354A1 (en) Storage system architecture with a plurality of data storage subsystems each having a compatible module, and a method thereof
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