CN114064591A - 高可用性共享存储 - Google Patents

高可用性共享存储 Download PDF

Info

Publication number
CN114064591A
CN114064591A CN202110426328.XA CN202110426328A CN114064591A CN 114064591 A CN114064591 A CN 114064591A CN 202110426328 A CN202110426328 A CN 202110426328A CN 114064591 A CN114064591 A CN 114064591A
Authority
CN
China
Prior art keywords
file server
active
server instance
passive
state information
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
CN202110426328.XA
Other languages
English (en)
Inventor
G·S·沃特金斯
P·W·玛达尼
P·F·科尔贝特
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 CN114064591A publication Critical patent/CN114064591A/zh
Pending legal-status Critical Current

Links

Images

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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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/2035Error 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 without idle spare hardware
    • 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/2046Error 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 where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了提供高度可用的共享存储的架构和技术。主动文件服务器实例处理计算节点集群的至少主动输入/输出(I/O)事务。主动I/O事务访问由多个计算节点共享的共享存储系统。主动文件服务器实例维护共享存储系统的主动状态信息。被动文件服务器实例维护主动状态信息的子集。响应于主动文件服务器实例的故障,使状态信息同步以使主动状态信息的子集在故障时与主动状态信息一致,以从被动文件服务器实例产生替换主动文件服务器实例,并且将共享存储系统的控制转移到替换文件服务器实例。由替换主动文件服务器实例处理后续主动I/O事务。

Description

高可用性共享存储
背景技术
无共享存储系统可以在冗余、弹性和可缩放性方面提供高效的大 容量存储解决方案。然而,这是以低效率的容量利用率为代价的。因 此,改进的存储系统是可能的。
附图说明
在附图的各图中,通过示例而非限制的方式示出了本发明的实施例, 在附图中,相似的附图标记指代相似的元素。
图1是共享存储配置的一个实施例的概念框图。
图2是具有主动文件服务器实例和被动文件服务器实例的集群的一个 实施例的框图。
图3是使用被动文件服务器实例提供故障转移保护的一个实施例的流 程图。
图4是处理资源和被编码有维护高可用性文件服务器环境的示例指令 的机器可读介质的一个实施例的框图。
图5是可以被配置为提供高可用性能力的节点集群的框图。
图6是可以被配置为提供高可用性能力的节点集群的框图。
图7是可以被配置为提供高可用性能力的节点集群的框图,其中节点 具有多个主动文件服务器实例。
图8是可以被配置为提供高可用性能力的节点集群的框图,其中节点 具有多个主动文件服务器实例。
图9是可以被配置为在利用扩展集群的环境中提供高可用性能力的节 点集群的框图。
具体实施方式
在以下描述中,阐述了很多具体细节。然而,可以在没有这些具 体细节的情况下实践实施例。在其他情况下,未详细示出公知的结构 和技术,以免混淆对该描述的理解。
数据可以存储在各种类型的计算系统上,诸如服务器、计算机设 备、工作站、存储系统或存储阵列、聚合或超聚合系统等。通过网络 而连接的计算系统可以称为节点。共享存储配置是一种其中外部存储 可以由节点集群(组)内的多个节点访问的配置。这可以通过各种存 储区域网络(SAN)协议来完成,包括例如互联网小型计算机系统接 口(iSCSI)、光纤通道(FC)、基于结构的非易失性存储器快速存 储(NVMeOF)等。在本文中描述的各种实施例中,可以在具有可以 由多个虚拟机(VM)实例访问的高度可靠和高度可用的块存储设备 的环境中提供性能优化。
在存储数据的过程中,一些计算系统可以利用数据虚拟化平台, 该数据虚拟化平台提取其上物理地存储有数据的物理存储硬件的各 个方面(例如,诸如寻址、配置等各个方面)并且向用户环境(例如, 向操作系统、应用、进程等)呈现虚拟化或逻辑存储。可以从多个存 储硬件(例如,硬盘驱动器、固态驱动器等)将虚拟化存储池化到数 据存储库中,可以从该数据存储库中提供虚拟化或逻辑存储。数据虚 拟化平台还可以提供数据服务,诸如重复数据删除、压缩、复制等。
在各种实施例中,可以通过利用主动文件服务器实例和被动文件 服务器实例来提供高度可用的共享存储系统,其中主动实例负责处理 所有输入/输出(I/O)请求并且被动实例具有足够的状态信息以在原 始主动实例变得不可用时快速接管主动实例角色。当主动实例发生故 障时,被动实例建立共享存储的所有权并且验证高速缓存一致性(例 如,完成进行中的事务),新主动实例(先前是被动实例)开始处理 主动I/O请求。如果发生故障的实例再次变得可用,则可以在恢复主 动实例的角色之前将其重新同步并且建立为新被动实例,或者其可以 保持作为被动实例进行操作。
文件系统实例可以是指将数据对象分层地与根对象相关的元数 据对象和数据对象的组织。因此,文件系统实例可以通过其根对象来 标识。例如,文件系统实例可以是Merkle树或任何其他分层布置(例 如,有向无环图等)。在分层Merkle树的情况下,数据对象可以位 于任何分支的最低树级别(即,距根对象最远),并且也可以称为叶 数据对象。父对象包括子对象的签名作为其内容。例如,叶数据对象 的父对象是元数据对象,该元数据对象存储其子叶数据对象的签名作 为其内容。
文件服务器实例是维护一个或多个文件系统实例的数据结构并 且实现一个或多个文件访问协议的软件组件(诸如虚拟存储控制器 等)。在以下的示例实施例中,主动和被动文件服务器实例可以用于 提供高度可用的共享存储系统。
图1是共享存储配置的一个实施例的概念框图。在图1的示例中, 存储系统150可以包括任何数目的存储设备(例如,130、132、134、 136、140),并且可以与任何数目的文件服务器实例(例如,120、 122、129)通信耦合。在示例环境中,可以利用任何适当的协议(例如,iSCSI、FC、NVMeOF)来管理数据。共享存储系统可以使用独 立磁盘冗余阵列(RAID)结构或非RAID结构来实现。
在非共享存储环境中,重复数据删除域可以被实现为每个节点的 单个对象存储实例。每个对象存储实例可以具有单个对象索引,该单 个对象索引可以用作从对象签名到存储逻辑块地址(LBA)的转换层。 在每个实例独立操作的情况下,随着集群大小的增加,数据路径可缩 放性不受限制。
这种非共享方法可以利用在文件系统层处的节点间复制,其中多 个蜂巢(hive)被映射到每个对象索引,这导致每个文件系统实例具 有其自己的持久化的唯一对象集。术语“蜂巢”是指如上所述的包括 数据和相关联的树结构文件系统的数据集。
在各种实施例中,为了使系统保持高度可用,在文件服务器实例 (或节点)故障的情况下,系统应当能够在可接受的时间窗口内恢复 客户端访问。提供这种能力的一种方法可以利用例如跨本地节点直接 附加存储(DAS)的蜂巢数据的复制。当主动节点变得不可用时,另 一(例如,被动)节点可以接管发生故障的节点的地址(例如,互联 网协议(IP)地址),并且提供对集群中的剩余数据副本的访问。
在共享存储系统中,如果在故障的情况下另一节点可以访问数 据,则不需要跨集群中的节点来同步地复制相同的数据。这表示,节 点间蜂巢复制的级别可以降低到单个实例,这可以提高集群的容量效 率。
在利用共享外部存储的高度可用的系统中,可以通过替换(例如, 被动)文件服务器实例来提供对共享存储的访问,该替换文件服务器 实例可以用来替换原始的发生故障的文件服务器实例。例如,这可以 通过启动可以接管共享存储系统的控制的新文件服务器实例来实现。 新文件服务器实例可以在可以以合理延迟来访问共享存储系统的任 何情况下上线。在一些实施例中,在节点故障的情况下,替换文件服 务器实例可以在集群中的替代节点上。在其他实施例中,可以支持其 他配置。
在图1的示例中,文件服务器实例120可以用作主动文件服务器 实例,并且提供对可以包括任何数目的存储设备(例如,130、132、 134、136、140)的存储系统150的访问。存储设备可以是任何类型 的存储介质,例如,硬盘驱动器(HDD)、固态驱动器(SSD)等。
在正常操作期间,如果文件服务器实例120发生故障,则文件服 务器实例122可以充当被动文件服务器实例以提供对存储系统150的 访问。如下面更详细地讨论的,主动文件服务器120可以维护状态信 息180以提供完整功能的文件服务器,并且被动文件服务器实例122 可以维护由主动文件服务器实例维护的状态信息182的子集。维护足 够的状态信息182的作用是减少被动文件服务器实例122变为完全主 动并且提供对存储系统150的访问所需要的时间量。
如本文中使用的,来自支持主动文件系统实例的完整功能所必需 的各种只读高速缓存(和其他数据结构)的状态信息被称为状态信息 的“完整集合”。该状态信息的子集是用于维护被动文件系统实例的 减少量的状态信息。换言之,状态信息的子集是包含在一致的系统状 态的修改过程中(诸如在写入操作过程中)改变和经由记录更新而持 久性数据结构的状态信息。状态信息的完整集合可以包括满足用户请 求所需要的但是可以根据需要从共享存储上的已知实例中恢复的附 加数据结构。
图2是具有主动文件服务器实例和被动文件服务器实例的集群的 一个实施例的框图。在各种实施例中,为了提供从主动实例到被动实 例的切换,被动实例可以被配置为利用记录高速缓存来维护足够的当 前状态信息,例如,以向客户端提供数据的一致的视图。
在一些实施例中,具有主动/被动配置(例如,如图1和2所示), 可以将节点配置成对,其中一个节点具有主动文件服务器实例(例如, 210),并且另一节点具有被动文件服务器实例(例如,220)。被动 实例至少具有在主动实例故障的情况下接管主动身份的能力。
从头开始新实例可能花费太长时间来提供期望的高可用性特性, 因为可能需要从外部存储(例如,存储系统270)中的日志(例如, 240)重建记录。在一些实施例中,目标客户端访问时间在秒的范围 内,因此从日志重建完整记录可能会非常耗时。
在一些实施例中,期望的时间参数可以通过使用复制的事务237 (例如,经由网络连接233)镜像被动文件服务器实例220中的一个 或多个记录数据区域(例如,230)来满足。因此,在一些实施例中, 文件服务器实例210中的高可用性记录(记录HA)215可以至少部分被文件服务器实例220中的记录高速缓存225镜像以维护状态信息 的至少子集,如上所述。在这些实施例中,直到事务既被持久化到共 享外部存储(例如,具有日志240的存储系统270,日志240具有记 录242、索引245和数据250、252、259)并且也被复制到被动实例 高速缓存(例如,记录高速缓存225),该事务才被视为已经提交。
在一些实施例中,共享外部存储记录仅需要由主动实例来更新。 因此,被动实例高速缓存可以保留在易失性存储器中。在一些实施例 中,只有主动实例将记录写入共享存储,而被动实例则在存储器中维 护一致的数据区域状态。
在一些实施例中,如果在所有节点上都有可用的持久性存储器, 则可以使用该存储器而不是外部日志。这将涉及跨节点的事务复制, 这些事务也将被放置在远程被动节点上的持久性存储器中以维护容 错能力。如下面更详细描述的,当被动实例变为主动实例时,该实例 将建立共享存储的所有权以避免潜在冲突。
在一些实施例中,记录结构可以是用于以字节级粒度来管理跨多 个数据路径组件的持久性数据结构更新的架构的一部分。该架构可以 保证ACID(原子性、一致性、隔离性和耐久性)属性,并且可以独 立于硬件。
在一个实施例中,(多个)数据区域230可以维护条目对象的存 储器中阵列,其中条目是可以小到一个字节的预定大小范围(例如, 小于256字节)的可序列化(例如,打包的)数据结构。在一个实施 例中,数据区域条目包括数据区域标识符,以指示对应条目来自哪个 数据区域。可以支持任何数目的数据区域。
在一个实施例中,当创建可变条目时,(多个)数据区域230可 以用来将记录数据对象添加到(多个)事务237内的链接列表。在一 个实施例中,只能使用所提供的事务来修改条目。在一个实施例中, (多个)数据区域230提供读取复制更新(RCU)样式行为。
在一个实施例中,(多个)事务237包含表示单个原子系统操作 的完整的数据结构更新集(例如,以存储在记录HA 215中的记录数 据的形式)。在一个实施例中,(多个)事务237可以在内部管理存 储在记录HA 215中的记录数据条目的链接列表。记录数据条目可以包括例如已更新数据区域条目的细节。
在一个实施例中,在事务的上下文内进行的数据结构更新直到被 提交才可见。在一个实施例中,(多个)事务237可以提供至少两个 公共接口,一个公共接口用于通过以事务被推入的顺序相反的顺序通 知调用者来中止事务,而另一公共接口用于通过写入持久性存储并且 更新存储器中数据结构以使它们对其他访问者可见来提交变化集。在 一些实施例中,可以使用足够的存储器来实例化(多个)事务237以 容纳所有更新和回调以避免动态存储器分配。
在一个实施例中,文件系统实例210通过将更新从(多个)数据 区域230写入持久存储系统270来提供持久性。在一个实施例中,记 录HA 215维护(多个)事务237的列表并且将每个事务237持久化 至存储系统270。
在一些实施例中,可以将来自多个区域的事务打包到具有预先选 择的大小(例如,4kb)的单个缓冲区中。在一个实施例中,当缓冲 区已满或当定时器到期(例如,800μs)时,缓冲区被写入存储系统 270中的日志。日志缓冲区可以具有与事务相对应的任何数目的区域 条目。
事务可以具有一个或多个区域条目。在一些实施例中,为原子性 提供了两阶段提交过程。例如,可以在存储系统270的暂存区域中暂 存事务,直到可以将区域条目写入存储系统270的适当区域分区。
图3是通过被动文件服务器实例提供故障转移保护的一个实施例 的流程图。图3的过程可以由例如图1和2所示的集群提供。
在框310处,检测主动节点或文件服务器实例的故障。可以利用 能够足够迅速地标识故障以发起对共享存储的控制的转变的任何监 测技术。
响应于主动文件服务器实例的故障(在框310处),被动文件服 务器实例可以在框320处建立共享存储系统的所有权。在一个实施例 中,在故障的情况下,被动文件服务器实例假定发生故障的(先前主 动)文件服务器实例的IP地址。这可以允许被动实例变为主动实例 并且管理与共享存储系统的I/O事务。
然后,在框310处,新主动文件服务器实例可以验证记录高速缓 存一致性(例如,图2的记录高速缓存225)。这可以涉及完成任何 进行中的事务以提供原子性。也可以执行其他高速缓存一致性操作。 然后,在框340处,新主动文件服务器实例可以处理与共享存储系统 的I/O事务。
在以后的某个时间,发生故障的(原始主动)文件服务器实例可 以再次变得可用。在一些实施例中,当再次运行时,文件服务器实例 将被建立为新被动文件服务器实例(与当前主动文件服务器实例相关 联)。链接在两个实例之间的记录高速缓存将被同步。在一个实施例 中,一旦同步,则原始主动文件服务器实例可以在框350处重新获取 主动状态,并且原始被动文件服务器实例可以返回用作被动文件服务 器实例。
这可以提供集群内的计算资源的平衡分配。利用这种方法,每个 被动实例都需要在主机系统中保留足够的资源,以使被动实例能够随 时变为主动实例。这将增加总体主机计算和存储器要求。在备选实施 例中,新返回的文件服务器实例可以继续用作被动文件服务器实例, 直到当前主动文件服务器实例故障。
图4是处理资源和被编码有维护高可用性文件系统环境的示例指 令的机器可读介质的一个实施例的框图。机器可读介质410是非暂态 的,并且备选地被称为非暂态机器可读介质410。在一些示例中,机 器可读介质410可以被(多个)处理器设备400访问。(多个)处理 器设备400和机器可读介质410可以被包括在具有上述文件服务器实 例的一个或多个计算节点中。
机器可读介质410可以被编码有示例指令425、435、445、455 和465。指令425、435、445、455和465在由(多个)处理器设备 400执行时可以实现维护本文中描述的文件系统的高可用性的各个方 面。
在一些实施例中,指令425使一个或多个组件检测主动文件服务 器实例的故障。在一些实施例中,指令435可以使一个或多个组件通 过被动文件服务器实例来建立共享存储系统的所有权。
在一些实施例中,指令445可以使(原始)被动文件服务器使用 持久性共享存储验证记录高速缓存一致性。在重建过程完成之后,指 令455可以使(新)主动文件服务器实例处理与共享存储系统的I/O 请求。当原始主动文件服务器实例再次可用时,指令465可以使所返 回的文件服务器实例重新获取主动文件服务器实例的功能。
上面的描述提供了可以在共享存储环境中提供高可用性的相关 联的主动和被动文件服务器实例的基本架构和示例。以下示例提供了 可以在其中应用上述概念的更复杂的用例。
图5是可以被配置为提供高可用性能力的节点集群的框图。在所 示的示例中,每个节点(例如,510、530、550)与主动文件服务器 实例(例如,520、540、560)和被动文件服务器实例(例如,525、 545、565)两者均平衡。在所示的示例中,无论是软件故障还是硬件 故障在影响单个节点的任何部分,被动实例都将可用于集群。结果是 完全主动集群,其中每个硬件节点运行主动实例。
在图5的示例中,节点510、530和550可以共享对存储系统590 的访问,该存储系统590可以被分区(例如,分区570、572、574) 并且具有任何数目的物理存储设备(例如,580-585)。在共享存储 环境中还可以支持其他配置。
在图5的配置中,每个被动实例与对应主动实例驻留在不同节点 上。例如,主动文件服务器实例520可以驻留在节点510上并且被动 文件服务器实例545可以驻留在节点530上。在节点510或主动文件 服务器实例520故障的情况下,被动文件服务器实例545可以代替文 件服务器实例520作为主动文件服务器实例。
类似地,主动文件服务器实例540可以驻留在节点530上并且被 动文件服务器实例565可以驻留在节点550上。在节点530或主动文 件服务器实例540故障的情况下,被动文件服务器实例565可以代替 文件服务器实例540作为主动文件服务器实例。此外,主动文件服务 器实例560可以驻留在节点550上并且被动文件服务器实例525可以 驻留在节点510上。在节点550或主动文件服务器实例560故障的情 况下,被动文件服务器实例525可以代替文件服务器实例560作为主 动文件服务器实例。
图6是可以被配置为提供高可用性能力的节点集群的框图。图6 示出了其中整个节点(例如,610)变得可用并且主动实例(例如,620)和被动实例(例如,625)都不可用的情况。通常,如果在尚存 的节点上有足够的可用资源,则可以创建其他被动实例以便以自愈方 式恢复完全的高可用性。
在图6的示例中,节点610、630和650可以共享对存储系统690 的访问,该存储系统690可以被分区(例如,分区670、672、674) 并且具有任何数目的物理存储设备(例如,680-685)。在共享存储 环境中还可以支持其他配置。
图6的集群可以以与图5的集群相同的配置开始操作,但是在某 个时间点,节点610可以变得在物理上不可用。响应于主动文件服务 器实例620变得不可用,文件服务器实例645可以变为主动实例以提 供先前由主动文件服务器实例620提供的功能。
如果节点630和650内有足够的资源可用,则可以生成两个附加 被动文件服务器实例(例如,623和628),以与现有被动文件服务 器实例(例如,665)一起运行,从而为运行的主动文件服务器实例 (例如,640、645、660)提供备份。可以将主动和被动实例配对(例如,640与665、645与628、660与623)以如上所述地运行。
图7是可以被配置为提供高可用性能力的节点集群的框图,其中 节点具有多个主动文件服务器实例。通过每个节点管理两个主动实 例,每个主动实例可以复制到集群内的不同节点上的单个被动实例。 因此,这些实施例提供了主动文件服务器实例到被动文件服务器实例 的多对一映射。该实施例可以以重复数据删除效率为代价来减少集群 资源需求并且在故障转移期间提高平衡。
图7的示例是三节点集群;但是,可以支持任何集群大小。在一 些实施例中,每个实例可以在共享存储系统上具有专用磁盘集(其可 以是重复数据删除域),并且可以复制到不同节点上的被动实例。在 所示的示例中,每个节点(例如,710、730、750)与两个主动文件 服务器实例(例如,节点710上的720、722;节点730上的740、742; 节点750上的760、762)和被动文件服务器实例(例如,节点710 上的725、节点730上的745、节点750上的765)平衡。
在图7的示例中,节点710、730和750可以共享对存储系统790 的访问,该存储系统790可以被分区(例如,分区770-775)并且具 有任何数目的物理存储设备(例如,780-785)。在共享存储环境中 还可以支持其他配置。
在图7的配置中,每个被动实例与对应主动实例驻留在不同节点 上。例如,主动文件服务器实例720和722可以驻留在节点710上, 被动文件服务器实例745可以驻留在节点730上,并且被动文件服务 器实例765可以驻留在节点750上。在节点710故障的情况下,被动 文件服务器实例745可以代替文件服务器实例720,并且被动文件服 务器实例765可以代替文件服务器实例722作为主动文件服务器实 例。如果节点710保持运行并且主动文件服务器实例中的一个或两个 发生故障,则对应被动实例可以承担主动文件服务器实例的角色。
类似地,主动文件服务器实例740和742可以驻留在节点730上, 被动文件服务器实例765可以驻留在节点750上,而被动文件服务器 实例725可以驻留在节点710上。在节点730故障的情况下,被动文 件服务器实例765可以代替文件服务器实例740,并且被动文件服务 器实例725可以代替文件服务器实例742作为主动文件服务器实例。 如果节点730保持运行并且主动文件服务器实例中的一个或两个发生 故障,则对应被动实例可以承担主动文件服务器实例的角色。
此外,主动文件服务器实例760和762可以驻留在节点750上, 被动文件服务器实例725可以驻留在节点710上,并且被动文件服务 器实例745可以驻留在节点730上。在节点750故障的情况下,被动 文件服务器实例725可以代替文件服务器实例760,并且被动文件服 务器实例745可以代替文件服务器实例762作为主动文件服务器实 例。如果节点750保持运行并且主动文件服务器实例中的一个或两个 发生故障,则对应被动实例可以承担主动文件服务器实例的角色。
图8是可以被配置为提供高可用性能力的节点集群的框图,其中节 点具有多个主动文件服务器实例。图8的示例是按图7中的配置启动的 集群之一,并且节点发生故障(例如,810)。
图8的示例是三节点集群;但是,可以支持任何集群大小。在一 些实施例中,每个实例可以在共享存储系统上具有专用磁盘集(其可 以是重复数据删除域)。在图8的示例中,节点810、830和850可 以共享对存储系统890的访问,该存储系统890可以被分区(例如,分区870-875)并且具有任何数目的物理存储设备(例如,880-885)。 在共享存储环境中还可以支持其他配置。
当节点810发生故障时,主动实例820可以由节点830上的主动 实例845代替,并且主动实例822可以由节点850上的主动实例865 代替。因此,节点810的故障导致丢失两个主动实例(例如,820、 822)和两个被动实例(例如,845、865不再是被动实例)。在被动 实例接管丢失的主动实例的情况下,节点830可以具有三个主动实例 (例如,840、842、845),并且节点850也可以具有三个主动实例 (例如,860、862、865)。在一些实施例中,可以生成新替换被动 实例来代替已经变为主动实例的先前被动实例。在一些实施例中,可 能没有足够的资源可用以提供替换被动实例。
在某些条件下,如果在多个文件服务器实例之间共享基础共享存 储介质,则可能会降低总体系统容错能力。故障或降级的存储设备或 RAID组可能会影响很多文件服务器实例,并且可能在整个集群范围 内产生影响。没有由蜂巢副本提供的数据冗余,RAID组故障可能导 致集群的数据丢失。这种容错情况可以利用扩展集群来解决。
图9是可以被配置为在利用扩展集群的环境中提供高可用性能力 的节点集群的框图。扩展集群提供在故障域之间复制数据的能力,以 便在整个域故障时仍可保持可用。例如,这可以表示实验室中的单独 机架、建筑物中的单独实验室、站点中的单独建筑物、或者甚至单独 站点,如果它们之间存在提供可接受延迟的高质量网络链路。
在图9的示例中,每个域可以有单独的存储硬件,并且可以利用 蜂巢复制(例如,950到955)。附加蜂巢副本955可以提供高可用 性能力。在图9的示例中,可以跨域(例如,900、905)复制数据, 但是在域(例如,域900的920至927)内复制高速缓存(例如,图2中的215和225)。
与以上讨论的实施例一样,节点910可以具有主动实例920和被 动实例922,并且节点912可以具有主动实例925和被动实例927, 其如上所述地运行。节点910和912都可以访问存储系统990,该存 储系统990可以具有分区970(具有存储设备980a-980n)和分区973(具有存储设备984a-984n)。
类似地,节点930可以具有主动实例940和被动实例942,并且 节点932可以具有主动实例945和被动实例947,其如上所述地运行。 节点930和932都可以访问存储系统1295,该存储系统1295可以具 有分区1972(具有存储设备983a-983n)和分区974(具有存储设备986a-986n)。
在说明书中对“一个实施例”或“实施例”的引用是指结合该实 施例而描述的特定特征、结构或特性被包括在本发明的至少一个实施 例中。说明书中各个地方出现的短语“在一个实施例中”不一定全都 指同一实施例。
尽管已经根据几个实施例描述了本发明,但是本领域技术人员将 认识到,本发明不限于所描述的实施例,而是可以在所附权利要求的 精神和范围内进行修改和变型来实践。因此,本说明书应当被认为是 说明性的而不是限制性的。

Claims (18)

1.一种非暂态计算机可读介质,其上存储有在由一个或多个处理器执行时使所述一个或多个处理器执行以下操作的指令:
维护至少主动文件服务器实例以处理计算节点集群的主动输入/输出I/O事务的至少一部分,其中所述主动I/O事务的至少所述一部分访问由多个计算节点共享的共享存储系统,并且所述主动文件服务器实例维护关于所述多个计算节点的所述共享存储系统的主动状态信息;
维护所述计算节点集群的被动文件服务器实例,其中所述被动文件服务器实例维护所述主动状态信息的子集;
检测所述主动文件服务器实例的故障;
将所述共享存储系统的控制转移到所述被动文件服务器实例以替换发生故障的主动文件服务器实例;
同步状态信息以使由所述被动文件服务器实例维护的所述主动状态信息的所述子集与所述故障时的所述主动状态信息一致,以从所述被动文件服务器实例产生替换主动文件服务器实例;以及
使用所述替换主动文件服务器实例处理后续主动I/O事务。
2.根据权利要求1所述的非暂态计算机可读介质,其中维护所述状态信息的子集包括维护所述多个计算节点内的系统操作的镜像高速缓存。
3.根据权利要求1所述的非暂态计算机可读介质,还包括在由所述一个或多个处理器执行时使所述一个或多个处理器执行以下操作的指令:
检测所述发生故障的主动文件服务器实例返回为可用;
在返回为可用之后,至少同步由所述替换主动文件服务器实例和所述发生故障的主动文件服务器实例维护的状态信息;
将所述共享存储系统的控制转移回所述发生故障的主动文件服务器实例;以及
使所述替换主动文件服务器实例通过至少维护由所述主动文件服务器实例维护的所述主动状态信息的子集来作为所述被动文件服务器实例进行操作。
4.根据权利要求1所述的非暂态计算机可读介质,其中所述第一主动文件服务器实例在所述多个计算节点中的第一节点内运行,并且所述被动文件服务器实例在所述多个计算节点中的第二节点内运行。
5.根据权利要求1所述的非暂态计算机可读介质,还包括在由所述一个或多个处理器执行时使所述一个或多个处理器执行以下操作的指令:
维护所述计算节点集群的第二被动文件服务器实例,其中所述第二被动文件服务器实例维护所述主动状态信息的子集的第二副本;以及
使所述第二被动文件服务器实例响应于所述替换主动文件服务器实例处理所述后续I/O事务而维护由所述替换主动文件服务器实例维护的状态信息的子集。
6.根据权利要求1所述的非暂态计算机可读介质,还包括在由所述一个或多个处理器执行时使所述一个或多个处理器执行以下操作的指令:
维护第二主动文件服务器实例以处理所述计算节点集群的主动输入/输出I/O事务的至少第二部分,其中所述主动I/O事务的至少所述第二部分访问所述共享存储系统,并且所述第二主动文件服务器实例维护关于所述多个计算节点的所述共享存储系统的第二主动状态信息;
与所述被动文件服务器实例一起维护所述第二主动状态信息的子集。
7.一种系统,包括:
至少共享存储系统,被耦合以由多个计算节点共享;以及
一个或多个硬件处理器,与所述共享存储系统耦合以提供计算节点集群,所述一个或多个硬件处理器用以:
维护至少主动文件服务器实例以处理计算节点集群的主动输入/输出I/O事务的至少一部分,其中所述主动I/O事务的至少所述一部分访问由多个计算节点共享的共享存储系统,并且所述主动文件服务器实例维护关于所述多个计算节点的所述共享存储系统的主动状态信息;
维护所述计算节点集群的被动文件服务器实例,其中所述被动文件服务器实例维护所述主动状态信息的子集;
检测所述主动文件服务器实例的故障;
将所述共享存储系统的控制转移到所述被动文件服务器实例以替换发生故障的主动文件服务器实例;
同步状态信息以使由所述被动文件服务器实例维护的所述主动状态信息的所述子集与所述故障时的所述主动状态信息一致,以从所述被动文件服务器实例产生替换主动文件服务器实例;以及
使用所述替换主动文件服务器实例处理后续主动I/O事务。
8.根据权利要求7所述的系统,其中维护所述状态信息的子集包括维护所述多个计算节点内的系统操作的镜像高速缓存。
9.根据权利要求7所述的系统,其中所述一个或多个处理器还被配置为:
检测所述发生故障的主动文件服务器实例返回为可用;
在返回为可用之后,至少同步由所述替换主动文件服务器实例和所述发生故障的主动文件服务器实例维护的状态信息;
将所述共享存储系统的控制转移回所述发生故障的主动文件服务器实例;以及
使所述替换主动文件服务器实例通过至少维护由所述主动文件服务器实例维护的所述主动状态信息的子集来作为所述被动文件服务器实例进行操作。
10.根据权利要求7所述的系统,其中所述第一主动文件系统实例在所述集群内的第一节点内运行,并且所述被动文件系统实例在所述集群的第二节点内运行。
11.根据权利要求7所述的系统,其中所述一个或多个处理器还被配置为:
维护所述计算节点集群的第二被动文件服务器实例,其中所述第二被动文件服务器实例维护所述主动状态信息的子集的第二副本;以及
使所述第二被动文件服务器实例响应于所述替换主动文件服务器实例处理所述后续I/O事务而维护由所述替换主动文件服务器实例维护的状态信息的子集。
12.根据权利要求7所述的系统,其中所述一个或多个处理器还被配置为:
维护第二主动文件服务器实例以处理所述计算节点集群的主动输入/输出I/O事务的至少第二部分,其中所述主动I/O事务的至少所述第二部分访问所述共享存储系统,并且所述第二主动文件服务器实例维护关于所述多个计算节点的所述共享存储系统的第二主动状态信息;
与所述被动文件服务器实例一起维护所述第二主动状态信息的子集。
13.一种方法,包括:
维护至少主动文件服务器实例以处理计算节点集群的主动输入/输出I/O事务的至少一部分,其中所述主动I/O事务的至少所述一部分访问由多个计算节点共享的共享存储系统,并且所述主动文件服务器实例维护关于所述多个计算节点的所述共享存储系统的主动状态信息;
维护所述计算节点集群的被动文件服务器实例,其中所述被动文件服务器实例维护所述主动状态信息的子集;
检测所述主动文件服务器实例的故障;
将所述共享存储系统的控制转移到所述被动文件服务器实例以替换发生故障的主动文件服务器实例;
同步状态信息以使由所述被动文件服务器实例维护的所述主动状态信息的所述子集与所述故障时的所述主动状态信息一致,以从所述被动文件服务器实例产生替换主动文件服务器实例;以及
使用所述替换主动文件服务器实例处理后续主动I/O事务。
14.根据权利要求13所述的方法,其中维护所述状态信息的子集包括维护所述多个计算节点内的系统操作的镜像高速缓存。
15.根据权利要求13所述的方法,还包括:
检测所述发生故障的主动文件服务器实例返回为可用;
在返回为可用之后,至少同步由所述替换主动文件服务器实例和所述发生故障的主动文件服务器实例维护的状态信息;
将所述共享存储系统的控制转移回所述发生故障的主动文件服务器实例;以及
使所述替换主动文件服务器实例通过至少维护由所述主动文件服务器实例维护的所述主动状态信息的子集来作为所述被动文件服务器实例进行操作。
16.根据权利要求13所述的方法,其中所述第一主动文件系统实例在所述多个计算节点中的第一节点内运行,并且所述被动文件系统实例在所述多个计算节点中的第二节点内运行。
17.根据权利要求13所述的方法,还包括:
维护所述计算节点集群的第二被动文件服务器实例,其中所述第二被动文件服务器实例维护所述主动状态信息的子集的第二副本;以及
使所述第二被动文件服务器实例响应于所述替换主动文件服务器实例处理所述后续I/O事务而维护由所述替换主动文件服务器实例维护的状态信息的子集。
18.根据权利要求13所述的方法,还包括:
维护第二主动文件服务器实例以处理所述计算节点集群的主动输入/输出I/O事务的至少第二部分,其中所述主动I/O事务的至少所述第二部分访问所述共享存储系统,并且所述第二主动文件服务器实例维护关于所述多个计算节点的所述共享存储系统的第二主动状态信息;
与所述被动文件服务器实例一起维护所述第二主动状态信息的子集。
CN202110426328.XA 2020-07-30 2021-04-20 高可用性共享存储 Pending CN114064591A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202016943856A 2020-07-30 2020-07-30
US16/943,856 2020-07-30

Publications (1)

Publication Number Publication Date
CN114064591A true CN114064591A (zh) 2022-02-18

Family

ID=79300742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110426328.XA Pending CN114064591A (zh) 2020-07-30 2021-04-20 高可用性共享存储

Country Status (2)

Country Link
CN (1) CN114064591A (zh)
DE (1) DE102021109521A1 (zh)

Also Published As

Publication number Publication date
DE102021109521A1 (de) 2022-02-03

Similar Documents

Publication Publication Date Title
US10664366B2 (en) Third vote consensus in a cluster using shared storage devices
US20230087493A1 (en) Shared storage model for high availability within cloud environments
US10360120B2 (en) High availability failover manager
US8677055B2 (en) Flexible way of specifying storage attributes in a flash memory-based object store
US10235066B1 (en) Journal destage relay for online system checkpoint creation
US11797406B2 (en) Moving a consistency group having a replication relationship
US11983407B2 (en) Enhanced data compression in distributed datastores
US20110283045A1 (en) Event processing in a flash memory-based object store
US8046534B2 (en) Managing snapshots in storage systems
US10740005B1 (en) Distributed file system deployment on a data storage system
US11416354B2 (en) Techniques for providing intersite high availability of data nodes in a virtual cluster
US20030070043A1 (en) High speed fault tolerant storage systems
US20160085460A1 (en) Optimized read access to shared data via monitoring of mirroring operations
US11347600B2 (en) Database transaction log migration
US20050234916A1 (en) Method, apparatus and program storage device for providing control to a networked storage architecture
US11403176B2 (en) Database read cache optimization
US11614879B2 (en) Technique for replicating oplog index among nodes of a cluster
US20230418716A1 (en) Anti-entropy-based metadata recovery in a strongly consistent distributed data storage system
US20220357868A1 (en) Co-located journaling and data storage for write requests
CN114064591A (zh) 高可用性共享存储
US20230088529A1 (en) Site resiliency on stretched clusters

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20220218

WD01 Invention patent application deemed withdrawn after publication