CN106104502B - 用于存储***事务的***、方法和介质 - Google Patents

用于存储***事务的***、方法和介质 Download PDF

Info

Publication number
CN106104502B
CN106104502B CN201480077273.4A CN201480077273A CN106104502B CN 106104502 B CN106104502 B CN 106104502B CN 201480077273 A CN201480077273 A CN 201480077273A CN 106104502 B CN106104502 B CN 106104502B
Authority
CN
China
Prior art keywords
node
affairs
ticket
storage
new
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
CN201480077273.4A
Other languages
English (en)
Other versions
CN106104502A (zh
Inventor
M·多尔蒂
S·纳扎里
J·斯图尔特
R·达尔泽尔
P·海因斯
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN106104502A publication Critical patent/CN106104502A/zh
Application granted granted Critical
Publication of CN106104502B publication Critical patent/CN106104502B/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • 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/1474Saving, restoring, recovering or retrying in transactions
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/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
    • 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)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种包括存储卷的***,所述存储卷包含多个区域。该***还包括接收来自一个或多个客户端计算机的与存储卷有关的事务并且执行事务的多个节点。每个节点被指定为多个区域中的一个区域的所有者。多个节点中的每一个包括用于分配票证的票证分配器,票证确保正在活动地被执行的事务对该事务中所标识的存储对象具有排他访问权。

Description

用于存储***事务的***、方法和介质
背景技术
许多大规模存储***被配置为高度可用的、分布式存储***。这样的存储***包含了高级别的冗余度来改善所存储的数据的可用性和可访问性。例如,群集存储***可以包括控制多个存储设备的控制器节点的网络。大量的节点可以被配置为对同一存储设备具有访问权,并且节点本身也可以彼此通信耦合以便进行节点间通信。该配置实现了节点之间的负载平衡以及在节点失效的情况下的失效备援能力。
附图说明
在下面的详细说明中以及参考附图来描述一些示范性的实施例,其中:
图1是具有分布式票证分配的存储***的示例框图;
图2是具有分布式票证分配的存储***的示例框图;
图3是处理具有分布式票证分配的存储***中的事务的方法的示例的过程流程图;以及
图4是示出了存储有被配置为操作具有分布式票证分配的存储***的节点的代码的有形的、非暂时性的计算机可读介质的示例框图。
具体实施方式
本公开提供了用于对存储***中的输入/输出(I/O)事务进行定序和跟踪的技术。在具有冗余存储控制器(本文还称为节点)的存储***中,两个或更多个节点可以对同一存储空间具有访问权。I/O冲突是一种一个或多个节点试图同时访问同一存储对象的现象。一种预防I/O冲突的方式是提供防止其他节点同时访问同一存储对象的集中式管理器节点。该集中式管理器节点能够充当集中式票证分配器,其能够将票证发布给存储***中的其他节点。每个发布的票证确保了被发布了票证的节点将对由事务所访问的存储对象具有排他访问权。这样的集中式票证分配器的一个缺陷在于,请求票证的过程会导致高级别的节点间通行,其中集中式管理器节点会变成瓶颈。本文所描述的技术提供了一种分布式票证分配功能,其中每个节点包括其自己的票证分配器并且拥有存储卷的指定区域。每个区域的所有者节点控制住确保I/O冲突不会发生。为了确保如果节点失效事务不会遗漏,每个节点能够向每个票证配置指定的备用节点。分布式票证***的示例将下文中结合图1和图2进行更详细说明。
图1是具有分布式票证分配的存储***的示例框图。将意识到,图1所示的存储***100仅是根据实施例的存储***的一个示例。在实际的实现方式中,存储***100可以包括各种附加存储设备和网络,其可以任何适合的方式互连,这取决于特定实现方式的设计考虑。例如,大的存储***经常具有比该图示中所示的更多的客户端计算机和存储设备。
存储***100将数据存储资源提供给任意数量的客户端计算机102,其可以是通用计算机、工作站、移动计算设备等。客户端计算机102能够通过网络104与存储***100耦合,该网络104可以是局域网(LAN)、广域网(WAN)、存储域网(SAN)或其它适合类型的网络。存储***100包括存储控制器,在本文称为节点106。存储***100还包括磁盘阵列108,其通过节点106来控制。节点106可以统称为计算机群集。为了简化的原因,仅示出了三个节点。然而,将意识到,计算机群集可以包括任意适合数量的节点,包括2个、4个、6个、10个或更多个。
客户端计算机102能够通过将包括写请求和读请求的输入/输出(I/O)请求发送到节点106来访问磁盘阵列108的存储空间。节点106处理I/O请求,使得用户数据被写入磁盘阵列108中的适合的存储位置或者从其中读。如本文所使用的,术语“用户数据”是指一个人在商业过程中、执行任务功能或用于个人用途时可能使用的数据,诸如商业数据和报告、网页、用户文件、图像文件、视频文件、音频文件、软件应用或任何其它用户可能希望保存以便长期存储的相似类型的数据。节点106中的每一个能够与磁盘阵列108中的每一个通信地耦合。每个节点106还能够通过节点间通信网络110彼此通信耦合。
磁盘阵列108可以包括任何适合类型的存储设备,本文称为驱动器112。例如,驱动器112可以是固态驱动器,诸如闪速驱动器、硬盘驱动器和磁带驱动器,以及其他。此外,存储***100可以包括多于一种类型的存储组件。例如,一个磁盘阵列108可以是硬盘驱动器的阵列,而另一磁盘阵列108可以是闪速驱动器的阵列。在一些示例中,一个或多个磁盘阵列可以具有不同类型存储的混合。存储网络***100还可以包括除了图1所示的之外的额外的存储设备。
客户端计算机102进行的访问存储空间的请求在本文称为事务。事务的类型的示例包括写操作、读操作、存储卷元数据操作以及预留请求,以及其他操作。在一些示例中,客户端计算机102是远程客户端,并且事务针对数据的远程复制。每个客户端计算机102可以与多个节点106耦合。在一些示例中,节点106中的一个被指定为用于客户端计算机102的主节点,该节点是接收客户端计算机102所产生的全部事务的节点。通过主节点接收到的事务可以传递给群集中的不同节点以便执行,如下文参考图2更全面说明的。
随着每个事务被处理,事务被定序并且保存到事务日志114中以确保事务不与其他事务冲突,并且在正常的或不利的操作条件下不会丢失。事务日志条目在本文称为票证,并且管理票证的组件被描述为票证分配器116。如图1所示,每个节点有其自身的票证分配器116和事务日志114。从票证分配器发布票证是确保在事务正在执行的同时对所请求区域的对象具有排他访问权。与对于同一对象的活动事务冲突的任何事务将被推迟直至活动事务已经完成。在活动事务完成时,任何被推迟的事务将再次与活动事务进行比较以判定现在是否能够执行任何推迟的事务。
在群集内的一个或多个节点106失效的情况下,计算机群集接收到的每个事务也被存储在高度可用的日志中。负责记录特定事务的节点106的票证分配器116将事务的参数存储在能够由群集的备用节点恢复的位置。如果节点遭遇失效,则存储在该位置的事务数据能够被恢复,并且事务重放以用于服务继续。每个节点106可以包括其自身单独的群集存储器(未示出),其缓冲传递来的信息,包括事务信息、以及日志信息,以及其他信息。群集存储器能够实现为任何适合的高速缓存存储器,例如,同步动态随机存取存储器(SDRAM)。
每个节点将负责存储***100内的存储空间的特定区域。对于每个事务,负责受事务影响的区域的具体节点106的票证分配器116将发布用于该事务的票证并且记录该事务。每个节点还负责防止在其控制中的区域的I/O冲突。通过该方法,票证分配和事务记录分布于***的全部节点之间,而不是集中在***授权的单个点处。由于每个节点对其自身的票证分配器116具有直接的访问权,所以分布式的票证分配器模型减少了节点间通信,而且还减少了操作期间的锁争用,这显著地改善了性能。分布式的票证分配器模型还通过将来自单个点的资源池划分到群集内的多个点来减少对资源的争用。
图2是具有分布式票证分配的存储***的示例框图。更具体地,图2示出了图1的***,其中节点106与逻辑存储卷202耦合。逻辑存储卷202可以从磁盘阵列108中存储驱动器112或所包含的任何适合的存储驱动器112的组合的可用存储空间来提供。卷进一步划分成区域204,图2中显示为区域1、区域2和区域3。每个节点106控制特定的区域204,并且在本文中称为该区域的所有者。为了本说明书的目的,节点A被配置为区域1的所有者,节点B被配置为区域2的所有者,而节点C被配置为区域3的所有者。每个节点106负责防止其所拥有的每个区域204的I/O冲突。因此,每个节点106负责发布票证以及记录与其所拥有的区域204有关的事务。在一些示例中,每个节点106还负责执行那些影响其所拥有的区域204的事务。
虽然图2中没有示出,但是每个节点与多个客户端计算机(诸如,图1的客户端计算机102)耦合。每个客户端102与被指定为客户端主节点的节点106相关联。从客户端计算机102发送到群集的事务将被发送到客户端的主节点。在一些情况下,客户端的主节点106可以不是受该事务影响的区域204的所有者。如果主节点106不是受该事务影响的区域204的所有者,则主节点将事务转送到确实拥有该受影响区域204的节点106。当受事务影响的区域204的所有者接收到事务时,所有者节点106控制用于该事务的票证的发布并且执行该事务。在上文阐述的所有权关系示例后,如果节点C接收到属于区域2的事务,则该事务将转送到节点B(区域2的所有者)以便处理。
对其正在请求票证的事务在本文称为未决事务。执行事务是指在存储卷上处理事务,例如,将数据写入该存储卷或者从该存储卷读数据。被活动地执行的事务将在本文中称为活动事务。在图2中,用于每个节点106的事务日志114被显示为包含多个事务日志条目,本文称为票证206,每个都代表了活动事务。例如,节点A具有标签为A1至A4的四个票证206。在图2中,字母代表了发布票证206的节点106的标识符,并且数字代表了事务的序列号。将理解的是,为了本说明书的目的简化了票证标签。
为了发布票证206,所有者节点106检查事务日志114中的其副本以判定是否存在涉及到受未决事务影响的对象的活动事务。如果存在涉及到受未决事务影响的对象的活动事务,则不发布票证。未决事务可由所有者节点进行高速缓存,等待票证的发布。当受影响的对象不再涉及到活动事务时,所有者节点的票证分配器116能够发布该票证206。通过这种方式,所有者节点防止其所拥有的区域的I/O冲突。
如果不存在涉及到受未决事务影响的对象的活动事务,则所有者节点发布用于事务的票证206并且将该票证存储在其自身的事务日志114中作为事务日志条目。在发布票证之后,所有者节点执行该事务。例如,执行该事务可以包括将从客户端102接收到的数据写入存储设备或者从存储设备读数据以及将请求的数据发送给客户端102,这取决于事务类型。当所有者节点完成执行事务时,所有者节点将确认发送给主机并且从事务日志114中擦除票证。
本文称为票证的每个事务日志条目可以包括与执行该事务有关的全部信息,诸如受事务影响的存储地址,以及事务是读还是写。如果事务是读操作,则票证可以包括数据在读之后要被发送到的地方的标识。票证还包括序列号和发布节点唯一的并且表明哪个节点106发布该票证的标识符。序列号是针对每个票证进行递增的数字并且能够表明执行事务的次序。节点106发布的全部的票证206存储到其自身的事务日志114中。另外,每个票证206还可以发送到备用节点以便在节点失效的情况下使用,如下文进一步所述。
在一些情况下,节点106可以接收跨两个区域204的事务,该两个区域204由两个不同的所有者节点106来控制。如果事务跨两个区域204,则事务可以被划分成两个事务并且被处理为两个不同的事务,每个区域204的所有者节点106对于属于其所控制的区域204的事务发布票证206。例如,如果节点B接收跨区域1(由节点A所有)和区域3(由节点C所有)的事务,则节点B将产生两个事务,使得每个事务仅属于一个区域。节点B随后将影响区域1的事务转送到节点A,并且将影响区域3的事务转送到节点C。
能够在节点失效的情况下使用事务日志,以恢复由失效的节点106处理过的事务。对于每个事务,所有者节点将票证发送到一个备用节点。备用节点将票证保存到另一日志,称为备份日志208。备用节点可以在针对每个事务的基础上进行选择。换言之,每个事务能够进行单独地评估以判定哪个节点106用作事务的备用节点。
在一些示例中,备用节点是基于事务的类型以及事务涉及到的对象来选择的。例如,每个事务将涉及到其存储空间由特定区域204提供的特定对象。作为示例,对象可以是特定的存储驱动器或者存储空间的某其他块。每个对象还具有指定的备用节点,如果用于与对象关联的区域的原所有者节点失效,则该指定的备用节点将变成该对象的新的所有者节点。用于事务的备用节点能够被指定为在节点失效的情形下将变成关联对象的所有者的节点。通过遵从该对象的相同的失效备援关系以及有关的事务,分布式票证分配器能够在节点失败事件之后高效地恢复这些事务。
在节点106失效情形下,对由失效节点拥有的区域204的控制将依照预先建立的失效备援程序分布给其他节点106。每个节点还将搜索其自身的备份日志以判定是否存在与该失效节点有关的任何活动事务。新的所有者节点随后将回放与该备份日志中所找到的失效节点有关的任何活动事务。因为新的所有者节点是事务和与该事务有关的区域两者的所有者,所以新的所有者节点能够执行事务,而不必将事务转移给不同的节点。
在图2所示的示例中,节点A具有4个活动事务,这些事务在事务日志114中被表示为票证A1,A2,A3和A4。为了本示例的目的,每个事务将被视为写事务。然而,将意识到,该事务可以是任何适合的影响存储卷108的事务。全部四个票证影响区域1,该区域由节点A所有。另外,用于每个事务的票证也已经发送到指定的备用节点。与票证A1,A2和A4有关的事务是到由节点A当前拥有的地址空间的写入,但是被指定为如果节点A失效则由节点B拥有。因此,票证A1,A2和A4已经发送到节点B。如果节点A失效,则节点B将承担与票证A1,A2和A4有关的一个或多个存储对象的所有权关系,并且通过将数据写入票证中标识的地址来执行事务。如果存在写排序约束,则票证的序列号确保该写入按正确的次序来执行。
图3是在具有分布式票证分配的存储***中处理事务的方法的示例的过程流程图。该方法300能够通过诸如图1所示的节点106的一个或多个存储控制器来执行
在框302处,在计算机群集的节点中的一个节点处接收到来自客户端计算机中的一个的新事务。该事务可以是读事务或写事务,以及其他事务。该事务目标为从存储***可用的存储空间提供的特定存储卷。
在框304处,新事务被转移到群集的多个节点中的所有者节点。所有者节点是控制受事务影响的存储卷的区域的节点。在一些情况下,事务可以由所有者节点直接接收,在该情况下,将节点转移到所有者节点意味着将事务保存在最初接收到事务的所有者节点处。框306至318均在所有者节点处执行。
在框306处,所有者节点针对正在由所有者节点执行的活动事务,检查其事务日志。这样做是为了判定在新的事务与活动事务之间是否有冲突,诸如I/O冲突。如果在框308处,在新事务与活动事务之间有冲突,则过程流前进到框310。
在框310处,事务的执行被推迟,意味着不为该事务发布票证,并且不执行该事务。所推迟的事务会被阻挡,或者在一些示例中,被存储到缓冲器以便稍后执行。在活动事务完成后,过程流返回到框306,并且执行另一冲突事务的检查。框306,308和310能够被重复直至全部的冲突事务已经结束执行并且不再活动。如果在框308处其判定出不存在冲突的活动事务,则过程流可以继续到框312。
在框312处,所有者节点的票证分配器发布用于新事务的票证。票证确保了对受事务影响的存储对象的排他访问权。票证被存储到所有者节点的事务日志。
在框314处,所有者节点标识用于事务的备用节点。在一些示例中,通过判定在节点失效的情形下受事务影响的存储对象将如何进行处理来识别备用节点。例如,如果当前节点失效,则无论何种节点都将变成存储对象的新所有者,并且能够被指定为备用节点。
在框316处,针对该事务发布的票证被送到备用节点。在接收到票证时,备用节点将票证存储到存储器中,但是关于票证不采取任何措施,除非从其接收到票证的节点失效。
在框318处,根据事务的类型以及事务中指定的存储位置,在存储卷上执行事务。例如,如果事务是写,则包含在事务中的数据被写到该事务中指定的存储器地址。
在框320处,票证被释放,并且过程流结束。为释放票证,票证从事务日志中擦除,并且也从备用节点去除。每当接收到新事务时,都可以执行上述的方法。
图4是示出了存储有代码的有形的、非暂时性的计算机可读介质的示例框图,所述代码被配置为操作具有分布式票证分配的存储***的节点。计算机可读介质是通过附图标记400来指代的。计算机可读介质400可以包括RAM、硬盘驱动器、硬盘驱动器阵列、光驱动器、光驱动器阵列、非易失性存储器、闪速驱动器、数字多功能盘(DVD)或者压缩盘(CD),以及其他。计算机可读介质400可以由处理器402通过计算机总线404来访问。此外,计算机可读介质400可以包括被配置为执行本文所描述的方法的代码。例如,计算机可读介质400可以包括由存储控制器执行的固件,存储控制器诸如图1和图2中的节点106。
本文所述的各种软件组件可以存储到计算机可读介质400上。在诸如图1和图2中所示的群集计算***中,每个组件将运行于每个节点之上。为了本说明书的目的,组件在其上运行的节点将被描述为相对于该组件的主节点(home node)。区域406可以包括事务路由器,在接收到来自客户端计算机的事务时,该事务路由器判定主节点是受该事务影响的区域的所有者。如果主节点不是所有者,则识别出用于该事务的所有者节点,并且事务被转送到所有者节点。否则,如果主节点是所有者,则该事务由主节点处理。区域408可以包括票证分配器,该票证分配器将票证发布给事务并且通过检查活动事务的日志中新接收到的事务来确保不发生I/O冲突。区域410可以包括请求用于事务的票证并且执行已经接收到票证的活动事务的事务处理器。事务处理器还能够指定用于每个事务的备用节点并且将对应的票证发送给到备用节点。区域412可以包括失效备援引擎,其能够检测群集中的另一节点的失效。在接收到节点失效时,失效备援引擎能够检查从失效节点发送到它的任何票证的其存储器。通过失效节点发送给它的任何票证将由失效备援引擎来执行。
虽然图示为毗邻的框,但是软件组件能够以任意次序或配置来存储。例如,如果有形的、非暂时性的计算机可读介质是硬盘驱动器,则软件组件可以存储在非毗邻的或者甚至是重叠的扇区中。
虽然本公开的技术可易于进行各种修改和替代的形式,但是上述示范性的示例仅为了示例的方式而显示出。应当理解,该技术不旨在限于本文公开的特定示例。事实上,本技术包括落入随附权利要求的真正的精神和范围内的全部的替代、修改和等同方案。

Claims (15)

1.一种用于存储***事务的***,包括:
多个节点中的第一节点,所述第一节点接收与存储卷相关的事务,其中,所述存储卷包括多个区域,并且其中,所述多个节点中的每个节点被指定为所述多个区域中的相应区域的所有者,用于控制影响所述相应区域的事务的票证的发布;以及
其中,所述第一节点包括控制器,用于执行指令以针对影响由所述第一节点拥有的所述相应区域的所接收的事务分配票证,每个票证用于确保在所接收的事务被执行时对发布了所述票证的所接收的事务中标识的存储对象的排他访问权。
2.如权利要求1所述的***,其中,仅作为所述区域中的一个区域的所有者的所述节点能够执行影响所述区域中的一个区域的事务。
3.如权利要求1所述的***,其中,所述第一节点的所述控制器还用于:针对由所述第一节点分配的每个票证,将所述票证存储到所述第一节点的事务日志,其中,所述事务日志用于当新事务被接收到时,检查正在活动地被执行的事务。
4.如权利要求1所述的***,其中,所述第一节点的所述控制器还用于:针对由所述第一节点分配的每个票证,将所述票证发送到所述多个节点中的已经被指定为所述事务的备用节点的另一节点。
5.如权利要求4所述的***,其中,针对给定事务的所述备用节点是所述多个节点中的如下的节点:其被指定为如果分配所述票证的所述第一节点失效,则承担在所述给定事务中标识的给定存储对象的所有权关系。
6.一种用于存储***事务的方法,包括:
在多个节点中的第一节点处接收新事务,其中,所述多个节点中的每个节点被指定为存储卷的多个区域中的相应区域的所有者,用于控制影响所述相应区域的事务的票证的发布,所述第一节点包括控制器;以及
当所述新事务影响由所述第一节点拥有的所述相应区域时,利用所述第一节点的所述控制器:
针对由所述第一节点正在执行的活动事务,检查所述第一节点的事务日志;以及
响应于判定所述新事务不与所述活动事务中的任何活动事务冲突,发布针对所述新事务的票证,其中,所述票证用于确保在所述新事务被执行时对受所述新事务影响的存储对象的排他访问权。
7.如权利要求6所述的方法,还包括将所述票证存储到所述第一节点的事务日志。
8.如权利要求6所述的方法,还包括将所述票证发送到所述多个节点中的备用节点。
9.如权利要求8所述的方法,其中,所述备用节点是被指定为如果所述第一节点失效则变成所述存储对象的新所有者节点的节点。
10.如权利要求8所述的方法,还包括,利用所述第一节点:
接收来自所述多个节点中的第二节点的另一票证;并且
将所述另一票证存储到备份日志。
11.如权利要求10所述的方法,包括,利用所述第一节点:
检测所述第二节点的失效;
承担由所述第二节点拥有的相应区域的所述存储对象中的一个存储对象的所有权关系;以及
执行由所述备份日志中的票证代表的活动事务。
12.一种包括指令的有形的、非暂时性的计算机可读介质,所述指令可执行以使处理器用于:
在存储***的多个节点中的第一节点处接收新事务,所述存储***包括存储卷,所述存储卷包括多个区域,并且其中,所述多个节点中的每个节点被指定为所述多个区域中的相应区域的所有者,用于控制影响所述相应区域的事务的票证的发布;
响应于受所述新事务影响的给定区域是由所述多个节点中的第二节点拥有的,将所述事务发送到所述第二节点以由所述第二节点执行;以及
响应于受所述新事务影响的所述给定区域是由所述第一节点拥有的:
针对由所述第一节点正在执行的活动事务,检查所述第一节点的事务日志;
响应于判定所述新事务没有与所述活动事务中的任何活动事务冲突:
发布针对所述新事务的票证,所述票证用于确保在所述新事务被执行时对受所述新事务影响的、在所述给定区域中的存储对象的排他访问权;以及
执行所述新事务。
13.如权利要求12所述的计算机可读介质,所述指令可执行以使所述处理器将所述票证存储到所述第一节点的事务日志,并且将所述票证发送到所述多个节点中的备用节点。
14.如权利要求13所述的计算机可读介质,其中,所述备用节点是所述多个节点中的、被指定为如果所述第一节点失效则变成所述存储对象的新所有者节点的节点。
15.如权利要求12所述的计算机可读介质,所述指令可执行以使所述处理器接收来自所述第二节点的另一票证并且将所述另一票证存储到所述第一节点的备份日志。
CN201480077273.4A 2014-03-20 2014-03-20 用于存储***事务的***、方法和介质 Active CN106104502B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/031328 WO2015142339A1 (en) 2014-03-20 2014-03-20 Storage system transactions

Publications (2)

Publication Number Publication Date
CN106104502A CN106104502A (zh) 2016-11-09
CN106104502B true CN106104502B (zh) 2019-03-22

Family

ID=54145102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480077273.4A Active CN106104502B (zh) 2014-03-20 2014-03-20 用于存储***事务的***、方法和介质

Country Status (3)

Country Link
US (1) US10140194B2 (zh)
CN (1) CN106104502B (zh)
WO (1) WO2015142339A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US20170097771A1 (en) * 2015-10-01 2017-04-06 Netapp, Inc. Transaction log layout for efficient reclamation and recovery
US11423053B2 (en) * 2016-01-30 2022-08-23 Micro Focus Llc Log event cluster analytics management
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10581968B2 (en) * 2017-04-01 2020-03-03 Intel Corporation Multi-node storage operation
CN111949673B (zh) * 2020-08-04 2024-02-20 贵州易鲸捷信息技术有限公司 基于Hbase存储的分布式悲观锁及其实现方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070022264A1 (en) * 2005-07-14 2007-01-25 Yottayotta, Inc. Maintaining write order fidelity on a multi-writer system
CN101354682A (zh) * 2008-09-12 2009-01-28 中国科学院计算技术研究所 一种用于解决多处理器访问目录冲突的装置和方法
CN101563674A (zh) * 2006-12-21 2009-10-21 国际商业机器公司 对来自多处理器***上的多线程程序的存储器访问进行管理的方法和***
CN102937917A (zh) * 2011-08-15 2013-02-20 株式会社东芝 信息处理装置、资源提供装置和信息处理***

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001117823A (ja) * 1999-10-15 2001-04-27 Fuji Xerox Co Ltd アクセス資格認証機能付きデータ記憶装置
JP2002278839A (ja) * 2001-03-15 2002-09-27 Sony Corp データアクセス管理システム、メモリ搭載デバイス、およびデータアクセス管理方法、並びにプログラム記憶媒体
JP2002278838A (ja) * 2001-03-15 2002-09-27 Sony Corp メモリアクセス制御システム、デバイス管理装置、パーティション管理装置、メモリ搭載デバイス、およびメモリアクセス制御方法、並びにプログラム記憶媒体
CN1320483C (zh) 2001-09-21 2007-06-06 泛伺服公司 用于在多节点环境中实施日志处理的***和方法
US7277952B2 (en) 2001-09-28 2007-10-02 Microsoft Corporation Distributed system resource protection via arbitration and ownership
US6996672B2 (en) * 2002-03-26 2006-02-07 Hewlett-Packard Development, L.P. System and method for active-active data replication
WO2004088947A1 (en) * 2003-04-04 2004-10-14 Telefonaktiebolaget Lm Ericsson (Publ) Method for provision of access
JP4223058B2 (ja) * 2004-11-29 2009-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 中継装置、中継方法、及びプログラム
JP4552739B2 (ja) * 2005-04-18 2010-09-29 ソニー株式会社 会議システム及び端末装置
US7895501B2 (en) * 2007-02-06 2011-02-22 Vision Solutions, Inc. Method for auditing data integrity in a high availability database
EP2141863B1 (en) 2007-03-30 2012-10-03 Pioneer Corporation Network configuration investigating device, network configuration investigating program, network configuration management method, and network configuration management system
US8346719B2 (en) 2007-05-17 2013-01-01 Novell, Inc. Multi-node replication systems, devices and methods
US20080320097A1 (en) * 2007-06-22 2008-12-25 Tenoware R&D Limited Network distributed file system
US7840730B2 (en) 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
US8630979B2 (en) 2010-02-26 2014-01-14 Red Hat, Inc. Non-blocking input output based storage
US8631482B2 (en) * 2010-05-28 2014-01-14 Apple Inc. Method for managing computer resources accessed by a program operating in a restricted environment
WO2011159842A2 (en) 2010-06-15 2011-12-22 Nimbula, Inc. Virtual computing infrastructure
US8732346B2 (en) 2010-12-17 2014-05-20 Microsoft Corporation Coordination of direct I/O with a filter

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070022264A1 (en) * 2005-07-14 2007-01-25 Yottayotta, Inc. Maintaining write order fidelity on a multi-writer system
CN101563674A (zh) * 2006-12-21 2009-10-21 国际商业机器公司 对来自多处理器***上的多线程程序的存储器访问进行管理的方法和***
CN101354682A (zh) * 2008-09-12 2009-01-28 中国科学院计算技术研究所 一种用于解决多处理器访问目录冲突的装置和方法
CN102937917A (zh) * 2011-08-15 2013-02-20 株式会社东芝 信息处理装置、资源提供装置和信息处理***

Also Published As

Publication number Publication date
US20160350192A1 (en) 2016-12-01
WO2015142339A1 (en) 2015-09-24
CN106104502A (zh) 2016-11-09
US10140194B2 (en) 2018-11-27

Similar Documents

Publication Publication Date Title
CN106104502B (zh) 用于存储***事务的***、方法和介质
US7328226B1 (en) Coordinated distributed log-based snapshots in a multi-host environment
US20170177237A1 (en) Storage Subsystem And Storage System Architecture Performing Storage Virtualization And Method Thereof
CN101571815B (zh) 信息***及i/o处理方法
CN100378679C (zh) 用于存储器访问请求的重定向的方法和***
JP4378335B2 (ja) ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム
CN106133676B (zh) 存储***
US8433681B2 (en) System and method for managing replication in an object storage system
JP5734855B2 (ja) 永続予約を介する共有書込みアクセスのリソースアービトレーション
CN103885895A (zh) 容错集群存储***中的写入性能
JP4748950B2 (ja) 記憶領域管理方法及びシステム
CN105897859B (zh) 一种存储***
US20210342086A1 (en) Method and apparatus for performing simple storage service seamless migration using index objects
US9946496B2 (en) SSD with non-blocking flush command
US8769199B2 (en) Methods and systems of distributing RAID IO load across multiple processors
CN109254958A (zh) 分布式数据读写方法、设备及***
US10901914B2 (en) Method for writing multiple copies into storage device, and storage device
US20050198411A1 (en) Commingled write cache in dual input/output adapter
US7330858B1 (en) Coordinated distributed logging in a multi-host environment
US9547450B2 (en) Method and apparatus to change tiers
CN112748865A (zh) 用于存储管理的方法、电子设备和计算机程序产品
JP4373450B2 (ja) Raid制御装置及びその制御方法
US20150135004A1 (en) Data allocation method and information processing system
US20150269092A1 (en) Information processing device and shared memory management method
JPWO2015141219A1 (ja) ストレージシステム、制御装置、データアクセス方法およびプログラム

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