CN115129237A - 存储系统和存储系统的控制方法 - Google Patents

存储系统和存储系统的控制方法 Download PDF

Info

Publication number
CN115129237A
CN115129237A CN202110907201.XA CN202110907201A CN115129237A CN 115129237 A CN115129237 A CN 115129237A CN 202110907201 A CN202110907201 A CN 202110907201A CN 115129237 A CN115129237 A CN 115129237A
Authority
CN
China
Prior art keywords
memory
data
metadata
storage
control unit
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.)
Pending
Application number
CN202110907201.XA
Other languages
English (en)
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN115129237A publication Critical patent/CN115129237A/zh
Pending legal-status Critical Current

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/061Improving I/O performance
    • 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
    • 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
    • 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/0608Saving storage space on 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0673Single storage device

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)
  • Hardware Redundancy (AREA)

Abstract

本发明提供一种存储系统和存储系统的控制方法,其在由多个控制器构成的、采用追加记录型数据保存方式的存储系统中,确保故障发生时的数据的一致性同时实现较高的I/O处理性能。在元数据的双重化之前,将包含实施前滚或回滚所需的信息的恢复数据保存在各控制器中之后,进行元数据的双重化。另外,将恢复数据的保存处理和元数据的双重化分流至硬件加速器。

Description

存储系统和存储系统的控制方法
技术领域
本发明涉及存储系统。
背景技术
作为降低存储系统的存储介质所耗费的成本的手段,数据压缩技术和重复排除技术等数据削减技术正在普及。在应用这些数据削减技术的情况下,从主机对存储系统写入的数据长度与实际对存储介质写入的数据长度之间产生差异。因此,为了有效地使用存储介质的存储区域,使用将数据削减应用后的数据向前紧凑地逐次写入的追加记录型数据保存方式(例如Log-Structured Storage)。
另外,为了提高冗余性而搭载了多个控制器的存储系统正在普及。这样的存储系统中,在搭载控制器中的一个控制器中发生了故障的情况下,也需要保持记录的用户数据的一致性。作为实现它的手段,称为缓存双重化的技术被广泛地使用。这是存储系统在接受了写入请求时,在负责写入请求的处理的控制器的缓存之外,也在其他控制器的缓存中保存所接受的用户数据之后,对主机返回完成响应的方法。使用该方法时,即使在一个控制器中发生了故障的情况下,因为其他控制器中保存了用户数据,所以也能够维持数据的一致性。但是,缓存的双重化附带有控制器之间的数据传输处理,所以会使CPU的负荷增加,引起存储系统的I/O性能的降低。为了减少CPU的负荷,可以考虑将用户数据传输处理的执行从CPU分流至专用硬件。
作为对用户数据传输处理进行硬件分流的技术,例如已知日本特表2014-504749号公报(专利文献1)中记载的技术。专利文献1中,公开了通过采用使用硬件的控制数据传输的定序器,而使多个用户数据的传输处理一并分流,减少CPU的负荷的技术。
现有技术文献
专利文献
专利文献1:日本特表2014-504749号公报。
发明内容
发明要解决的技术问题
追加记录型数据保存方式中,用户数据的逻辑地址与实际上物理地保存数据的位置(物理地址)的对应关系是可变的。因此,存储系统除记录从主机写入的用户数据之外,还需要记录逻辑地址与物理地址的对应关系作为元数据。另外,搭载了多个控制器的存储系统中,为了保持控制器之间的数据的一致性,需要在多个控制器的缓存中使元数据双重化。另外,正在执行双重化处理的途中,在存储系统中发生了故障(例如,控制器之间的连接被切断等)的情况下,也需要维持控制器之间的元数据的一致性。
用于解决问题的技术手段
用于解决上述问题中的至少一个问题的本发明的一个方式,是一种存储系统,其包括多个存储控制部、加速器和具有保存数据的存储介质的存储驱动器,所述存储系统的特征在于:所述多个存储控制部分别具有处理器和存储器,在所述多个存储控制部中的第一存储控制部的所述存储器和所述多个存储控制部中的第二存储控制部的所述存储器中,分别保持有用于访问所述存储驱动器所保存的数据的元数据,在接收了更新所述保存的数据的写入请求的情况下,所述第一存储控制部的所述处理器,生成对与要更新的数据关联的元数据进行更新而得的元数据和包含用于恢复所述元数据的一致性的信息的恢复数据,将所述元数据和所述恢复数据的处理请求发送至所述加速器,所述加速器基于所述处理请求,在所述第一存储控制部的所述存储器和所述第二存储控制部的所述存储器中保存所述恢复数据,之后在所述第一存储控制部的所述存储器和所述第二存储控制部的所述存储器中保存所述元数据。
发明的效果
根据本发明的一个方式,在采用追加记录型数据保存方式的存储系统中,能够保持数据的一致性,同时提高I/O处理性能。
上述以外的问题、结构和效果将通过以下实施例的说明而明了。
附图说明
图1是表示本发明的实施例中的存储系统的概略的图。
图2是表示本发明的实施例中的元数据更新处理的概要的图。
图3是说明本发明的实施例中的LDEV管理表的图。
图4是说明本发明的实施例中的元数据管理表的图。
图5是说明本发明的实施例中的恢复数据管理表的图。
图6是说明本发明的实施例中的读处理的流程图。
图7是说明本发明的实施例中的写处理的流程图。
图8是说明本发明的实施例中的离台处理的流程图。
图9是说明本发明的实施例中的数据量削减处理的流程图。
图10是说明本发明的实施例中的元数据更新处理的流程图。
图11是说明本发明的实施例中的元数据恢复处理的流程图。
符号说明
100……存储系统
11……存储装置
22……存储控制器
25……存储器
29……驱动器
30……网络
31……加速器
40……主机计算机
202……缓冲区域
203……缓存区域
208……恢复数据区域
209……本地存储器区域
具体实施方式
以下基于附图说明本发明的实施例。在附图中,有时用相同的编号表示功能上相同的要素。附图示出了符合本发明的原理的具体的实施方式和实施例。这些实施方式和实施例是用于理解本发明的,并非用于限定性地解释本发明。
另外,以下说明中,在不区分相同种类的要素进行说明的情况下,使用参考符号中的共通符号,在区分相同种类的要素的情况下,有时使用参考符号(或者要素的ID(例如识别编号))。例如,在不区分多个存储控制器的情况下,记载为“存储控制器22”,在区分各存储控制器的情况下,记载为“存储控制器1_22A”、“存储控制器2_22B”。其他要素(例如缓存区域203、缓冲区域202等)也是同样的。
另外,将CPU24记载为CPU24A等,对存储控制器1_22A和存储控制器2_22B下属的部分用分别对参考符号附加的“A”和“B”来进行区分。
本实施例中,叙述在故障发生时用前滚保持元数据的一致性的方法。
图1是表示本发明的实施例中的存储系统100的概略的图。存储系统100包括存储装置11和与存储装置11连接的主机计算机40。主机计算机40经由网络41与存储装置11连接。主机计算机40可以是物理的计算机,也可以是在物理的计算机上运行的虚拟的计算机。另外,主机计算机40也可以是在存储系统100中运行的虚拟的计算机。
存储装置11具有2个以上的存储控制器22、1个以上的加速器31、分别与1个以上的存储控制器22连接的多个驱动器29和将存储控制器22与加速器31连接的网络30。
存储控制器22包括进行与主机计算机的通信的FE_I/F(前端接口设备)23、进行装置全体的控制的CPU24、保存CPU24中使用的程序和信息的存储器25、进行与驱动器29的通信的BE_I/F(后端接口设备)27、经由网络30将存储控制器22之间连接的CTL_I/F(控制器间接口)28、和将它们连接的内部网络26。
存储器25具有保存程序的程序区域201、作为数据传输和数据复制时的暂时性的数据保存区域的缓冲区域202、暂时保存来自主机计算机40的写对象数据(响应来自主机计算机40的写请求而写入的数据)和来自驱动器29的读对象数据(响应来自主机计算机40的读请求而读取的数据)和/或元数据的缓存区域203、保存各种表的表管理区域204、保存用于实施元数据的前滚或回滚的信息的恢复数据区域208、和CPU24与加速器31之间的数据交换中使用的本地存储器区域209。
在表管理区域204中,保存有保持关于LDEV的信息的LDEV管理表205和保持元数据信息的元数据管理表206。此处,LDEV(Logical Device)指的是由存储系统管理的逻辑的存储设备。
在恢复数据区域208中,保存有记录当元数据更新失败时进行使双重化的元数据的一致性恢复用的前滚或回滚所需的信息的恢复数据管理表207。
驱动器29是具有非易失性的数据存储介质的装置,可以是SSD(Solid StateDrive),也可以是HDD(Hard Disk Drive)。多个驱动器29也可以构成由1个以上驱动器29构成的多个RAID(Redundant Array of Independent Disks)组。
图2是表示本发明的实施例中的元数据更新处理的概要的图。
此处,作为例子,说明存储控制器22A对存储控制器22A的缓存区域203A和存储控制器22B的缓存区域203B传输更新后元数据50的处理。
此处,恢复数据51对应于后述的恢复数据管理表207的条目。恢复数据51由更新后元数据50的备份数据、有效标志、控制器22A的元数据保存目标地址和控制器22B的元数据保存目标地址构成。
S1:CPU24A将更新后元数据50和恢复数据51保存在本地存储器区域209中。另外,此时,CPU24A将恢复数据51的有效标志的值设定为“有效”。
S2:CPU24A对于加速器31,进行元数据更新处理请求。
S3:加速器31在接受元数据更新处理请求时,从本地存储器区域209A读取恢复数据51,并保存在存储控制器22A的恢复数据区域208A中。
S4:加速器31从本地存储器区域209A中读取恢复数据51,并保存在存储控制器22B的恢复数据区域208B中。
S5:加速器31从本地存储器区域209A中读取更新后元数据50,并分别保存在存储控制器22A的缓存区域203A和存储控制器22B的缓存区域203B中。
S6:加速器31将恢复数据区域208B中保存的恢复数据51的有效标志的值改写为“无效”。该有效标志在需要元数据的恢复处理的情况下,用于判断元数据的更新状况。恢复数据51是“无效”的情况下,能够判断为存储控制器22B的元数据更新已完成。另一方面,恢复数据是“有效”的情况下,存在存储控制器22B的元数据更新尚未完成的可能性。此时,使用恢复数据51中记录的元数据的备份数据,进行元数据的前滚,由此恢复元数据的一致性。
S7:加速器31将恢复数据区域208A中保存的恢复数据51的有效标志的值改写为“无效”。与步骤S6同样地,在需要元数据的恢复处理的情况下,基于恢复数据51的有效标志进行存储控制器22A的元数据的前滚处理,恢复元数据的一致性。
S8:加速器31对存储控制器22A发送完成通知。
<LDEV管理表>
图3是说明本发明的实施例中的LDEV管理表的205的图。
LDEV管理表205的各条目与存储系统内存在的各LDEV对应,记录对应的LDEV的管理信息。
以下,对于LDEV管理表205的各列进行说明。
列2051记录对LDEV分配的识别符(LDEV ID)。
列2052记录对应的LDEV的属性(例如对象LDEV是应用精简配置的VOL、还是通常的VOL、容量削减功能是否有效等)。
列2053记录表示哪个元数据管理表206与该LDEV对应的信息。例如,列2053记录对每个元数据管理表206分配的ID。
<元数据管理表>
图4是说明本发明的实施例中的元数据管理表206的图。
追加记录型保存方式中,以在驱动器29的存储区域中不产生间隙的方式逐次保存数据。因此,用户数据的逻辑地址与物理地址(表示驱动器内的数据保存场所的地址)的对应关系变得不一致。从而,为了访问指定的逻辑地址的数据,需要由存储装置11管理各数据的逻辑地址与物理地址的对应关系。
元数据管理表206的各条目记录有用户数据被保存的LDEV内的逻辑地址、与表示实际上数据被保存的位置的物理地址的对应关系。以下,说明元数据管理表206的各列。
列2061记录有用户数据被保存的LDEV内的逻辑地址。
列2062记录有表示实际上用户数据被保存在驱动器29中的位置的物理地址。
列2063记录有压缩后数据的长度。不进行对于对象数据的压缩的情况下,设定无效值。
为了表内检索的高效率化,元数据管理表206例如也可以按每个LDEV划分表。此后的说明中,设元数据管理表206是按每个LDEV划分的。
<恢复数据管理表>
图5是说明本发明的实施例中的恢复数据管理表207的图。
恢复数据管理表207是记录元数据本体的备份数据、管理该恢复数据的条目有效的有效标志、和本系统控制器22A和其他系统控制器22B各自的存储器25中的元数据保存目标地址的数据结构。
恢复数据管理表207的各条目与传输对象的元数据相关联。以下,说明恢复数据管理表207的各列。
列2071至列2073记录有元数据的备份数据。具体而言,列2071至列2073按每个条目记录与元数据管理表的列2061至列2063对应的信息。
列2074记录有该恢复数据是否有效状态。
列2075记录有本系统控制器22A内的缓存区域203A中的元数据保存目标地址。
列2076记录有其他系统控制器22B内的缓存区域203B中的元数据保存目标地址。
<读处理>
图6是说明本发明的实施例中的读处理的流程图。
读处理是以存储装置11接受来自主机计算机40的读请求为契机而开始,读取请求的读对象数据并传输至主机计算机40的处理。读请求中,例如由主机计算机40指定LDEVID、逻辑地址和数据长度。
以下,使用图6,说明读处理的处理流程。
S601:CPU24根据读请求信息,基于读对象数据的LDEV和逻辑地址,获取缓存区域203的一定单位区域(此后称为槽区域)的独占。已由其他处理获取了该槽区域的独占的情况下,CPU24在待机一定时间之后执行步骤S601。
S602:CPU24判定读对象数据是否存在于缓存区域203中。判定结果是真的情况下,前进至步骤S604。判定结果是假的情况下,前进至步骤S603。
S603:CPU24在缓存区域203中不存在读对象数据的情况下,从驱动器29读取读对象数据,并传输至缓冲区域202。此时,CPU24基于主机计算机指定的读对象数据的LDEV ID和逻辑地址,参照与LDEV ID对应的元数据管理表206,确定读对象数据的保存目标物理地址。
S604:CPU24根据元数据管理表206的压缩后长度2063来判定缓冲区域202中的读数据是否是压缩数据。此处,对象LDEV的LDEV属性2052不是压缩有效的情况下,判定结果是假。判定结果是真的情况下,前进至步骤S605。判定结果是假的情况下,前进至步骤S606。
S605:CPU24对压缩数据进行解压缩。该解压缩处理也可以不是由CPU24进行,而是改为例如使用FPGA等实现的专用硬件执行。
S606:CPU24将非压缩状态的读对象数据传输至主机计算机40。
S607:CPU24释放已获取的槽区域的独占。
<写处理>
图7是说明本发明的实施例中的写处理的流程图。
写处理以存储装置11接受来自主机计算机40的写请求为契机而开始。写请求中,例如由主机计算机40指定写目标的LDEV ID和逻辑地址。
以下,使用图7,说明写处理的处理流程。此处,作为例子,说明存储装置11的存储控制器1_22A接受了写请求的情况下的处理。
S701:CPU24A基于写目标的LDEV和逻辑地址,获取缓存区域203A中的槽区域的独占。已由其他处理获取了该槽区域的独占的情况下,CPU24A待机一定时间之后实施步骤S701。另外,CPU24A在获取槽区域的独占的同时,分配作为数据的写目标的缓存区域230A的槽区域。
S702:CPU24A对于主机计算机40,返回表示写处理的接受准备已完成的响应(准备完成响应)。之后,CPU24A从接受了准备完成响应的主机计算机40接受写对象数据。
S703:CPU24A将接受的写对象数据保存在已获取独占的缓存区域203A的槽区域中。
S704:CPU24A从存储控制器1_22A对存储控制器2_22B传输缓存区域203A中保存的写对象数据。CPU24B将接受的写对象数据保存在缓存区域203B。
S705:CPU24A对于主机计算机40,返回写请求的完成响应。
S706:CPU24A释放步骤S701中获取的槽区域的独占。
S707:CPU24A参照LDEV管理表205基于与写对象的LDEV对应的LDEV属性2052的值,判定对该LDEV的数据削减设定是否有效。数据削减设定是有效的情况下,前进至步骤S708。数据削减设定不是有效的情况下,前进至步骤S709。
S708:CPU24A执行后述的数据削减处理(参考图9),结束处理。
S709:CPU24A执行后述的离台处理(参考图8),结束处理。
<离台处理>
图8是说明本发明的实施例中的离台处理的流程图。
离台处理是将缓存中的用户数据写入驱动器29的指定的物理地址的处理。离台处理是在写处理中对主机计算机40返回对存储装置11的写处理的完成响应之后,在图7的步骤S709中执行的。另外,离台处理可以与来自主机计算机40的写请求同步地执行,也可以非同步地(例如每隔一定时间周期)执行。
以下,使用图8,说明离台处理的处理流程。
S801:CPU24A获取缓存区域203A中的包括离台处理对象数据的槽区域的独占。
S802:CPU24A生成离台对象数据的奇偶校验。
S803:CPU24A将离台对象数据和步骤S802中生成的奇偶校验数据写入至驱动器29。
S804:CPU24A释放步骤S801中获取的槽区域的独占,结束处理。
<数据量削减处理>
图9是说明本发明的实施例中的数据量削减处理的流程图。
数据量削减处理是在写处理中对主机计算机40返回对存储装置11的写请求的完成响应之后,在图7的步骤S708中执行的。另外,数据量削减处理可以与来自主机计算机40的写请求同步地执行,也可以非同步地执行。
图9内的步骤S903中进行的压缩处理,是对写数据执行的规定处理的一例。CPU24A也可以执行压缩以外的处理(例如重复排除处理或加密处理等)。另外,本实施例中,由CPU24A执行压缩处理,但也可以改为例如由使用FPGA等实现的专用硬件执行。
以下,使用图9,说明数据量削减处理的处理流程。
S901:CPU24A获取包括数据量削减处理的对象数据的缓存区域203A的槽区域的独占。
S902:CPU24A对数据量削减处理的对象数据应用压缩处理,将得到的压缩数据保存在缓冲区域202A中。
S903:CPU24A将缓冲区域202A的压缩数据传输至缓存区域203A。
S904:CPU24A对缓存区域203B传输压缩数据。
S905:CPU24A执行后述的元数据更新处理(参考图10)。
S906:CPU24A释放对象槽区域的独占。
S907:CPU24A进行离台处理,结束数据量削减处理。另外,如上所述,离台处理可以与来自主机计算机40的写请求同步地执行,也可以非同步地(例如每隔一定时间周期)执行。
<元数据更新处理>
图10是说明本发明的实施例中的元数据更新处理的流程图。
S1001:CPU24A生成更新后元数据50,并保存在本地存储器区域209A中。
S1002:CPU24A生成与更新后元数据50对应的恢复数据51,并保存在本体存储器区域209A中。此处,恢复数据51如图5所示,由更新后元数据50的备份数据(例如逻辑地址2071~压缩后长度2073)、有效标志2074、控制器22A的元数据保存目标地址2075、和控制器22B的元数据保存目标地址2076构成。此时,有效标志2074的值被设定为“有效”。
S1003:CPU24A生成元数据更新委托消息。更新委托消息由更新对象元数据信息的列表构成。列表的各要素包括更新后元数据50被保存的本地存储器区域209A的地址、与更新后元数据50对应的恢复数据51被保存的本地存储器区域209A的地址、存储控制器22A的缓存区域203A内的更新后元数据保存目标地址、和存储控制器22B的缓存区域203B内的更新后元数据保存目标地址。
S1004:CPU24A对加速器31发送元数据更新处理请求。
S1005:加速器31从CPU24A接受元数据更新处理请求。
S1006:加速器31从更新对象元数据的列表的开头起,进行从步骤S1007直到步骤S1011的处理。
S1007:加速器31从存储控制器22A的本地存储器区域209A读取恢复数据51。之后,加速器31将恢复数据51保存在存储控制器22A的恢复数据区域208A中。
S1008:加速器31将恢复数据51保存在存储控制器22B的恢复数据区域208B中。
S1009:加速器31从存储控制器22A的本地存储器区域209A中读取更新后元数据50。之后,加速器31基于指定的更新后元数据保存目标地址,将更新后元数据50分别保存在存储控制器22A的缓存区域203A和存储控制器22B的缓存区域203B中。
S1010:加速器31将存储控制器22B的恢复数据区域208B中保存的恢复数据51的有效标志的值改写为“无效”,使恢复数据无效化。
S1011:加速器31将存储控制器22A的恢复数据区域208A中保存的恢复数据51的有效标志的值改写为“无效”,使恢复数据无效化。
S1012:加速器31在从CPU24A接受的更新对象元数据列表中仍有未处理的要素残留的情况下,前进至步骤S1006。列表的全部要素的处理已完成的情况下,前进至步骤S1013。
S1013:加速器31对CPU24A通知元数据更新处理的执行结果。
S1014:CPU24A从加速器31接受元数据更新处理的执行结果,结束处理。
这样,通过在进行元数据双重化之前将恢复数据传输至各控制器,而在控制器之间失去了元数据的一致性的情况下,也能够根据恢复数据进行元数据的回滚或前滚。由此,能够恢复元数据的一致性。另外,通过使恢复数据的传输和元数据的双重化处理一并从CPU分流至加速器,而减少CPU的处理负荷,因此能够期待存储系统的I/O处理性能提高。
<元数据恢复处理>
图11是说明本发明的实施例中的元数据恢复处理的流程图。
元数据恢复处理是在元数据更新处理因外部原因(例如控制器间连接的切断等)而未完成的情况下执行的处理。通过基于存储器中保存的恢复数据,对元数据应用前滚或回滚,而恢复为两个控制器之间元数据的内容一致的状态。元数据恢复处理在两个控制器中分别执行。
以下,使用图11,说明恢复处理的处理流程。此处叙述使用前滚的方法。
S1101:CPU24对恢复数据区域208的恢复数据管理表207内的各条目,进行从步骤S1102直到步骤S1107的处理。
S1102:CPU24参照对象的恢复数据条目内的有效标志2074。
S1103:CPU24判定S1102中参照的有效标志2074的值是否“有效”。有效标志2074的值是“有效”时,并不保证更新已应用于与该恢复数据对应的元数据。即,该情况下,存在本系统的存储控制器22与其他系统的存储控制器22中双重化的元数据的一致性已受到破坏的可能性。因此,将该元数据作为前滚对象。有效标志2074的值是“无效”时,与该恢复数据对应的元数据处于已应用更新的状态,所以元数据的一致性得到确保,不需要前滚。该判定结果是真的情况下,前进至步骤S1104。判定结果是假的情况下,前进至步骤S1106。
S1104:CPU24参照恢复数据管理表207,取得该条目的元数据保存目标地址2075和2076。
S1105:CPU24将恢复数据管理表207的该条目的元数据备份信息(逻辑地址2071、物理地址2072、和压缩后长度2073)复制至S1104中取得的元数据保存目标地址。复制完成后,将该条目的有效标志的值设定为“无效”。
S1106:CPU24在恢复数据管理表中仍有未处理的条目残留的情况下,为了对下一条目同样地进行处理而前进至步骤S1101。没有未处理的条目残留的情况下结束恢复处理。
以上,叙述了使用前滚恢复元数据的一致性的方法。
另外,关于使用回滚的方法,也能够通过将本实施例的处理的一部分如下所述地变更而实现。
具体而言,在元数据更新处理的步骤S1002中,在恢复数据51的内部不是保存更新后的元数据,而是改为保存更新前的元数据。
另外,将步骤S1010与步骤S1011的实施顺序交换。具体而言,加速器31将存储控制器22A的恢复数据区域208A中保存的恢复数据51的有效标志2074改写为“无效”之后,将存储控制器22B的恢复数据区域208B中保存的恢复数据51的有效标志2074改写为“无效”。
进行回滚时,与有效标志2074是“有效”的恢复数据的元数据被改写为更新前的。此时,通过按上述顺序改写有效标志2074,而成为直接负责I/O处理的本系统的存储控制器22A优先地保持更新后的元数据的状态。
通过如上所述地变更处理,元数据恢复处理的步骤S1105中还原的元数据成为更新前的元数据,所以能够实现回滚。
根据以上本发明的实施例,在故障发生时,通过各存储控制器进行元数据更新处理的前滚或回滚,而维持元数据的一致性。因此,在元数据更新处理中,首先将前滚或回滚所需的信息(恢复数据)保存在各存储控制器的存储器中之后,进行元数据的双重化。元数据更新处理异常结束的情况下,各存储控制器通过基于恢复数据实施元数据的前滚或回滚,而恢复元数据的一致性。另外,通过将恢复数据的发送和元数据的双重化分流至硬件加速器,而削减存储控制器的CPU处理负荷,存储系统的处理性能提高。
另外,本发明的实施方式的系统也可以如下所述地构成。
(1)一种存储系统,其包括多个存储控制部(例如存储控制器22)、加速器(例如加速器31)、和具有保存数据的存储介质的存储驱动器(例如驱动器29),其特征在于:多个存储控制部分别具有处理器(例如CPU24)和存储器(例如存储器25);在多个存储控制部中的第一存储控制部的存储器和多个存储控制部中的第二存储控制部的存储器中,分别保持有用于访问存储驱动器所保存的数据的元数据(例如元数据管理表206),在接收了更新保存的数据的写入请求的情况下,第一存储控制部的处理器,生成对与要更新的数据关联的元数据进行更新而得的元数据和包含用于恢复元数据的一致性的信息的恢复数据(例如恢复数据管理表207)(例如步骤S1001和S1002),将元数据和恢复数据的处理请求发送至加速器(例如步骤S1004);加速器:加速器基于处理请求,在第一存储控制部的存储器和第二存储控制部的存储器中保存恢复数据,之后(例如步骤S1007和S1008)在第一存储控制部的存储器和第二存储控制部的存储器中保存元数据(例如步骤S1009)。
由此,在采用追加记录型数据保存方式的存储系统中,能够保持数据的一致性,同时提高I/O处理性能。
(2)在上述(1)中,加速器在第一存储控制部的存储器和第二存储控制部的存储器中保存元数据之后,使第一存储控制部的存储器的恢复数据和第二存储控制部的存储器的恢复数据成为无效(例如步骤S1010和S1011),第一存储控制部的处理器和第二存储控制部的处理器在元数据的至少一部分向存储器的保存没有正常结束的情况下,基于有效的恢复数据,恢复元数据的一致性(例如步骤S1102~S1106)。
由此,能够使元数据恢复为确保了一致性的状态。
(3)在上述(2)中,恢复数据包含用于使元数据恢复为更新之后的状态的信息,加速器在第一存储控制部的存储器和第二存储控制部的存储器中保存元数据(例如步骤S1009)之后,使第二存储控制部的存储器的恢复数据成为无效(例如步骤S1010),之后,使第一存储控制部的存储器的恢复数据成为无效(例如步骤S1011)。
由此,能够使元数据前滚为保持了一致性的状态。
(4)在上述(2)中,恢复数据包含用于使元数据恢复为更新之前的状态的信息,加速器在第一存储控制部的存储器和第二存储控制部的存储器中保存元数据(例如步骤S1009)之后,使第一存储控制部的存储器的恢复数据成为无效(例如步骤S1011),之后,使第二存储控制部的存储器的恢复数据成为无效(例如步骤S1010)。
由此,能够使元数据回滚为保持了一致性的状态。
(5)在上述(1)中,元数据包含用于访问数据的、写入目标逻辑地址与写入目标物理地址的对应关系,写入目标逻辑地址与写入目标物理地址的对应关系被更新的情况,是写入对象的数据的数据量削减处理被执行的情况。
由此,在采用追加记录型数据保存方式的存储系统中,能够保持数据的一致性。
(6)在上述(5)中,数据量削减处理是压缩处理或重复排除处理。
由此,在采用追加记录型数据保存方式的存储系统中,能够保持数据的一致性。
另外,本发明不限定于上述实施例,包括各种变形例。例如,上述实施例是为了更易于理解本发明而详细说明的,并不限定于必须具备说明的全部结构。另外,能够将某个实施例的结构的一部分置换为其他实施例的结构,也能够在某个实施例的结构上添加其他实施例的结构。另外,对于各实施例的结构的一部分,能够追加、删除、置换其他结构。
另外,对于上述各结构、功能、处理部、处理单元等,例如可以通过在集成电路中设计等而用硬件实现其一部分或全部。另外,上述各结构、功能等,也可以通过处理器解释、执行实现各功能的程序而用软件实现。实现各功能的程序、表、文件等信息,能够保存在非易失性半导体存储器、硬盘驱动器、SSD(Solid State Drive)等存储设备、或者IC卡、SD卡、DVD等计算机可读取的非暂时性数据存储介质中。
另外,控制线和信息线示出了认为说明上必要的,并不一定示出了产品上全部的控制线和信息线。实际上也可以认为几乎全部结构都相互连接。

Claims (12)

1.一种存储系统,其包括多个存储控制部、加速器和具有保存数据的存储介质的存储驱动器,所述存储系统的特征在于:
所述多个存储控制部分别具有处理器和存储器,
在所述多个存储控制部中的第一存储控制部的所述存储器和所述多个存储控制部中的第二存储控制部的所述存储器中,分别保持有用于访问所述存储驱动器所保存的数据的元数据,
在接收了更新所述保存的数据的写入请求的情况下,
所述第一存储控制部的所述处理器生成对与要更新的数据关联的元数据进行更新而得的元数据和包含用于恢复所述元数据的一致性的信息的恢复数据,并将所述元数据和所述恢复数据的处理请求发送至所述加速器,
所述加速器基于所述处理请求,在所述第一存储控制部的所述存储器和所述第二存储控制部的所述存储器中保存所述恢复数据,之后在所述第一存储控制部的所述存储器和所述第二存储控制部的所述存储器中保存所述元数据。
2.如权利要求1所述的存储系统,其特征在于:
所述加速器在所述第一存储控制部的所述存储器和所述第二存储控制部的所述存储器中保存所述元数据之后,使所述第一存储控制部的所述存储器的所述恢复数据和所述第二存储控制部的所述存储器的所述恢复数据成为无效,
所述第一存储控制部的所述处理器和所述第二存储控制部的所述处理器在所述元数据的至少一部分向所述存储器的保存没有正常结束的情况下,基于有效的所述恢复数据,恢复所述元数据的一致性。
3.如权利要求2所述的存储系统,其特征在于:
所述恢复数据包含用于使所述元数据恢复为更新之后的状态的信息,
所述加速器在所述第一存储控制部的所述存储器和所述第二存储控制部的所述存储器中保存所述元数据之后,使所述第二存储控制部的所述存储器的所述恢复数据成为无效,之后,使所述第一存储控制部的所述存储器的所述恢复数据成为无效。
4.如权利要求2所述的存储系统,其特征在于:
所述恢复数据包含用于使所述元数据恢复为更新之前的状态的信息,
所述加速器在所述第一存储控制部的所述存储器和所述第二存储控制部的所述存储器中保存所述元数据之后,使所述第一存储控制部的所述存储器的所述恢复数据成为无效,之后,使所述第二存储控制部的所述存储器的所述恢复数据成为无效。
5.如权利要求1所述的存储系统,其特征在于:
所述元数据包含用于访问所述数据的、写入目标逻辑地址与写入目标物理地址的对应关系,
所述写入目标逻辑地址与所述写入目标物理地址的对应关系被更新的情况,是写入对象的数据的数据量削减处理被执行的情况。
6.如权利要求5所述的存储系统,其特征在于:
所述数据量削减处理是压缩处理或重复排除处理。
7.一种存储系统的控制方法,其中,所述存储系统包括多个存储控制部、加速器和具有保存数据的存储介质的存储驱动器,所述控制方法的特征在于:
所述多个存储控制部分别具有处理器和存储器;
在所述多个存储控制部中的第一存储控制部的所述存储器和所述多个存储控制部中的第二存储控制部的所述存储器中,分别保持有用于访问所述存储驱动器所保存的数据的元数据,
所述控制方法包括:
在接收了更新所述保存的数据的写入请求的情况下,
所述第一存储控制部的所述处理器生成对与要更新的数据关联的元数据进行更新而得的元数据和包含用于恢复所述元数据的一致性的信息的恢复数据的步骤;
所述第一存储控制部的所述处理器将所述元数据和所述恢复数据的处理请求发送至所述加速器的步骤;和
所述加速器基于所述处理请求,在所述第一存储控制部的所述存储器和所述第二存储控制部的所述存储器中保存所述恢复数据,之后在所述第一存储控制部的所述存储器和所述第二存储控制部的所述存储器中保存所述元数据。
8.如权利要求7所述的存储系统的控制方法,其特征在于:
所述控制方法还包括:
所述加速器在所述第一存储控制部的所述存储器和所述第二存储控制部的所述存储器中保存所述元数据之后,使所述第一存储控制部的所述存储器的所述恢复数据和所述第二存储控制部的所述存储器的所述恢复数据成为无效的步骤;和
所述第一存储控制部的所述处理器和所述第二存储控制部的所述处理器在所述元数据的至少一部分向所述存储器的保存没有正常结束的情况下,基于有效的所述恢复数据,恢复所述元数据的一致性的步骤。
9.如权利要求8所述的存储系统的控制方法,其特征在于:
所述恢复数据包含用于使所述元数据恢复为更新之后的状态的信息,
在使所述恢复数据成为无效的步骤中,所述加速器使所述第二存储控制部的所述存储器的所述恢复数据成为无效,之后,使所述第一存储控制部的所述存储器的所述恢复数据成为无效。
10.如权利要求8所述的存储系统的控制方法,其特征在于:
所述恢复数据包含用于使所述元数据恢复为更新之前的状态的信息,
在使所述恢复数据成为无效的步骤中,所述加速器将所述第一存储控制部的所述存储器的所述恢复数据更新为无效,之后,使所述第二存储控制部的所述存储器的所述恢复数据成为无效。
11.如权利要求10所述的存储系统的控制方法,其特征在于:
所述元数据包含用于访问所述数据的、写入目标逻辑地址与写入目标物理地址的对应关系,
所述写入目标逻辑地址与所述写入目标物理地址的对应关系被更新的情况,是写入对象的数据的数据量削减处理被执行的情况。
12.如权利要求11所述的存储系统的控制方法,其特征在于:
所述数据量削减处理是压缩处理或重复排除处理。
CN202110907201.XA 2021-03-29 2021-08-09 存储系统和存储系统的控制方法 Pending CN115129237A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-055362 2021-03-29
JP2021055362A JP7232281B2 (ja) 2021-03-29 2021-03-29 ストレージシステム及びストレージシステムの制御方法

Publications (1)

Publication Number Publication Date
CN115129237A true CN115129237A (zh) 2022-09-30

Family

ID=80855292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110907201.XA Pending CN115129237A (zh) 2021-03-29 2021-08-09 存储系统和存储系统的控制方法

Country Status (3)

Country Link
US (2) US11287977B1 (zh)
JP (2) JP7232281B2 (zh)
CN (1) CN115129237A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230126234A1 (en) * 2021-10-25 2023-04-27 Rubrik, Inc. Independent object data backup between clusters
CN116126744B (zh) * 2023-04-04 2023-08-22 荣耀终端有限公司 一种内存回收方法、装置及终端设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319637A (ja) * 1994-05-26 1995-12-08 Mitsubishi Electric Corp ディスク装置の制御装置およびディスク装置の制御方 法
JP2008165624A (ja) * 2006-12-28 2008-07-17 Hitachi Ltd 計算機システム及び第1記憶装置
EP2652589A1 (en) 2011-06-24 2013-10-23 Hitachi, Ltd. Storage system
JP6089527B2 (ja) * 2012-09-18 2017-03-08 富士通株式会社 ストレージ制御システム、リカバリプログラム、及び該方法
KR20150105323A (ko) 2013-01-08 2015-09-16 바이올린 메모리 인코포레이티드 데이터 스토리지 방법 및 시스템
US20150363319A1 (en) * 2014-06-12 2015-12-17 Netapp, Inc. Fast warm-up of host flash cache after node failover
US9645753B2 (en) * 2014-08-29 2017-05-09 Netapp, Inc. Overlapping write detection and processing for sync replication
US9940256B2 (en) 2015-11-09 2018-04-10 International Business Machines Corporation Implementing hardware accelerator for storage write cache management for managing cache line updates for writes, reads, and destages in storage write cache
EP3404527B1 (en) * 2016-02-18 2023-08-30 Huawei Technologies Co., Ltd. Data updating technique
US10838630B2 (en) * 2016-04-18 2020-11-17 Netapp, Inc. Write-ahead log maintenance and recovery
US10585769B2 (en) 2017-09-05 2020-03-10 International Business Machines Corporation Method for the implementation of a high performance, high resiliency and high availability dual controller storage system
CN110232053B (zh) * 2017-12-05 2024-02-02 华为技术有限公司 日志处理方法、相关设备及系统
JP2020112972A (ja) 2019-01-10 2020-07-27 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム
US20210042050A1 (en) 2019-08-09 2021-02-11 Goke Us Research Laboratory Method and apparatus for rebuilding memory mapping tables
JP7190421B2 (ja) * 2019-12-09 2022-12-15 株式会社日立製作所 ストレージシステム及びボリューム複製方法
JP2021114164A (ja) 2020-01-20 2021-08-05 富士通株式会社 ストレージ装置及びストレージ制御方法
US11079969B1 (en) * 2020-02-25 2021-08-03 EMC IP Holding Company LLC Disk array enclosure configured for metadata and data storage processing
US20210278977A1 (en) * 2020-03-06 2021-09-09 Dell Products L.P. Method and system for performing data deduplication and compression in a data cluster
US11126361B1 (en) * 2020-03-16 2021-09-21 EMC IP Holding Company LLC Multi-level bucket aggregation for journal destaging in a distributed storage system
US11231868B2 (en) * 2020-04-07 2022-01-25 Eidetic Communications Inc. System and method for performing computational storage utilizing a hardware accelerator
US11144221B1 (en) * 2020-04-10 2021-10-12 Dell Products L.P. Efficient resilience in a metadata paging array for in-flight user data
US11567971B2 (en) * 2020-11-19 2023-01-31 Samsung Electronics Co., Ltd. Systems, methods, and devices for storage shuffle acceleration

Also Published As

Publication number Publication date
US20220308761A1 (en) 2022-09-29
JP2022152549A (ja) 2022-10-12
US11287977B1 (en) 2022-03-29
JP7472341B2 (ja) 2024-04-22
JP7232281B2 (ja) 2023-03-02
US11880566B2 (en) 2024-01-23
JP2023055998A (ja) 2023-04-18

Similar Documents

Publication Publication Date Title
US5949970A (en) Dual XPCS for disaster recovery
US6912669B2 (en) Method and apparatus for maintaining cache coherency in a storage system
US7472243B2 (en) Storage system and control method thereof
US7925914B2 (en) Information system, data transfer method and data protection method
US8386839B2 (en) Information system and data transfer method
US6182198B1 (en) Method and apparatus for providing a disc drive snapshot backup while allowing normal drive read, write, and buffering operations
US8595453B2 (en) Information system and data transfer method of information system
US6587933B2 (en) Method, system, and program for discarding data in a storage system where updates to a primary storage device are shadowed in a secondary storage device
JP6009095B2 (ja) ストレージシステム及び記憶制御方法
JP4152373B2 (ja) リモートミラーキャッシュ内の論理オブジェクトの完全性を保つシステム
JP7472341B2 (ja) ストレージシステム及びストレージシステムの制御方法
EP1237087A2 (en) Memory device system and method for copying data in memory device system
JP2003223287A (ja) 記憶装置、この記憶装置のバックアップ方法及びプログラム
US20060161808A1 (en) Method, apparatus and program storage device for providing intelligent copying for faster virtual disk mirroring
US20080222214A1 (en) Storage system and remote copy system restoring data using journal
US11875060B2 (en) Replication techniques using a replication log
JP3882467B2 (ja) 記憶装置システムのスナップショット管理方法
US20230280945A1 (en) Storage system and control method for storage system
US11853592B2 (en) Reversible write techniques using physical storage device offloading
US20240134575A1 (en) Storage system and storage control method
US20230297242A1 (en) Storage device and data recovery method by storage device
CN115480909A (zh) 存储系统和数据处理方法
US20190205044A1 (en) Device for restoring lost data due to failure of storage drive
JP2007334913A (ja) 記憶装置システム及び記憶装置システムにおけるデータの複写方法

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