CN110413217B - 管理存储系统的方法、设备和计算机程序产品 - Google Patents
管理存储系统的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN110413217B CN110413217B CN201810404832.8A CN201810404832A CN110413217B CN 110413217 B CN110413217 B CN 110413217B CN 201810404832 A CN201810404832 A CN 201810404832A CN 110413217 B CN110413217 B CN 110413217B
- Authority
- CN
- China
- Prior art keywords
- control unit
- access
- storage
- storage area
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Abstract
本公开的实施例涉及管理存储系统的方法、设备和计算机程序产品。该方法包括:响应于在存储系统的第一控制单元接收到针对存储系统中的目标存储区的访问请求,确定目标存储区处于第一存储区集合还是第二存储区集合中;响应于目标存储区处于第二存储区集合中,确定由存储系统的第二控制单元来处理访问请求,其中第一控制单元和第二控制单元共享该存储系统;以及更新第一控制单元对于目标存储区的访问状态,该访问状态指示第一控制单元对目标存储区具有的访问权限。基于该方法,能够有效地降低双活动SP存储管理架构中与条带锁机制相关的CMI消息的数量。
Description
技术领域
本公开的实施例总体上涉及数据存储技术领域,并且具体地,涉及一种管理存储系统的方法、设备和计算机程序产品。
背景技术
近来,基于独立磁盘冗余阵列(RAID)的存储系统得到了长足发展。基于RAID的技术是一种数据存储虚拟化技术。根据该虚拟化技术,可以在多个物理存储设备(例如,盘)上建立一个或多个作为RAID的存储系统,以用于提供数据冗余、性能提升等多种特性。RAID接收来自外部主机的I/O请求,并以条带为单位进行数据写入和读取。例如,在写入数据时,RAID的每个条带的数据被均匀写入用于建立该系统的多个盘,以使得该RAID的总体数据在多个盘上均匀分布。
为了进一步提升RAID的存取性能和冗余能力,出现了一种利用双重存储处理器(Dual storage processors/Dual SPs)来管理存储系统的方案。该方案具有两个同时活动的SP被用来实现对RAID存储系统的共同管理和访问。由于这个两个SP同时接收和处理对RAID的访问请求,因此需要采用一定的数据同步及安全措施从而确保数据不发生错误。而随着I/O访问频率的增加,此时如何更为有效地管理双活动SP架构中的I/O访问,成为一个研究焦点。
发明内容
总体上,本公开的实施例提供一种管理存储系统的方法、设备和计算机程序产品。
根据本公开的第一方面,提供了一种管理存储系统的方法。包括:响应于在存储系统的第一控制单元接收到针对存储系统中的目标存储区的访问请求,确定目标存储区处于第一存储区集合还是第二存储区集合中;响应于目标存储区处于第二存储区集合中,确定由存储系统的第二控制单元来处理访问请求,其中第一控制单元和第二控制单元共享该存储系统;以及更新第一控制单元中对于目标存储区的访问状态,该访问状态指示第一控制单元对目标存储区具有的访问权限。
根据本公开的第二方面,提供了一种管理存储系统的设备,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当计算机指令由至少一个处理器执行时,使得设备执行以下动作,动作包括:响应于在存储系统的第一控制单元接收到针对存储系统中的目标存储区的访问请求,确定目标存储区处于第一存储区集合还是第二存储区集合中;响应于目标存储区处于第二存储区集合中,确定由存储系统的第二控制单元来处理访问请求,第一控制单元和第二控制单元共享存储系统;以及更新第一控制单元对于目标存储区的访问状态,访问状态指示第一控制单元对目标存储区具有的访问权限。
根据本公开的第三方面,提供了一种计算机程序产品,该计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行根据本公开的第一方面所述的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实现进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实现中,相同的参考标号通常代表相同部件。
图1示出了本公开的实施例可以在其中被实现的存储管理系统100的示意图;
图2示出了根据一个技术方案的在存储管理系统100中的条带锁链表的示意图;
图3示出了根据一个技术方案的在存储管理系统100中的条带锁缓存的示意图;
图4示出了根据本公开的一个实施例所采用的条带锁处理逻辑的示意图;
图5示出了根据本公开的一个实施例所采用的管理存储系统的方法的流程框图;
图6示出了根据本公开的一个实施例的划分逻辑存储空间的方式的示意图;
图7示出了根据本公开的一个实施例的选择性地分配访问请求的示意图;
图8A示出了根据本公开的一个实施例的初始状态时的条带锁缓存的状态的示意图;
图8B示出了根据本公开的一个实施例的平衡状态时的条带锁缓存的状态的示意图;以及
图9示出了一个可以用来实施本公开的实施例的设备900的示意性框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
图1示出了本公开的实施例可以在其中被实现的存储管理系统100的示意图。该存储管理系统100包括第一存储处理器110(SPA)、第二存储处理器130(SPB),以及物理存储层120。该物理存储层120包括多个(例如,N+1个)物理盘122-1、122-2、122-3、……、122-5,用于向存储管理系统100提供物理存储空间。在之后的描述中,这些盘可以被统称为或单独称为“存储设备”或“盘”122,本公开在此不做限制。盘122可以是各种非易失性盘,其示例可以包括但不限于数字通用盘(DVD)、蓝光盘(BD)、光盘(CD)、软盘、硬盘、磁带驱动、光学驱动、固态存储器设备(SSD)等等。能够提供存储空间的其他盘也可以被使用。每个盘122被划分为多个区段121。多个区段121可以具有相同的存储容量。区段121有时也可被称为盘扩展(Disk extent)、存储单元等,而物理存储层120也可以被称为存储池或盘池。
SPA110和SPB 130内部,可以包括一个或多个RAID组。在图1中,为简明起见,每个SP内部仅示出了其中一个RAID组。每个RAID114、134建立在由物理存储层120的多个盘122划分而来的多个区段121上。这样的RAID114、134有时也被称为映射RAID或分布式RAID。RAID 114、134可以包括多个条带113(也被称为RAID扩展或RAID切片),每个条带113被分别映射到物理存储层120中的一个或多个盘122中的一个或多个区段121。每个条带113所包括的区段121的数目可以指示条带宽度,也被称为RAID宽度。作为示例而非限制,图中示出了具有宽度为四个区段的条带。当用户向RAID114、134的某个条带116、136写入数据时,所写入的数据将被存储到该条带116、136所对应的多个物理区段121中。
根据本公开所描述的双活动SP架构,存储管理系统100中所具有的两个SP(即,SPA110以及SPB130)所具有的相应RAID114、134完全一一对应,也即两个RAID116、136内部的多个条带116、136一一对应,并且两个RAID116、136的每个条带所具有的到存储管理层120中的物理区段121的映射也一一对应。也即,SPA110以及SPB130共享相同的逻辑存储空间,能够共同对该逻辑存储空间进行访问。
根据RAID技术的要求,每个RAID 114、134在多个可用盘122上均匀分布,即每个RAID113、134的多个条带都被尽量均匀分配在物理存储层120中的各个可用盘122的多个区段121。例如,如图1所示,RAID 114的一个条带116被分别映射到盘122-1的一个区段121、盘122-2的一个区段121、盘122-4的一个区段以及盘122-5的一个区段121。容易理解,图1中仅示出了一个条带的示例,其他条带也可以以类似方式被映射。还容易理解,RAID中的条带116的数量以及每个条带116的宽度都是可以灵活设定的。对于SPB 130中的RAID 134,由于其所对应的映射与RAID 116完全一致,因此其内部的条带136与SPA中的条带116对应完全相同的区段121。容易理解,每个可用盘122上向RAID分配的区段121的数目基本相同,从而实现跨多个盘的均匀分布。
在如图1所描述的双活动SP中,来自外部主机的I/O访问请求(如下也被称为访问请求或I/O请求)被随机地发送到SPA 110或SPB 130,并由SPA 110或SPB 130同时进行处理。SPA 110可以具有访问控制单元112,其中可以具有高速缓存118(也被称为多核心高速缓存或MCC),其用于接收并缓存来自外部主机的I/O访问请求和数据,并将I/O访问请求和数据冲刷到SPA110中的RAID 114中。与此类似,SPB 130可以具有访问控制单元132,其中可以具有高速缓存138,其用于接收并缓存来自外部主机的I/O访问请求和数据,并将I/O访问请求和数据冲刷到SPB 130中的RAID 134中。
容易理解,来自外部主机的针对RAID 114以及RAID 134的多个并发的I/O请求将同时访问RAID 114以及RAID 134。由于RAID 114以及RAID 134同时对应于相同的物理存储空间,这将不可避免的带来访问冲突的问题,例如,SPA 110可能当前正在对RAID 114中的条带116执行写操作,而SPB 130可能同时希望向与条带116对应的条带136中写入数据。由于这两个条带对应相同的物理区段121,在这种情况下,如果不采取相应措施,将不可避免的造成用户数据的混乱或丢失。
传统上,通常采用如下的同步机制来严格地协调和控制SPA 110和SPB 130的针对各自的RAID 114、134的访问操作。具体而言,每个访问请求都需要在执行实际操作前获取对当前条带的操作权限(以下也被称为条带锁)。其基本原则是:
1)针对写操作,每个访问请求必须获取针对目标条带的独占的条带锁,这样其他的访问请求(无论是读操作还是写操作)均无法对该目标条带进行访问。
2)针对读操作,每个访问请求需要获取针对目标条带的共享的条带锁。在这种情况下,其他的访问请求如果同样需要针对目标条带进行读操作,也可以获取共享的条带锁,从而实现对同一目标条带的同时读操作。
3)每个访问请求都需要按照接收的先后顺序被处理。
举例而言,SPA110中的RAID114在收到希望针对其内部的某个目标条带116执行写操作的访问请求A时,首先需要获取针对该目标条带的独占的条带锁。假设同时没有其他访问请求对该目标条带进行写操作,因此上述访问请求A可以获取针对该目标条带的独占的条带锁,并随后向该目标条带执行写操作。而如果在执行该写操作的同时,SPB 130中的RAID134接收到希望针对其内部的某个目标条带136(该目标条带对应于当前正被写入的条带116)执行写操作的访问请求B时,该访问请求B同样需要尝试获取针对该目标条带136的独占的条带锁。显然,此时访问请求B无法获得独占的条带锁,因此其无法执行当前针对该目标条带136的访问请求B,而只能等待SPA110中的访问请求A执行完毕,并且释放该独占的条带锁之后,SPA130中的访问请求B才能够继而获取该独占的条带锁,并针对条带136执行写操作。
如上描述了条带锁机制的一般性原则,如下将描述该条带锁机制的具体实现。在本公开的一个实施例中,存储管理系统100基于条带锁链表和条带锁缓存这两个重要的数据结构来实现对条带锁机制的管理。具体而言,在SPA 110的RAID 114中,存储和维护针对SPA110的条带锁链表以及条带锁缓存。与此类似,在SPB 130的RAID134中,存储和维护针对SPB 130的条带锁链表以及条带锁缓存。有关条带锁链表以及条带锁缓冲的具体内容,将在如下参照图2和图3进行描述。
图2示出了根据一个技术方案的在存储管理系统100中的条带锁链表的示意图200。在图2中,同时示出了在SPA 110中的条带锁链表210以及在SPB130中的条带锁链表220。并且,条带锁链表210具有多个元素211至215,条带锁链表220具有多个元素221至225。应理解,其中的数目仅仅是示例性的。每个元素均表示一个I/O操作的条带锁请求,其包含三方面的信息:LBA信息、操作属性信息和请求方信息。其中,LBA信息用于记录该I/O操作请求所针对的具体逻辑块地址区域(例如,具体位于哪个条带中的哪个或哪些逻辑块),操作属性信息用于标识该I/O操作请求具体是写操作(W)还是读操作(R),请求方信息用于标识该I/O操作请求是来自本地(L)的SP还是来自对端(P)的SP。例如,链表210的元素211中具有的信息为LBA1、R以及P,这意味着该元素211所对应的访问请求对应于逻辑块地址区域为LBA1、是读操作(R),并且来自对端(P)。
当一个新的I/O操作到来时,本地SP将会基于其{LBA区域信息,操作属性信息,请求方信息}检查其是否能够被插入到位于本地的条带锁链表中。具体而言,如果该I/O操作请求中的LBA区域与当前所有的条带锁链表元素中的LBA区域都不重合,则认为该I/O请求不与当前所有的条带锁链表元素冲突,从而能够被本地SP所允许,并按照到来的顺序加入到该条带锁链表的下方。例如,对于新增的元素214,由于其不与所有的其他元素相冲突,因此将其加入到链表210中最后的元素213的下方。
在另一方面,如果该I/O操作请求中的LBA区域与当前条带锁链表中的某个元素的LBA区域发生重叠,则认为该I/O请求与当前条带锁链表中的该元素冲突,这时新的I/O操作请求需要等待该冲突的元素所对应的I/O请求执行完毕,才能被执行。相应地,在条带锁链表中,将该新的I/O操作请求所对应的元素放置在该冲突的元素的横向链表中。例如,对于新增的元素214,由于其与元素213相冲突,因此将其加入到链表210中元素213的右方。可见,本公开中所描述的条带锁链表具有二维的链表数据结构。
容易理解,仅仅根据本地的条带锁链表所提供的信息,对于有效的条带锁机制而言是不够的。对于条带锁链表中的每个元素,其还需要检验每个I/O操作所对应的LBA区域是否得到了对端的访问许可。对端对每个LBA区域的访问请求的许可状态,需要通过查询存储在本地的访问控制单元中的条带锁缓存来实现。这将在如下参照图3更详细地描述。
图3示出了根据一个技术方案的在存储管理系统100中的条带锁缓存的示意图300。在图3中,同时示出了在SPA110中的条带锁缓存310以及在SPB 130中的条带锁缓存320。其中,条带锁缓310具有多个被称为槽(slot)的单元311、312、…、315,条带锁缓320同样具有单元321、322、…、325其中每个单元对应于RAID逻辑存储空间的一个子区域(在此也被称为存储区)。应理解,其中的数目仅仅是示例性的。
具体而言,可以将RAID的逻辑存储空间平均分为预设数目个存储区。作为一个示例,如果当前的RAID的逻辑存储空间总计为4T大小,设置存储区的数量为2048,那么这时每个存储区就对应大小为2G的逻辑存储空间。通过将RAID划分为存储区来管理条带锁,可以实现更大粒度的条带锁管理,因为每个存储区大小要大于每个逻辑块或每个条带的大小。容易理解,本公开中的“存储区”与RAID中的“条带”是不同的概念。并且,每个存储区所对应的逻辑空间大小以及条带锁缓存中的存储区的总数量是可以由用户设置的。
在SPA 110中的RAID 114所保存的条带锁缓存310以及SPB 130中的RAID 134所保存的条带锁缓存320是一一对应的,其中的每个存储区与其相应存储区均对应于同一逻辑存储空间,并且均对应于同一物理存储空间。例如,在图3中,单元311与321对应,单元312与322对应,以此类推。并且,在条带锁缓存中的每个单元,标识了本地SP对于该存储区的当前的访问状态。
具体而言,条带锁缓存310、320中的每个单元可以具有三种状态:独占、空闲以及共享。对于独占状态,意味着本地SP当前享有对该存储区的独占的访问权,并能够向该存储区的存储空间写入数据。容易理解,如果本地SP当前对某个存储区具有独占状态,则对端SP当前对该存储区的状态只能是空闲状态,即,无法执行任何访问操作。类似地,如果本地SP当前对某个存储区具有空闲状态,则对端SP当前对该存储区必然是独占状态。对于共享状态,意味着本地SP和对端SP当前共同拥有对某个存储区的共享的访问。此时,本地SP和对端SP仅能够同时对该存储区执行读访问。
参照图3,其中条带锁缓存310的单元311当前具有独占状态,与其对应,条带锁缓存320的单元321当前具有空闲状态。类似的,单元312具有空闲状态,而单元322具有独占状态。此外,单元313与对应的单元323均具有共享状态。
以下参照图1和图4详细描述根据本公开的一个实施例所采用的条带锁处理逻辑。容易理解,此处所描述的“条带锁”并不一定是针对某个特定条带的锁,而应当理解为针对逻辑存储空间的特定存储区的锁。
图4示出了根据本公开的一个实施例所采用的条带锁处理逻辑的示意图400。为便于描述,此处以SPA 110接收到的I/O访问请求为写请求为例进行说明。根据本公开的一个实施例,来自外部的写请求进入到SPA 110之后,被送入访问控制单元112。访问控制单元112中的高速缓存118随后将I/O访问请求和数据冲刷到SPA 110中的RAID 114中。RAID 114随后检查其内部所维护的本地条带锁链表210,确定当前写请求是否能够被本地SP所许可(即,是否与条带锁链表210中的所有元素211至215均不冲突)。如果发现当前写请求不被本地SP许可,其将被加入到与其LBA地址范围冲突的元素的横向链表中,并等待与其冲突的元素所对应的I/O请求执行完成并释放条带锁。如果确定本地条带锁链表210许可,则进入下一步骤。
在下一步骤中,RAID 114根据当前写请求的LBA区域信息,将其映射到所对应的本地条带锁缓存310中的单元。随后,检查该单元的状态信息,以判断该写请求是否被对端SP(即,SPB 130)所许可。具体而言,如果与该写请求对应的条带锁缓存310中的特定单元的状态为“独占”(例如,单元311),说明此时对端SP允许该写请求访问与该单元对应的存储区(因为对端SP的相应单元321的状态必然为“空闲”)。在这种情况下,不必进行其他处理,该写操作请求随后将被执行。如果本地条带锁缓存310的该单元的状态不是“独占”,则进入下一步骤。
此时,为了向该存储区写入数据,首先需要获得对特定存储区的“独占”权限。这可以通过由SPA 110向SPB 130发送配置管理接口(CMI)消息401来实现。通过SPA 110的RAID114向SPB 130的RAID 134发送CMI消401息,可以请求SPB 130给予关于该存储区的访问权限。该CMI消息401通过SPA 110所包含的CMI接口和相应的传输链路发送给SPB 130。根据本公开的一个示例,传输链路可以是PCIe链路,其被嵌入在系统背板中。每个SP都经由CMI与对端通信。
具体而言,SPB 130接收到CMI消息之后,将检查SPB的条带锁链表220,以确认来自SPA110的该写操作是否能被允许。如果该写操作与SPB的条带锁链表中220的某个元素的LBA区域冲突,则与该写操作对应的元素同样将被放置在条带锁链表220中的横向链表中,并等待发生冲突的I/O请求完成。如果该写操作不与条带锁链表220中的任何元素冲突,则说明此时SPB 130可以给予针对该写操作的许可。
随后,SPB 130需要向对端的SPA 110发送CMI消息402,以通知针对所请求的写操作的存储区的访问许可。响应于接收到SPB 130发送来的CMI消息402,SPA 110将更新其条带锁缓存310中与写请求的LBA对应的单元,将其状态设置为“独占”。并且,此时SPA110还需要向SPB 130发送CMI消息403,通知其将相应的单元状态设置为“空闲”。这意味着对端SPB130已经成功地给予本地SPA 110针对该存储区的访问权限。从而,SPA 110的RAID 114获取了条带锁,并进而能够执行该写操作。
基于上文所描述的条带锁处理逻辑,SPA 110和SPB 130就可以以各自处理来自外界的并发I/O请求,而不必担心数据冲突或混乱的情况的发生。这样的锁处理逻辑常常伴随着很多CMI消息的交互。例如,假设某一时刻SPA 110和SPB 130各自收到了N个新的I/O请求,并且这些I/O请求都落入了相同的一个条带锁缓存存储区。在这一前提下,表1示出了各种情况下所需要交互的CMI消息的计数。
表1传统锁处理逻辑所需要交互的CMI消息的计数
以SPA 110的该存储区状态为“独占”并且SPB 130的对应存储区的状态为“空闲”为例进行说明。如果全部新的I/O请求都是读请求,那么此时来自SPA 110的N个读请求不需要发送CMI消息,可以直接对该存储区进行读操作。而每个来自SPB1 30的读请求需要3个CMI消息:第一个消息需要向SPA 110请求读操作的许可,第二个消息需要向SPB 130返回读许可,而第三个消息需要告知SPA 110释放对应的条带锁,也即,将其自身的条带锁缓存的对应存储区的状态更新为“空闲”。
如果全部新的I/O请求都是写请求,此时来自SPA 110的N个写请求不需要CMI消息,可以直接对该存储区进行读操作。而每个来自SPB 130的写请求需要3个CMI消息:第一个消息需要向SPA 110请求写操作的许可,第二个消息需要向SPB 130返回写许可,而第三个消息需要告知SPA 110释放对应的条带锁,更新其自身的条带锁缓存的对应存储区的状态。表1中的其余各种情况与此类似,在此不做赘述。
基于上述描述可知,当被冲刷到本地RAID的I/O操作请求不被位于本地的条带锁缓存所许可时,这意味着对端的SP的RAID当前拥有该I/O操作所针对的存储区的条带锁。本地RAID这时需要通过PCIe链路向对端SP发送CMI消息,并由对端的RAID接收该CMI消息,将其放入CMI消息收发栈中并处理。容易理解,通过基于PCIe链路来发送和处理与条带锁机制相关的CMI消息通常需要占用一定的传输和处理时间。对于存储管理系统100而言,由于其同时存在大量的并发I/O操作,与此伴随的与条带锁机制相关的CMI消息的数量也将会相应地大量增加。这不可避免地将会对系统性能造成负面影响。
根据传统的条带锁处理机制,来自外部主机的I/O访问请求被随机地发送到SPA110或SPB 130。SPA 110的访问控制单元112中所具有高速缓存MCC 118接收并缓存来自外部主机的I/O访问请求和数据,不作区分地将I/O访问请求和数据冲刷到SPA110中的RAID114中。这样,RAID 114所要处理的访问请求可能针对的是RAID的全部存储区(RAID 134的情况与此类似)。这样,由此产生的条带锁缓存状态的变化将会非常频繁,因为相同的LBA区域可能被两个SP的不同的写操作所同时访问。
根据本公开的一些实施例,提出了一种管理存储系统的方法。包括:响应于在存储系统的第一控制单元接收到针对存储系统中的目标存储区的访问请求,确定目标存储区处于第一存储区集合还是第二存储区集合中;响应于目标存储区处于第二存储区集合中,确定由存储系统的第二控制单元来处理访问请求,其中第一控制单元和第二控制单元共享该存储系统;以及更新第一控制单元中对于目标存储区的访问状态,该访问状态指示第一控制单元对目标存储区具有的访问权限。基于该方法,能够有效地降低双活动SP架构中与条带锁机制相关的CMI消息的数量。以下将参照图5至图8和图1对该方法进行描述。
图5示出了根据本公开的一个实施例所采用的管理存储系统的方法的流程框图。在框510,来自外部主机的I/O访问请求被随机地分配到SPA 110和SPB 130。为便于描述,我们选择SPA 110接收到访问请求的情形。该访问请求由SPA 110中的访问控制单元112接收,并由其中的高速缓存MCC 118接收。随后,MCC 118确定该I/O访问请求的LBA信息,也即确定该I/O请求所针对的逻辑块地址区域。MCC 118这时还进一步确定该I/O请求所针对的逻辑块地址区域位于RAID的哪一个存储区中。具体而言,MCC 118此时也按照与RAID 114中所维护的条带锁缓存的划分方式相同的方式,对RAID逻辑存储区域进行划分,并对每个所划分的子区域(存储区)设置索引值。
MCC 118在收到访问请求后,就可以确定当前访问请求所对应的目标存储区的具体索引值。应注意,此时MCC 118不再不加区分地将其内部所缓存的全部访问请求都冲刷到位于本地的RAID 114中,而是通过确定该目标存储区处于第一存储区集合还是第二存储区集合中来对该访问请求进行区别处理。
例如,可以基于访问请求所对应的目标存储区的索引值来进行区别处理。在一个示例中,可以基于索引值来确定目标存储区是处于第一存储区集合还是第二存储区集合中,并相应采取不同的处理。在一个示例中,可以根据该目标存储区的索引值的奇偶属性来进行划分。在另一个示例中,可以根据索引值将目标存储区域分为数量大致相等的第一存储区集合和第二存储区集合。图6示出了根据本公开的一个实施例的划分逻辑存储空间的方式的示意图600。如图6所示,将逻辑存储空间划分为多个存储区601、602、603、…、606,并且按照奇偶性,对每个存储区与SPA 110和SPB 130的对应关系进行了设置。其中,存储区601、603、…、605具有为偶数的索引值,因此被分配给SPA110。存储区602、604、…、606具有为奇数的索引值,因此被分配给SPB130。应理解,本公开的实施例对划分的具体方式和数量不做限制,但为了便于描述,以下将以按照索引值的奇偶性来划分的方式为例进行说明。
在框520,如果MCC 118确定目标存储区处于第二存储区集合中(例如,索引值为奇数),确定由将对端SPB130的访问控制单元132来处理该访问请求,并因此将访问请求经由本地的CMI接口119传输到对端的CMI接口139,并输入到对端的访问控制单元132中。访问控制单元132中的高速缓存MCC 138将接收该访问请求,并随后将该访问请求冲刷到SPB 130的RAID 134进行处理。
与此对应,如果MCC 118确定目标存储区处于第一存储区集合中(例如,索引值为偶数),确定由将本地的访问控制单元112来处理该访问请求,并因此将访问请求冲刷到SPA110的RAID 114进行处理。
上述基于目标存储区的奇偶性来对访问请求进行分配的方式请参见图7。图7示出了根据本公开的一个实施例的选择性地分配访问请求的示意图700。由图中可见,对于已划分得到的多个存储区601、602、603、…、606,SPA110仅将访问请求冲刷到RAID中的索引值为偶数的存储区,而SPB130仅将访问请求冲刷到RAID中的索引值为奇数的存储区。
根据如上所描述的划分方式,可以将逻辑存储空间划分为基本上相同大小的两个区域,并相应地分配给两个SP分别进行处理。对于按照奇偶性划分逻辑存储空间的方式,则具有奇数索引值的存储区被指定给SPB 130,而具有偶数索引值的存储区被指定给SPA110。这种划分方式的益处将在下文的描述中变得明显。为了便于描述,以下将以访问操作为写操作为例进行说明。
图8A示出了根据本公开的一个实施例的初始状态时的条带锁缓存的状态的示意图800A。在存储管理系统100启动后的初始状态,SPA 110的RAID 114中的条带锁缓存310中的每个单元311至315,都默认被设置为“独占”状态。与此对应,SPB 130的RAID 134中的条带锁缓存320中的每个单元321至325,此时都为“空闲”状态。如果判断所接收到的写操作的LBA区域命中了索引值为偶数的存储区,那么确定由将本地的访问控制单元112来处理该访问请求,并因此将访问请求冲刷到SPA 110的RAID 114进行处理,由于RAID 114中针对该存储区的条带锁缓存310的相应单元的状态为“独占”,那么此时不需要通过发送CMI消息来获取条带锁,并且可以直接执行写从操作。
如果判断所接收到的写操作的LBA区域命中了索引值为奇数的存储区,则确定由将对端的访问控制单元132来处理该访问请求。此时,写操作的访问请求经由本地的CMI接口119传输到对端的CMI接口139,并输入到对端的MCC 138中。访问控制单元132中的高速缓存MCC 138将接收该访问请求,并随后将该访问请求冲刷到RAID 134进行处理。
在框530,由于RAID 134中针对该存储区的条带锁缓存的相应单元的状态为“空闲”,那么此时需要通过发送CMI消息来获取条带锁。具体而言,SPA 110的RAID 114向对端的RAID134提供许可,并在对端获取了条带锁之后,将其内部与索引值为奇数的存储区相对应的单元更新为“空闲”。此时,对端的RAID134也已将与该存储区相对应的单元更新为“独占”。容易理解,在这一阶段(也被成为启动后的预热阶段),存在一些CMI消息的交互。
图8B示出了根据本公开的一个实施例的平衡状态时的条带锁缓存的状态的示意图800B。容易理解,在一段时间的预热之后,也即在SPA 110和SPB 130已经分别处理了一段时间的访问请求之后,由于针对索引值为奇数的存储区的访问请求均被发送到SPB 130,而针对索引值为偶数的存储区的访问请求均被发送到SPA 110,那么两个SP中的条带锁缓存将会达到一个稳定的平衡状态,如图8B所示。在该平衡状态,在SPA 110中的条带锁缓存310中,与索引值为偶数的存储区相对应的单元的状态,均为“独占”,而与索引值为奇数的存储区相对应的单元的状态,均为“空闲”。
与此对应,在SPB 130中的条带锁缓存320中,与索引值为偶数的存储区相对应的单元的状态,均为“空闲”,而与索引值为奇数的存储区相对应的单元的状态,均为“独占”。
这样,一旦存储管理装置100的两个SP的条带锁缓存进入了平衡的状态,后续的所有写操作都会根据其存储区的索引值的奇偶属性而被发送到相应的SP进行处理,并且由于此时条带锁缓存中对于该存储区的状态均为“独占”状态,因此后续的所有写操作都可以被直接执行,而不需要进行任何的获取条带锁操作。从而也不需要发送任何与条带锁操作相关联的CMI消息,因而显著优化了系统的性能表现。
容易理解,在框520,本地的MCC 118不但能够基于确定目标存储区处于第二存储区集合中(例如,索引值为奇数),并将访问请求经由本地的CMI接口输入到对端的MCC 138中,还能够在对端的MCC 138基于确定由SPB 130所接收的访问请求的目标存储区处于第一存储区集合中(例如,索引值为偶数)时,从对端的MCC 138接收到访问请求,并将其冲刷到本地的RAID 114中并执行访问。
基于以上的描述可知,通过本公开的一些实施例,提出了一种对于双活动SP架构的存储管理系统的改进的管理方法。在该方法中,通过选择性地在两个SP之间分配访问请求,能够大大减少与获取条带锁操作相关联的CMI消息的收发过程,节约了与CMI消息的传输、处理相关的时间,有效提升了整个系统的性能表现。
作为一个证明,表2示出了基于本公开的一个实施例的优化后方案与优化前方案的对比的实验结果。在该实验中,通过测试单位时间(例如,每秒)内的累积I/O数量,来比较优化后的方案与优化前的方案的区别。由表2中列出的实验结果可知,优化后的方案在CPU利用率均为99%的情况下,能够获得9.7%的性能提升。这充分验证了本公开的一个实施例的方案的有效性。
表2优化后方案与优化前方案的对比
图9示出了一个可以用来实施本公开的实施例的设备900的示意性框图。如图所示,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
在某些实施例中,处理单元901可被配置为执行上文所描述的各个过程和处理,例如方法或过程500。例如,在一些实施例中,方法或过程500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM 903并由CPU 901执行时,可以执行上文描述的方法或过程500的一个或多个步骤。
特别地,根据本公开的实施例,上文参考图5描述的过程可以被实现为计算机程序产品,其可以被有形地存储在非瞬态计算机可读存储介质上,并且包括机器可执行指令,该指令在被执行时使得机器实现根据本公开的各个方面。
计算机可读存储介质可以是可以存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的、非穷举的例子包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的设备、方法和计算机程序产品的框图和/或流程图描述了本公开的各个方面。应当理解,框图和/或流程图的每个方框以及框图和/或流程图中各方框的组合,都可以由计算机可读程序指令实现。
通过以上描述和相关附图中所给出的教导,这里所给出的本公开的许多修改形式和其它实施方式将被本公开相关领域的技术人员所意识到。因此,所要理解的是,本公开的实施方式并不局限于所公开的具体实施方式,并且修改形式和其它实施方式意在包括在本公开的范围之内。此外,虽然以上描述和相关附图在部件和/或功能的某些示例组合形式的背景下对示例实施方式进行了描述,但是应当意识到的是,可以由备选实施方式提供部件和/或功能的不同组合形式而并不背离本公开的范围。就这点而言,例如,与以上明确描述的有所不同的部件和/或功能的其它组合形式也被预期处于本公开的范围之内。虽然这里采用了具体术语,但是它们仅以一般且描述性的含义所使用而并非意在进行限制。
Claims (13)
1.一种操作存储系统的方法,所述存储系统具有共享访问逻辑存储单元的第一控制单元和第二控制单元,包括:
在所述控制单元中的每个控制单元中,(1)采用条带锁方案来实现对所述控制单元之间的所述逻辑存储单元的存储区域的基于动态锁的访问控制转送,所述条带锁方案包括控制单元间消息传递,以在所述控制单元之间动态传送独占访问控制,以使得所述控制单元能够处理针对相应存储区域的访问请求,以及(2)采用分开的预定存储区域分配方案,通过所述预定存储区域分配方案,所述存储区域的相应集合被分配以相应地由所述第一控制单元和所述第二控制单元处理,而与根据所述条带锁方案的访问控制无关;
响应于所述存储系统的所述第一控制单元接收到对所述逻辑存储单元中的目标存储区的访问请求,基于所述预定存储区域分配方案确定所述目标存储区处于所述逻辑存储单元的第一存储区集合还是所述逻辑存储单元的第二存储区集合中,所述第一存储区集合和所述第二存储区集合相应地被分配给所述第一控制单元和所述第二控制单元;
响应于所述目标存储区处于所述第一存储区集合中,由所述第一控制单元来处理所述访问请求,所述处理包括在需要时根据当前条带锁状态,使用所述控制单元间消息传递,从所述第二控制单元获取针对所述目标存储区域的访问权限;
响应于所述目标存储区处于所述第二存储区集合中,(1)从所述第一控制单元向所述第二控制单元发送所述访问请求,并且由所述第二控制单元处理所述访问请求,以及(2)更新所述第一控制单元对于所述目标存储区的访问状态,所述访问状态向所述第二控制单元提供所述第一控制单元针对所述目标存储区的访问权限;以及
从而在操作周期内,使用所述预定存储区域分配方案产生平衡访问状态,在所述平衡访问状态中,所述第一控制单元已经获取针对所述第一存储区集合的访问许可,并且所述第二控制单元已经获取针对所述第二存储区集合的访问许可,并且控制单元间消息传递相应地被地减少。
2.根据权利要求1所述的方法,其中所述预定存储区域分配方案是基于奇偶校验的,并且确定所述目标存储区处于第一存储区集合还是第二存储区集合中包括:
确定所述目标存储区的索引值;以及
基于所述索引值来确定所述目标存储区处于第一存储区集合还是第二存储区集合中,其中所述第一存储区集合和所述第二存储区集合是根据所述存储系统中的存储区的索引值的奇偶属性来划分的。
3.根据权利要求1所述的方法,还包括:
使得所述第二控制单元更新所述第二控制单元对于所述目标存储区的访问状态。
4.根据权利要求3所述的方法,其中所述访问状态包括以下之一:
独占状态,所述独占状态指示所述第一控制单元或者所述第二控制单元当前能够访问所述目标存储区;以及
空闲状态,所述空闲状态指示所述第一控制单元或者所述第二控制单元当前无法访问所述目标存储区。
5.根据权利要求1所述的方法,其中所述访问请求是第一访问请求,所述目标存储区是第一目标存储区,所述方法还包括:
由所述第一控制单元,从所述第二控制单元接收第二访问请求,所述第二访问请求是针对第二控制单元接收到的、针对所述存储系统中的第二目标存储区的访问请求,并且从所述第二控制单元被发送至所述第一控制单元以用于处理所述访问请求;以及
由所述第一控制单元,基于所述第二访问请求,访问所述第二目标存储区。
6.根据权利要求1所述的方法,其中所述控制单元中的每个控制单元针对所述条带锁方案维护相应的条带锁链表和条带锁缓存,所述控制单元使用所述条带锁链表来实现所述控制单元之间的所述逻辑存储单元的所述存储区域的所述基于动态锁的访问控制转送,所述条带锁缓存被划分为对应于所述逻辑存储单元的所述存储区域的单元,并且所述控制单元使用所述条带锁缓存的所述单元来实现对所述存储区域的基于状态的访问控制,所述基于状态的访问控制包括独占、共享和空闲状态和消息传递,以在所述控制单元之间动态传送独占访问控制,以使得所述控制单元能够处理针对相应存储区域的访问请求。
7.根据权利要求1所述的方法,其中,在所述访问请求从所述第一控制单元向所述第二控制单元被发送时,在所述第一控制单元处对所述目标存储区域的所述访问状态为所述独占访问状态,并且还包括,在所述访问请求的处理期间由所述第二控制单元与所述第一控制单元交换消息以获取对所述目标存储区域的独占访问。
8.一种存储系统,包括:
逻辑存储单元,以及
具有共享访问所述逻辑存储单元的第一控制单元和第二控制单元,控制单元被共同操作以执行以下动作:
在所述控制单元中的每个控制单元中,(1)采用条带锁方案来实现对所述控制单元之间的所述逻辑存储单元的存储区域的基于动态锁的访问控制转送,所述条带锁方案包括控制单元间消息传递,以在所述控制单元之间动态传送独占访问控制,以使得所述控制单元能够处理针对相应存储区域的访问请求,以及(2)采用分开的预定存储区域分配方案,通过所述预定存储区域分配方案,所述存储区域的相应集合被分配以相应地由所述第一控制单元和所述第二控制单元处理,而与根据所述条带锁方案的访问控制无关;
响应于所述存储系统的所述第一控制单元接收到对所述逻辑存储单元中的目标存储区的访问请求,基于所述预定存储区域分配方案确定所述目标存储区处于所述逻辑存储单元的第一存储区集合还是所述逻辑存储单元的第二存储区集合中,所述第一存储区集合和所述第二存储区集合相应地被分配给所述第一控制单元和所述第二控制单元;
响应于所述目标存储区处于所述第一存储区集合中,由所述存储系统的第一控制单元来处理所述访问请求所述处理包括在需要时根据当前条带锁状态,使用所述控制单元间消息传递,从所述第二控制单元获取针对所述目标存储区域的访问权限;
响应于所述目标存储区处于所述第二存储区集合中,(1)从所述第一控制单元向所述第二控制单元发送所述访问请求,并且由所述第二控制单元处理所述访问请求,以及(2)更新所述第一控制单元对于所述目标存储区的访问状态,所述访问状态向所述第二控制单元提供所述第一控制单元针对所述目标存储区的访问权限;以及
从而在操作周期内,使用所述预定存储区域分配方案产生平衡访问状态,在所述平衡访问状态中,所述第一控制单元已经获取针对所述第一存储区集合的访问许可,并且所述第二控制单元已经获取针对所述第二存储区集合的访问许可,并且控制单元间消息传递相应地被地减少。
9.根据权利要求8所述的存储系统,所述预定存储区域分配方案是基于奇偶校验的,并且其中确定所述目标存储区处于第一存储区集合还是第二存储区集合中包括:
确定所述目标存储区的索引值;以及
基于所述索引值来确定所述目标存储区处于第一存储区集合还是第二存储区集合中,其中所述第一存储区集合和所述第二存储区集合是根据所述存储系统中的存储区的索引值的奇偶属性来划分的。
10.根据权利要求8所述的存储系统,其中所述动作还包括:
使得所述第二控制单元更新所述第二控制单元对于所述目标存储区的访问状态。
11.根据权利要求10所述的存储系统,其中所述访问状态包括以下之一:
独占状态,所述独占状态指示所述第一控制单元或者所述第二控制单元当前能够访问所述目标存储区;以及
空闲状态,所述空闲状态指示所述第一控制单元或者所述第二控制单元当前无法访问所述目标存储区。
12.根据权利要求8所述的存储系统,其中所述访问请求是第一访问请求,所述目标存储区是第一目标存储区,其中所述动作还包括:
由所述第一控制单元,从所述第二控制单元接收第二访问请求,所述第二访问请求是针对第二控制单元接收到的、针对所述存储系统中的第二目标存储区的访问请求,并且从所述第二控制单元被发送至所述第一控制单元以用于处理所述访问请求;以及
由所述第一控制单元,基于所述第二访问请求,访问所述第二目标存储区。
13.一种存储用于操作存储系统的指令集的非瞬态计算机可读介质,所述存储系统具有共享访问逻辑存储单元的第一控制单元和第二控制单元,所述指令集在由所述存储系统的所述第一控制单元和所述第二控制单元执行时,使所述存储系统通过以下方式操作:
在所述控制单元中的每个控制单元中,(1)采用条带锁方案来实现对所述控制单元之间的所述逻辑存储单元的存储区域的基于动态锁的访问控制转送,所述条带锁方案包括控制单元间消息传递,以在所述控制单元之间动态传送独占访问控制,以使得所述控制单元能够处理针对相应存储区域的访问请求,以及(2)采用分开的预定存储区域分配方案,通过所述预定存储区域分配方案,所述存储区域的相应集合被分配以相应地由所述第一控制单元和所述第二控制单元处理,而与根据所述条带锁方案的访问控制无关;
响应于所述存储系统的所述第一控制单元接收到对所述逻辑存储单元中的目标存储区的访问请求,基于所述预定存储区域分配方案确定所述目标存储区处于所述逻辑存储单元的第一存储区集合还是所述逻辑存储单元的第二存储区集合中,所述第一存储区集合和所述第二存储区集合相应地被分配给所述第一控制单元和所述第二控制单元;
响应于所述目标存储区处于所述第一存储区集合中,由所述第一控制单元来处理所述访问请求,所述处理包括在需要时根据当前条带锁状态,使用所述控制单元间消息传递,从所述第二控制单元获取针对所述目标存储区域的访问权限;
响应于所述目标存储区处于所述第二存储区集合中,(1)从所述第一控制单元向所述第二控制单元发送所述访问请求,并且由所述第二控制单元处理所述访问请求,以及(2)更新所述第一控制单元对于所述目标存储区的访问状态,所述访问状态向所述第二控制单元提供所述第一控制单元针对所述目标存储区的访问权限。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810404832.8A CN110413217B (zh) | 2018-04-28 | 2018-04-28 | 管理存储系统的方法、设备和计算机程序产品 |
US16/229,839 US11119664B2 (en) | 2018-04-28 | 2018-12-21 | Method, apparatus and computer program product for managing storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810404832.8A CN110413217B (zh) | 2018-04-28 | 2018-04-28 | 管理存储系统的方法、设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413217A CN110413217A (zh) | 2019-11-05 |
CN110413217B true CN110413217B (zh) | 2023-08-11 |
Family
ID=68292522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810404832.8A Active CN110413217B (zh) | 2018-04-28 | 2018-04-28 | 管理存储系统的方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11119664B2 (zh) |
CN (1) | CN110413217B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413204B (zh) * | 2018-04-28 | 2023-02-10 | 伊姆西Ip控股有限责任公司 | I/o管理方法、设备和计算机可读介质 |
CN111290711A (zh) * | 2020-01-21 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种raid系统的io处理方法及相关装置 |
US11416441B2 (en) | 2021-01-11 | 2022-08-16 | EMC IP Holding Company LLC | RPC-less locking mechanism based on RDMA CAW for storage cluster with active-active architecture |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073218A (en) * | 1996-12-23 | 2000-06-06 | Lsi Logic Corp. | Methods and apparatus for coordinating shared multiple raid controller access to common storage devices |
CN101599005A (zh) * | 2008-06-03 | 2009-12-09 | 国际商业机器公司 | 分配存储设备的逻辑存储实体的方法和系统 |
JP2015525392A (ja) * | 2012-12-28 | 2015-09-03 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 分散ストレージシステムのためのキャッシュ処理方法、ノード及びコンピュータ可読媒体 |
CN105408880A (zh) * | 2013-07-31 | 2016-03-16 | 甲骨文国际公司 | 对共享存储装置的持久存储器的直接访问 |
CN107526536A (zh) * | 2016-06-22 | 2017-12-29 | 伊姆西公司 | 用于管理存储系统的方法和系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6457098B1 (en) * | 1998-12-23 | 2002-09-24 | Lsi Logic Corporation | Methods and apparatus for coordinating shared multiple raid controller access to common storage devices |
US7266706B2 (en) * | 1999-03-03 | 2007-09-04 | Yottayotta, Inc. | Methods and systems for implementing shared disk array management functions |
JP4326552B2 (ja) * | 2006-10-12 | 2009-09-09 | 株式会社日立製作所 | バックエンドで他のストレージシステムと通信するストレージシステム |
US8627015B2 (en) | 2009-07-31 | 2014-01-07 | Emc Corporation | Data processing system using cache-aware multipath distribution of storage commands among caching storage controllers |
US9063663B2 (en) * | 2010-09-21 | 2015-06-23 | Hitachi, Ltd. | Semiconductor storage device and data control method thereof |
WO2013018149A1 (en) * | 2011-08-04 | 2013-02-07 | Hitachi, Ltd. | Data storage system using method for dynamically allocating physical data storage space |
JP2015114808A (ja) * | 2013-12-11 | 2015-06-22 | 富士通株式会社 | ストレージ制御装置、制御方法、及びプログラム |
CN108108311A (zh) * | 2013-12-12 | 2018-06-01 | 株式会社日立制作所 | 存储装置及存储装置的控制方法 |
CN105512052B (zh) * | 2014-10-20 | 2019-01-01 | 伊姆西公司 | 用于处理输入输出操作请求的方法和装置 |
US10732903B2 (en) * | 2018-04-27 | 2020-08-04 | Hewlett Packard Enterprise Development Lp | Storage controller sub-LUN ownership mapping and alignment |
-
2018
- 2018-04-28 CN CN201810404832.8A patent/CN110413217B/zh active Active
- 2018-12-21 US US16/229,839 patent/US11119664B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073218A (en) * | 1996-12-23 | 2000-06-06 | Lsi Logic Corp. | Methods and apparatus for coordinating shared multiple raid controller access to common storage devices |
CN101599005A (zh) * | 2008-06-03 | 2009-12-09 | 国际商业机器公司 | 分配存储设备的逻辑存储实体的方法和系统 |
JP2015525392A (ja) * | 2012-12-28 | 2015-09-03 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 分散ストレージシステムのためのキャッシュ処理方法、ノード及びコンピュータ可読媒体 |
CN105408880A (zh) * | 2013-07-31 | 2016-03-16 | 甲骨文国际公司 | 对共享存储装置的持久存储器的直接访问 |
CN107526536A (zh) * | 2016-06-22 | 2017-12-29 | 伊姆西公司 | 用于管理存储系统的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US11119664B2 (en) | 2021-09-14 |
US20190332287A1 (en) | 2019-10-31 |
CN110413217A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9891835B2 (en) | Live configurable storage | |
JP5931196B2 (ja) | I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法 | |
EP2985702B1 (en) | Data processing method and device, and computer system | |
CN109213694B (zh) | 用于缓存管理的方法和设备 | |
US11593272B2 (en) | Method, apparatus and computer program product for managing data access | |
CN110413217B (zh) | 管理存储系统的方法、设备和计算机程序产品 | |
CN105426319B (zh) | 动态缓存分区设备和方法 | |
KR20130142123A (ko) | 분산 캐쉬 일관성 프로토콜 | |
US10929293B2 (en) | Atomic operations for fabric shared memories | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
US11048422B2 (en) | Method, device, and computer readable storage medium for allocating access rights to data among storage processors | |
CN112241320A (zh) | 资源分配方法、存储设备和存储系统 | |
US10216634B2 (en) | Cache directory processing method for multi-core processor system, and directory controller | |
CN114442910A (zh) | 管理存储系统的方法、电子设备和计算机程序产品 | |
CN112445425A (zh) | 多层级存储 | |
US20230342043A1 (en) | Method, device and computer program product for locking a storage area in a storage system | |
JPWO2008149657A1 (ja) | 入出力制御システム、入出力制御方法、及び、入出力制御プログラム | |
CN110737397B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
KR20120063946A (ko) | 대용량 통합 메모리를 위한 메모리 장치 및 이의 메타데이터 관리 방법 | |
CN113391757B (zh) | 一种节点扩展方法、装置及迁入节点 | |
US9146679B2 (en) | Effectively limitless apparent free space on storage device | |
CN113168400A (zh) | 一种数据读取方法、装置及多核处理器 | |
US20230273728A1 (en) | Storage control apparatus and method | |
CN107102898B (zh) | 一种基于numa架构的内存管理、构建数据结构的方法及装置 | |
CN117331858B (zh) | 存储装置及数据处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |