CN105955841B - 一种raid双控制器利用磁盘进行写缓存镜像的方法 - Google Patents

一种raid双控制器利用磁盘进行写缓存镜像的方法 Download PDF

Info

Publication number
CN105955841B
CN105955841B CN201610239962.1A CN201610239962A CN105955841B CN 105955841 B CN105955841 B CN 105955841B CN 201610239962 A CN201610239962 A CN 201610239962A CN 105955841 B CN105955841 B CN 105955841B
Authority
CN
China
Prior art keywords
data
write
controller
cache
area
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
Application number
CN201610239962.1A
Other languages
English (en)
Other versions
CN105955841A (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201610239962.1A priority Critical patent/CN105955841B/zh
Publication of CN105955841A publication Critical patent/CN105955841A/zh
Application granted granted Critical
Publication of CN105955841B publication Critical patent/CN105955841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • 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/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0656Data buffering arrangements
    • 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

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)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种RAID双控制器利用磁盘进行写缓存镜像的方法,在磁盘中为控制器分配保留区;将控制器的镜像写区的脏数据备份到保留区;当控制器收读请求时,在缓存读取数据;当控制器收到写入磁盘的通知时,若数据块在Cache中,则将数据块转为干净;若数据块在保留区中,则将数据块在保留区释放;当控制器Cache空间不足需要获取空间时,按照干净区、写区、镜像写区的顺序倒盘;当控制器收到将脏数据写回到磁盘的通知时,若数据在Cache中,则将数据转为干净;若数据在保留区中,则在保留区中将该块的空间释放;当控制器的镜像写区故障时,通过控制器的Cache以及保留区中的数据进行数据恢复;该方法可以减少控制器的Cache数据重复率,具有提高命中率的效果。

Description

一种RAID双控制器利用磁盘进行写缓存镜像的方法
技术领域
本发明属于数据存储技术领域,更具体地,涉及一种RAID双控制器利用磁盘进行写缓存镜像的方法。
背景技术
RAID(Redundant Array of Independent Disks,独立硬盘冗余阵列)作为直接存储设备具有读写速度快,存储容量大、容错性能好的特点。基于RAID的双控制器系统包括磁盘组、两个RAID控制器和交换机;两个RAID控制器为主机和磁盘组之间提供高速、稳定、可靠的数据访问链路。两个控制器的硬件配置完全相同,互为硬件冗余,作为一个整体对外提供服务。各控制器通过心跳了解对端控制器的状态,控制器内置高容量的RAM作为Cache(高速缓冲存储器)。
双控制器存储系统采用缓存镜像(Cache Mirror)的缓存保护技术确保数据无丢失,在两个控制器上为对方建立镜像缓存;两个控制器的Cache中对于脏数据(存在于Cache中,但未同步到磁盘的数据)互相备份;当一个控制器发生故障时,从另一个控制器中恢复缓存数据;控制器中的Cache缓存热点数据,读写请求可以在Cache中命中,请求在Cache中完成提升了系统的性能。当控制器收到写请求时,除了将数据缓存在本控制器还会备份到控制器的镜像写区;淘汰写数据区需要写磁盘,倒盘时优先淘汰读数据区,写数据区次之。控制器在淘汰写数据区数据的同时给控制器的镜像写区发送倒盘通知;控制器收到倒盘通知时,将镜像写区的数据移到读区。
上述缓存镜像的缓存保护技术存在缺陷:两个控制器Cache中脏数据重复,导致两个控制器Cache利用率不高,命中率低;而且在倒盘时出于安全的考虑,保留了命中率低的镜像写区的数据,损失了命中率;可以通过主动倒盘改善以上缺陷提高用户感知度,但是在突发密集小写情况下,控制器很频繁的进行倒盘,导致读写响应时间明显变长。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种RAID双控制器利用磁盘进行写缓存镜像的方法,其目的在于解决现有的基于RAID的双控制器系统中Cache的利用率较低、突发密集小写频繁倒盘的问题。
为实现上述目的,按照本发明的一个方面,提供了一种RAID双控制器利用磁盘进行写缓存镜像的方法,包括如下步骤:
(1)在磁盘中为每个控制器分配一块保留区;
(2)将控制器的镜像写区的脏数据备份到控制器的镜像写区所对应的保留区;
(3)当控制器收到主机或者对端控制器的读请求,从缓存中获取数据;
(4)当控制器收到对端控制器的写数据块的请求,若数据块在控制器的高速缓冲存储器Cache中,则将所述数据块写到镜像写区;若数据块在保留区中,则将保留区中的数据块写到磁盘中,并释放保留区的空间;
(5)当控制器将数据写入到磁盘后,向对端控制器发送通知;
(6)当控制器的Cache空间不足时,按照干净区、写区、镜像写区的顺序倒盘获取空闲空间;
(7)当控制器收到对端控制器将脏数据写回到磁盘的通知时,若脏数据在Cache中,则将所述脏数据转为干净;若脏数据在保留区中,则释放保留区中所述脏数据所在的空间;
(8)当控制器的镜像写区故障时,通过控制器的Cache以及保留区中的数据进行数据恢复。
优选地,上述RAID双控制器利用磁盘进行写缓存镜像的方法,其步骤(6)中,对镜像写区倒盘的方法为:将镜像写区的脏数据组装成大块,并采用连续写的方式将所述大块写到保留区。
优选地,上述RAID双控制器利用磁盘进行写缓存镜像的方法,其步骤(3)包括以下子步骤:
(3-1)控制器通过查找判断Cache中是否存在请求的数据,若是,则在Cache中读取数据,进入步骤(3-8);若否,则进入步骤(3-2);
(3-2)判断当前控制器是否是块的属主控制器,若是,则读取磁盘组,并进入步骤(3-5),若否,则进入步骤(3-3);
(3-3)将块读请求通过数据通道发送到镜像写区,并等待,直到镜像写区完成请求的操作;
(3-4)当控制器接收到镜像写区返回的数据,进入步骤(3-8);
(3-5)判断Cache中是否有空闲空间,若是,则进入步骤(3-7);若否,则进入步骤(3-8);
(3-6)通过释放干净块或者通过倒盘获取空闲块,进入步骤(3-7);
(3-7)将从磁盘读取的数据缓存到Cache空闲空间,进入步骤(3-8);其中,空闲空间由所述空闲块组成;
(3-8)向请求方返回读取到的数据。
优选地,上述RAID双控制器利用磁盘进行写缓存镜像的方法,其步骤(4)包括以下子步骤:
(4-1)当控制器收到主机或者对端控制器的写请求,判断该请求在Cache中是否命中;若是,将数据写入Cache进行原地更新,并进入步骤(4-5),若否,则进入步骤(4-2);
(4-2)判断Cache中是否有空闲块,若是,进入步骤(4-4),若否,则进入步骤(4-3);
(4-3)通过释放干净块或者通过倒盘获取空闲块,进入步骤(4-4);
(4-4)控制器将写请求中的数据写到空闲块;
(4-5)将写请求发送到镜像写区进行数据同步;
(4-6)当镜像写区完成数据的同步后,发送写完成的响应;当客户端收到该响应,表明该次块的写请求处理完毕。
优选地,上述RAID双控制器利用磁盘进行写缓存镜像的方法,其步骤(6)主要包括如下子步骤:
(6-1)当控制器的Cache的空间不足时,判断Cache中是否有干净块,若是,则直接释放干净数据块,获得空闲空间;若否,则进入步骤(6-2);
(6-2)判断Cache中镜像写区的块能否拼成一个大块,若是,则进入步骤(6-6),若否,则进入步骤(6-3);
(6-3)当Cache中只剩下写区的脏数据块,从写区中淘汰块,并对脏数据块进行写磁盘操作,进入步骤(6-4);
(6-4)将数据块写回到磁盘阵列中,并清除Cache中脏数据块中的内容以释放数据块进入步骤(6-5);
(6-5)通知控制器的镜像写区将块转为干净,让两个控制器上的脏数据保持一致,获得空闲空间;
(6-6)从镜像写区选取K个块,在Cache中将这K个块拼成一个大块;K>1;
(6-7)将所述大块写到保留区中,并释放Cache中的数据块,获得空闲空间。
本发明提供给的上述RAID双控制器利用磁盘进行写缓存镜像的方法,将镜像写区的数据保存到磁盘虚拟缓存中,以容纳更多的读区数据和写区数据,从而减少两个控制器的Cache数据重复率,达到提高命中率的目的。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明提供给的上述RAID双控制器利用磁盘进行写缓存镜像的方法,在磁盘组为每个控制器开辟一片保留区,这片保留区为控制器的Cache虚拟缓存;镜像写区不止存在控制器缓存中,也在磁盘保留区中;在控制器的镜像写区宕机时,控制器能马上从磁盘虚拟缓存中将数据恢复;由此减少了两个控制器Cache中的数据重复率,提高了缓存空间的利用率,提升了请求在Cache中的命中率;
(2)本发明提供给的上述RAID双控制器利用磁盘进行写缓存镜像的方法,当控制器Cache空间不够时,优先释放读区的数据块,次之释放镜像写区,最后释放写区;在安全性得到保障的条件下,镜像写区的数据重要性明显比写区数据低,所以优先倒盘;当控制器收到倒盘通知时,检查对应的块是否在Cache中,如果在Cache中就将该块移到读区(块已经写到磁盘),否则块在保留区中,将保留区中的块丢弃,大大提高了缓存空间的利用率;
(3)本发明提供给的上述RAID双控制器利用磁盘进行写缓存镜像的方法,为了克服现有技术中突发密集小写情况下频繁倒盘的缺陷,对镜像写区的数据块进行倒盘时,采取大块日志写的方式“连续”顺序写入;在持续密集小写时,对镜像写区持续倒盘,直到Cache中镜像写区不足一个大块,再对写区进行倒盘;当镜像写区积累到一个大块时,就将镜像写区的数据写到保留区中,由此获取更多空闲空间,减少突发密集小写情况下的倒盘次数。
附图说明
图1为实施例中的基于RAID的双控制器系统硬件结构示意图;
图2为实施例中的双控制器Cache数据组成结构示意图;
图3为实施例中在阵列中开辟的保留区示意图;
图4为实施例中突发密集小写时的数据流图;
图5为实施例提供的RAID双控制器利用磁盘进行写缓存镜像的方法的流程图;
图6为实施例中持续密集写时数据流示意图;
图7为实施例中控制器收到主机或者对端的读请求后的处理流程图;
图8为实施例中控制器收到主机或者对端的写请求后的处理流程图;
图9为实施例中控制器Cache空闲空间不足获取空闲空间流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提供的RAID双控制器利用磁盘进行写缓存镜像的方法,将镜像写区的数据保存到磁盘虚拟缓存中,可以容纳更多的读区数据和写区数据,从而减少两个控制器的Cache数据重复率,达到提高命中率的目的。
下面将结合实施例及附图,具体说明本发明提供的RAID双控制器利用磁盘进行写缓存镜像的方法。
图1为实施例中的基于RAID的双控制器系统硬件结构示意图,包括:磁盘组、两个RAID控制器,交换机;两个RAID控制器是系统的硬件核心,为主机与磁盘组之间提供高速,稳定,可靠的数据访问链路;两个控制器设置在一块背板上,作为一个整体对外提供服务,两者的硬件配置完全相同,互为硬件冗余;控制器之间数据同步是采用光纤通道进行数据传输,具有高可靠性,能够提高两个控制器之间的数据传输速率,吞吐量,降低系统整体的请求响应时间。两个控制器之间通过心跳了解对端控制器的状态。控制器内部通过千兆网卡对外提供高速数据服务链路,内置高容量的RAM作为Cache,提高请求响应速度。
图2为实施例中的双控制器Cache数据组成结构示意图,两个控制器Cache分成三部分:读数据区,写数据区和镜像写数据区;读数据区是干净数据;其中,控制器A的镜像写数据区是控制器B的写数据区的热备份;控制器B的镜像写数据区是控制器A的写数据区的热备份。
控制器Cache中的数据以块为基本单位进行组织;缓存中的块与磁盘组中的块一一映射;为了防止读写冲突引发数据错误,将块分成两组,为每组分配一个属主控制器和一个从控制器,只有属主控制器才能对这一组进行读写,从控制器对磁盘块的读写需要委托属主控制器来完成;实施例中,将两个控制器分别命名为控制器A和控制器B;双控制器系统可以对逻辑块按照奇偶分组,也可以采用组相联的方式对逻辑块分组。
控制器中的块分为3个区:干净区,写区,镜像写区;当控制器的Cache空闲空间不足需要进行倒盘时,按照干净区、镜像写区、写区的顺序进行淘汰。
两个控制器获取空闲空间时,优先释放由对端控制器负责的块,由此减少两个控制器Cache中的重复块数目,从而提高命中率;并且优先释放干净数据,减少磁盘读写,以更快获取到空闲空间,从而减小响应时间,提升性能。
如图3所示,是实施例中在阵列中开辟的保留区示意图;实施例中,在磁盘组为每个控制器开辟一片保留区,这片保留区为控制器的Cache虚拟缓存;因此镜像写区不止存在控制器缓存中,也在磁盘保留区中;在控制器的镜像写区宕机时,控制器能马上从磁盘虚拟缓存中将数据恢复。
图4所示,为实施例中突发密集小写时的数据流图;当控制器Cache空间不够时,优先释放读区的数据块,次之释放镜像写区的数据块,最后释放写区的数据块;在安全性得到保障的条件下,镜像写区的数据重要性比写区数据低,所以优先倒盘;对镜像写区的数据块进行倒盘时,采取大块日志写的方式“连续”顺序写入。当控制器收到倒盘通知时,检查对应的块是否在Cache中,如果在Cache中就将该块移到读区(块已经写到磁盘),否则块在保留区中,将保留区中的块丢弃。
图5所示,是实施例提供的RAID双控制器利用磁盘进行写缓存镜像的方法的流程图,具体如下:
(1)在磁盘中为每个控制器分配一块保留区;
(2)将控制器的镜像写区的脏数据备份到保留区;
将控制器的镜像写区的脏数据块写到保留区时,采用大块日志写方式,在Cache中将数据块组装成大块,对一个大块以连续写的方式写入;
(3)控制器收到主机或者对端的读请求时在缓存中进行命中,返回读取的数据;
(4)当控制器收到对端控制器数据块写入磁盘通知;如果数据块在Cache中,则将数据块转为干净,如果数据块在保留区中,则将数据块在保留区释放;
(5)控制器将数据写入到磁盘时,发送通知到对端控制器;
(6)当控制器Cache空间不足时,按照干净区、写区、镜像写区的顺序倒盘获取空闲空间;
(7)当控制器收到对端控制器将脏数据写回到磁盘的通知时,如果数据在Cache中,将数据转为干净;如果数据在保留区中,在保留区表中将该块的空间释放;
(8)当控制器的镜像写区故障时,通过本控制器的Cache以及保留区中的数据恢复数据。
图6所示,是实施例中持续密集写时数据流图;当发生持续密集写时,Cache的读区空间快速释放完毕,需要对镜像写区的数据块进行倒盘,即将数据写入到磁盘中;为了应对密集写时的频繁倒盘,本发明将镜像写区的小块拼成一个大块的形式进行倒盘,大大减少倒盘次数。
如图7所示,是实施例提供的RAID双控制器利用磁盘进行写缓存镜像的方法的步骤(3)的流程图,该步骤具体如下:
(3-1)控制器通过查找判断块是否在Cache中命中,若是,则读取Cache中的数据,进入步骤(3-8);若否,则进入步骤(3-2);
(3-2)判断当前控制器是否是块的属主控制器,若是,则读取磁盘组,并进入步骤(3-5),若否,则进入步骤(3-3);
(3-3)将块读请求通过数据通道发送到控制器的镜像写区,并等待,直到控制器的镜像写区完成请求的操作;
(3-4)当控制器接收到控制器的镜像写区返回的数据,进入步骤(3-8);
(3-5)判断Cache中是否有空闲空间,若是,则进入步骤(3-7);若否,则进入步骤(3-8);
(3-6)通过释放干净块或者通过倒盘获取空闲块,进入步骤(3-7);
(3-7)将从磁盘读取的数据缓存到Cache空闲空间,进入步骤(3-8);其中,空闲空间由所述空闲块组成;
(3-8)向请求方返回读取的数据。
如图8所示,是实施例提供的RAID双控制器利用磁盘进行写缓存镜像的方法的步骤(4)的流程图,该步骤具体如下:
(4-1)当控制器收到主机或者对端控制器的写请求,判断该请求在Cache中是否命中;若是,将数据写入Cache进行原地更新,并进入步骤(4-5),若否,则进入步骤(4-2);
(4-2)判断Cache中是否有空闲块,若是,进入步骤(4-4),若否,则进入步骤(4-3);
(4-3)通过释放干净块或者通过倒盘获取空闲块,进入步骤(4-4);
(4-4)控制器将写请求中的数据写到空闲块;
(4-5)将写请求发送到控制器的镜像写区进行数据同步;
(4-6)当控制器的镜像写区完成数据的同步后,发送写完成的响应;当客户端收到该响应,块的写请求处理完毕。
如图9所示,是实施例提供的RAID双控制器利用磁盘进行写缓存镜像的方法的步骤(6)的流程图,该步骤具体如下:
(6-1)当控制器的Cache的空间不足时,判断Cache中是否有干净块,若是,则直接释放干净数据块,获得空闲空间;若否,则进入步骤(6-2);
(6-2)判断Cache中镜像写区的块能否拼成一个大块,若是,则进入步骤(6-6),若否,则进入步骤(6-3);
(6-3)当Cache中只剩下写区的脏数据块,从写区中淘汰块,并对脏数据块进行写磁盘操作,进入步骤(6-4);
(6-4)将数据块写回到磁盘阵列中,清除Cache中脏数据块中的内容以释放数据块,并进入步骤(6-5);
(6-5)通知控制器的镜像写区将块转为干净,使得两个控制器上的脏数据保持一致,获得空闲空间;
(6-6)从镜像写区选取K个块,在Cache中将这K个块拼成一个大块;K>1;
(6-7)将所述大块写到保留区中,并释放Cache中的数据块,获得空闲空间。
实施例中,数据块以1KB为单位,大块为1MB,大块在控制器Cache中合并,作为一个整体写到保留区相邻地址;一次大块日志写Cache可以获取1MB的空闲块,可容纳更多小写。磁盘读写速度为100MB/s左右,一次读写的寻道时间约为10ms,一次小写至少耗时10ms;日志写1MB大块数据耗时为20ms,相当于两次小写,对磁盘读写次数很少,性能损失很小。当突发期过去系统变空闲,通过主动倒盘将写区数据块写到磁盘并转化为读区,并且还可以释放控制器的镜像写区镜像写区,因此可以抵挡突发密集小写。
对于持续密集写情况,读区很快消耗完;对镜像写区持续倒盘,直到Cache中镜像写区不足一个大块(1MB),就对写区进行倒盘;当镜像写区积累到一个大块时,将镜像写区的数据写到保留区中,获取更多空闲空间。
实施例提供的这种方案比现有技术的“缓存镜像”方法多了一条镜像写区到保留区的数据流,这条数据流只有当控制器的镜像写区写完一个1MB的大块才会发生;一个大块的日志写只相当于2个小写,因此性能损失不大;在持续密集写情况,镜像写在Cache中占得空间很小。因此两个Cache中数据几乎没有重复,命中率可以提升很多,对性能有很大提升。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种RAID双控制器利用磁盘进行写缓存镜像的方法,其特征在于,包括如下步骤:
(1)在磁盘中为控制器分配保留区;
(2)将控制器的镜像写区里的脏数据备份到保留区;
(3)当控制器收到主机或者对端控制器的读请求,从缓存中获取数据;
(4)当控制器收到对端控制器的写数据块的请求,若数据块在控制器的Cache中,则将数据块写到镜像写区;若数据块在保留区中,则将保留区中的数据块写到磁盘中,并释放保留区的空间;
(5)当控制器将数据写入磁盘后,向对端控制器发送通知;
(6)当Cache空间不足时,按照干净区、写区、镜像写区的顺序倒盘获取空闲空间;
所述步骤(6)包括如下子步骤:
(6-1)当控制器的Cache的空间不足时,判断Cache中是否有干净块,若是,则直接释放干净数据块,获得空闲空间;若否,则进入步骤(6-2);
(6-2)判断Cache中镜像写区的块能否拼成一个大块,若是,则进入步骤(6-6),若否,则进入步骤(6-3);
(6-3)当Cache中只剩下写区的脏数据块,从写区中淘汰块,并对脏数据块进行写磁盘操作,进入步骤(6-4);
(6-4)将数据块写回到磁盘阵列中,并清除Cache中脏数据块中的内容以释放数据块,进入步骤(6-5);
(6-5)通知控制器的镜像写区将块转为干净,让两个控制器上的脏数据保持一致,获得空闲空间;
(6-6)从镜像写区选取K个块,在Cache中将所述K个块拼成一个大块;K为大于1的整数;
(6-7)将所述大块写到保留区中,并释放Cache中的数据块,获得空闲空间;
(7)当控制器收到对端控制器将脏数据写回到磁盘的通知时,若脏数据在Cache中,则将Cache中的脏数据转为干净;若脏数据在保留区中,则释放保留区中脏数据所在的空间;
(8)当控制器的镜像写区故障时,通过控制器的Cache以及保留区进行数据恢复。
2.如权利要求1所述的方法,其特征在于,所述步骤(6)中,对镜像写区倒盘的方法为:将镜像写区的脏数据组装成大块,并采用连续写的方式将所述大块写到保留区。
3.如权利要求1或2所述的方法,其特征在于,所述步骤(3)包括以下子步骤:
(3-1)判断Cache中是否存在请求的数据;若是,则在Cache中读取数据,并进入步骤(3-8);若否,则进入步骤(3-2);
(3-2)判断当前控制器是否为块的属主控制器,若是,则从磁盘组读取数据,并进入步骤(3-5),若否,则进入步骤(3-3);
(3-3)将块读请求通过数据通道发送到镜像写区,并等待,直到镜像写区完成请求的操作;
(3-4)当控制器接收到镜像写区返回的数据,进入步骤(3-8);
(3-5)判断Cache中是否有空闲空间,若是,则进入步骤(3-7);若否,则进入步骤(3-8);
(3-6)通过释放干净块或通过倒盘获取空闲块,进入步骤(3-7);
(3-7)将从磁盘读取的数据缓存到Cache空闲空间,进入步骤(3-8);
(3-8)向请求方返回读取到的数据。
4.如权利要求1或2所述的方法,其特征在于,所述步骤(4)包括如下子步骤:
(4-1)当控制器收到主机或者对端控制器的写请求,判断该请求在Cache中是否命中;若是,将数据写入Cache进行原地更新,并进入步骤(4-5),若否,则进入步骤(4-2);
(4-2)判断Cache中是否有空闲块,若是,进入步骤(4-4),若否,则进入步骤(4-3);
(4-3)通过释放干净块或者通过倒盘获取空闲块,进入步骤(4-4);
(4-4)控制器将写请求中的数据写到空闲块;
(4-5)将写请求发送到镜像写区进行数据同步;
(4-6)当镜像写区完成数据同步,发送写完成的响应。
CN201610239962.1A 2016-04-18 2016-04-18 一种raid双控制器利用磁盘进行写缓存镜像的方法 Active CN105955841B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610239962.1A CN105955841B (zh) 2016-04-18 2016-04-18 一种raid双控制器利用磁盘进行写缓存镜像的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610239962.1A CN105955841B (zh) 2016-04-18 2016-04-18 一种raid双控制器利用磁盘进行写缓存镜像的方法

Publications (2)

Publication Number Publication Date
CN105955841A CN105955841A (zh) 2016-09-21
CN105955841B true CN105955841B (zh) 2018-09-21

Family

ID=56917528

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610239962.1A Active CN105955841B (zh) 2016-04-18 2016-04-18 一种raid双控制器利用磁盘进行写缓存镜像的方法

Country Status (1)

Country Link
CN (1) CN105955841B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528001B (zh) * 2016-12-05 2019-08-23 北京航空航天大学 一种基于非易失性存储器和软件raid的缓存系统
US10528256B2 (en) 2017-05-24 2020-01-07 International Business Machines Corporation Processing a space release command to free release space in a consistency group
CN107329704B (zh) * 2017-06-30 2020-03-24 杭州宏杉科技股份有限公司 一种缓存镜像方法及控制器
CN109164989A (zh) * 2018-09-04 2019-01-08 北京天马时空网络技术有限公司 一种数据处理方法和装置
CN109710183B (zh) * 2018-12-17 2022-09-06 杭州宏杉科技股份有限公司 一种数据同步方法及装置
CN111240903A (zh) 2019-11-04 2020-06-05 华为技术有限公司 数据恢复方法及相关设备
CN113608683B (zh) * 2021-06-30 2024-05-07 山东海量信息技术研究院 一种双活磁盘的清理方法、系统及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035974B2 (en) * 2002-11-06 2006-04-25 Synology Inc. RAID-5 disk having cache memory implemented using non-volatile RAM
CN102118309A (zh) * 2010-12-31 2011-07-06 中国科学院计算技术研究所 一种双机热备份方法及系统
CN102681794A (zh) * 2012-04-23 2012-09-19 浪潮(北京)电子信息产业有限公司 基于双控制器实现磁盘冗余阵列保护的方法及系统
CN104049918A (zh) * 2014-07-03 2014-09-17 浪潮集团有限公司 一种双控存储服务器的缓存管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035974B2 (en) * 2002-11-06 2006-04-25 Synology Inc. RAID-5 disk having cache memory implemented using non-volatile RAM
CN102118309A (zh) * 2010-12-31 2011-07-06 中国科学院计算技术研究所 一种双机热备份方法及系统
CN102681794A (zh) * 2012-04-23 2012-09-19 浪潮(北京)电子信息产业有限公司 基于双控制器实现磁盘冗余阵列保护的方法及系统
CN104049918A (zh) * 2014-07-03 2014-09-17 浪潮集团有限公司 一种双控存储服务器的缓存管理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ISCSI双控制器存储系统缓存设计与实现;吴昌松;《中国优秀硕士学位论文全文数据库 信息科技辑》;20141015(第10期);全文 *
双控制器RAID系统的研究与实现;严亮;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110515(第5期);全文 *

Also Published As

Publication number Publication date
CN105955841A (zh) 2016-09-21

Similar Documents

Publication Publication Date Title
CN105955841B (zh) 一种raid双控制器利用磁盘进行写缓存镜像的方法
CN101436149B (zh) 磁盘阵列数据重建方法
CN103761058B (zh) Raid1和raid4混合结构网络存储系统及方法
US8015352B2 (en) Disk drive storage defragmentation system
CN101566927B (zh) 存储系统和存储控制器以及数据缓存方法
CN103473150B (zh) 一种用于数据去重系统中的碎片重写方法
US8719490B2 (en) Storage array, storage system, and data access method
CN104881368B (zh) 应用于双控存储系统的缓存同步方法及系统
CN104503923B (zh) 一种非对称磁盘阵列高速缓存调度方法
US20090327481A1 (en) Adaptive data throttling for storage controllers
CN108268219A (zh) 一种处理io请求的方法及装置
CN110196818A (zh) 缓存数据的方法、缓存设备和存储系统
US20160170646A1 (en) Implementing enhanced performance flash memory devices
CN110442646B (zh) 一种ceph数据同步模块主端写性能优化系统及方法
CN102053802B (zh) 网络独立冗余磁盘阵列系统
US20020007438A1 (en) Memory system for improving data input/output performance and method of caching data recovery information
CN103488435A (zh) Raid子系统及其数据读写方法
CN103092778B (zh) 一种存储系统的缓存镜像方法
US6766414B2 (en) Methods, apparatus and system for caching data
CN103200272A (zh) 一种流媒体存储系统及存储方法
CN111190546B (zh) 一种基于alua和本地缓存的分布式块存储性能优化方法
US20040181640A1 (en) Method, system, and program for improved throughput in remote mirroring systems
CN107391302A (zh) 位图数据管理方法及装置
CN107329859A (zh) 一种数据保护方法及存储设备
CN114024922A (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