CN105653212B - 一种vd的均衡处理方法和装置 - Google Patents
一种vd的均衡处理方法和装置 Download PDFInfo
- Publication number
- CN105653212B CN105653212B CN201610132940.5A CN201610132940A CN105653212B CN 105653212 B CN105653212 B CN 105653212B CN 201610132940 A CN201610132940 A CN 201610132940A CN 105653212 B CN105653212 B CN 105653212B
- Authority
- CN
- China
- Prior art keywords
- vdg
- mapping relations
- deleting
- strategy
- mapping
- 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/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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Abstract
本发明提供一种VD的均衡处理方法和装置,该方法包括:在将VDG对应的第一VD中的数据迁移到第二VD之后,保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系;判断是否满足删除所述VDG与第一VD的映射关系的策略;如果是,则删除所述VDG与第一VD的映射关系;在删除所述VDG与第一VD的映射关系之前,在所述第一VD上保留已经迁移到所述第二VD的数据。通过本发明的技术方案,在均衡处理完成后,不立即解除VDG与第一VD的映射关系,使得VDG下形成多个VD,存在类似于RAID1的镜像模式,能够提供数据冗余,只要有一个VD正常,数据就得以保存,达到双副本模式的故障保护,在第二VD失效的情况下,能够减少重构事件,提升重构进度。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种VD的均衡处理方法和装置。
背景技术
为解决重构时间较长的问题,传统的阵列构建方式逐渐演变到块虚拟化方式,如图1所示,为块虚拟化的架构示意图,通过块虚拟化方式,由存储池(POOL)向上层提供资源。块虚拟化的基本思想是:将指定数量PD(Physical Disk,物理磁盘)加入到存储池中,按照指定大小将PD切割成多个VD(Virtual Disk,虚拟磁盘,即分块),多个VD按照相应RAID(Redundant Arrays of Independent Disks,独立冗余磁盘阵列)策略组建VDG(VirtualDisk Group,虚拟磁盘组),并向上层提供资源。在此基础上,VD是组成VDG的虚拟磁盘单元,VDG由多个位于不同PD上的VD组成,RAID由多个VDG组成。
均衡和扩容是块虚拟化中的两个比较重要的技术。当存储池中的资源(即VD资源)不足以满足上层业务的需求时,可以对存储池进行扩容,即在存储池中添加新PD,并按照指定大小将新PD切割成多个VD,新PD所切割成的多个VD用于继续向上层提供资源,以满足上层业务的需求。在将新PD加入到存储池之后,新PD的利用率远远小于原有PD的利用率,可以对存储池进行均衡,将原有PD上VD中的数据迁移到新PD的VD中,均衡的目的是使存储池中的各个PD的利用率保持在平均利用率的有效范围之内。
在图1中,将PD1、PD2、PD3、PD4、PD5加入到存储池中,按照指定大小将各PD切割成9个VD,VDG1由VD11、VD21、VD31、VD41组成,VDG2由VD12、VD22、VD32、VD51组成,VDG3由VD13、VD23、VD42、VD52组成,VDG4由VD14、VD33、VD43、VD53组成,VDG5由VD24、VD34、VD44、VD54组成,VDG6由VD15、VD25、VD35、VD45组成,以此类推。第一个RAID由VDG1、VDG2和VDG3组成,第二个RAID由VDG4、VDG5和VDG6组成。在对存储池进行扩容后,重新将PD6加入到存储池,并按照指定大小将PD6切割成9个VD,新PD(PD6)的利用率为0,而原有PD的利用率远大于新PD的利用率,需要对存储池进行均衡处理,以使存储池中的各个PD的利用率保持在平均利用率的有效范围之内。
发明内容
本发明提供一种虚拟磁盘VD的均衡处理方法,所述方法包括:
在将虚拟磁盘组VDG对应的第一VD中的数据迁移到第二VD之后,保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系;
判断是否满足删除所述VDG与第一VD的映射关系的策略;
如果是,则删除所述VDG与第一VD的映射关系;
在删除所述VDG与第一VD的映射关系之前,在所述第一VD上保留已经迁移到所述第二VD的数据。
所述判断是否满足删除所述VDG与第一VD的映射关系的策略,包括:
在创建新VDG时,如果剩余空闲VD数量小于创建所述新VDG所需的VD数量,则确定满足删除所述VDG与第一VD的映射关系的策略;或者,
在向所述VDG中写入数据时,如果所述数据需要被写入到所述第一VD中,则确定满足删除所述VDG与第一VD的映射关系的策略;或者,
为所述VDG与第一VD的映射关系设置老化定时器,在所述老化定时器超时时,则确定满足删除所述VDG与第一VD的映射关系的策略。
所述方法还包括:在保留所述VDG与第一VD的映射关系之后,为所述VDG与第一VD的映射关系设置允许释放标记;
在判断是否满足删除所述VDG与第一VD的映射关系的策略时,查询所述VDG与第一VD的映射关系是否设置有所述允许释放标记,如果是,则判断是否满足删除所述VDG与第一VD的映射关系的策略。
所述判断是否满足删除所述VDG与第一VD的映射关系的策略之后,所述方法还包括:在未满足删除所述VDG与第一VD的映射关系的策略之前,如果所述第二VD失效,则删除所述VDG与第二VD的映射关系,并使用所述VDG与第一VD的映射关系、所述第一VD中的数据,恢复所述VDG。
在VDG的映射表中记录所述VDG与各VD的映射关系,所述方法还包括:在保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系的过程中,将所述第一VD从所述映射表的第一位置迁移到第二位置,并将所述第二VD记录到所述第一位置;在删除所述VDG与第一VD的映射关系之后,保留所述第二VD在所述映射表的第一位置;或者,
在保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系的过程中,保留所述第一VD在所述映射表的第一位置,并将所述第二VD记录在所述映射表的第二位置;在删除所述VDG与第一VD的映射关系之后,将所述第二VD从所述映射表的第二位置迁移到第一位置。
本发明提供一种虚拟磁盘VD的均衡处理装置,所述装置包括:
处理模块,用于在将虚拟磁盘组VDG对应的第一VD中的数据迁移到第二VD之后,保留所述VDG与第一VD的映射关系,并建立所述VDG与第二VD的映射关系;
判断模块,用于判断是否满足删除VDG与第一VD的映射关系的策略;
删除模块,用于当判断结果为是时,删除所述VDG与第一VD的映射关系;
保留模块,用于在所述删除模块删除所述VDG与第一VD的映射关系之前,在所述第一VD上保留已经迁移到所述第二VD的数据。
所述判断模块,具体用于在判断是否满足删除VDG与第一VD的映射关系的策略的过程中,在创建新VDG时,如果剩余空闲VD数量小于创建所述新VDG所需的VD数量,则确定满足删除所述VDG与第一VD的映射关系的策略;或者,在向所述VDG中写入数据时,如果所述数据需要被写入到所述第一VD中,则确定满足删除所述VDG与第一VD的映射关系的策略;或者,为所述VDG与第一VD的映射关系设置老化定时器,在所述老化定时器超时时,则确定满足删除所述VDG与第一VD的映射关系的策略。
所述处理模块,还用于在保留所述VDG与第一VD的映射关系之后,为所述VDG与第一VD的映射关系设置允许释放标记;
所述判断模块,具体用于在判断是否满足删除所述VDG与第一VD的映射关系的策略的过程中,查询所述VDG与第一VD的映射关系是否被所述处理模块设置有所述允许释放标记,如果是,则判断是否满足删除所述VDG与第一VD的映射关系的策略。
所述处理模块,还用于在判断是否满足删除所述VDG与第一VD的映射关系的策略后,在未满足删除所述VDG与第一VD的映射关系的策略之前,如果所述第二VD失效,则删除所述VDG与第二VD的映射关系,并使用所述VDG与第一VD的映射关系、所述第一VD中的数据,恢复所述VDG。
在VDG的映射表中记录有所述VDG与各VD的映射关系;
所述处理模块,还用于在保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系的过程中,将所述第一VD从所述映射表的第一位置迁移到第二位置,将所述第二VD记录到所述第一位置;在删除所述VDG与第一VD的映射关系后,保留所述第二VD在所述映射表的第一位置;或者,在保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系的过程中,保留所述第一VD在所述映射表的第一位置,并将所述第二VD记录在所述映射表的第二位置;在删除所述VDG与第一VD的映射关系后,将所述第二VD从所述映射表的第二位置迁移到第一位置。
基于上述技术方案,本发明实施例中,在将第一VD中的数据迁移到第二VD之后,保留VDG与第一VD的映射关系,且在删除VDG与第一VD的映射关系之前,在第一VD上保留已经迁移到第二VD的数据,即不从第一VD上删除已经迁移到第二VD的数据,而是在满足删除VDG与第一VD的映射关系的策略时,才删除VDG与第一VD的映射关系,而在删除VDG与第一VD的映射关系之后,才从第一VD上删除已经迁移到第二VD的数据。基于此,在对存储池进行扩容之后的均衡处理过程中,在均衡处理完成后,不立即解除VDG与第一VD的映射关系,使得VDG下形成多个VD(即第一VD和第二VD),对于均衡后的VD存在类似于RAID1的镜像模式,能够提供数据冗余,只要有一个VD正常,数据就得以保存,从而达到VD双副本模式的故障保护,在第二VD失效的情况下,能够减少重构事件,提升重构进度。由于VDG下存在多个VD,因此还可以提升读性能。
附图说明
为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是块虚拟化的架构示意图;
图2是使用3个PD创建存储池的架构示意图;
图3是扩容之后的块虚拟化的架构示意图;
图4是本发明一种实施方式中的VD的均衡处理方法的流程图;
图5是本发明一种实施方式中的应用场景示意图;
图6是本发明一种实施方式中的存储设备的硬件结构图;
图7是本发明一种实施方式中的VD的均衡处理装置的结构图。
具体实施方式
在本发明使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明。本发明和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在对存储池进行扩容,并重新将新PD加入到存储池之后,新PD的利用率为0,而原有PD的利用率远大于新PD的利用率,需要对存储池进行均衡处理,以使存储池中的各个PD的利用率保持在平均利用率的有效范围之内。例如,平均利用率为N,平均利用率上下浮动范围为x%,则存储池中的各个PD的利用率最终需要保持在[N*(1-x%),N*(1+x%)]范围之内,从而达到均衡的效果。均衡的主要目的是:通过将各个数据VD分散到不同PD上,在重构发生时能够多盘联动,提高重构速度。此外,在删除已有的RAID时,也可以执行均衡处理,通过动态统计各个PD上被占用VD的使用个数,计算出一个平均使用率N,平均利用率上下范围为x%,然后找出VD使用率高的PD,将VD使用率高的PD中的数据迁移到VD使用率低的PD的VD中,使得各个PD的利用率最终需要保持在[N*(1-x%),N*(1+x%)]范围之内。
针对均衡处理过程,在一种可行的方式中,为了使各个PD的利用率最终保持在[N*(1-x%),N*(1+x%)]范围之内,将原有PD的VD上的数据,迁移到新PD的VD上,然后将原有PD的VD上的数据删除,使该VD称为空闲VD。VDG对应的VD不再映射原有PD的VD,而是映射新PD的VD。
如图2所示,假设使用3个PD创建存储池,RAID由VDG1、VDG2、VDG3和VDG4等组成。为了方便管理PD中的VD,在创建RAID时,每个VDG实际上会预先分配4个映射关系,前3个映射关系对应已经使用的三个VD,而第4个映射关系对应预留使用的一个VD,此时该VD未使用。
在扩容之前,VDG1由VD11、VD21、VD31组成,VDG2由VD12、VD22、VD32组成,VDG3由VD13、VD23、VD33组成,VDG4由VD14、VD24、VD34组成。在扩容之后,如图3所示,将VD11的数据迁移到VD41,将VD22的数据迁移到VD42,将VD33的数据迁移到VD43,这样,VDG1由VD41、VD21、VD31组成,VDG2由VD12、VD42、VD32组成,VDG3由VD13、VD23、VD43组成,VDG4由VD14、VD24、VD34组成。
在将VD11的数据迁移到VD41后,从VD11中删除相关数据,且在VDG1对应的映射关系中,只存在VD41、VD21、VD31。在将VD22的数据迁移到VD42后,从VD22中删除相关数据,且在VDG2对应的映射关系中,只存在VD12、VD42、VD32。在将VD33的数据迁移到VD43后,从VD33中删除相关数据,且在VDG3对应的映射关系中,只存在VD13、VD23、VD43。
经过上述均衡处理之后,PD1、PD2和PD3上各有一个VD变为空闲VD,而新扩容的PD4有3个VD被占用了,从而达到均衡效果。此外,VDG中有3个映射建立起新的映射关系,而第4个映射重新变为了无效映射。
在上述过程中,将原有PD的VD上的数据,迁移到新PD的VD上之后,立即将原有PD的VD上的数据删除,虽然释放出空闲VD,但释放的VD并不会被立刻使用到,只是变成空闲VD而已。假设新PD的VD或者新PD失效,则又会去原有PD上进行重构,再次进行数据迁移操作,效率较低。
针对现有技术中存在的问题,本发明实施例中提出一种VD的均衡处理方法,该方法可以应用在块虚拟化的组网架构中。在块虚拟化的组网架构中,由存储池向上层提供资源,在存储池中包括多个PD,且按照指定大小将每个PD切割成多个VD,多个VD按照相应的RAID策略组建VDG,并向上层提供资源。进一步的,当存储池中的资源(即VD资源)不足以满足上层业务的需求时,可以对存储池进行扩容,即在存储池中添加新PD,并按照指定大小将新PD切割成多个VD,且新PD所切割成的多个VD用于继续向上层提供资源,以满足上层业务的需求。在此基础上,存储池内可以包括扩容前的K个PD和扩容后的M个PD,其中,K为正整数,M为正整数。如图3所示,K为3,M为1。
如图3所示,在扩容之前,VDG1由VD11、VD21、VD31组成,VDG2由VD12、VD22、VD32组成,VDG3由VD13、VD23、VD33组成,VDG4由VD14、VD24、VD34组成。之后为了满足上层业务的需求,将PD4加入到存储池中,在将PD4加入到存储池后,PD4的利用率(即0)将远远小于原有PD的利用率,此时可以对存储池进行均衡处理,将原有PD上VD中的数据迁移到PD4的VD中,均衡的目的是使存储池中的各个PD的利用率保持在平均利用率的有效范围之内。例如,在扩容之后,将VD11的数据迁移到VD41,将VD22的数据迁移到VD42,将VD33的数据迁移到VD43,这样,VDG1由VD41、VD21、VD31组成,VDG2由VD12、VD42、VD32组成,VDG3由VD13、VD23、VD43组成,VDG4由VD14、VD24、VD34组成。
其中,为了使存储池中的各个PD的利用率保持在平均利用率的有效范围之内,则将扩容前的K个PD中的部分VD的数据迁移到扩容后的M个PD中的VD上,以使K个PD和M个PD的利用率(或空闲率)保持在平均利用率的有效范围之内。在将K个PD中的部分VD的数据迁移到M个PD中的VD时,针对K个PD中的位于同一个VDG的多个VD,该多个VD中可以迁移部分VD(如一个VD)的数据到M个PD中对应个数的VD上。
其中,PD的利用率是指:PD上被使用的VD利用率,如当PD上存在10个VD,且这10个VD中有3个VD存储数据时,则PD的利用率为30%。
其中,在对K个PD和M个PD中的VD进行均衡处理的过程中,判断PD的利用率是否在平均利用率的有效范围之内。如果该PD的利用率在平均利用率的有效范围之内,则不对该PD中的VD进行均衡处理。如果该PD的利用率大于平均利用率的有效范围,则将该PD的部分VD的数据迁移到利用率小于平均利用率的有效范围的PD的VD上,以使该PD的利用率在平均利用率的有效范围之内。如果该PD的利用率小于平均利用率的有效范围,则将利用率大于平均利用率的有效范围的PD的部分VD的数据迁移到该PD的VD上,以使该PD的利用率在平均利用率的有效范围之内。基于上述方式,可以保证K个PD和M个PD的利用率均在平均利用率的有效范围之内。
其中,平均利用率的有效范围具体可以包括:[N*(1-x%),N*(1+x%)],N为平均利用率,x为预设阈值,x可以根据实际经验进行设置。
上述处理过程为VD上数据的均衡处理过程,在上述均衡处理过程的基础上,如图4所示,该VD的均衡处理方法还可以包括以下步骤:
步骤401,在将VDG对应的第一VD中的数据迁移到第二VD之后,保留VDG与第一VD的映射关系,并建立VDG与第二VD的映射关系。
例如,针对VDG1,在将VD11的数据迁移到VD41之后,不从VD11中删除已经被迁移到VD41的数据,继续在VD11中保留已经被迁移到VD41的数据。而且,保留VDG1与VD11的映射关系,并建立VDG1与VD41的映射关系,如图5所示,在VDG1对应的映射关系中,存在VD11、VD21、VD31、VD41。针对VDG2,在将VD22的数据迁移到VD42之后,不从VD22中删除已经被迁移到VD42的数据,继续在VD22中保留已经被迁移到VD42的数据。而且,保留VDG2与VD22的映射关系,并建立VDG2与VD42的映射关系,如图5所示,在VDG2对应的映射关系中,存在VD12、VD22、VD32、VD42。针对VDG3,在将VD33的数据迁移到VD43之后,不从VD33中删除已经被迁移到VD43的数据,继续在VD33中保留已经被迁移到VD43的数据。而且保留VDG3与VD33的映射关系,并建立VDG3与VD43的映射关系,如图5所示,在VDG3对应的映射关系中,存在VD13、VD23、VD33、VD43。对VDG4不进行数据迁移处理,由VD14、VD24、VD34组成。
步骤402,判断是否满足删除VDG与第一VD的映射关系的策略。
如果是,则执行步骤403。如果否,在未满足删除VDG与第一VD的映射关系的策略之前,如果第二VD失效,则删除VDG与第二VD的映射关系,并使用VDG与第一VD的映射关系、第一VD中的数据,恢复VDG。
步骤403,删除VDG与第一VD的映射关系。
步骤404,在删除VDG与第一VD的映射关系之前,在第一VD上保留已经迁移到第二VD的数据。在删除VDG与第一VD的映射关系之后,从第一VD上删除已经迁移到第二VD的数据。
本发明实施例中,判断是否满足删除VDG与第一VD的映射关系的策略的过程,具体可以包括但不限于如下方式:在创建新VDG时,如果剩余空闲VD数量小于创建新VDG所需的VD数量,则确定满足删除VDG与第一VD的映射关系的策略。或者,在向VDG中写入数据时,如果该数据需要被写入到第一VD中,则确定满足删除VDG与第一VD的映射关系的策略。或者,为VDG与第一VD的映射关系设置老化定时器,在该老化定时器超时时,则直接确定满足删除VDG与第一VD的映射关系的策略。
本发明实施例中,在保留VDG与第一VD的映射关系之后,还可以为VDG与第一VD的映射关系设置允许释放标记,基于此,在判断是否满足删除VDG与第一VD的映射关系的策略时,查询VDG与第一VD的映射关系是否设置有允许释放标记。如果是,则判断是否满足删除VDG与第一VD的映射关系的策略。如果否,则不需要判断是否满足删除映射关系的策略。
本发明实施例中,在VDG的映射表中记录有VDG与各VD的映射关系,在保留VDG与第一VD的映射关系,并建立VDG与第二VD的映射关系的过程中,将第一VD从映射表的第一位置迁移到第二位置,并将第二VD记录到第一位置;基于此,在删除VDG与第一VD的映射关系之后,保留第二VD在映射表的第一位置。或者,在保留VDG与第一VD的映射关系,建立VDG与第二VD的映射关系的过程中,保留第一VD在映射表的第一位置,并将第二VD记录在映射表的第二位置;基于此,在删除VDG与第一VD的映射关系之后,将第二VD从映射表的第二位置迁移到第一位置。
以下结合具体的应用场景对上述过程进行详细说明。
应用场景1,本应用场景1以VDG1的处理过程为例。
为了方便管理PD中的VD,在创建RAID时,每个VDG的映射表中实际上会预先分配N+1个位置,N个位置对应已经使用的VD,最后一个位置对应预留使用的一个VD,该VD未使用。在此基础上,在将VD11的数据迁移到VD41之前,VDG1的映射表的位置1记录VD11,位置2记录VD21,位置3记录VD31。在将VD11的数据迁移到VD41之后,VDG1的映射表的位置1记录VD11,位置2记录VD21,位置3记录VD31,位置4记录VD41。
在将VD11的数据迁移到VD41之后,不从VD11中删除被迁移到VD41的数据,继续在VD11中保留被迁移到VD41的数据。而且保留VDG1与VD11的映射关系,在位置1继续保留VD11,并为该VD11设置允许释放标记。
在未满足删除VDG1与VD11的映射关系的策略之前,如果VD41失效,则直接删除VDG1与VD41的映射关系,即直接从位置4中删除VD41,并使用VDG1与VD11的映射关系、以及VD11中的数据,恢复VDG1。
在满足删除VDG1与VD11的映射关系的策略时,则直接删除VDG1与VD11的映射关系,即从位置1上直接删除VD11,并将VD41从位置4迁移到位置1,此时位置4空余,并从VD11上删除已经迁移到VD41的数据。
情况一、在创建新VDG时,如果当前剩余空闲VD数量小于创建新VDG所需的VD数量,则确定满足删除VDG1与VD11的映射关系的策略,并找到设置有允许释放标记的VD11,并删除VDG1与VD11的映射关系,并从VD11上删除已经迁移到VD41的数据,从而使VD11变成空闲VD,并使用VD创建新VDG,即VD11作为新VDG使用的VD,参与后续的创建过程。此外,如果当前剩余空闲VD数量不小于创建新VDG所需的VD数量,则可以确定不满足删除VDG1与VD11的映射关系的策略。
情况二、在向VDG1中写入数据时,如果该数据需要被写入到VD11中,则确定满足删除VDG1与VD11的映射关系的策略,并需要删除VDG1与VD11的映射关系,并从VD11上删除已经迁移到VD41的数据,从而使VD11变成空闲VD,基于此,可以免数据同时写入到VD11和VD41所导致的数据重复写入问题,从而避免增加写业务负担。此外,在向VDG1中写入数据,且该数据需要被写入到VD21或者VD31时,或者,在向其它VDG写入数据时,则均可以确定不满足删除VDG1与VD11的映射关系的策略。
情况三,在将VDG1对应的VD11中的数据迁移到VD41之后,为VDG1与VD11的映射关系设置老化定时器。在该老化定时器超时之前,则确定不满足删除VDG1与VD11的映射关系的策略。在该老化定时器超时时,则确定满足删除VDG1与VD11的映射关系的策略,删除VDG1与VD11的映射关系,并从VD11上删除已经迁移到VD41的数据,使VD11变成空闲VD。
应用场景2,本应用场景2以VDG1的处理过程为例。
为了方便管理PD中的VD,在创建RAID时,每个VDG的映射表中实际上会预先分配N+1个位置,N个位置对应已经使用的VD,最后一个位置对应预留使用的一个VD,该VD未使用。在此基础上,在将VD11的数据迁移到VD41之前,VDG1的映射表的位置1记录VD11,位置2记录VD21,位置3记录VD31。在将VD11的数据迁移到VD41之后,VDG1的映射表的位置1记录VD41,位置2记录VD21,位置3记录VD31,位置4记录VD11。
在将VD11的数据迁移到VD41之后,不从VD11中删除被迁移到VD41的数据,继续在VD11中保留被迁移到VD41的数据。而且保留VDG1与VD11的映射关系,在位置4记录VD11,并为该VD11设置允许释放标记。
在未满足删除VDG1与VD11的映射关系的策略之前,如果VD41失效,则直接删除VDG1与VD41的映射关系,即直接从位置1中删除VD41,并将VD11从位置4迁移到位置1,此时位置4为空余,进一步的,还可以使用VDG1与VD11的映射关系、以及VD11中的数据,恢复VDG1。
在满足删除VDG1与VD11的映射关系的策略时,则直接删除VDG1与VD11的映射关系,即从位置4上直接删除VD11,此时不需要对VD41的位置进行迁移,此时位置4空余,并从VD11上删除已经迁移到VD41的数据。
情况一、在创建新VDG时,如果当前剩余空闲VD数量小于创建新VDG所需的VD数量,则确定满足删除VDG1与VD11的映射关系的策略,并找到设置有允许释放标记的VD11,并删除VDG1与VD11的映射关系,并从VD11上删除已经迁移到VD41的数据,从而使VD11变成空闲VD,并使用VD创建新VDG,即VD11作为新VDG使用的VD,参与后续的创建过程。此外,如果当前剩余空闲VD数量不小于创建新VDG所需的VD数量,则可以确定不满足删除VDG1与VD11的映射关系的策略。
情况二、在向VDG1中写入数据时,如果该数据需要被写入到VD11中,则确定满足删除VDG1与VD11的映射关系的策略,并需要删除VDG1与VD11的映射关系,并从VD11上删除已经迁移到VD41的数据,从而使VD11变成空闲VD,基于此,可以免数据同时写入到VD11和VD41所导致的数据重复写入问题,从而避免增加写业务负担。此外,在向VDG1中写入数据,且该数据需要被写入到VD21或者VD31时,或者,在向其它VDG写入数据时,则均可以确定不满足删除VDG1与VD11的映射关系的策略。
情况三,在将VDG1对应的VD11中的数据迁移到VD41之后,为VDG1与VD11的映射关系设置老化定时器。在该老化定时器超时之前,则确定不满足删除VDG1与VD11的映射关系的策略。在该老化定时器超时时,则确定满足删除VDG1与VD11的映射关系的策略,删除VDG1与VD11的映射关系,并从VD11上删除已经迁移到VD41的数据,使VD11变成空闲VD。
基于上述技术方案,本发明实施例中,在将第一VD中的数据迁移到第二VD之后,保留VDG与第一VD的映射关系,且在删除VDG与第一VD的映射关系之前,在第一VD上保留已经迁移到第二VD的数据,即不从第一VD上删除已经迁移到第二VD的数据,而是在满足删除VDG与第一VD的映射关系的策略时,才删除VDG与第一VD的映射关系,而在删除VDG与第一VD的映射关系之后,才从第一VD上删除已经迁移到第二VD的数据。基于此,在对存储池进行扩容之后的均衡处理过程中,在均衡处理完成后,不立即解除VDG与第一VD的映射关系,使得VDG下形成多个VD(即第一VD和第二VD),对于均衡后的VD存在类似于RAID1的镜像模式,能够提供数据冗余,只要有一个VD正常,数据就得以保存,从而达到VD双副本模式的故障保护,在第二VD失效的情况下,能够减少重构事件,提升重构进度。由于VDG下存在多个VD,因此还可以提升读性能。
本发明实施例中,在采用应用场景2进行处理时,与应用场景1对比,会将VD11的位置与VD41的位置进行互换。基于应用场景1和应用场景2,在读取数据时,若数据落在VD11或者VD41上,可以从VD11和VD41上同时读数据,提高50%的读取性能。若VD41失效,可以不申请重构VD,而直接将VDG1中的VD11交换进来,而无需重构,提高重构性能。
如图5所示,均衡后的VDG中依然可以映射到第一VD,而且可以映射到第二VD,从而形成类似于RAID1的镜像模式,能够提供数据冗余,只要有一个VD正常,数据就得以保存,也就是说,可以实现双副本模式的故障保护,这对于第二VD失效而去寻找新VD重构数据的性能提升尤为重要。
而且,VDG与第一VD的映射关系并不是长期存在的,而是动态生成的,为了不像RAID1一样双写导致写性能下降,对于有业务命中第一VD或者第二VD的情况,会解除VDG与第一VD的映射关系,使得第一VD重新变为空闲VD,而不必承担双写的压力,临时解除DG与第一VD的映射关系,对业务写IO的影响几乎可以忽略不计,从而不会影响业务处理性能。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种VD的均衡处理装置,该VD的均衡处理装置应用在存储设备上。其中,该VD的均衡处理装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的存储设备的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图6所示,为本发明提出的VD的均衡处理装置所在的存储设备的一种硬件结构图,除了图6所示的处理器、非易失性存储器外,存储设备还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该存储设备还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
如图7所示,为本发明提出的VD的均衡处理装置的结构图,所述装置包括:处理模块11,用于在将VDG对应的第一VD中的数据迁移到第二VD之后,保留所述VDG与第一VD的映射关系,并建立所述VDG与第二VD的映射关系;判断模块12,用于判断是否满足删除VDG与第一VD的映射关系的策略;删除模块13,用于当判断结果为是时,则删除所述VDG与第一VD的映射关系;保留模块14,用于在所述删除模块13删除所述VDG与第一VD的映射关系之前,在所述第一VD上保留已经迁移到所述第二VD的数据。
所述判断模块12,具体用于在判断是否满足删除VDG与第一VD的映射关系的策略的过程中,在创建新VDG时,如果剩余空闲VD数量小于创建所述新VDG所需的VD数量,确定满足删除所述VDG与第一VD的映射关系的策略;或者,在向所述VDG中写入数据时,如果所述数据需要被写入到所述第一VD中,确定满足删除所述VDG与第一VD的映射关系的策略;或者,为所述VDG与第一VD的映射关系设置老化定时器,在所述老化定时器超时时,确定满足删除所述VDG与第一VD的映射关系的策略。
所述处理模块11,还用于在保留所述VDG与第一VD的映射关系之后,为所述VDG与第一VD的映射关系设置允许释放标记;
所述判断模块12,具体用于在判断是否满足删除所述VDG与第一VD的映射关系的策略的过程中,查询所述VDG与第一VD的映射关系是否被所述处理模块11设置有所述允许释放标记,如果是,则判断是否满足删除所述VDG与第一VD的映射关系的策略。
所述处理模块11,还用于在判断是否满足删除所述VDG与第一VD的映射关系的策略后,在未满足删除所述VDG与第一VD的映射关系的策略前,如果所述第二VD失效,则删除所述VDG与第二VD的映射关系,并使用所述VDG与第一VD的映射关系、所述第一VD中的数据,恢复所述VDG。
在VDG的映射表中记录有所述VDG与各VD的映射关系;
所述处理模块11,还用于在保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系的过程中,将所述第一VD从所述映射表的第一位置迁移到第二位置,将所述第二VD记录到所述第一位置;在删除所述VDG与第一VD的映射关系后,保留所述第二VD在所述映射表的第一位置;或者,在保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系的过程中,保留所述第一VD在所述映射表的第一位置,将所述第二VD记录在所述映射表的第二位置;在删除所述VDG与第一VD的映射关系后,将所述第二VD从所述映射表的第二位置迁移到第一位置。
基于上述技术方案,本发明实施例中,在将第一VD中的数据迁移到第二VD之后,保留VDG与第一VD的映射关系,且在删除VDG与第一VD的映射关系之前,在第一VD上保留已经迁移到第二VD的数据,即不从第一VD上删除已经迁移到第二VD的数据,而是在满足删除VDG与第一VD的映射关系的策略时,才删除VDG与第一VD的映射关系,而在删除VDG与第一VD的映射关系之后,才从第一VD上删除已经迁移到第二VD的数据。基于此,在对存储池进行扩容之后的均衡处理过程中,在均衡处理完成后,不立即解除VDG与第一VD的映射关系,使得VDG下形成多个VD(即第一VD和第二VD),对于均衡后的VD存在类似于RAID1的镜像模式,能够提供数据冗余,只要有一个VD正常,数据就得以保存,从而达到VD双副本模式的故障保护,在第二VD失效的情况下,能够减少重构事件,提升重构进度。由于VDG下存在多个VD,因此还可以提升读性能。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种虚拟磁盘VD的均衡处理方法,其特征在于,所述方法包括:
在将虚拟磁盘组VDG对应的第一VD中的数据迁移到第二VD之后,保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系;
判断是否满足删除所述VDG与第一VD的映射关系的策略;
如果是,则删除所述VDG与第一VD的映射关系;
在删除所述VDG与第一VD的映射关系之前,在所述第一VD上保留已经迁移到所述第二VD的数据。
2.根据权利要求1所述的方法,其特征在于,所述判断是否满足删除所述VDG与第一VD的映射关系的策略的过程,具体包括:
在创建新VDG时,如果剩余空闲VD数量小于创建所述新VDG所需的VD数量,则确定满足删除所述VDG与第一VD的映射关系的策略;或者,
在向所述VDG中写入数据时,如果所述数据需要被写入到所述第一VD中,则确定满足删除所述VDG与第一VD的映射关系的策略;或者,
为所述VDG与第一VD的映射关系设置老化定时器,在所述老化定时器超时时,则确定满足删除所述VDG与第一VD的映射关系的策略。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在保留所述VDG与第一VD的映射关系之后,为所述VDG与第一VD的映射关系设置允许释放标记;
在判断是否满足删除所述VDG与第一VD的映射关系的策略时,查询所述VDG与第一VD的映射关系是否设置有所述允许释放标记,如果是,则判断是否满足删除所述VDG与第一VD的映射关系的策略。
4.根据权利要求1或2所述的方法,其特征在于,所述判断是否满足删除所述VDG与第一VD的映射关系的策略之后,所述方法还包括:
在未满足删除所述VDG与第一VD的映射关系的策略之前,如果所述第二VD失效,则删除所述VDG与第二VD的映射关系,并使用所述VDG与第一VD的映射关系、所述第一VD中的数据,恢复所述VDG。
5.根据权利要求1或2所述的方法,其特征在于,在VDG的映射表中记录所述VDG与各VD的映射关系,所述方法还包括:
在保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系的过程中,将所述第一VD从所述映射表的第一位置迁移到第二位置,并将所述第二VD记录到所述第一位置;在删除所述VDG与第一VD的映射关系之后,保留所述第二VD在所述映射表的第一位置;或者,
在保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系的过程中,保留所述第一VD在所述映射表的第一位置,并将所述第二VD记录在所述映射表的第二位置;在删除所述VDG与第一VD的映射关系之后,将所述第二VD从所述映射表的第二位置迁移到第一位置。
6.一种虚拟磁盘VD的均衡处理装置,其特征在于,所述装置包括:
处理模块,用于在将虚拟磁盘组VDG对应的第一VD中的数据迁移到第二VD之后,保留所述VDG与第一VD的映射关系,并建立所述VDG与第二VD的映射关系;
判断模块,用于判断是否满足删除VDG与第一VD的映射关系的策略;
删除模块,用于当判断结果为是时,删除所述VDG与第一VD的映射关系;
保留模块,用于在所述删除模块删除所述VDG与第一VD的映射关系之前,在所述第一VD上保留已经迁移到所述第二VD的数据。
7.根据权利要求6所述的装置,其特征在于,
所述判断模块,具体用于在判断是否满足删除VDG与第一VD的映射关系的策略的过程中,在创建新VDG时,如果剩余空闲VD数量小于创建所述新VDG所需的VD数量,则确定满足删除所述VDG与第一VD的映射关系的策略;或者,在向所述VDG中写入数据时,如果所述数据需要被写入到所述第一VD中,则确定满足删除所述VDG与第一VD的映射关系的策略;或者,为所述VDG与第一VD的映射关系设置老化定时器,在所述老化定时器超时时,则确定满足删除所述VDG与第一VD的映射关系的策略。
8.根据权利要求6或7所述的装置,其特征在于,
所述处理模块,还用于在保留所述VDG与第一VD的映射关系之后,为所述VDG与第一VD的映射关系设置允许释放标记;
所述判断模块,具体用于在判断是否满足删除所述VDG与第一VD的映射关系的策略的过程中,查询所述VDG与第一VD的映射关系是否被所述处理模块设置有所述允许释放标记,如果是,则判断是否满足删除所述VDG与第一VD的映射关系的策略。
9.根据权利要求6或7所述的装置,其特征在于,
所述处理模块,还用于在判断是否满足删除所述VDG与第一VD的映射关系的策略后,在未满足删除所述VDG与第一VD的映射关系的策略之前,如果所述第二VD失效,则删除所述VDG与第二VD的映射关系,并使用所述VDG与第一VD的映射关系、所述第一VD中的数据,恢复所述VDG。
10.根据权利要求6或7所述的装置,其特征在于,在VDG的映射表中记录有所述VDG与各VD的映射关系;
所述处理模块,还用于在保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系的过程中,将所述第一VD从所述映射表的第一位置迁移到第二位置,将所述第二VD记录到所述第一位置;在删除所述VDG与第一VD的映射关系后,保留所述第二VD在所述映射表的第一位置;或者,在保留所述VDG与第一VD的映射关系,建立所述VDG与第二VD的映射关系的过程中,保留所述第一VD在所述映射表的第一位置,并将所述第二VD记录在所述映射表的第二位置;在删除所述VDG与第一VD的映射关系后,将所述第二VD从所述映射表的第二位置迁移到第一位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610132940.5A CN105653212B (zh) | 2016-03-09 | 2016-03-09 | 一种vd的均衡处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610132940.5A CN105653212B (zh) | 2016-03-09 | 2016-03-09 | 一种vd的均衡处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105653212A CN105653212A (zh) | 2016-06-08 |
CN105653212B true CN105653212B (zh) | 2019-07-12 |
Family
ID=56492313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610132940.5A Active CN105653212B (zh) | 2016-03-09 | 2016-03-09 | 一种vd的均衡处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653212B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073462A (zh) * | 2010-11-29 | 2011-05-25 | 华为技术有限公司 | 虚拟存储迁移方法、系统和虚拟机监控器 |
US8625603B1 (en) * | 2006-05-16 | 2014-01-07 | Cisco Technology, Inc. | Systems and methods for multicast switching in a private VLAN |
CN103713860A (zh) * | 2014-01-03 | 2014-04-09 | 浪潮(北京)电子信息产业有限公司 | 一种基于备份架构的虚拟磁盘库构建方法及系统 |
CN102880428B (zh) * | 2012-08-20 | 2015-09-09 | 华为技术有限公司 | 分布式独立磁盘冗余阵列的创建方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150074368A1 (en) * | 2013-09-06 | 2015-03-12 | International Business Machines Corporation | Thin provisioning storage devices in connection with secure delete operations |
-
2016
- 2016-03-09 CN CN201610132940.5A patent/CN105653212B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8625603B1 (en) * | 2006-05-16 | 2014-01-07 | Cisco Technology, Inc. | Systems and methods for multicast switching in a private VLAN |
CN102073462A (zh) * | 2010-11-29 | 2011-05-25 | 华为技术有限公司 | 虚拟存储迁移方法、系统和虚拟机监控器 |
CN102880428B (zh) * | 2012-08-20 | 2015-09-09 | 华为技术有限公司 | 分布式独立磁盘冗余阵列的创建方法及装置 |
CN103713860A (zh) * | 2014-01-03 | 2014-04-09 | 浪潮(北京)电子信息产业有限公司 | 一种基于备份架构的虚拟磁盘库构建方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105653212A (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3753461B2 (ja) | 冗長性パリティ法によるデータの書き込み方法およびデータ記憶システム | |
CN101604226B (zh) | 一种基于虚拟raid构建动态缓存池提高存储系统性能的方法 | |
CN103927206B (zh) | 多同位储存系统中更新实体储存装置控制程序的方法 | |
CN101354633B (zh) | 提高虚拟存储系统写效率的方法及虚拟存储系统 | |
CN102012793B (zh) | 镜像实现方法和装置 | |
JPH08221876A (ja) | 記憶スペースを提供する方法 | |
US10852966B1 (en) | System and method for creating mapped RAID group during expansion of extent pool | |
TWI416325B (zh) | 一種用以預先放置資料的方法及具有用於執行該用以預先放置資料之方法的電腦可執行指令之電腦可讀取媒體 | |
CN102521152B (zh) | 一种分级存储方法及系统 | |
CN107615255A (zh) | 利用持久存储器的计算装置和方法 | |
US20160132433A1 (en) | Computer system and control method | |
US20110145528A1 (en) | Storage apparatus and its control method | |
CN104407813A (zh) | 一种基于固态存储介质的raid系统及方法 | |
KR20120050891A (ko) | 스토리지 시스템에서 요청에 대한 응답과 연관된 지연의 감소 | |
CN104272242B (zh) | 创建加密存储体 | |
CN101620518B (zh) | 一种磁盘冗余阵列raid的创建方法及装置 | |
CN106227731A (zh) | 一种数据处理方法、装置及分布式文件系统 | |
CN102722340A (zh) | 数据处理方法、装置及系统 | |
CN110187830A (zh) | 一种加速磁盘阵列重建的方法及系统 | |
JP2011530746A (ja) | 現在データ及び再生データに関して異なるraidデータ・ストレージの形式の間でデータを伝送するシステム及び方法 | |
CN103699457A (zh) | 基于条带化的磁盘阵列修复方法及装置 | |
CN108170614A (zh) | 一种避免数据重复回收的方法、装置及固态硬盘 | |
CN105988727A (zh) | 一种基于raid的存储方法和存储装置 | |
CN106095330A (zh) | 一种元数据的存储方法和装置 | |
CN104915265B (zh) | 数据备份方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |