CN107209714B - 分布式存储系统及分布式存储系统的控制方法 - Google Patents

分布式存储系统及分布式存储系统的控制方法 Download PDF

Info

Publication number
CN107209714B
CN107209714B CN201580074636.3A CN201580074636A CN107209714B CN 107209714 B CN107209714 B CN 107209714B CN 201580074636 A CN201580074636 A CN 201580074636A CN 107209714 B CN107209714 B CN 107209714B
Authority
CN
China
Prior art keywords
node
data
virtual
deduplication
logical
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
CN201580074636.3A
Other languages
English (en)
Other versions
CN107209714A (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.)
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 CN107209714A publication Critical patent/CN107209714A/zh
Application granted granted Critical
Publication of CN107209714B publication Critical patent/CN107209714B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • 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/10Address translation
    • 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
    • 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment

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)

Abstract

在具有多个节点的分布式存储系统中,多个节点中的第一节点判定与向多个虚拟部分区域中的由第一节点管理的第一虚拟部分区域写入的第一数据相同的数据是否存在于多个节点中的其他节点管理的虚拟部分区域,在其他节点存在与第一数据相同的数据的情况下,执行跨节点重复数据删除,在该跨节点重复数据删除中,使第一虚拟部分区域和被写入了该相同的数据的其他节点的虚拟部分区域中的某一方的逻辑部分区域的分配变更为向另一方的逻辑部分区域分配。在第一虚拟部分区域的跨节点重复数据删除执行后的第一节点的IO负荷小于第一阈值的情况下,第一节点执行将虚拟存储区域分割得到的多个虚拟部分区域中、由第一节点所管理的第二虚拟部分区域的跨节点重复数据删除。

Description

分布式存储系统及分布式存储系统的控制方法
技术领域
本发明涉及分布式存储系统。
背景技术
在IT系统中应处理的数据量急剧增大,谋求能够应对该情况的存储装置。作为这样的存储装置,存在分散为多个存储装置地进行数据的处理、保存的分布式存储系统的技术。在为了进行大规模大数据分析等而谋求高性能的分析的系统中,可以认为能够提供可扩展的容量和性能的分布式存储系统是有效的解决方案。
另一方面,为了应对激增的数据量,作为节省存储装置的存储区域的技术,存在重复数据删除的技术。作为与分布式存储系统和重复数据删除相关的技术,存在专利文献1。在专利文献1中,构成分布式网络的各分布式服务器在从客户端接收到对保存在其他分布式服务器中的数据的读出请求时,从该其他服务器获取数据,并向客户端响应。另外,重复数据删除管理装置对保存在各分布式服务器中的数据管理哈希值那样的对数据进行识别的唯一ID的数据库。重复数据删除管理装置检索数据库,在与相同的唯一ID对应关联的数据存在阈值以上的数量的情况下,选择将数据删除的分布式服务器,将保存在所选择的分布式服务器中的重复数据删除,由此来进行重复数据删除。
现有技术文献
专利文献
专利文献1:美国专利公报8,572,137号
发明内容
在分布式服务器间进行重复数据删除的情况下,当通过重复数据删除而被删除了数据的分布式服务器接收到对已删除的数据的读出请求时,必须从其他分布式服务器获取数据,存在分布式服务器的性能降低的问题,但在专利文献1中,仅将数据的重复数用于可否进行重复数据删除的判断,而没有考虑因分布式服务器间的数据通信的发生而导致的性能下降。
分布式存储系统具有彼此连接多个节点,该多个节点分别对数据向由存储介质构成的逻辑存储区域的保存进行控制。多个节点对上位装置提供跨过多个节点分别控制的逻辑存储区域的虚拟存储区域,并对将虚拟存储区域分割得到的多个虚拟部分区域和将逻辑存储区域分割得到的多个部分逻辑存储区域的分配进行管理,多个节点使写入到虚拟存储区域的数据分散地保存到逻辑存储区域中。多个节点中的第一节点判定在多个节点中的其他节点所管理的虚拟部分区域中是否存在与向多个虚拟部分区域中的由第一节点所管理的第一虚拟部分区域写入的第一数据相同的数据,在其他节点存在与第一数据相同的数据的情况下,执行跨节点重复数据删除,在该跨节点重复数据删除中,使第一虚拟部分区域和被写入了该相同的数据的其他节点的虚拟部分区域中的某一方的逻辑部分区域的分配变更为向另一方的逻辑部分区域分配。在第一虚拟部分区域的跨节点重复数据删除执行后的第一节点的IO负荷的预测值小于第一阈值的情况下,第一节点执行将虚拟存储区域分割得到的多个虚拟部分区域中、由第一节点所管理的第二虚拟部分区域的跨节点重复数据删除。
发明效果
根据本发明的一方式,能够在通过网络连接多个节点的分布式存储系统中实现了重复数据删除的情况下,实现较大的数据量削减效果和高性能双方。
附图说明
图1表示与跨节点重复数据删除的执行的判定方法有关的概要。
图2表示分布式存储系统的系统构成例。
图3表示用于分布式存储系统的控制的信息。
图4A表示虚拟卷管理表的构成例。
图4B表示池卷管理表的构成例。
图4C表示驱动管理表的构成例。
图5A表示页映射表的构成例。
图5B表示页负荷频率表的构成例。
图6A表示虚拟组块(chunk)负荷频率表的构成例。
图6B表示逻辑组块负荷频率表的构成例。
图7A表示指纹表(Fingerprint Table,FPT)的构成例。
图7B表示FPT更新日志的构成例。
图7C表示重复数据删除效果管理表的构成例。
图8表示重复数据删除日志结构化映射表的构成例。
图9表示池卷区域控制表的构成例。
图10表示分布式存储系统的读处理的流程图。
图11表示同步写处理的流程图。
图12表示后端写处理的流程图。
图13A表示重复数据删除处理的流程图。
图13B表示节点重复数据删除处理的流程图。
图13C表示跨节点重复数据删除处理的流程图。
图13D表示跨节点重复数据删除处理的后续。
图13E表示跨节点重复数据删除解除处理的流程图。
具体实施方式
对于本发明的实施方式,参照附图进行说明。另外,以下说明的实施方式不限定权利要求书的发明,另外,实施方式中说明的特征的所有组合不限于是发明的解决手段所必须的。
在以下的说明中,有时通过“表”、“列表”、“队列”等表现来说明各种信息,但各种信息也可以由这些以外的数据构造表现。为了表示不依赖于数据构造,有时将“XX表”、“XX列表”等称为“XX信息”。在说明各信息的内容时,虽然使用“识别信息”、“标识符”、“名”、“ID”、“编号”等表现,但这些表现能够彼此互换。
本实施方式公开了能够实现重复数据删除的分布式存储系统。分布式存储系统通过网络连接分别包含存储器件的多个计算机节点而构成。分布式存储系统实现虚拟存储系统,该虚拟存储系统通过多个计算机节点的存储器件而实现存储池(也仅称为池)。
在本实施方式中,分布式存储系统向主机提供虚拟卷。分布式存储系统对于有写访问的虚拟存储区域(虚拟卷提供的存储区域)而从池(存储池)分配逻辑存储区域。一个池由一个或多个逻辑卷构成。也将该逻辑卷称为池卷。池卷的实体是磁盘驱动的存储区域。也能够向池卷分配其他计算机节点的磁盘驱动的存储区域。
在本实施方式中,分布式存储系统能够对计算机节点中保存的数据进行重复数据删除。通过重复数据删除,当存在某个数据和包含与该数据相同内容的数据(重复数据)时,将一个数据置换为指示另一个数据的指针信息,并将该一个数据删除,由此能够节省用于保存这些数据所需的存储区域。重复数据删除既能够在一个计算机节点内执行,也能够跨多个计算机节点地执行。将前者称为节点重复数据删除,将后者称为跨节点重复数据删除。在要读出已被重复数据删除的数据的情况下,需要根据指针信息来读出该数据的实体(称为特定数据)。在特定数据保存在收到读出请求的计算机节点的情况下,从该计算机节点读出特定数据。另一方面,在特定数据保存在与收到读出请求的计算机节点(称为第一计算机节点)不同的计算机节点(称为第二计算机节点)的情况下,第一计算机节点向第二计算机节点转送读出请求,需要从第二计算机节点经由网络向第一计算机节点转送特定数据。像这样,将为了读出已被重复数据删除的数据而需要从第二计算机节点向第一计算机节点进行数据通信那样的读处理称为重复数据跨节点读取。
在本实施方式中,重复数据删除的单位是组块。虚拟组块是用固定长度分割虚拟卷而得到的部分存储区域。逻辑组块是用固定长度分割池卷而得到的部分存储区域。虚拟组块与逻辑组块的大小相等,另外,虚拟组块与逻辑组块的大小与页的大小相等,或者比页的大小小。在计算机节点中管理虚拟组块与逻辑组块之间的映射(通过后述的重复数据删除映射表234管理的映射)。通过对映射自身的更新等来实现节点重复数据删除和跨节点重复数据删除。
在本实施方式中,虚拟页是用固定长度分割虚拟卷而得到的部分存储区域,对虚拟页对应关联有某一个计算机节点101(但是,在初始状态下没有对虚拟页对应关联任何计算机节点101)。此外,也可以根据按各计算机节点101对虚拟页的IO频率(也称为I/O频率或访问频率),将与虚拟页对应关联的计算机节点101变更为向该虚拟页的IO频率最大的计算机节点101。该情况下,虚拟页内的数据(用户数据)被移动到变更目的地的计算机节点101。另外,有时需要配合该移动来更新前述的虚拟组块与逻辑组块之间的映射。
在本实施方式中,存储器件包含1台HDD或SSD等1台存储驱动及包含多台存储驱动的RAID装置、以及多台RAID装置。条带或条带数据是成为生成用于数据保护的冗余码的源的单位。为了与冗余码相区别,有时将条带称为用户数据。条带被保存在计算机节点内的存储器件中,并且用于其他计算机节点中的冗余码的生成。条带由一个或多个逻辑组块构成,通过条带单位而使数据冗余化。
在此,对本实施方式中的页、组块以及条带之间的关系进行说明。在一例中,页的大小为组块的大小的整数倍(1倍以上),另外,条带的大小是页的大小的整数倍(1倍以上)。在另一例中,条带的大小为组块的大小的整数倍(1倍以上),另外,页的大小为条带的大小的整数倍(1倍以上)。
图1表示关于本实施方式的一例的跨节点重复数据删除的执行的判定方法的概要。在本实施方式的一例中,存在第一判定方法和第二判定方法。计算机节点101P、101Q通过网络而结合。另外,计算机节点101R、101S也通过网络而结合。以下,也将计算机节点仅称为节点。
图1的“跨节点重复数据删除的执行的判定方法(1)”是对于第一判定方法进行说明的概念图。
第一判定方法中,基于对虚拟卷所提供的虚拟存储区域的“由重复数据跨节点读取产生的网络负荷”、“平均响应时间”以及“平均处理能力”这样的与节点的性能有关的IO负荷的信息,判定是否对保存在虚拟存储区域中的数据进行重复数据删除。
虚拟卷被分割为作为固定长度的存储区域的虚拟组块那样的数据单位来管理。数据单位既存在包含重复数据的情况,也存在并非如此的情况。各计算机节点中,针对每个数据单位记录IO频率。图1的图表(a)表示对所有计算机节点的数据单位的IO频率进行合计得到的结果的概念图。数据单位与IO频率有关地按升序被重新排序。在第一判定方法中,比数据单位阈值P靠左侧的数据单位被选择为跨节点重复数据删除的候选。数据单位与IO频率有关地按升序的顺序被选择。在跨节点重复数据删除中,包含在所选择的数据单位中的重复数据被重复数据删除。在第一判定方法中,关于比数据单位阈值P靠右侧的数据单位所包含的重复数据中、被适用了跨节点重复数据删除的重复数据执行跨节点重复数据删除解除。在跨节点重复数据删除解除中,跨节点重复数据删除被解除,也就是说,返回到对重复数据执行跨节点重复数据删除之前的状态。由此,不会再发生IO频率高的数据单位的重复数据跨节点读取,消除了IO负荷的瓶颈。数据单位阈值P根据基于每数据单位的IO频率和响应时间的信息而推定出的、“由重复数据跨节点读取产生的网络负荷”、“平均响应时间”以及“平均处理能力”那样的表示节点的IO负荷的指标和一些阈值来决定。数据单位阈值P能够设定为以下所述的数据单位阈值P1、P2及P3的最小值。
图1的图表(b)是因重复数据删除跨节点读取产生的网络负荷的预测值(Y1)的概念图。图表(b)的横轴与图表(a)相同。图表(b)的纵轴表示在将横轴的某个值设为X时对比X靠左侧的数据单位执行了跨节点重复数据删除的情况下产生的伴随重复数据跨节点读取的网络负荷的预测值。横轴的值越大,则成为跨节点重复数据删除的对象的重复数据越多,因此其结果是网络负荷的预测值变大。根据预先设定的阈值T1(图1的阈值T1)来确定数据单位阈值P1(图1的P1)。在本实施例中,通过对预测值Y1和阈值T1进行比较,根据情况而不执行与比数据单位阈值P1靠右侧的数据单位有关的跨节点重复数据删除,由此能够抑制因执行跨节点重复数据删除而产生的网络负荷的增加。
图1的图表(c)是分布式存储系统的平均响应时间(平均IO响应时间)的预测值(Y2)的概念图。图表(c)的横轴与图表(a)相同。图表(c)的纵轴表示在将横轴的某个值设为X时对比X靠左侧的数据单位执行了跨节点重复数据删除的情况下的、分布式存储系统的平均响应时间的预测值。横轴的值越大,成为跨节点重复数据删除的对象的重复数据越多,因此其结果是平均IO响应时间的预测值变大。根据预先设定的阈值T2(图1的阈值T2)来确定数据单位阈值P2(图1的P2)。在本实施例中,对平均响应时间的预测值Y2和阈值T2进行比较,根据情况不进行与比数据单位阈值P2靠右侧的数据单位有关的跨节点重复数据删除,由此能够抑制因执行跨节点重复数据删除而产生的平均响应时间的变大化。
图1的图表(d)是分布式存储系统的平均处理能力的预测值(Y3)的概念图。图表(d)的横轴与图表(a)相同。图表(d)的纵轴表示在将横轴的某个值设为X时对比X靠左侧的数据单位执行了跨节点重复数据删除的情况下的、分布式存储系统的平均处理能力的预测值。横轴的值越大,成为跨节点重复数据删除的对象的重复数据越多,因此其结果是平均处理能力的预测值变小。根据预先设定的阈值T3(图1的阈值T3)来确定数据单位阈值P3(图1的P3)。对平均处理能力的预测值Y3和阈值T3进行比较,根据情况不进行与比数据单位阈值P3靠右侧的数据单位有关的跨节点重复数据删除,由此能够抑制因执行跨节点重复数据删除而产生的平均处理能力的下降。
如以上说明那样,在第一判定方法中,能够根据基于每数据单位的IO频率和响应时间而预测的IO负荷(“由重复数据跨节点读取产生的网络负荷”、“平均响应时间”以及“平均处理能力”)和一些阈值,来进行跨节点重复数据删除的执行的判定。通过按照该判定方法,能够以如下方式控制分布式存储系统:对包含在对IO负荷的影响小的数据单位中的重复数据执行跨节点重复数据删除,另外,对包含在对IO负荷的影响大的数据单位中的重复数据不执行跨节点重复数据删除,另外,对包含在对IO负荷的影响大的数据单位中的重复数据执行跨节点重复数据删除解除。此外,通过使用该判定方法,仅对IO负荷的影响小的数据单位成为重复数据删除的对象,而对IO负荷的影响大的数据单位不成为重复数据删除的对象,因此关于对IO负荷的影响大的数据单位不需要伴随着跨节点重复数据删除的重复数据跨节点读取,从而能够同时实现高效的数据量削减和高性能。另外,能够抑制因跨节点重复数据删除而产生的“因重复数据跨节点读取产生的网络负荷”,还能够抑制“平均响应时间”、以及“平均处理能力”等节点的IO性能的劣化,因此,能够同时实现高效的数据量削减和高性能。
图1的“跨节点重复数据删除的执行的判定方法(2)”是对第二判定方法进行说明的概念图。
在第二判定方法中,基于跨节点重复数据删除的相对的数据量削减效果的大小,判定是否对保存在虚拟存储区域中的数据进行重复数据删除。
图1中,在计算机节点101R、101S中分别保存有9个数据单位的重复数据d(99A至99H、及99I至99Q)。重复数据d(99A至99G)及重复数据d(99I~99P)已通过节点重复数据删除而被执行重复数据删除。能够通过跨节点重复数据删除而对重复数据d(99H、99Q)中的一方执行重复数据删除。在第二判定方法中,判定在这样的状况下是否执行跨节点重复数据删除。
在此,将“r”定义为“基于节点重复数据删除的削减数”。在第二判定方法中使用以下的判定式。
判定式:r<“判定式的阈值”
在图1的例子中,通过执行跨节点重复数据删除,与完全没有进行重复数据删除的情况相比,数据量成为(r+2)分之一。因此,判定式的r的值越小,将要执行的跨节点重复数据删除的数据量削减效果越大。另外,r的值越小,发生重复数据跨节点读取的可能性越小,因此,因将要执行的跨节点重复数据删除产生性能下降的情况少的可能性高。
例如,若假设“判定式的阈值”的阈值为10,则图1中,在节点101R和节点101S中分别删除8个重复数据,因此r的值为16,判定式的判定结果为False(伪)。在本例中,根据判定式的结果,判定为不执行重复数据d(99H、99Q)的跨节点重复数据删除。
根据第二判定方法,能够仅将与数据量削减效果相对大、并且性能下降相对小的跨节点重复数据删除相关的重复数据选择为节点重复数据删除对象候选。
在本实施方式的一例中,计算机节点在执行跨节点重复数据删除时能够使用以上说明的跨节点重复数据删除的执行的判定方法(1)和(2)中的任一方或者双方。
以上,通过图1中说明的跨节点重复数据删除的执行的判定方法,能够在抑制性能劣化的同时执行跨节点重复数据删除,能够实现大的数据量削减效果和高性能双方。
图2表示分布式存储系统的系统构成例。节点101具有例如通常的服务器计算机的构成。节点101的硬件构成没有特别限定。节点101经由网络103并通过端口106与其他节点101连接。网络103例如由InfiniBand(无限带宽)、以太网(注册商标)等构成。
多个节点101形成域102。域102既可以与例如地理上的地域对应,也可以与虚拟或物理网络103的拓扑对应。网络104连接多个域102。以下,假设域与地理上分离的站点建立了对应关系。
节点101的内部构成经由内部网络112而连接端口106、处理器封装111、磁盘驱动(以下也称为驱动)113。处理器封装111包含存储器118、处理器119。在此,节点101也可以不包含磁盘驱动113,取而代之,对节点101连接外置的外部存储装置,并在其中保存数据。
存储器118保存处理器119处理读或写指令、以及执行存储功能所需的控制用的信息,还保存存储装置的缓存数据。另外,存储器118保存由例如处理器119执行的程序。存储器118既可以是易失性的DRAM(Dynamic Random Access Memory:动态随机访问存储器),也可以使用非易失的SCM(Storage Class Memory:存储级内存)等。
驱动113例如由具有FC(Fibre Channel:光纤通道)、SAS(Serial Attached SCSI:串列SCSI)、SATA(Serial Advanced Technology Attachment:串行高级技术附件)等的接口的硬磁盘驱动、SSD(Solid State Drive:固态驱动器)等构成。
可以使用NAND、PRAM(Phase Change Random Access Memory:相变随机存储器)、ReRAM(Resistance Random Access Memory:阻变存储器)等SCM,也可以使用易失性的存储器。在使用易失性存储器的情况下,也可以通过电池来使存储器件非易失化。
驱动群分别构成RAID。驱动、RAID及它们的集合分别是存储器件。
图3表示用于分布式存储系统的控制的信息。存储器118不仅保存图3所示的信息,还保存包含实现存储功能的存储程序、OS、接口程序在内的各种程序。存储器118有时还保存执行业务的应用程序。
虚拟化配置信息202包含页映射表215和页负荷频率表216。构成信息203包含虚拟卷管理表218、池卷管理表219和驱动管理表220。
组块负荷信息224是与组块的IO频率有关的信息,包含虚拟组块负荷频率表225和逻辑组块负荷频率表226。重复数据删除管理信息229是与重复数据删除处理相关的信息,包含Fingerprint Table(FPT)231、FPT更新日志239、重复数据删除效果管理表232、重复数据删除日志结构化映射表233以及池卷区域控制表236。
对上述信息的全部或一部分的复制可以被同步或非同步地保存在驱动113中。节点101也可以按例如每个池来保持上述信息。一个池由一个或多个逻辑卷构成。也将该逻辑卷称为池卷。池卷的实体是驱动113的存储区域。也能够向池卷分配其他节点101的驱动的存储区域。
以下,对表示节点101所保持的信息的表的构成例进行说明。各表中,仅示出一部分条目。各表中,空白的单元格是省略了数据的记载的单元格。表的单元格中,“0x”表示16进制的数字。驱动编号在节点内是唯一的,节点编号在系统内是唯一的。站点编号在系统内是唯一的。此外,节点编号也可以在站点内是唯一的。
图4A~图4C示出表示包含在构成信息203中的信息的表的构成例。图4A~图4C表示不同的存储资源类别的管理信息。图4A表示虚拟卷管理表218的构成例。虚拟卷管理表218表示虚拟卷的信息。
本例中,虚拟卷管理表218示出保持该信息218的节点101所提供的虚拟卷的信息。节点101接收向所提供的虚拟卷的访问。虚拟卷管理表218也可以为了应对故障发生而保持不由本节点提供的虚拟卷的信息。在此,既可以由保持该信息218的一个计算机节点101单独提供一个虚拟卷,也可以由保持该信息218的多个计算机节点101提供一个虚拟卷。
虚拟卷管理表218包含在系统内唯一地识别各虚拟卷的标识符(虚拟卷编号)、各虚拟卷的大小(容量)、提供各虚拟卷的节点(称为所有者节点(owner node))的节点编号的列表。虚拟卷的大小不是被分配的逻辑组块的总量,而是表示虚拟卷的虚拟容量(最大容量)。
图4B表示池卷管理表219的构成例。池卷管理表219表示池卷的信息。本例中,池卷管理表219示出保持该信息219的节点101所提供的池卷的信息。池卷管理表219包含在系统内唯一地识别各池卷的标识符(池卷编号)、各池卷的大小(容量)、提供各池卷的节点的节点编号的信息。
图4C表示驱动管理表220的构成例。驱动管理表220表示向各池卷分配的驱动。本例中,驱动管理表220表示保持该信息220的节点101所包含的本系统的驱动113的信息。
驱动管理表220按每个池卷而具有在系统内唯一地识别各池卷的标识符(池卷编号)、驱动的种类(SSD、NL-SAS驱动等)、条带化的驱动编号的组(构成RAID的驱动编号的组)、驱动的大小(容量)的信息。在未实施条带化的情况下,仅对池卷分配一个驱动。此外,一个驱动的不同的区域能够分配给不同的池卷。
图5A~图5B表示包含在虚拟化配置信息202中的信息。图5A表示页映射表215的构成例。页映射表215保持虚拟卷的虚拟页与计算机节点101的对应关系。
本例中,页映射表215保持着节点101(节点101保持该信息215)所提供的虚拟卷的信息。虚拟页与某一个计算机节点101(虚拟卷的所有者节点之一)对应关联。即,也能够换句话说为,虚拟页被分配给某一个计算机节点101(所有者节点)。计算机节点101向该虚拟页的分配以对虚拟页有首次的写请求为契机来进行。此外,被分配了虚拟页的计算机节点101以外的计算机节点101也能够访问该虚拟页。
此外,以下,在页映射表215中,有时将使虚拟页和计算机节点对应关联的操作表现为“对虚拟页分配计算机节点”或者“对计算机节点分配虚拟页”。
页映射表215保持虚拟卷编号、虚拟卷的虚拟页的起始LBA(Logical BlockAddress:逻辑块地址)和地址范围、以及对虚拟页分配的计算机节点101的节点编号。在没有对虚拟页分配计算机节点101的情况下,在页映射表215的节点编号栏记录无效值。
图5B表示页负荷频率表216的构成例。页负荷频率表216保持针对每个虚拟页的I/O频率(访问频率)的历史记录、及针对每个虚拟页的“重复数据跨节点读取的频率”的历史记录。具体而言,保持虚拟卷编号、虚拟卷的虚拟页的起始LBA及地址范围、对该区域的访问频率、关于该区域的“重复数据跨节点读取的频率”、以及对该区域的I/O的响应时间。
页负荷频率表216保持节点101(节点101保持该表216)所提供的虚拟卷的信息。另外,页负荷频率表216保持节点(节点保持该表216)从本节点及其他节点收到的访问的信息。
访问频率及响应时间的信息既可以按访问源的每个节点来获取并管理,也可以分为读访问和写访问来获取并管理。节点101可以将循序及随机访问分离来获取访问频率及响应时间的信息并进行管理,也可以按多个测量周期来获取访问频率及响应时间的信息并进行管理。
“重复数据跨节点读取的频率”表示与对虚拟页的重复数据跨节点读取的频率有关的信息。“重复数据跨节点读取的频率”按访问源的每个节点来获取并管理。在此,所谓重复数据跨节点读取是因执行跨节点重复数据删除而产生的、从其他节点对被分配给该虚拟页的逻辑组块的读取。
图6A~图6B表示包含在组块负荷信息224中的信息。
图6A表示虚拟组块负荷频率表225的构成例。虚拟组块负荷频率表225保持针对每个虚拟组块的I/O频率(访问频率)的历史记录、及针对每个虚拟组块的“重复数据跨节点读取的频率”的历史记录。具体而言,保持虚拟卷的虚拟组块的虚拟卷编号、起始LBA及地址范围、对该区域的访问频率、与该区域有关的“重复数据跨节点读取的频率”、以及对该区域的I/O的响应时间。
虚拟组块负荷频率表225除了不是虚拟页而保持与虚拟组块相关的信息这一差别以外,与页负荷频率表216等同,因此省略说明。
图6B表示逻辑组块负荷频率表226的构成例。逻辑组块负荷频率表226保持针对每个逻辑组块的I/O频率(访问频率)的历史记录。逻辑组块负荷频率表226除不是与虚拟组块有关的信息而是与逻辑组块有关的信息以外,是与虚拟组块负荷频率表225相同的表,因此省略说明。
图7A~图7C、图8及图9表示包含在重复数据删除管理信息229中的信息。
图7A表示Fingerprint Table(FPT)231的构成例。FPT231是在图13A的重复数据删除处理中使用的表,是用于高效地对重复数据进行检索的索引。在FPT231中存储针对每个虚拟组块而计算出的虚拟组块的数据的哈希值(Fingerprint、FP)。哈希值能够使用例如CRC、SHA1、MD5那样的广泛知晓的哈希函数来计算。
FPT231保持(1)FP、(2)虚拟卷编号、(3)虚拟卷的LBA、(4)地址范围。(2)到(4)是用于在系统内唯一地识别虚拟组块的信息。
FPT231还构成为,被分割为多个部分表,由包含在分布式存储系统中的多个计算机节点101保持各部分表。为了应对故障发生,也可以由与保持部分表的计算机节点101不同的计算机节点101保持部分表的复制。
作为将FPT231分割为多个部分表的方法,例如可以列举如下方法等:(1)在将保持部分表的计算机节点101的数设为N的情况下,包含某个FP值的条目由基于利用FP值%N(%是计算余数的运算符)计算的值而决定的计算机节点101保持,由此来实现FPT231的分割;(2)将FP值的预先设定的范围与某个计算机节点101对应关联,计算机节点101仅保持包含自身所对应关联的FP值的条目,由此来实现FPT231的分割。FPT231也可以按照这些方法以外的一定的规则来分割。
FPT231也可以构成为,包含在分布式存储系统中的一个计算机节点101保持分布式存储系统内的所有虚拟组块的信息。应对故障发生,也可以由其他计算机节点101保持FPT231的复制。
图7B表示FPT更新日志239的构成例。FPT更新日志239记录向FPT231的更新操作。向FPT231的更新操作是对FPT231的条目(行)的登记或删除。
FPT更新日志239保持(1)FP、(2)虚拟卷编号、(3)虚拟卷的LBA、(4)地址范围、(5)操作。(2)到(4)是用于在系统内唯一地识别虚拟组块的信息。(5)的操作栏是指定对FPT231的更新操作的信息,存储“登记”和“删除”中的某一值。
接下来,在进行图7C的说明以前,对重复数据删除类型进行说明。如已叙述那样,重复数据删除大体上分为节点重复数据删除和跨节点重复数据删除。跨节点重复数据删除是跨过同一站点内的计算机节点101的重复数据删除即站点重复数据删除、和跨过不同站点内的计算机节点101的重复数据删除即异地重复数据删除中的某一个。也就是说,重复数据删除类型是(1)节点重复数据删除、(2)站点重复数据删除、(3)异地重复数据删除中的某一个。
图7C表示重复数据删除效果管理表232的构成例。重复数据删除效果管理表232是在分布式存储系统中对持有某个FP的逻辑组块通过节点重复数据删除、站点重复数据删除、异地重复数据删除分别删除了多少重复数据进行管理的表。计算机节点101之一管理本表。其他计算机节点101可以保持本表的复制。
重复数据删除效果管理表232保持(1)节点编号、(2)FP、(3)节点重复数据删除削减数、(4)站点重复数据删除削减数、(5)异地重复数据删除削减数。(3)、(4)、(5)是表示如下的信息:利用(1)的节点编号而通过页映射表215确定出的虚拟页中包含的虚拟组块中的、持有该FP的虚拟组块分别通过节点重复数据删除、站点重复数据删除、异地重复数据删除而被删除了多少重复数据。
图8表示重复数据删除日志结构化映射表233的构成例。图8中,箭头表示指针。重复数据删除日志结构化映射表233包含重复数据删除映射表234、重复数据删除逆映射表235。
重复数据删除映射表234对虚拟卷内的虚拟组块与池卷内的逻辑组块之间的映射进行管理。计算机节点101能够从与虚拟组块对应的虚拟卷的地址(LBA)知晓被映射给该虚拟组块的逻辑组块的保存地址(逻辑地址)。重复数据删除映射表234使虚拟卷中的用户数据的保存地址(LBA)和池卷中的用户数据的保存地址(逻辑地址)建立对应关系。也能够换句话说,重复数据删除映射表234对虚拟地址与逻辑地址之间的映射进行管理。虚拟地址是用于在系统内唯一地识别虚拟组块的信息,逻辑地址是用于在系统内唯一地识别逻辑组块的信息。此外,也存在虚拟组块没有被映射任何逻辑组块的情况。
与虚拟组块有关的虚拟卷的保存地址通过虚拟卷编号、地址(LBA)指定。与逻辑组块相关的池卷的保存地址通过池卷编号、逻辑地址(LBA)、数据长度(LEN)指定。在重复数据删除映射表234中也记录有关于与虚拟组块相关的状态的信息。在该信息中含有表示图13A的重复数据删除处理的执行以后该虚拟组块是否已被更新的信息(“是”或“否”)。该信息的初始值为“是”。在重复数据删除映射表234的“FP”中记录有在执行图13A的重复数据删除处理时计算出的FP的值。重复数据删除映射表234的“FP”的初始值是无效值。
此外,也可以在与逻辑组块相关的池卷的保存地址中含有站点编号。该情况下,在重复数据删除映射表234的更新时,也执行站点编号的设定。在以下的说明中,关于站点编号的设定存在未明示的情况。
在图8的例子中,示出通过虚拟卷编号=0、LBA=0指定的虚拟组块的数据保持在通过池卷编号=0、LBA(逻辑地址)=0x0003、LEN=8指定的逻辑组块的区域。
本例的分布式存储系统将写入到虚拟卷的数据通过日志结构化方式而保存到池卷中。在使用这样的日志结构化方式的情况下,计算机节点101在用新数据来更新虚拟组块的数据的情况下,不利用新数据更新对应的逻辑组块的数据,而是将新数据追加到新逻辑组块中。适当消除了不需要的数据(逻辑组块)。
重复数据删除逆映射表235是上述表234的逆转换表。也就是说,重复数据删除逆映射表235为了从池卷的地址向虚拟卷的地址转换而被参照。重复数据删除逆映射表235包含表示与在池卷1303中保存数据的地址区域250(与逻辑组块对应)分别对应的虚拟卷的地址的表251。此外,有时在重复数据删除逆映射表235中,在虚拟组块间进行了重复数据删除的结果是,多个虚拟组块与一个逻辑组块建立了对应关系。
表251分别包括索引数(参考的个数)、更新时间、参考值(对应的虚拟卷的虚拟卷编号、LBA、大小)。
图8的例子中,保持着索引数为1且利用虚拟卷编号=1、LBA=1、SIZE=8指定的虚拟卷的地址的参考值。
计算机节点101与数据向池卷的写入同步地,更新重复数据删除日志结构化映射表233。
图9表示池卷区域控制表236的构成例。图9中,箭头表示指针。池卷区域控制表236包含有效列表237A、无效列表237B、空闲列表237C、池卷区域量表238。池卷区域控制表236管理计算机节点101内的池卷的区域。列表237A~237C中,各池卷的区域被以池卷编号及池卷内的LBA所示的逻辑组块单位管理。
有效列表237A是有效区域的列表。有效区域是保存最新的用户数据的逻辑组块的区域。换言之,有效区域是被分配给虚拟组块的逻辑组块的区域。图9的例子中,在池卷编号为0的池卷中,LBA0、4、5的块(block)分别保存着有效数据。
无效列表237B是无效区域的列表。无效区域是保存旧的用户数据的逻辑组块的区域。换言之,无效区域是没有被分配给虚拟组块的逻辑组块的区域。图9的例子中,在池卷编号为0的池卷中,LBA1、3、7的块分别保存着无效数据。空闲列表237C是未使用区域的列表。未使用区域是保存有格式数据(仅由比特值0构成的数据)的逻辑组块的区域,通过使无效区域格式化而生成。换言之,未使用区域是能够立即写入数据的逻辑组块的区域。
池卷区域量表238管理计算机节点101内的池卷的区域的目标使用量、实际使用量、有效区域的量(有效量)。计算机节点101与主机I/O同步或非同步地更新池卷区域控制表236。
图10表示分布式存储系统的读处理的流程图。处理器119对接收到的读指令的指定地址(也称为特定指定地址)参照页映射表215判定计算机节点101是否未分配给访问目的地虚拟页(以下也仅称为虚拟页)(S501)。指定地址由例如虚拟卷编号及LBA指定。LBA由开始LBA及块长度表示。
在计算机节点101被分配给虚拟页的情况下(S501:是),处理器119判定是否需要排他(S506)。处理器119参照虚拟卷管理表218,在虚拟卷的所有者节点仅为本节点的情况下判定为不需要排他,在并未如此的情况下,判定为需要排他。
在判定为需要排他的情况下(S506:是),处理器119获取排他后(S507),再次判定计算机节点101是否未分配给虚拟页(S508)。这是因为在S501与S508之间(也就是说,S506或S507的处理过程中)有可能对虚拟页分配了节点。在排他方法的一例中,处理器119使用哈希函数确定出根据读地址而唯一地确定的代表节点,对代表节点委托调停,从而代表节点进行调停。
在计算机节点101已分配给虚拟页的情况下(S508:否),处理器119解除排他(S512),并进入步骤S502。在计算机节点101未对虚拟页分配的情况下(S508:是),处理器119返回零数据(S509),与步骤S506的判定同样地判定是否需要排他(S510)。在需要排他的情况下(S510:是),由于在S507中已经获得排他,因此处理器119释放排他(S511)。
在S502中,处理器119判定是否对虚拟页分配了本系统节点或者是否对虚拟页分配了其他系统节点。具体而言,处理器119参照页映射表215,确定出分配给虚拟页的节点,判定确定出的节点是本系统节点还是其他系统节点。
在步骤S501中计算机节点101已对虚拟页分配完毕(S501:否)、且本系统节点被分配给虚拟页的情况下(S502:是),处理器119参照重复数据删除映射表234,判定是否未对与特定指定地址对应的虚拟组块(称为特定虚拟组块)分配逻辑组块(S503)。步骤S503中,在逻辑组块未分配的情况下(S503:是),处理器119返回零数据(S504)。步骤S503中,在逻辑组块已分配完毕的情况下(S503:否),处理器119确保本系统的缓存区域(S512)。
在此,在对缓存确保进行说明之前对缓存数据的管理信息进行说明。缓存数据的管理信息包含脏队列、干净队列以及空闲队列。脏队列是管理存储器上的脏数据的列表。脏数据是未生成冗余数据的用户数据、已生成冗余数据但未反映给驱动113的用户数据、以及未反映给驱动的冗余数据中的某一个。干净队列是对存储器上的干净数据进行管理的列表。干净数据是已反映给驱动的用户数据、和已反映给驱动的冗余数据中的某一个。空闲队列是对存储器上的空闲区域进行管理的列表。空闲区域是没有使用的缓存区域。
在缓存区域的确保中,处理器119参照缓存信息204,确定出与对象逻辑地址建立了对应关系的缓存区域。在不存在对应的缓存区域的情况下,处理器119从空闲队列确保新的区域。在空闲队列为空的情况下,处理器119从干净队列确保新的区域。在干净队列为空的情况下,处理器119使脏队列内的区域降级而变化为空闲区域。
接下来,处理器119参照重复数据删除映射表234及池卷管理表219,判定与特定虚拟组块对应的逻辑组块(特定逻辑组块)是否存在于本系统节点的池卷内(S513)。具体而言,处理器119首先参照重复数据删除映射表234来确定出保存有与特定虚拟组块对应的逻辑组块的池卷,接着参照池卷管理表219来确定出提供所确定出的池卷的节点,如果所确定出的节点为本系统节点,则判定为S513的判定结果是肯定的,如果并非如此,则判定为S513的判定结果是否定的。
处理器119在S513的判定结果是肯定的情况下(S513:是),从本系统节点的池卷读出特定逻辑组块的数据,将读出的数据保存到在S512中确保的缓存区域,并将保存在缓存区域中的数据返回给主机(S514)。
在S513的判定结果为否定的情况下(S513:否),由于特定逻辑组块的数据位于其他系统节点的池卷内,因此在本系统节点与其他系统节点之间进行了读数据的收发之后,特定逻辑组块的数据被返回给主机(S515)。具体而言进行以下的处理。即,(1)本系统节点的处理器119向其他系统节点发送特定逻辑组块的数据的读出请求,(2)接收到读出请求的其他系统节点的处理器119从其他系统节点的池卷读取特定逻辑组块的数据,将所读取的数据向本系统节点发送,(3)本系统节点的处理器119接收所述发送的数据并将其保存到在S512中确保的缓存区域,将保存在缓存区域中的数据返回给主机。(4)由于发生了重复数据跨节点读取,因此与其对应地更新历史记录信息。具体而言,更新页负荷频率表216的“重复数据跨节点读取的频率”及虚拟组块负荷频率表225的“重复数据跨节点读取的频率”。
在其他系统节点(称为特定其他系统节点)被分配给了虚拟页的情况下(S502:否),处理器119向特定其他系统节点转送读指令(S505)。处理器119在本系统中不缓存读数据。也就是说,若虚拟页的分配目的地为其他节点,则处理器119不将读数据缓存到本系统存储器118中(直接读取,read through),而由其他节点101缓存读数据。特定其他系统节点执行图10的处理,经由本系统节点向主机返回数据。
图11表示同步写处理的流程图。本处理在从主机(例如应用程序)发出了写指令的情况下执行。本处理在本系统的池卷中保存写数据。
收到写指令的节点101的处理器119判定计算机节点101是否未分配给访问目的地虚拟页(以下,仅称为虚拟页)(S601)。具体而言,处理器119参照页映射表215,从写指令的指定地址(虚拟卷编号及LBA)检索对应的计算机节点101的节点编号。处理器119通过判定对应的节点编号是否为无效值来判定虚拟页是否未分配给计算机节点101。
在本实施例的系统中,启动了多个应用,系统内的至少一个节点使各个应用动作。在此,考虑到数据的读请求大多被送出到原本接收到该数据的写指令的节点中。因此,在本申请中,在节点收到写请求的情况下,将该写请求的数据优先地保存到该节点的存储区域。由此,针对读出请求能够从特定节点读出的概率变高,能够快速地响应读请求。
但是,有时在与节点101连接的驱动113的性能相对于网络103的性能低的情况下,使数据分布于多个节点更能提高作为系统的处理能力。考虑到以上情况,也可以根据网络103的性能和与节点101连接的驱动113的性能,使用轮叫调度(round robin)等方法来变更分配目的地的存储区域。另外,上述分配方针不仅基于性能这一指标,在作为驱动113而使用了闪存的情况下也可以考虑使用寿命等指标,来使性价比高效化。
在计算机节点101未分配给虚拟页的情况下(S601:是),处理器119执行将计算机节点101分配给虚拟页的处理。处理器119首先判定页映射表215的更新是否需要排他(S607)。获得排他的理由是为了防止在其他节点101中同时地将计算机节点101分配给虚拟页的情况下对虚拟页分配多个不同的计算机节点101。
处理器119参照虚拟卷管理表218,在所有者节点中含有本节点以外的节点的情况下,判定为需要排他,在所有者节点仅为本节点的情况下,判定为不需要排他。在判定为需要排他的情况下(S607:是),处理器119得到排他(S608)。排他的得到方法与图10中说明的读处理中所示的方法相同。
接下来,处理器119再次判定计算机节点101是否未分配给虚拟页(S609)。这是因为,在步骤S601中判定了计算机节点101是否已对虚拟页分配完毕之后,且在步骤S608中得到排他之前,有可能通过其他节点而得到了排他。
在计算机节点101未分配给虚拟页的情况下(S609:是),处理器119决定分配虚拟页的计算机节点101(S610)。处理器119首先检查在本系统的池卷中是否有空区域。
具体而言,参照池卷区域控制表236的目标使用量和实际使用量,判定实际使用量是否比目标使用量少。在实际使用量比目标使用量少的情况下,处理器119将特定虚拟页分配给本系统节点。
在本系统的池卷中(在本系统)不存在空区域的情况下,处理器119在本地安装其他系统(其他节点)的池卷,并对该区域分配页。
在决定了分配节点后,处理器119对虚拟页分配该节点(S611)。具体而言,处理器119更新页映射表215的对应关系。
接下来,处理器119判定是否需要排他(S612)。该判定与步骤S607相同。在需要排他的情况下(S612:是),处理器119释放已得到的排他(S617)。在不需要排他的情况下(S612:否),处理器119进入到步骤S602。
处理器119参照页映射表215判定是否对与写指令对应的虚拟页分配了本系统节点(步骤602)。
在本系统节点没有分配给虚拟页的情况下(S602:否),处理器119向其他节点101转送写指令(S606)。其他节点101执行按照本流程图的写处理。为了维持数据一致性,处理器119在本系统中不缓存写数据。
在本系统节点被分配给了虚拟页的情况下(S602:是),处理器119更新重复数据删除日志结构化映射表233(S603)。写数据以日志结构化形式保存在池卷(与之对应的缓存区域)中。
具体而言,处理器119从未使用列表237C获取起始的未使用逻辑组块,将所获取的逻辑组块保存到有效列表237A中。然后,将重复数据删除映射表234中的、访问目的地虚拟组块的分配目的地变更为所获取的未使用逻辑组块。在重复数据删除逆映射表235中存储访问目的地虚拟组块与所获取的未使用逻辑组块的对应关系,并且删除访问目的地虚拟组块与原本的分配目的地逻辑组块之间的对应关系。另外,处理器119参照重复数据删除逆映射表235,在与访问目的地虚拟页建立了对应关系的逻辑组块被分配给其他虚拟页的情况下,将该逻辑组块继续保存在有效列表237A中。在与访问目的地虚拟页建立了对应关系的逻辑组块没有被分配给其他虚拟页的情况下,将该逻辑组块从有效列表237A移动到无效列表237B。
在将写数据以日志结构化形式保存到池卷(与之对应的缓存区域)中时,处理器119如图8所示那样将虚拟卷中的地址(LBA等)与池卷中的逻辑地址之间的对应关系记录到重复数据删除映射表234。如上述那样,在通过日志结构化形式而计算机节点101用新的数据更新虚拟组块的数据的情况下,不以新的数据来覆盖对应的逻辑组块的数据,而是将新的数据写入到新的逻辑组块,并将虚拟组块的映射变更为新的逻辑组块。因此,仅变更有写入的虚拟组块的映射即可,不需要变更参照与有写入的虚拟组块相同的逻辑组块的其他虚拟组块的映射。
而且,处理器119在重复数据删除逆映射表235中记录池卷中的逻辑地址与虚拟卷中的地址(LBA等)之间的对应关系。另外,处理器119与重复数据删除日志结构化映射表233的更新对应地,适当更新池卷区域控制表236。
接下来,处理器119在本系统的缓存区域181中实施缓存确保(S604)。该方法与参照图10说明的方法相同。
接着,处理器119对在S604中确保的缓存区域写入写数据(S605)。
以上是同步写处理的流程图的说明。此外,本实施例中的分布式存储系统也能够构成为,使用Erasure Coding(纠删码)等那样的公知技术,在多个计算机节点101间生成冗余码,并将所生成的冗余码保存到计算机节点101中。该情况下,在同步写处理中,需要将(1)写数据的一部分或全部、(2)从写数据生成的冗余码中的一方或双方发送到其他系统节点。由此,即使在计算机节点101中产生了故障,也能够恢复用户数据。
图12表示后端写处理的流程图。本处理在高速缓存181上存在主机脏数据、也就是未生成冗余码的写数据的情况下,与主机I/O非同步地执行。在本处理中,生成与写数据对应的冗余码,然后,将写数据及生成的冗余码写入到驱动(113)。在此,为了简化说明,假设写数据的大小与条带的大小相等。此外,主机脏数据通过脏队列来管理。
当本处理开始后,处理器119选择未生成冗余码的写数据(S801)。将所选择的写数据称为特定写数据。接着,处理器119生成与特定写数据对应的冗余码(S802)。接着,处理器119将特定写数据及所生成的冗余码写入到驱动(113)(S803)。接下来,处理器119判定是否存在未生成冗余码的写数据(S804)。如果判定结果是肯定的(S804:是),则处理器119进入S801,如果判定结果是否定的(S804:否),则处理器119结束本处理。
图13A表示重复数据删除处理的流程图。在本处理中,决定节点重复数据删除、站点重复数据删除、异地重复数据删除这些重复数据删除的对象数据,对对象数据执行各自的重复数据删除。在本处理中,还决定节点重复数据删除解除、站点重复数据删除解除、异地重复数据删除解除这些重复数据删除解除的对象数据,对对象数据执行各自的重复数据删除解除。
本处理与主机I/O非同步地启动。例如,既可以在用户指定的定时启动,也可以在预先设定的定时启动。作为定时,能够使用用户指示了处理开始的定时、每隔一定周期的定时、新的写数据的量超过了预定量的定时等。本处理还通过多个计算机节点101的协作来执行。
图13A中,预先决定的节点编号的计算机节点101的处理器119决定主节点(S9001)。主节点是在多个计算机节点101协作动作的图13A的重复数据删除处理中进行处理的控制的计算机节点101。主节点是分布式存储系统内的计算机节点101的任意一个。分布式存储系统内的主节点以外的计算机节点101是从节点。从节点接受主节点的指示而动作。主节点也可以同时具有作为从节点的作用。
S9002~S9006中,更新FPT231。具体而言,与虚拟卷被更新的区域对应的条目(行)被登记在FPT231中,从FPT231删除与旧的FP对应的条目(行)。
主节点的处理器119对从节点之一指示生成FPT更新日志239(S9002)。
接收到指示的从节点(称为特定节点)的处理器119(称为特定处理器)确定出虚拟卷的更新区域(S9003)。具体而言,进行以下(1)、(2)的处理。(1)特定处理器参照页映射表215,确定出页映射表215的节点编号栏为特定节点的条目。表示与该条目对应的虚拟卷的区域的数据被分配给了特定节点。(2)特定处理器关于确定出的各条目进行以下(2-1)~(2-2)的处理。
(2-1)特定处理器参照与该条目对应的、重复数据删除映射表234的虚拟组块的“状态”,在上一次的图13A的重复数据删除处理的执行以后判定该虚拟组块是否有更新(称为判定A)。(2-2)在判定A的判定结果是肯定的(“是”)情况下,将与该条目对应的虚拟卷的区域确定为更新区域。通过(2-1)及(2-2)的处理,特定处理器确定出一个或多个虚拟卷的更新区域(被更新的虚拟组块)。
接下来,特定处理器基于所确定出的虚拟卷的更新区域的信息,生成FPT更新日志239(S9004)。具体而言,对在S9003中确定出的虚拟卷的更新区域分别进行以下(1)及(2)的处理。将作为处理对象的、更新区域之一称为特定虚拟组块。
(1)特定处理器读出特定虚拟组块的数据,对所读出的数据的FP进行计算,将计算得到的FP与特定虚拟组块的地址(虚拟卷编号、LBA、地址范围)及“操作”一起保存到特定节点内的FPT更新日志239。在此,“操作”的值是“登记”。地址是“用于识别虚拟组块的信息”。(2)特定处理器读出与特定虚拟组块对应的、重复数据删除映射表234的“FP”的值,将读出的FP与特定虚拟组块的地址(虚拟卷编号、LBA、地址范围)及“操作”一起保存到特定节点内的FPT更新日志239。在此,“操作”的值是“删除”。地址是“用于识别虚拟组块的信息”。
在上述(1)中,保存在特定节点的FPT更新日志239中的“FP”和“用于识别虚拟组块的信息”的组是应登记到分布式存储系统的FPT231中的条目。在上述(2)中,保存在特定节点的FPT更新日志239中的“FP”和“用于识别虚拟组块的信息”的组是应从分布式存储系统的FPT231删除的条目。
主节点的处理器119判定是否对所有的从节点执行了FPT更新日志239的生成指示(S9005)。如果判定结果是肯定的(S9005:是),则进入S9006,如果判定结果是否定的(S9005:否),则进入S9002,执行对下一个从节点的指示。
此外,S9003~S9004的处理在多个不同的计算机节点101中执行,因此也可以并行执行。该情况下,主节点需要等待直到在所有的从节点中S9003~S9004的处理完成为止。
接下来,主节点的处理器119对从节点之一(特定从节点)指示发送FPT更新日志(S9006)。
接下来,计算机节点101进行FPT更新日志的收发(S9007)。具体而言,进行以下(1)~(3)的处理。
(1)从主节点接收到指示的特定从节点对保存在特定从节点中的FPT更新日志239进行分割。具体方法与图7A的FPT231的构成例的说明中的“将FPT231分割为多个部分表的方法”相同,因此省略说明。但是,在FPT更新日志239的分割时,需要代替FPT231的FP,而使用FPT更新日志239的FP。将分割得到的FPT更新日志(称为部分FPT更新日志)的保存目的地节点(与图7A的说明中的、被分割的FPT231的配置节点对应)称为担当节点。决定保存目的地节点的决定方法(图7A的说明中的“FP值%N”等)需要在“FPT231的分割”和“FPT更新日志239的分割”中使用相同的方法。部分FPT更新日志的数据构造与FPT更新日志239相同,因此以下有时将部分FPT更新日志称为部分FPT更新日志239。
(2)特定从节点将在(1)中生成的各部分FPT更新日志239发送到对应的担当节点。
(3)各担当节点接收在(2)中发送的部分FPT更新日志239。
此外,(2)、(3)的处理按照主节点的指示由各计算机节点101的处理器119执行。
接下来,接收到部分FPT更新日志239的担当节点(特定担当节点)基于接收到的部分FPT更新日志239(称为特定部分FPT更新日志239)来更新FPT231(S9008)。具体而言,进行以下(1)~(3)的处理。
(1)特定担当节点对包含在特定部分FPT更新日志239中的条目中的、“操作”(图7B的“操作”)的值为“删除”的各行(称为特定FPT更新日志条目)执行以下的处理。即,将特定担当节点内的FPT231的行中的、FPT231的FP的值与特定FPT更新日志条目的FP的值相等的行删除。
(2)特定担当节点对包含在特定部分FPT更新日志239中的条目中的、“操作”(图7B的“操作”)的值为“登记”的各行(称为特定FPT更新日志条目)执行以下的处理。即,对特定担当节点内的FPT231追加基于特定FPT更新日志条目的内容而生成的新行。在此,新行的“FP”、“虚拟卷编号”、“LBA”、“地址范围”分别与特定FPT更新日志条目的“FP”、“虚拟卷编号”、“LBA”、“地址范围”相等。
(3)担当节点删除特定部分FPT更新日志239。
接下来,主节点判定是否对所有的从节点执行了FPT更新日志239的发送指示(S9009)。如果判定结果是肯定的(S9009:是)则进入S9010,如果判定结果是否定的(S9009:否)则进入S9006,执行对下一从节点的指示。
此外,S9007~S9008的处理通过多个不同的计算机节点101来执行,因此也可以并行地执行。该情况下,主节点需要等待直到在所有的从节点中S9007~S9008的处理完成为止。
接下来,主节点对各计算机节点101执行后述的图13B的节点重复数据删除处理(S9010)。接着,主节点执行后述的图13C的跨节点重复数据删除处理(S9011)。接下来,主节点执行后述的图13E的跨节点重复数据删除解除处理(S9012)。
由于先执行基于重复数据删除的执行而IO处理时的计算机节点101间通信没有增加的节点重复数据删除,然后执行跨节点重复数据删除,因此能够抑制因重复数据删除导致的性能劣化。
图13B表示节点重复数据删除处理的流程图。本处理通过主节点而被启动。本处理对各计算机节点101内的重复数据执行节点重复数据删除。
首先,主节点的处理器119选择从节点之一(S9101)。接下来,主节点的处理器119对在前步骤中选择的从节点指示节点重复数据删除的执行(S9102)。
接下来,从主节点接收到节点重复数据删除执行的指示的从节点(特定从节点)的处理器119(称为特定处理器)基于各计算机节点101内的FPT231的信息生成未图示的节点重复数据删除候选列表240(S9103)。具体而言,执行以下(1)~(5)的处理。
(1)FPT231被分散地保持在多个计算机节点101中,因此特定处理器对其他各计算机节点101(称为特定节点)指示与特定从节点相关的节点重复数据删除候选列表240的一部分的生成。
(2)特定节点的处理器119生成与特定从节点相关联的节点重复数据删除的列表。具体而言,特定节点的处理器119提取出特定节点内的FPT231的行中的、与该行的地址(虚拟卷编号、LBA、地址范围)对应的页映射表215的节点编号与特定从节点的节点编号一致的行。由所提取出的行构成的表是与特定从节点相关联的节点重复数据删除候选列表240的一部分。
(3)特定节点的处理器119将在(2)中生成的节点重复数据删除候选列表240的一部分发送到特定从节点。
(4)特定处理器通过与上述(2)相同的处理生成与特定从节点相关的节点重复数据删除候选列表240的一部分。
(5)特定处理器将在上述(1)~(4)的步骤中生成的节点重复数据删除候选列表240的一部分连结而生成节点重复数据删除候选列表240。此外,FPT231和节点重复数据删除候选列表240的数据构造相同。
接下来,特定处理器选择一对节点重复数据删除候选(S9104)。具体而言,选择一对节点重复数据删除候选列表240的行中的、行的“FP”的值相等的行。
接着,特定处理器准备重复候选数据(S9105)。具体而言,特定处理器对在S9104中选择的对中包含的各行,从与各行对应的虚拟卷的区域将重复候选数据的对读出到高速缓存181。
接着,特定处理器执行重复候选数据的二进制比较,判定重复候选数据的对的内容是否完全一致(S9106)。具体而言,将在S9105中读出到高速缓存181的重复候选数据的对逐字节(Byte-by-Byte)地进行比较,判定重复候选数据的对的内容是否完全一致。
接下来,在S9107中,如果S9106的判定结果是肯定的(S9107:是),则特定处理器进入S9108,如果并非如此(S9107:否),则特定处理器进入S9110。
接下来,特定处理器将在S9104中选择的对所对应的重复数据(与节点重复数据删除候选列表240的两行对应)的某一个选择为删除对象数据(S9108)。
接下来,特定处理器更新在前步骤中选择为删除对象数据的数据所对应的地址映射(S9109)。具体而言,执行以下(1)~(4)的处理。
(1)基于与在前步骤(S9108)中选择为删除对象数据的数据对应的节点重复数据删除候选列表240的行中包含的虚拟卷的地址(虚拟卷编号、LBA、地址范围),确定出应更新的重复数据删除映射表234的映射。
(2)以与在前步骤(S9108)中没有选择为删除对象数据的数据对应的节点重复数据删除候选列表240的行中包含的地址(虚拟卷编号、LBA、地址范围)作为关键字,检索重复数据删除映射表234,并确定出映射目的地的池卷的地址(池卷编号、LBA、地址范围)。
(3)将在上述(1)中确定出的映射更新为映射目的地为在上述(2)中确定出的池卷的地址。另外,为了追加从上述(2)中确定出的池卷的地址向上述(1)的虚拟卷的地址映射那样的逆映射,更新重复数据删除逆映射表235。
(4)与上述(3)中的表的更新相应地适当更新池卷区域量表238的值。
接下来,特定处理器判定与所有节点重复数据删除候选的对有关的处理是否已完成,如果判定结果是肯定的(S9110:是),则进入S9111,如果并非如此(S9110:否),则进入S9104,执行与接下来的节点重复数据删除候选的对有关的处理。
接下来,主节点判定是否与所有从节点有关的处理已完成,如果判定结果是肯定的(S9111:是),则结束节点重复数据删除处理,如果并非如此(S9111:否),则进入S9101,选择接下来的从节点。
以后,对图13A的S9011~S9012的步骤中的跨节点重复数据删除处理、跨节点重复数据删除解除处理进行说明,但在这些处理中,使用前述的“数据单位”。作为“数据单位”能够使用虚拟组块或虚拟页,在以下的说明中,对作为“数据单位”使用虚拟组块的情况进行说明。
图13C和图13D表示跨节点重复数据删除处理的流程图。本处理通过主节点及从节点执行。本处理对保存在分布式存储系统内的不同计算机节点101中的重复数据执行跨节点重复数据删除(站点重复数据删除、异地重复数据删除)。在跨节点重复数据删除的执行的判断中使用的信息包含变量Y1、Y2、Y3中的至少一个。在此,变量Y1、Y2、Y3分别是“通过跨节点重复数据删除而产生的伴随重复数据跨节点读取的网络负荷的预测值”、“分布式存储系统的平均响应时间的预测值”、“分布式存储系统的平均处理能力的预测值”。
此外,在图13C和图13D中,存在主节点参照保存在主节点中的各种表的情况、和参照或更新保存在主节点以外的节点中的各种表的情况。在前一种情况下,主节点不需要与其他计算机节点101通信,而在后一种情况下,主节点需要向其他计算机节点101委托表的参照或更新。但是,以下为了简化记述,将前一种情况和后一种情况均仅记载为“主节点的处理器119参照(或更新)XX表”。
首先,主节点的处理器119将变量Y1的值设定为0(S9201)。
接下来,主节点的处理器119基于IO频率对数据单位按升序进行排序(S9202)。具体而言,生成虚拟组块负荷频率表225的复制,基于IO频率对所复制的表按升序进行排序。
接下来,主节点的处理器119按照IO频率的升序的顺序选择一个数据单位(S9203)。具体而言,从在S9202中排序得到的表按照IO频率的升序的顺序选择一行。将所选择的数据单位称为特定数据单位。
接下来,主节点的处理器119选择一个包含在特定数据单位中的虚拟组块(S9204)。目前将“数据单位”设为“虚拟组块”,因此应选择的虚拟组块是与在S9203中选择的行对应的虚拟组块本身。将在S9204中选择的虚拟组块称为特定第一虚拟组块。
接下来,主节点的处理器119判定是否存在具有与特定第一虚拟组块的FP值相同的FP值的虚拟组块(S9205)。具体而言,执行以下(1)~(3)的处理。
(1)主节点的处理器119通过参照与特定第一虚拟组块对应的重复数据删除映射表234的FP来确定出特定第一虚拟组块的数据的FP值。将确定出的FP值称为特定FP值。
(2)主节点的处理器119参照特定FP值的担当节点(称为特定担当节点)内的FPT231,判定是否存在持有特定FP值的条目(但是,是与对应于特定第一虚拟组块的条目不同的条目)。在此,与特定担当节点对应的节点编号使用基于“FP值%N”这样的计算式而决定的方法等、与图7A的说明中所用的方法相同的方法。
(3)如果上述(2)的判定结果是肯定的,则判定为S9205的判定结果是肯定的(S9205:是),并进入S9206,如果上述(2)的判定结果是否定的,则判定为S9205的判定结果是否定的(S9205:否),并进入S9216。
接下来,主节点的处理器119选择一个保存有如下数据的虚拟组块(称为特定第二虚拟组块):该数据具有与第一虚拟组块的数据的FP值相同的FP值(S9206)。具体而言,执行以下(1)~(2)的处理。(1)主节点的处理器119参照特定FP值的担当节点(称为特定担当节点)内的FPT231,并确定出具有特定FP值的条目(但是,是与对应于特定第一虚拟组块的条目不同的条目)。(2)从所确定出的条目中选择一个条目。与所选择的条目对应的虚拟组块是特定第二虚拟组块。
接下来,主节点的处理器119判定是否能够在特定第一虚拟组块与特定第二虚拟组块之间执行跨节点重复数据删除(S9207)。具体而言,执行以下(1)~(3)的处理。
(1)主节点的处理器119参照重复数据删除映射表234,确定出与特定第一虚拟组块对应的池卷,接下来参照池卷管理表219,确定出与所确定出的池卷对应的计算机节点101。
(2)主节点的处理器119对特定第二虚拟组块执行与上述(1)相同的处理,确定出与特定第二虚拟组块所对应的池卷对应的计算机节点101。
(3)如果在上述(1)中确定出的计算机节点101和在上述(2)中确定出的计算机节点101相同,则判定为S9207的判定结果是肯定的,进入S9208,如果并非如此,则判定为S9207的判定结果是否定的,并进入S9216。
接下来,在说明S9208的步骤之前,对在S9208的步骤中执行的、重复数据删除效果管理表232的更新处理所需的概念进行说明。重复数据删除效果管理表232如前述那样在分布式存储系统中是对具有某个FP的逻辑组块通过节点重复数据删除、站点重复数据删除、异地重复数据删除而分别被删除了多少重复数据进行管理的表。为了进行本表的条目的更新,使用重复数据删除逆映射表235的逆映射的信息。重复数据删除逆映射表235的逆映射对一个逻辑组块(与图8的数据250对应)对应关联一个或多个虚拟组块(但这是特定逻辑组块是有效的逻辑组块的情况)。
重复数据删除逆映射表235中的、关于有效逻辑组块的逆映射分为以下两种的某一种。即,(1)主逆映射、(2)副逆映射这两种。(1)的主逆映射是对有效的逻辑组块必然对应关联有一个的逆映射,是对基于重复数据删除(节点重复数据删除、站点重复数据删除、异地重复数据删除)的数据量削减没有帮助的逆映射。(2)的副逆映射是对有效的逻辑组块对应关联有0个以上的逆映射,是有助于基于重复数据删除(同上)的数据量削减的逆映射。主逆映射是在通过数据的写入而对虚拟组块分配逻辑组块时生成的逆映射,副逆映射是在通过重复数据删除而对一个逻辑组块对应关联多个虚拟组块时生成的逆映射。但是,不是必须将以写入为契机生成的逆映射选择为主逆映射。在有效的逻辑组块对应关联有多个逆映射的情况下,能够将这些多个逆映射的任意一个逆映射选择为主逆映射。
上述(2)的副逆映射进一步被再分类为3种中的某一种。即,(2-1)节点副逆映射、(2-2)站点副逆映射、(2-3)异地副逆映射这3种。(2-1)、(2-2)、(2-3)分别是与节点重复数据删除、站点重复数据删除、异地重复数据删除相关的副逆映射。
在此,将与某个逻辑组块(称为特定逻辑组块)对应的计算机节点101(能够通过基于与特定逻辑组块对应的池卷编号参照池卷管理表219,来确定出与特定逻辑组块对应的计算机节点101)称为第一节点,将与某个虚拟组块(称为特定虚拟组块)对应的计算机节点101(能够通过基于与特定虚拟组块对应的虚拟卷编号参照页映射表215,来确定出与特定虚拟组块对应的计算机节点101)称为第二节点。假设某个副逆映射(称为特定副逆映射)将特定逻辑组块和特定虚拟组块对应关联起来。在第一节点和第二节点为相同节点的情况下,特定副逆映射是节点副逆映射。另外,在第一节点和第二节点是不同的节点、且第一节点和第二节点位于同一站点内的情况下,特定副逆映射是站点副逆映射。另外,在第一节点和第二节点是不同的节点、且第一节点和第二节点不位于同一站点内的情况下,特定副逆映射是异地副逆映射。
能够通过以下方法设定重复数据删除效果管理表232的行(称为特定行)。即,在将与特定行相关的计算机节点101称为特定节点、将与特定行相关的FP称为特定行FP的情况下,重复数据删除效果管理表232的“节点重复数据删除削减数”、“站点重复数据删除削减数”、“异地重复数据删除削减数”分别与特定节点中的、具有与特定行FP相同值的FP的逻辑组块所对应关联的、节点副逆映射的合计数、站点副逆映射的合计数、异地副逆映射的合计数相等。
返回到S9208的步骤的说明。步骤S9208中,主节点的处理器119判定跨节点重复数据删除执行判定式。本步骤对应于在图1的“跨节点重复数据删除的执行的判定方法(2)”中说明的判定方法。具体而言,执行以下(1)~(2)的处理。
(1)主节点的处理器119对与特定FP值对应的重复数据删除效果管理表232的行(特定行)进行更新。具体而言,主节点的处理器119将与分布式存储系统内的特定FP对应的逻辑组块对应关联的节点副逆映射的总数、站点副逆映射的总数、异地副逆映射的总数分别设定为特定行的“节点重复数据删除削减数”、“站点重复数据删除削减数”、“异地重复数据删除削减数”。此外,主节点的处理器119需要适当地对其他计算机节点101委托表的参照及更新。
(2)在此,将r设为上述(1)的特定行的“节点重复数据删除削减数”。对以下的跨节点重复数据删除执行判定式进行评估,如果判定结果是肯定的,则判定为S9208的判定结果是肯定的,如果并非如此,则判定为S9208的判定结果是否定的。
跨节点重复数据删除执行判定式:r<“跨节点重复数据删除执行判定式的阈值”
此外,“跨节点重复数据删除执行判定式的阈值”是预先决定的值,其信息保存在存储器118中(未图示)。
接下来,在S9209的步骤中,关于主节点的处理器119,如果S9208的判定结果是肯定的,则进入S9210,如果S9208的判定结果是否定的,则进入S9216。在S9210~S9215的步骤中,有时执行跨节点重复数据删除(站点重复数据删除或异地重复数据删除)。
接下来,主节点的处理器119选择一个计算机节点101来作为从节点(S9210)。将所选择的计算机节点101称为特定从节点。只要特定从节点是保存有与特定第一虚拟组块或特定第二虚拟组块对应的逻辑组块的计算机节点101,就能够削减S9211中的数据转送量。
接下来,主节点的处理器119对保存有与特定第一虚拟组块对应的逻辑组块(称为特定第一逻辑组块)的计算机节点101指示将特定第一逻辑组块内的数据向特定从节点发送,另外对保存有与特定第二虚拟组块对应的逻辑组块(称为特定第二逻辑组块)的计算机节点101指示将特定第二逻辑组块内的数据向特定从节点发送,收到指示的计算机节点101按照指示发送数据(S9211)。
接下来,特定从节点执行二进制比较,将结果向主节点发送(S9212)。具体而言,特定从节点逐字节地对特定第一逻辑组块内的数据和特定第二逻辑组块内的数据进行比较,判定这些数据的内容是否完全一致。特定从节点将判定结果(“一致”或“不一致”)向主节点发送。
接下来,关于主节点的处理器119,如果S9212的判定结果为“一致”,则进入S9214,如果S9212的判定结果为“不一致”,则进入S9214(S9213)。
接下来,主节点的处理器119将与IO频率比较小的数据单位相关的数据决定为删除对象数据(S9214)。具体而言,主节点的处理器基于虚拟组块负荷频率表225来确定出特定第一虚拟组块和特定第二虚拟组块的IO频率,将与IO频率比较小的虚拟组块对应的逻辑组块决定为删除对象数据。
此外,S9214中,也可以基于页负荷频率表216来确定出与特定第一虚拟组块对应的虚拟页和与特定第二虚拟组块对应的虚拟页的IO频率,将与IO频率比较小的虚拟页对应的逻辑组块决定为删除对象数据。
接下来,主节点的处理器119对与在S9214中决定为删除对象数据的数据对应的地址映射进行更新(S9215)。具体方法与S9109相同。
另外,S9215中,主节点的处理器119对关于与删除对象数据对应的虚拟组块的、虚拟组块负荷频率表225的“重复数据跨节点读取的频率”设定无效值。
接下来,主节点的处理器119判定是否没有未处理的第二虚拟组块(S9216),如果判定结果是肯定的(S9216:是),则进入S9217,如果判定结果是否定的(S9216:否),则进入S9206。
接下来,主节点的处理器119判定是否没有未处理的第一虚拟组块(S9217),如果判定结果是肯定的(S9217:是),则进入S9218,如果判定结果是否定的(S9217:否),则进入S9204。
接下来,主节点的处理器119更新Y1、Y2、Y3的值(S9218)。具体而言,执行以下(1)~(3)的处理。
(1)本处理中,更新“在执行了跨节点重复数据删除的情况下产生的伴随重复数据跨节点读取的网络负荷Y1”。主节点的处理器119基于以下的计算式更新Y1。
计算式:
“Y1”←“Y1”+“δ”
本计算式中,“δ”是“与在S9203中选择的数据单位相关的重复数据跨节点读取的IO频率的预测值”。作为“δ”的值,能够使用与在S9203中选择的数据单位有关的、虚拟组块负荷频率表225的“重复数据跨节点读取的频率”。但是,在虚拟组块负荷频率表225的“重复数据跨节点读取的频率”为无效值的情况下,作为“δ”的值,能够使用由虚拟组块负荷频率表225管理的、与读有关的I/O频率(访问频率)的值。在此,I/O频率是与在S9203中选择的数据单位有关的I/O频率。该情况下,“δ”的值是重复数据跨节点读取的频率的近似值。
(2)主节点的处理器119通过以下的计算式来计算Y2,并将计算出的值设定给Y2。
计算式:
“Y2”=(Σi=1至N Wi×Ri)+(Σi=N+1至M Wi×Ra)(N<M的情况)
“Y2”=(Σi=1至N Wi×Ri)(N=M的情况)
Wi=Li÷(Σi=1至MLi)
Ri=Ra(后述情形(a)的情况)
Ri=Rb(后述情形(b)的情况)
Ri=Rc(后述情形(c)的情况)
Ra=“向计算机节点101内的数据访问时的标准响应时间”
Rb=“跨过站点内的不同计算机节点101间地访问数据时的标准响应时间”
Rc=“跨过不同站点内的计算机节点101间地访问数据时的标准响应时间”
在该计算式中,Σ是表示计算总和的数学符号。“i”表示在S9202中排序得到的表(称为特定表)的行编号。“N”表示特定数据单位在特定表中相当于第几行的编号。“M”是表示特定表的总行数的数字。Ri是特定数据单位的响应时间(平均响应时间)。Wi是对于特定数据单位的响应时间的加权(此外,假设在Wi的计算式的分母为0的情况下,Wi的值为0)。Li是特定数据单位的IO频率。Ri及Li的值通过虚拟组块负荷频率表225而确定出。
接下来,对“情形(a)~(c)”进行说明。在此,将与特定数据单位(在此为虚拟组块)对应的计算机节点101(通过页映射表215确定出的计算机节点101)称为第一节点,将与特定表的行编号“i”对应的数据单位(在此为虚拟组块)对应的逻辑组块所对应的计算机节点101(通过池卷管理表219而确定出的计算机节点101)称为第二节点。情形(a)是第一节点和第二节点相同的情形。情形(b)是第一节点和第二节点虽然不同,但第一节点和第二节点位于同一站点内的情形。情形(c)是第一节点和第二节点位于不同站点的情形。
Ra既可以是预先设定的值,也可以使用各IO处理(向计算机节点101内的数据访问的IO处理)中的响应时间的平均值。Rb既可以是预先设定的值,也可以是各IO处理(跨过站点内的不同计算机节点101间地访问数据的IO处理)中的响应时间的平均值。Rc既可以是预先设定的值,也可以使用各IO处理(跨过不同站点内的计算机节点101间地访问数据的IO处理)中的响应时间的平均值。
(3)主节点的处理器119通过以下的计算式计算Y3,并将计算出的值设定给Y3。此外,以下的计算式内的符号与上述(2)的计算式相同。另外,Y3的值有时与实际的“分布式存储系统的平均处理能力”的值不同。此外,也可以基于以下的计算式以外的计算式计算出Y3的值。在Y3的计算中可以使用各虚拟组块的IO负荷的值、下述S的值、上述Ri的值、上述Ra的值、上述Rb的值、上述Rc的值中的任一个或组合。
计算式:
“Y3”=(Σi=1至N Wi×S÷Ri)+(Σi=N+1至M Wi×S÷Ra)(N<M的情况)
“Y3”=(Σi=1至N Wi×S÷Ri)(N=M的情况)
S=“数据单位的大小”
S9219中,主节点的处理器119判定是否Y1>T1或Y2>T2或Y3<T3或者是否没有未处理的数据单位。在此,T1、T2、T3是预先设定的阈值。这些阈值的值也可以经由未图示计算机节点101的管理终端而由用户设定。
此外,主节点的处理器119也可以判定不等式“Y1>T1”、“Y2>T2”、“Y3<T3”中的任一个或者任意两个的组合(必须需要判定“是否没有未处理的数据单位”)。
基于S9219的判定限定执行跨节点重复数据删除的数据单位,由此能够将对IO负荷(“由重复数据跨节点读取产生的网络负荷”、“平均响应时间”或者“平均处理能力”)的影响抑制在一定范围内。
S9220中,主节点的处理器119将S9203中最后选择的数据单位存储为数据单位阈值(与图1的P对应)。
以上是跨节点重复数据删除处理的流程图的说明。能够通过跨节点重复数据删除而仅对IO负荷低的数据单位适用跨节点重复数据删除。
图13E表示跨节点重复数据删除解除处理的流程图。本处理对于被判定为不应进行跨节点重复数据删除的虚拟组块解除跨节点重复数据删除。
S9301中,主节点的处理器119按照升序的顺序选择一个数据单位阈值以后的数据单位。具体而言,主节点的处理器119按照IO频率的升序的顺序选择在S9202中排序得到的表的行中的、与在S9220中存储的数据单位阈值对应的行以后的一行。将所选择的数据单位称为特定数据单位。
S9302中,主节点的处理器119选择一个包含在特定数据单位中的虚拟组块。由于目前将“数据单位”设为“虚拟组块”,因此应选择的虚拟组块是与在S9301中选择的行对应的虚拟组块本身。将在S9302中选择的虚拟组块称为特定第三虚拟组块。
在S9303中,主节点的处理器119判定特定第三虚拟组块是否已跨节点重复数据删除完毕。
具体而言,首先,主节点的处理器119将与特定第三虚拟组块对应的计算机节点101(通过页映射表215确定出的、与特定第三虚拟组块对应的计算机节点101)确定为节点A。
接着,主节点的处理器119将保存有与特定虚拟组块对应的逻辑组块(称为特定逻辑组块)的计算机节点101确定为节点B。具体而言,主节点的处理器119首先通过重复数据删除映射表234而确定出与特定虚拟组块对应的池卷,接着通过池卷管理表219确定出与所述确定出的池卷对应的计算机节点101,将确定出的计算机节点101确定为节点B。
接下来,主节点的处理器119判定是否为节点A和节点B不同的计算机节点101且与特定逻辑组块对应关联的重复数据删除逆映射的个数是否为2以上(与特定逻辑组块对应的重复数据删除逆映射表235的索引数是否为2以上)。如果判定结果是肯定的(S9303:是),则进入S9304,如果并非如此(S9303:否),则进入S9306。
在S9304中,主节点的处理器119读出特定第三虚拟组块的数据。
在S9305中,主节点的处理器119将在S9304读出的数据写入到特定第三虚拟组块。写入的具体处理与图11的处理相同,因此省略说明。
将通过S9304及S9305的步骤对特定第三虚拟组块的跨节点重复数据删除解除。此外,S9304及S9305的步骤也可以代替主节点,而在与特定第三虚拟组块对应的计算机节点101(通过页映射表215而确定出的计算机节点101)中执行。
在S9306中,主节点的处理器119判定是否没有未处理的第三虚拟组块。如果没有未处理的第三虚拟组块(S9306:是),则进入S9307,如果并非如此(S9306:否),则进入S9302。
在S9307中,主节点的处理器119判定是否没有未处理的数据单位。如果不存在未处理的数据单位(S9307:是),则结束跨节点重复数据删除解除处理,如果并非如此(S9307:否),则进入S9301。
以上是跨节点重复数据删除解除处理的流程图的说明。能够通过跨节点重复解除排除来对IO负荷高的数据单位适用跨节点重复数据删除解除。由此,能够提高IO频率高的数据单位的IO性能。
接下来,对本发明的变形实施方式进行说明。在本变形实施方式中,在图13A~图13E中作为数据单位代替虚拟组块而使用虚拟页。
本变形实施方式中的不同点之一是在图13C的S9202中代替虚拟组块负荷频率表225而使用页负荷频率表216。能够在以虚拟组块单位进行重复数据删除的同时,以大小比虚拟组块大的虚拟页单位管理负荷频率,由此不需要虚拟组块负荷频率表225那样的虚拟组块单位的管理信息,能够削减管理信息。
本变形实施方式中的另一不同点在于,作为在S9218中为了更新“Y1”所使用的“δ”的值,使用与在S9203中选择的数据单位有关的、页负荷频率表216的“重复数据跨节点读取的频率”。此外,作为该“δ”的值,可以使用与页负荷频率表216的读取有关的IO频率(访问频率)。本变形实施方式中的“δ”的值是“δ”的实际值的近似值,因此基于本变形实施方式中的“δ”的值而计算出的Y1的值成为Y1的实际值的近似值。使用页负荷频率表216的优点如前所述。
本变形实施方式中的又一不同点在于,S9218中的Ri及Li的值通过页负荷频率表216来确定。使用页负荷频率表216的优点如前所述。
通过本公开的重复数据删除技术,能够在抑制性能劣化的同时执行跨节点重复数据删除,从而能够实现较大的数据量削减效果和高性能双方。另外,能够避免产生基于网络的瓶颈。具体而言,由于在节点重复数据删除处理的执行后执行跨节点重复数据删除处理,因此能够按照对性能的影响从小到大的顺序进行重复数据删除,能够降低基于重复数据删除处理产生的性能劣化。按照IO频率的顺序对数据单位进行排序,按照升序的顺序以对性能的影响收敛在预定的范围内的方式进行跨节点重复数据删除,由此能够优先地对IO负荷的影响小的数据单位执行跨节点重复数据删除,能够实现较大的数据量削减效果和高性能双方。另外,由于在跨节点重复数据删除的判定对象的数据单位的映射目的地的逆映射数为预定的阈值以下的情况下执行跨节点重复数据删除,因此能够同时实现较大的数据量削减效果和高性能。
此外,本发明不限于上述的实施例,包含各种变形例。例如,上述实施例是为了便于理解地说明本发明而进行的详细说明,不必限定于具有所说明的所有构成。另外,能够将某一实施例的构成的一部分置换为另一实施例的构成,还能够对某一实施例的构成加入另一实施例的构成。另外,能够对各实施例的构成的一部分进行其它构成的追加、删除、置换。
另外,关于上述各构成、功能、处理部等,它们的一部分或全部能够通过例如集成电路设计等而由硬件实现。另外,上述的各构成、功能等也可以通过处理器解释并执行实现各个功能的程序而由软件实现。实现各功能的程序、表、文件等的信息能够放置于存储器、硬盘、SSD等记录装置、或者IC卡、SD卡等记录介质中。
另外,控制线和信息线示出了认为是说明上所需的部分,不限于必须示出产品上所有的控制线和信息线。也可以认为实际上几乎所有的构成均是彼此连接的。
附图标记说明
101···计算机节点 102···计算机域 106···端口 111···处理器封装 113···磁盘驱动 118···存储器 119···处理器

Claims (13)

1.一种分布式存储系统,具有彼此连接的多个节点,该多个节点分别具有存储介质,并对将数据向由所述存储介质构成的逻辑存储区域的保存进行控制,所述分布式存储系统的特征在于,
所述多个节点对上位装置提供跨过所述多个节点分别控制的所述逻辑存储区域的虚拟存储区域,并对将所述虚拟存储区域分割得到的多个虚拟部分区域和将所述逻辑存储区域分割得到的多个部分逻辑存储区域的分配进行管理,所述多个节点使写入到所述虚拟存储区域的数据分散地保存到所述逻辑存储区域中,
所述多个节点中的第一节点判定:与向所述多个虚拟部分区域中的由所述第一节点所管理的第一虚拟部分区域写入的第一数据相同的数据是否存在于所述多个节点中的其他节点所管理的所述虚拟部分区域中,
在所述其他节点中存在与第一数据相同的数据的情况下,执行跨节点重复数据删除,在该跨节点重复数据删除中,使所述第一虚拟部分区域和被写入了所述相同的数据的其他节点的所述虚拟部分区域中的某一方的逻辑部分区域的分配变更为向另一方的逻辑部分区域分配,
计算所述第一虚拟部分区域的所述跨节点重复数据删除执行后的所述第一节点的IO负荷的预测值,在所述预测值满足预定的条件的情况下,执行将所述虚拟存储区域分割得到的多个虚拟部分区域中的、由所述第一节点所管理的第二虚拟部分区域的所述跨节点重复数据删除。
2.根据权利要求1所述的分布式存储系统,其特征在于,
所述IO负荷指的是跨节点读取的网络负荷、平均响应时间、平均处理能力中的至少一个,
所述满足预定的条件指的是,所述跨节点读取的网络负荷低于第一阈值、所述平均响应时间低于第二阈值、所述平均处理能力高于第三阈值中的任一个。
3.根据权利要求1所述的分布式存储系统,其特征在于,
所述第一节点从所述第一节点保存的数据中的、IO频率低的虚拟部分区域的数据开始依次执行所述跨节点重复数据删除。
4.根据权利要求1所述的分布式存储系统,其特征在于,
所述第一节点判定所述多个虚拟部分区域中的、由所述第一节点管理的虚拟部分区域间是否存在相同的数据,在存在相同的数据的情况下,执行将所述虚拟部分区域向所述逻辑部分区域的分配集中于一个逻辑部分区域这样的节点重复数据删除,之后,
所述第一节点执行所述跨节点重复数据删除。
5.根据权利要求1所述的分布式存储系统,其特征在于,
所述第一节点在所述第一节点保存的第一数据的节点重复数据删除了的数量与所述其他节点保存的第二数据的节点重复数据删除了的数量的合计数小于第四阈值的情况下,执行所述第一数据和所述第二数据的所述跨节点重复数据删除。
6.根据权利要求1所述的分布式存储系统,其特征在于,
所述第一节点在从所述上位装置接收到对所述第一虚拟部分区域的读出请求时所述第一虚拟部分区域被分配了所述其他节点的所述逻辑部分区域的情况下,从所述其他节点获取与所述读出请求有关的数据,并向所述上位装置发送该获取到的数据。
7.根据权利要求6所述的分布式存储系统,其特征在于,
所述第一节点在接收到对所述虚拟存储区域的第三虚拟部分区域的第一写入请求时,分配所述多个逻辑部分区域中的第三逻辑部分区域,并将与所述第一写入请求有关的数据向所述第三逻辑部分区域写入,
所述第一节点在接收到对第四虚拟部分区域的第二写入请求时,将分配从第一部分逻辑存储区域变更为所述多个逻辑部分区域中的第四逻辑部分区域,将与所述第二写入请求有关的数据写入到所述第四逻辑部分区域。
8.一种分布式存储系统的控制方法,所述分布式存储系统具有彼此连接的多个节点,该多个节点分别具有存储介质,并对将数据向由所述存储介质构成的逻辑存储区域的保存进行控制,所述分布式存储系统的控制方法的特征在于,
对上位装置提供跨过所述多个节点分别控制的所述逻辑存储区域的虚拟存储区域,并对将所述虚拟存储区域分割得到的多个虚拟部分区域和将所述逻辑存储区域分割得到的多个部分逻辑存储区域的分配进行管理,所述多个节点使写入到所述虚拟存储区域的数据分散地保存到所述逻辑存储区域中,
判定与向所述多个虚拟部分区域中的由第一节点所管理的第一虚拟部分区域写入的第一数据相同的数据是否存在于所述多个节点中的其他节点所管理的所述虚拟部分区域中,
在所述其他节点中存在与第一数据相同的数据的情况下,执行跨节点重复数据删除,在该跨节点重复数据删除中,使所述第一虚拟部分区域和被写入了所述相同的数据的其他节点的所述虚拟部分区域中的某一方的逻辑部分区域的分配变更为向另一方的逻辑部分区域分配,
计算所述第一虚拟部分区域的所述跨节点重复数据删除执行后的所述第一节点的IO负荷的预测值,在所述预测值满足预定的条件的情况下,执行将所述虚拟存储区域分割得到的多个虚拟部分区域中的、由所述第一节点所管理的第二虚拟部分区域的所述跨节点重复数据删除。
9.根据权利要求8所述的分布式存储系统的控制方法,其特征在于,
所述IO负荷指的是跨节点读取的网络负荷、平均响应时间、平均处理能力中的至少一个,
所述满足预定的条件指的是,所述跨节点读取的网络负荷低于第一阈值、所述平均响应时间低于第二阈值、所述平均处理能力高于第三阈值中的任一个。
10.根据权利要求8所述的分布式存储系统的控制方法,其特征在于,
从所述第一节点保存的数据中的、IO频率低的虚拟部分区域的数据开始依次执行所述跨节点重复数据删除。
11.根据权利要求8所述的分布式存储系统的控制方法,其特征在于,
判定所述多个虚拟部分区域中的、由所述第一节点管理的虚拟部分区域间是否存在相同的数据,在存在相同的数据的情况下,执行将所述虚拟部分区域向所述逻辑部分区域的分配集中于一个逻辑部分区域这样的节点重复数据删除,之后,
执行所述跨节点重复数据删除。
12.根据权利要求8述的分布式存储系统的控制方法,其特征在于,
在所述第一节点保存的第一数据的节点重复数据删除了的数量与所述其他节点保存的第二数据的节点重复数据删除了的数量的合计数小于第四阈值的情况下,执行所述第一数据和所述第二数据的所述跨节点重复数据删除。
13.一种分布式存储系统,构成所述分布式存储系统的第一节点与一个或多个节点连接,所述第一节点和所述一个或多个节点分别分别具有存储介质,所述第一节点对将数据向由所述存储介质构成的逻辑存储区域的保存进行控制,所述分布式存储系统的特征在于,
所述第一节点对上位装置提供跨过所述一个或多个节点控制的所述逻辑存储区域和所述第一节点控制的所述逻辑存储区域的虚拟存储区域,并对将所述虚拟存储区域分割得到的多个虚拟部分区域和将所述逻辑存储区域分割得到的多个部分逻辑存储区域的分配进行管理,所述第一节点使写入到所述虚拟存储区域的数据在所述第一节点和所述一个或多个节点分散地保存到所述逻辑存储区域中,
判定与向所述多个虚拟部分区域中的由所述第一节点管理的第一虚拟部分区域写入的第一数据相同的数据是否存在于所述多个节点中的其他节点管理的所述虚拟部分区域,
在所述其他节点中存在与第一数据相同的数据的情况下,执行跨节点重复数据删除,在该跨节点重复数据删除中,使所述第一虚拟部分区域和被写入了所述相同的数据的其他节点的所述虚拟部分区域中的某一方的逻辑部分区域的分配变更为向另一方的逻辑部分区域分配,
计算所述第一虚拟部分区域的所述跨节点重复数据删除执行后的所述第一节点的IO负荷的预测值,在所述预测值满足预定的条件的情况下,执行将所述虚拟存储区域分割得到的多个虚拟部分区域中的、由所述第一节点所管理的第二虚拟部分区域的所述跨节点重复数据删除。
CN201580074636.3A 2015-03-16 2015-03-16 分布式存储系统及分布式存储系统的控制方法 Active CN107209714B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/057615 WO2016147281A1 (ja) 2015-03-16 2015-03-16 分散型ストレージシステム及び分散型ストレージシステムの制御方法

Publications (2)

Publication Number Publication Date
CN107209714A CN107209714A (zh) 2017-09-26
CN107209714B true CN107209714B (zh) 2020-12-18

Family

ID=56918474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580074636.3A Active CN107209714B (zh) 2015-03-16 2015-03-16 分布式存储系统及分布式存储系统的控制方法

Country Status (3)

Country Link
US (1) US10346075B2 (zh)
CN (1) CN107209714B (zh)
WO (1) WO2016147281A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107294799B (zh) * 2016-03-31 2020-09-01 阿里巴巴集团控股有限公司 一种分布式系统中节点的处理方法和装置
US10977215B2 (en) * 2017-08-08 2021-04-13 International Business Machines Corporation System and method for storage optimization in a de-duplication system
US10705882B2 (en) * 2017-12-21 2020-07-07 Cisco Technology, Inc. System and method for resource placement across clouds for data intensive workloads
CN108268219B (zh) * 2018-02-01 2021-02-09 杭州宏杉科技股份有限公司 一种处理io请求的方法及装置
US10642689B2 (en) * 2018-07-09 2020-05-05 Cisco Technology, Inc. System and method for inline erasure coding for a distributed log structured storage system
CN109614403B (zh) * 2018-10-24 2020-03-06 北京三快在线科技有限公司 集群服务节点的数据一致性校验方法及装置
JP2020086477A (ja) * 2018-11-15 2020-06-04 株式会社日立製作所 大規模ストレージシステム及び大規模ストレージシステムにおけるデータ配置方法
KR20200072854A (ko) * 2018-12-13 2020-06-23 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작방법
TWI695322B (zh) * 2019-01-18 2020-06-01 旺宏電子股份有限公司 記憶體及記憶體操作方法
US10884642B2 (en) 2019-03-27 2021-01-05 Silicon Motion, Inc. Method and apparatus for performing data-accessing management in a storage server
CN110414361A (zh) * 2019-07-02 2019-11-05 青岛海洋科学与技术国家实验室发展中心 分布式机器视觉数据采集分析方法和系统
CN110427347A (zh) * 2019-07-08 2019-11-08 新华三技术有限公司成都分公司 重复数据删除的方法、装置、存储节点及存储介质
WO2021016728A1 (zh) * 2019-07-26 2021-02-04 华为技术有限公司 存储系统中数据处理方法、装置及计算机存储可读存储介质
CN110515916B (zh) * 2019-07-26 2022-12-23 济南浪潮数据技术有限公司 一种主从分布式文件处理方法、主节点、从节点及系统
CN110704232B (zh) * 2019-10-10 2023-03-14 广东工业大学 一种分布式系统中失效节点的修复方法、装置和设备
US11636041B2 (en) * 2020-10-12 2023-04-25 Seagate Technology Llc Object storage data storage systems and methods
CN114265551B (zh) * 2021-12-02 2023-10-20 阿里巴巴(中国)有限公司 存储集群中的数据处理方法、存储集群、存储节点及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678158A (zh) * 2013-12-26 2014-03-26 中国科学院信息工程研究所 一种数据布局优化方法及系统
JP2015503174A (ja) * 2012-12-12 2015-01-29 華為技術有限公司Huawei Technologies Co.,Ltd. クラスタシステムデータ処理方法及び装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8775373B1 (en) * 2008-05-21 2014-07-08 Translattice, Inc. Deleting content in a distributed computing environment
JP5381336B2 (ja) 2009-05-28 2014-01-08 富士通株式会社 管理プログラム、管理装置および管理方法
US8572137B2 (en) 2009-09-08 2013-10-29 International Business Machines Corporation Data de-duplication in a distributed network
US9015412B2 (en) 2011-09-13 2015-04-21 Hitachi Ltd. Management system and management method of storage system that performs control based on required performance assigned to virtual volume
US8898120B1 (en) * 2011-10-09 2014-11-25 Symantec Corporation Systems and methods for distributed data deduplication
US9678801B2 (en) * 2012-08-09 2017-06-13 International Business Machines Corporation Service management modes of operation in distributed node service management
US20150213049A1 (en) * 2014-01-30 2015-07-30 Netapp, Inc. Asynchronous backend global deduplication
US9678976B2 (en) * 2014-07-21 2017-06-13 Red Hat, Inc. Distributed deduplication using locality sensitive hashing
US10037337B1 (en) * 2015-09-14 2018-07-31 Cohesity, Inc. Global deduplication
US10372674B2 (en) * 2015-10-16 2019-08-06 International Business Machines Corporation File management in a storage system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015503174A (ja) * 2012-12-12 2015-01-29 華為技術有限公司Huawei Technologies Co.,Ltd. クラスタシステムデータ処理方法及び装置
CN103678158A (zh) * 2013-12-26 2014-03-26 中国科学院信息工程研究所 一种数据布局优化方法及系统

Also Published As

Publication number Publication date
US20180074746A1 (en) 2018-03-15
CN107209714A (zh) 2017-09-26
WO2016147281A1 (ja) 2016-09-22
US10346075B2 (en) 2019-07-09

Similar Documents

Publication Publication Date Title
CN107209714B (zh) 分布式存储系统及分布式存储系统的控制方法
US11886294B2 (en) Distributed storage system
US11461015B2 (en) Available storage space in a system with varying data redundancy schemes
US10133511B2 (en) Optimized segment cleaning technique
CN108604165B (zh) 存储装置
US10503424B2 (en) Storage system
JP2018532166A (ja) 記憶システムにおける重複排除のための方法、記憶システムおよびコントローラ
US10394484B2 (en) Storage system

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