CN110612510B - 无需专用仲裁器的输入/输出(i/o)隔离 - Google Patents
无需专用仲裁器的输入/输出(i/o)隔离 Download PDFInfo
- Publication number
- CN110612510B CN110612510B CN201880028528.6A CN201880028528A CN110612510B CN 110612510 B CN110612510 B CN 110612510B CN 201880028528 A CN201880028528 A CN 201880028528A CN 110612510 B CN110612510 B CN 110612510B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- shared storage
- coordinator
- data key
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
- Quality & Reliability (AREA)
Abstract
本发明公开了在无需专用仲裁器的情况下执行输入/输出(I/O)隔离的方法、系统和过程。将协调存储标识符作为元数据存储在存储设备中。协调存储标识符与耦接到存储设备的集群的节点相关联,并且使用协调存储标识符执行I/O隔离操作。
Description
技术领域
本公开涉及集群环境中的分布式存储。具体地讲,本公开涉及在此类集群环境中在无需专用仲裁器的情况下执行输入/输出(I/O)隔离操作。
相关技术描述
集群是一种分布式计算系统,具有多个节点,这些节点通过将处理负载分布在一个以上的节点上以及消除或至少使单点故障最小化而共同工作,以提供处理能力和共享存储资源。因此,尽管集群中的一个节点(或计算设备)出现问题,在多个节点上运行的不同应用程序仍然发挥作用。集群可以在称为装置的计算设备中实现。
装置是具有集成软件(例如,固件)的硬件设备,其被设计成提供一个或多个商业服务。装置还可以配置有硬件和/或软件,使其能够充当客户端和/或服务器。这些客户端和/或服务器的最终用户无需了解运行在装置上的底层操作系统的技术细节,因为硬件和/或软件是(例如,由制造商)预先配置。以这种方式,装置被设计成最终用户(例如,客户)的安全黑匣子。可以将多个独立节点(例如,计算节点)配置为在给定装置中执行,以提供高数据可用性。
输入/输出(I/O)隔离(或简称为隔离)是指当节点发生故障(或疑似故障)时隔离集群的节点和/或保护集群的共享资源的方法。由于在装置中实现的集群可以具有多个计算节点(或简称为节点),因此存在一个节点可能在某个时刻发生故障的可能性。故障节点可以控制(或至少访问)共享资源,诸如集群中其他节点使用和要求的共享存储。集群必须能够在节点发生故障时采取纠正措施,因为如果位于不同子集群或网络分区中的两个节点试图以不协调的方式控制共享存储,则会发生数据损坏。因此,隔离操作导致隔离(或终止)集群中的一个或多个节点(例如,以防止对共享存储的不协调访问)。
通常,实现称为协调点的外部计算设备可帮助进行隔离操作。协调点是计算设备(例如,服务器或存储设备),该计算设备提供锁定机制以确定允许哪个节点(或哪些节点)与集群中的其他节点隔离共享存储(例如,数据驱动器)。例如,节点必须从协调点顶出(或卸载)对等节点的注册密钥,然后才允许该节点将对等节点与共享存储隔开。但是,对于在装置中实现的集群,使用协调点执行隔离操作不切实际,因为如上所述,装置被设计成安全且不可修改的黑匣子。
如前所述,装置被设计成只能与设备自己的内部软件和硬件部件(包括存储架)一起使用。通常,在现有装置部署中,将存储架(例如,共享存储设备)配置为备份目标空间,因此在此类计算环境中提供的高可用性解决方案本身无法利用专用仲裁器(例如,协调点)进行隔离操作。另外,由装置提供的内部服务通常不暴露于用户或其他计算设备(例如,外部客户端)(并且不能够由其访问)。因此,在装置内实现的高可用性集群中使用专用仲裁器来执行隔离操作的可能性是不可取的,因为在高可用性计算环境中实现的装置不具有专用仲裁器且不可升级。
发明内容
本发明公开了在无需专用仲裁器的情况下执行输入/输出(I/O)隔离的方法、系统和过程。一种此类方法涉及将将协调存储标识符作为元数据存储在存储设备中。在该示例中,协调存储标识符与耦接到存储设备的集群的节点相关联,并且使用协调存储标识符执行I/O隔离操作。
在一个实施方案中,该方法访问配置文件,该配置文件包括识别协调存储标识符的隔离模式元数据。在该示例中,协调存储标识符识别协调器和数据磁盘,并且协调存储标识符是由节点执行的卷管理器生成的数据密钥。
在一些实施方案中,该方法识别除协调存储标识符之外的一个或多个存储标识符以识别一个或多个数据磁盘,确定除该节点之外的另一个节点已经丢失了隔离竞争,并且确定隔离引擎是否已经从协调器和数据磁盘中顶出数据密钥。在该示例中,如果隔离引擎尚未从协调器和数据磁盘中顶出数据密钥,则该方法从协调器和数据磁盘中顶出数据密钥。
在其他实施方案中,该方法检测到集群被划分为两个或更多个网络分区,并且从协调器和数据磁盘中顶出数据密钥。在该示例中,在从协调器和数据磁盘中顶出数据密钥时,该方法确定作为I/O隔离操作的一部分执行的隔离竞争的结果。
在某些实施方案中,该方法确定另一个节点是失败节点,向失败节点的卷管理器发送通知,以从除协调器和数据磁盘之外的一个或多个数据磁盘中顶出数据密钥,并且从卷管理器处接收确认已经从一个或多个数据磁盘中顶出数据密钥。在该示例中,协调器和数据磁盘以及一个或多个数据磁盘由节点和另一个节点共享。
以上内容是概述,因此必然包含对细节的简化、概括和省略;因此本领域的技术人员将会理解,该概述仅是说明性的,并不意图进行任何限制。如由权利要求单独定义的那样,本公开的其他方面、特征和优点将在以下阐述的非限制性详细描述中变得显而易见。
附图说明
通过参考附图,可以更好地理解本公开,并且其多个目的、特征和优点对于本领域的技术人员而言是显而易见的。
图1A是根据本公开的一个实施方案的被配置为在无需专用仲裁器的情况下执行输入/输出(I/O)隔离的计算系统的框图100A。
图1B是根据本公开的一个实施方案的被配置为在无需专用仲裁器的情况下执行输入/输出(I/O)隔离的计算集群的框图100B。
图2A是根据本公开的一个实施方案的被配置用于节点的启动和关闭的计算集群的框图200A。
图2B是根据本公开的一个实施方案的被配置用于网络分区的计算集群的框图200B。
图3是根据本公开的一个实施方案的示出隔离操作表的表300A。
图4是示出根据本公开的一个实施方案的用于在指定的协调器和数据磁盘上注册数据密钥的过程的流程图400。
图5是示出根据本公开的一个实施方案的在集群关闭时用于从一个或多个数据磁盘移除一个或多个数据密钥的过程的流程图500。
图6是示出根据本公开的一个实施方案的用于在网络分区时宣布隔离竞争结果的过程的流程图600。
图7是示出根据本公开的一个实施方案的用于在执行I/O隔离操作之后重启数据操作的过程的流程图700。
图8是示出根据本公开的一个实施方案的如何在软件中实现卷管理器和隔离引擎的计算系统的框图800。
图9是示出根据本公开的一个实施方案的各种设备如何经由网络进行通信的联网系统的框图900。
虽然本公开容许各种修改和替代形式,但是在附图和详细描述中作为示例提供了本公开的特定实施方案。应当理解,附图和详细描述并非旨在将本公开限制于所公开的特定形式。相反,其目的在于覆盖落入由所附权利要求书限定的本公开的实质和范围内的所有修改形式、等同物和替代物。
具体实施方式
介绍
可以将装置配置为执行关键应用程序(例如,保护重要的客户数据)。期望在此类装置内执行的应用程序是高度可用的。例如,可以通过添加一个或多个附加计算节点来升级具有单个计算节点(例如,具有专用存储器、处理能力等的节点)的装置,以提供数据的高可用性。因此,设备可以被配置为实现例如节点的集群。
“脑裂”是指由于维护范围重叠的单独数据集而导致数据可用性(例如,来自共享存储)的风险变得不一致的情况(或情景)。例如,此类重叠可能由于网络分区而潜在发生,在这些分区中,子集群无法相互通信以同步其相应的数据集。每个子集群(或网络分区)的数据集可以通过它们自己的特殊数据集更新随机地为客户端服务,而不需要与来自其他子集群的其他数据集协调。因此,当集群中出现脑裂情况时,决定哪个子集群应继续运行的决定称为分区仲裁过程,或简称为仲裁。通常,如前所述,此类集群环境中的仲裁是通过使用协调点执行I/O隔离操作来执行的。
高可用性数据解决方案诸如上述需要通过在集群中执行I/O隔离操作来保护计算设置免受数据损坏。如上所述,传统的I/O隔离操作需要专用的仲裁器(例如,协调磁盘和/或协调点服务器),才能在此类情况下(例如,在系统挂起期间)仅可靠地维护一个子集群。由于装置被设计成以独立方式运行(例如,仅使用包含存储架的内部软件和硬件部件),并且存储架(例如,共享存储设备)被配置为备份目标空间,因此此类基于装置的高可用性解决方案无法将专用仲裁器(诸如,协调磁盘或协调点服务器)用于I/O隔离操作。
因此,应当理解,期望具有I/O隔离解决方案,该解决方案能够可靠地管理实际的脑裂和系统挂起情况,并且仅提供对一个子集群的存储访问,以防止在具有完全配置的共享存储装置配置的集群中破坏数据。本文描述了在无需专用仲裁器的情况下执行I/O隔离操作的方法、系统和过程。
用于无需专用仲裁器的输入/输出(I/O)隔离的示例系统
图1A是根据一个实施方案的被配置为在无需专用仲裁器的情况下执行输入/输出(I/O)隔离的计算系统的框图100A。如图1A所示,装置105包括节点110(1)-(N),并且通信地耦接到共享存储设备125(例如,直接地,或者经由网络或某种其他类型的互连)。节点110(1)-(N)中的每个节点都是单独且独立的计算节点,因为节点110(1)-(N)中的每个节点都包括其自己的存储器和处理器。以这种方式,节点110(1)-(N)中的每个用作独立的计算设备。
节点110(1)是代表设备105中的其他节点(例如,节点110(2)-(N))的示例,并且包括卷管理器115(1)和隔离引擎120(1)。卷管理器115(1)(例如,集群卷管理器(CVM))管理作为共享存储设备125的一部分的一个或多个数据磁盘。隔离引擎120(1)(例如,VxFEN)执行I/O隔离操作。装置105中的每个节点(例如,节点110(1)-(N))至少包括卷管理器和隔离引擎。
装置105通信地耦接到共享存储设备125。共享存储设备125由节点110(1)-(N)共享,并且可以包括多个不同的存储设备(例如,一个协调器和数据磁盘以及一个或多个数据磁盘)。如图1A所示,协调器和数据磁盘由协调存储标识符130识别,并且数据磁盘由存储标识符135(1)-(N)识别。在某些实施方案中,协调存储标识符130和存储标识符135(1)-(N)是数据密钥。
图1B是根据一个实施方案的被配置为在无需专用仲裁器的情况下执行输入/输出(I/O)隔离的计算集群的框图100B。如图1B所示,集群140至少包括经由网络160通信地耦接到共享存储设备125的节点110(1)和110(2)。节点110(1)的卷管理器115(1)包括数据密钥发生器145(1)。数据密钥发生器145(1)生成协调存储标识符130和/或存储标识符135(1)。协调存储标识符130和存储标识符135(1)是可以注册在逻辑单元号(LUN)(例如,分别识别协调器和数据磁盘的LUN)上的数据密钥。
节点110(1)还包括配置文件150(1),该配置文件还包括隔离模式元数据155(1)。在一个实施方案中,隔离模式元数据155(1)包括指示可由隔离引擎120(1)执行I/O隔离操作而无需使用专用仲裁器的信息。类似地,节点110(2)的卷管理器115(2)包括数据密钥发生器145(2),包括隔离模式元数据155(2)的配置文件150(2)和隔离引擎120(2)。在另一个实施方案中,隔离模式元数据155(2)包括指示可由隔离引擎120(2)执行I/O隔离操作而无需使用专用仲裁器的信息。
共享存储设备125将由数据密钥发生器145(1)和/或145(2)生成的协调存储标识符130和存储标识符135(1)-(N)存储为元数据165。在某些实施方案中,协调存储标识符130是在由装置105指定为协调器和数据磁盘的LUN上注册的数据密钥,并且存储标识符135(1)是与识别数据磁盘(除协调器和数据磁盘之外)的LUN上注册的相同的数据密钥。因此,数据密钥是一种机制,用于允许在集群140中执行的节点访问共享存储设备125中的一个或多个磁盘。例如,由数据密钥发生器145(1)生成并且存储在共享存储设备125中的磁盘上的数据密钥允许节点110(1)从该给定磁盘访问数据。类似地,由数据密钥发生器145(2)生成并且存储在共享存储设备125中的磁盘上的另一个数据密钥允许节点110(2)从该给定磁盘访问数据。
在某些实施方案中,卷管理器115(1)和115(2)采用基于小型计算机系统接口3(SCSI-3)密钥的保留(例如,称为持久保留(PR)),以仅向连接构件(例如,节点110(1)和110(2))提供对一个或多个共享存储设备125的访问。此类持久保留操作可以包括至少注册操作、注销操作、保留操作或抢占操作,并且可以基于作为执行持久保留操作的一部分访问作为共享存储设备125的一部分的SCSI-3磁盘上的LUN的节点110(1)和110(2)。
例如,SCSI-3PR允许多个节点访问共享存储设备,同时阻止其他节点访问共享存储设备。SCSI-3保留在SCSI总线重置(例如,主机总线适配器(HBA)的重置)中保持不变,并且支持从主机到磁盘(例如,兼容SCSI-3的磁盘)的多个路径。如上所述,SCSI-3PR使用注册和保留来执行I/O隔离操作。每个节点向SCSI-3设备(例如,共享存储设备)注册自己的“密钥”(例如,数据密钥)。多个注册密钥的节点形成成员资格并且建立保留,通常将其设置为“仅写独占注册”(WERO)。WERO设置仅允许已注册的节点执行写入操作。对于给定的磁盘,在许多注册中只能存在一个保留。
在基于SCSI-3PR的隔离中,可以通过从共享存储设备中移除(或顶出)注册来阻止写入访问。只有注册的节点才能“顶出”或移除另一个节点的注册。希望顶出另一个节点的节点可以发出“抢占并且中止”命令。顶出节点是最终的且原子的;顶出的节点无法顶出另一个节点。在集群环境中,节点为共享存储设备的所有路径注册相同的数据密钥。因此,可以使用单个抢占和中止命令将节点从所有路径顶出到共享存储设备。
由卷管理器115(1)和115(2)控制的相同SCSI-3数据磁盘可用于存储以及用于I/O隔离目的。由于装置存储(例如,共享存储设备125)启用了卷管理器,因此隔离引擎120(1)和120(2)可以与卷管理器115(1)和115(2)协调I/O隔离操作,并且采用上述数据密钥PR机制执行I/O隔离操作。
集群启动和关闭的示例
图2A是根据一个实施方案的被配置用于节点的启动和关闭的计算集群的框图200A,并且还示出了数据磁盘共享。如图2A所示,节点110(1)和110(2)共享单个协调器和数据磁盘(例如,协调器和数据磁盘205),以及作为共享存储设备125一部分的数据磁盘(例如,数据磁盘210(1)-(N))。在一个实施方案中,协调器和数据磁盘205由协调存储标识符130识别,并且数据磁盘210(1)-(N)分别由存储标识符135(1)-(N)识别。当将装置105配置为高可用性模式时,装置105将一个卷管理器管理的数据LUN恰好指定为隔离协调点(例如,协调器和数据磁盘205)。
在一个实施方案中,卷管理器115(1)是隔离引擎120(1)的客户端,并且在堆栈中较高。因此,在启动期间,当节点110(1)加入集群140时,隔离引擎120(1)在卷管理器115(1)之前变为可操作。隔离引擎120(1)首先出现(或开始操作),并且将与卷管理器兼容的密钥(例如,由卷管理器115(1)诸如APGR001中的数据密钥发生器145(1)生成的数据密钥)放置、注册和/或存储在数据磁盘上,该密钥由装置105选择以由隔离引擎120(1)和卷管理器115(1)(例如,协调器和数据磁盘205)共享。该示例过程在图2A中用左虚线(1)表示。
接下来,卷管理器115(1)出现(或开始操行),并且将相同的数据密钥(例如,APGR001)放置、注册和/或存储在由卷管理器115(1)控制的所有数据磁盘上,包括协调器和数据磁盘205(例如,协调器和数据磁盘205和数据磁盘210(1)-(N))。然而,应该指出的是,由卷管理器115(1)在协调器和数据磁盘205(例如,先前由隔离引擎120(1)在协调器和数据磁盘205上注册的数据密钥)上注册相同的数据密钥(例如,APGR001)是幂等操作(例如,使用忽略注册选项)。在该示例中,APGR001是协调存储标识符130和存储标识符135(1)-(N),并且协调器和数据磁盘205是指定的LUN。该示例过程在图2A中用左虚线(2)表示。
类似地,在另一个实施方案中,卷管理器115(2)是隔离引擎120(2)的客户端,并且在堆栈中较高。因此,在启动期间,当节点110(2)加入集群140时,隔离引擎120(2)在卷管理器115(2)之前变为可操作的。隔离引擎120(2)首先出现(或开始操作),并且将与卷管理器兼容的密钥(例如,由卷管理器115(2)诸如BPGR001中的数据密钥发生器145(2)生成的数据密钥)放置、注册和/或存储在数据磁盘上,该密钥由装置105选择以由隔离引擎120(2)和卷管理器115(2)(例如,协调器和数据磁盘205)共享。该示例过程在图2A中用右虚线(1)表示。
接下来,卷管理器115(2)出现(或开始操行),并且将相同的数据密钥(例如BPGR001)放置、注册和/或存储在由卷管理器115(2)控制的所有数据磁盘上,包括协调器和数据磁盘205(例如,协调器和数据磁盘205和数据磁盘210(1)-(N))。由卷管理器115(2)在协调器和数据磁盘205(例如,先前由隔离引擎120(2)在协调器和数据磁盘205上注册的数据密钥)上注册相同的数据密钥(例如,BPGR001)是幂等操作(例如,使用忽略注册选项)。在该示例中,BPGR001分别是除协调存储标识符130和存储标识符135(1)-(N)之外的另一个/不同的协调存储标识符和其他/不同的存储标识符,并且协调器和数据磁盘205是指定的LUN。该示例过程在图2A中用右虚线(2)表示。
在关闭期间,卷管理器115(1)首先慢下来并且从所有数据磁盘(例如,数据磁盘210(1)-(N))(包括协调器和数据磁盘205)中移除数据密钥(例如,APGR001)。该示例过程在图2A中用左虚线(A)表示。隔离引擎120(1)接下来下降,并且尝试从协调器和数据磁盘205中移除数据密钥(例如,APGR001)。如果卷管理器115(1)已经从协调器和数据磁盘205中移除数据密钥,则隔离引擎120(1)确定已经从协调器和数据磁盘205中移除数据密钥。如果由于某种原因数据密钥仍存在于协调器和数据磁盘205上,则隔离引擎120(1)从协调器和数据磁盘205(例如,协调存储标识符130)中移除或顶出数据密钥(例如,APGR001)。该示例过程在图2A中用左虚线(B)表示。
类似地,在关闭期间,卷管理器115(2)首先慢下来(例如,由于在堆栈中较高)并且从所有数据磁盘(例如数据磁盘210(1)-(N))(包括协调器和数据磁盘205)中移除数据密钥(例如BPGR001)。该示例过程在图2A中用右虚线(A)表示。隔离引擎120(2)接下来下降,并且尝试从协调器和数据磁盘205中移除数据密钥(例如,BPGR001)。如果卷管理器115(2)已经从协调器和数据磁盘205中移除数据密钥,则隔离引擎120(2)确定已经从协调器和数据磁盘205中移除数据密钥。如果由于某种原因数据密钥仍存在于协调器和数据磁盘205上,则隔离引擎120(2)从协调器和数据磁盘205(例如,除与节点110(1)相关联的协调存储标识符130之外的与节点110(2)相关联的另一个协调存储标识符)中移除或顶出数据密钥(例如,BPGR001)。该示例过程在图2A中用右虚线(B)表示。
网络分区的示例
在节点之间的通信失败的情况下,诸如在网络分区期间网络的一部分发生故障时,节点的两个或更多个子集群中的每一个子集群都可以确定节点的另一个子集群发生故障(或可能发生故障)。例如,节点的两个(或更多个)子集群之间可能发生竞争(也被称为“隔离竞争”),其中节点的每个子集群的控制模块确定节点的另一个子集群发生故障。
图2B是根据一个实施方案的被配置用于网络分区的计算集群的框图200B。如图2B所示,如果存在网络分区(例如,节点110(1)和110(2)现在是不同子集群的一部分),则获胜节点上的隔离引擎(例如,节点110(1)上的隔离引擎120(1))从协调器和数据磁盘205中顶出或移除失败节点)的数据密钥(例如,另一个协调存储标识符,诸如节点110(2)的数据密钥BPGR001,宣布隔离竞争,并且将隔离竞争的结果通知给卷管理器115(1)。该示例过程在图2B中用虚线(1)表示。
接下来,基于隔离竞争结果,卷管理器115(1)从所有数据磁盘(例如,数据磁盘210(1)-(N))中移除失败节点的数据密钥(例如,其他存储标识符,诸如节点110(2)的数据密钥BPGR001),包括协调器和数据磁盘205,在本示例中,它已由隔离引擎120(1)从协调器和数据磁盘205中移除,作为虚线(1)所示示例过程的一部分。该第二和随后的示例过程在图2B中用虚线(2)表示。因此,应当理解,由于围栏引擎120(1)与卷管理器115(1)一起执行I/O隔离操作,在不使用专用仲裁器的情况下,节点110(2)被阻止并且拒绝访问所有数据磁盘(例如,数据磁盘210(1)-(N))。该示例过程在图2B中用虚线(3)表示。
无需专用仲裁器的输入/输出(I/O)隔离的示例
在一个实施方案中,节点110(1)将协调存储标识符(例如,协调存储标识符130)作为元数据(例如,元数据165)存储在存储设备(例如,作为共享存储设备125的一部分的协调器和数据磁盘205)中。在该示例中,协调存储标识符130与耦接到共享存储设备125的集群140的节点110(1)相关联。隔离引擎120(1)与卷管理器115(1)结合使用协调存储标识符(例如,如关于图2A和图2B所述)执行I/O隔离操作。
在另一个实施方案中,节点110(1)访问包括隔离模式元数据155(1)的配置文件150(1)。隔离模式元数据155(1)识别协调存储标识符(例如,由装置105指定为VxFEN协调点的CVM管理的LUN之一)。协调存储标识符识别协调器和数据磁盘205,并且协调存储标识符是由节点115(1)执行并且在该节点上实现的卷管理器115(1)生成(例如,使用数据密钥发生器145(1))的数据密钥(例如,如图1B所示)。
在一些实施方案中,隔离引擎120(1)识别除协调存储标识符之外的一个或多个存储标识符(其可以是相同的数据密钥,例如,APGR001),以识别一个或多个数据磁盘(例如,数据磁盘210(1)-(N)),并且确定除节点110(1)之外的其他节点已经失去隔离竞争(例如,节点110(2)),并且确定卷管理器115(1)是否已经从协调器和数据磁盘205中移除数据密钥。如果尚未从协调器和数据磁盘205中移除数据密钥,则隔离引擎120(1)从协调器和数据磁盘205中移除数据密钥。
在其他实施方案中,隔离引擎120(1)检测到集群被划分为两个或更多个网络分区(例如,如图2B所示),并且从协调器和数据磁盘205中顶出数据密钥。从协调器和数据磁盘205中顶出数据密钥时,隔离引擎120(1)确定作为I/O隔离操作的一部分执行的隔离竞争的结果。在某些实施方案中,隔离引擎120(1)确定节点110(2)是失败节点,向卷管理器115(1)发送通知,以从除协调器和数据磁盘(例如,数据磁盘210(1)-(N))之外的一个或多个数据磁盘中检测数据密钥,并且从卷管理器115(1)处接收确认已经从一个或多个数据磁盘中顶出数据密钥。如果节点110(2)是胜利节点而节点110(1)是失败节点(例如,使用另一个协调存储标识符/其他存储标识符,诸如如图2A和图2B所示的数据密钥BPGR001),则隔离引擎120(2)可以与卷管理器115(2)一起执行此过程。
图3是根据一个实施方案的示出隔离操作表的表300A。隔离操作表305至少包括卷管理器动作字段310和隔离引擎动作字段315。尽管隔离操作表305中所示的过程是针对节点110(1)和数据密钥APGR001的,但是相同的过程适用于节点110(2)和数据密钥BPGR001。首先,隔离引擎120(1)在指定的协调LUN上注册卷管理器投诉数据密钥(例如,APGR001)。然后,卷管理器115(1)将相同的数据密钥(例如APGR001)注册到由卷管理器115(1)管理的LUN(例如,数据磁盘210(1)-(N))上,其中包括协调LUN(例如,协调器和数据磁盘205)。
在堆栈慢下来时,如果卷管理器115(1)尚未移除数据密钥,则卷管理器115(1)从LUN中移除数据密钥,并且隔离引擎120(1)从协调LUN中移除数据密钥(例如,APGR001)。接下来,隔离引擎115(1)在网络分区和节点挂起时从协调LUN中顶出数据密钥,并且宣布隔离竞争结果。最后,卷管理器115(1)从获胜节点(例如,节点110(1))接收通知,以清除剩余LUN中的数据密钥(例如,数据磁盘210(1)-(N)),从剩余LUN中顶出数据密钥,然后恢复(数据)操作。
类似地,隔离引擎120(2)可以在指定的协调LUN上注册、放置和/或存储卷管理器投诉数据密钥(例如,BPGR001)。然后,卷管理器115(2)可以将相同的数据密钥(例如BPGR001)注册到由卷管理器115(2)管理的LUN(例如,数据磁盘210(1)-(N))上,其中包括协调LUN(例如,协调器和数据磁盘205)。在堆栈慢下来时,如果卷管理器115(2)尚未移除数据密钥,则卷管理器115(2)可以从LUN中移除数据密钥,并且隔离引擎120(2)从协调LUN中移除数据密钥(例如,BPGR001)。接下来,隔离引擎115(2)可以在网络分区和节点挂起时从协调LUN中顶出数据密钥,并且宣布隔离竞争结果。最后,卷管理器115(2)可以从获胜节点(例如,节点110(2))接收通知,以清除剩余LUN中的数据密钥(例如,数据磁盘210(1)-(N)),从剩余LUN中顶出数据密钥,然后恢复(数据)操作。
无需专用仲裁器的输入/输出(I/O)隔离的示例过程
图4是示出根据一个实施方案的用于在指定的协调器和数据磁盘上注册数据密钥的过程的流程图400。该过程开始于405,通过检测集群启动。在410处,该过程在(指定的)协调器和数据磁盘(CDD)上为给定节点(CVM兼容的)注册数据密钥(例如,协调存储标识符诸如协调存储标识符130)。在415处,该过程确定是否存在集群关闭(例如,由于网络分区、节点挂起等而发起)。如果不存在集群关闭,则该过程循环回到415。然而,如果存在集群关闭(发起),则该过程在420处确定在CDD上是否仍然存在数据密钥。
如果数据密钥不在(指定的)CDD上,则该过程结束。然而,如果数据密钥存在于CDD上(例如,在设备105在高可用性模式配置期间最初指定为协调LUN的协调器和数据磁盘205上),则该过程在425处通过从CDD移除数据密钥(例如,协调存储标识符130)而结束。
图5是示出根据一个实施方案的在集群关闭时用于从一个或多个数据磁盘移除一个或多个数据密钥的过程的流程图500。该过程开始于505,通过检测集群启动。在510处,该过程在受管数据磁盘(例如,由卷管理器管理的LUN,诸如标识数据磁盘210(1)-(N)的LUN)上注册、放置和/或存储(例如,相同的)数据密钥(例如,使用相同的数据密钥作为协调存储标识符135的存储标识符,诸如存储标识符135(1)-(N))。在515处,该过程确定是否存在发起的集群关闭(例如,作为网络分区、节点挂起等的结果)。如果不存在集群关闭(发起),则该过程循环回到515。然而,如果已经发起集群关闭,则该过程在520处通过从受管理的数据磁盘上移除数据密钥(例如,存储标识符)而结束。
图6是示出根据一个实施方案的用于在网络分区时宣布隔离竞争结果的过程的流程图600。该过程通过确定是否存在网络分区(例如,如图2B所示)在605处开始。如果不存在网络分区,则过程循环回到605。然而,如果存在网络分区,则该过程在610处发起I/O隔离操作,并且在615处尝试从指定的协调存储单元(例如,从协调器和数据磁盘205)顶出数据密钥。该过程在620处通过宣布隔离竞争结果而结束。
图7是示出根据一个实施方案的用于在执行I/O隔离操作之后重启数据操作的过程的流程图700。该过程通过从隔离竞争结果的获胜节点接收通知在705处开始。在710处,该过程从与受管理的存储标识符(例如,存储标识符135(1)-(N))相关联的一个或多个存储单元(例如,数据磁盘210(1)-(N))顶出一个或多个数据密钥。该过程通过重启数据操作在715处结束。
示例性计算环境
图8是计算系统的框图800,示出了根据一个实施方案的如何在软件中实现卷管理器和隔离引擎。计算系统800可以包括节点110(1)-(N),并且在广义上表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。计算系统800的示例包括但不限于以下各种设备中的任何一者或多者:工作站、个人计算机、膝上型电脑、客户端侧终端、服务器、分布式计算系统、手持设备(例如,个人数字助理和移动电话)、网络设备、存储控制器(例如,阵列控制器、磁带驱动器控制器或硬盘驱动器控制器)等。在其最基本的配置下,计算系统800可包括至少一个处理器855和存储器860。通过执行软件以执行卷管理器115和/或隔离引擎120,计算系统800成为专用计算设备,其被配置为在无需专用仲裁器的情况下执行I/O隔离。
处理器855通常表示能够处理数据或解译和执行指令的任何类型或形式的处理单元。在某些实施方案中,处理器855可接收来自软件应用程序或模块的指令。这些指令可使处理器855执行本文描述和/或示出的实施方案中的一个或多个实施方案的功能。例如,处理器855可执行本文所述的操作中的全部或一些和/或可以是用于执行本文所述的操作中的全部或一些操作的装置。处理器855还可执行本文描述和/或示出的任何其他操作、方法或过程和/或可以是用于执行本文描述和/或示出的任何其他操作、方法或过程的装置。存储器860通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他合适的存储器设备。尽管并非必需,但是在某些实施方案中,计算系统800可包括易失性存储器单元和非易失性存储设备两者。在一个示例中,可以将实现卷管理器115和/或隔离引擎120的程序指令加载到存储器860中。
在某些实施方案中,除处理器855和/或存储器860之外,计算系统800还可包括一个或多个部件或元件。例如,如图8所示,计算系统800可包括存储器控制器820、输入/输出(I/O)控制器835和通信接口845,它们中的每一者都可经由通信基础设施805互连。通信基础设施805通常表示能够促进计算设备的一个或多个部件之间的通信的任何类型或形式的基础设施。通信基础设施805的示例包括但不限于通信总线(诸如工业标准架构(ISA)、外围部件互连(PCI)、PCI Express(PCIe)或类似的总线)和网络。
存储器控制器820通常表示能够处理存储器或数据或者控制计算系统800的一个或多个部件之间的通信的任何类型/形式的设备。在某些实施方案中,存储器控制器820可经由通信基础设施805控制处理器855、存储器860和I/O控制器835之间的通信。在某些实施方案中,存储器控制器820可单独或结合其他元件来执行本文描述和/或示出的操作或特征中的一者或多者,并且/或者可以是用于单独或与其他元件组合来执行本文所述和/或示出的操作或特征中的一者或多者的装置。
I/O控制器835通常表示能够协调和/或控制装置和/或计算设备的输入功能和输出功能的任何类型或形式的模块。例如,在某些实施方案中,I/O控制器835可控制或促进计算系统800的一个或多个元件之间的数据传送,这些元件诸如处理器855、存储器860、通信接口845、显示适配器815、输入接口825和存储接口840。
通信接口845在广义上表示能够促进计算系统800与一个或多个其他设备之间的通信的任何类型或形式的通信设备或适配器。通信接口845可促进计算系统800与包括附加计算系统的私有或公共网络之间的通信。通信接口845的示例包括但不限于有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器以及任何其他合适的接口。通信接口845可经由与网络诸如互联网的直接链路提供到远程服务器的直接连接,并且还可通过例如局域网例如以太网网络、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接提供此类连接。
通信接口845还可表示主机适配器,该主机适配器被配置为经由外部总线或通信信道来促进计算系统800与一个或多个附加网络或存储设备之间的通信。主机适配器的示例包括:小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE)1394主机适配器、串行高级技术附件(SATA)、串行SCSI(SAS)和外部SATA(eSATA)主机适配器、高级技术附件(ATA)和并行ATA(PATA)主机适配器、光纤信道接口适配器、以太网适配器等。通信接口845还可允许计算系统800执行分布式或远程计算(例如,通过从远程设备接收指令/将指令发送到远程设备,以供执行)。
如图8所示,计算系统800还可包括至少一个显示设备810,该至少一个显示设备经由显示适配器815耦接到通信基础设施805。显示设备810通常表示能够可视地显示由显示适配器815转发的信息的任何类型或形式的设备。类似地,显示适配器815通常表示被配置为转发来自通信基础设施805(或来自帧缓冲器,如本领域所已知)的图形、文本和其他数据以在显示设备810上显示的任何类型或形式的设备。计算系统800还可包括至少一个输入设备830,该至少一个输入设备经由输入接口825耦接到通信基础设施805。输入设备830通常表示能够向计算系统800提供由计算机或人生成的输入的任何类型或形式的输入设备。输入设备830的示例包括键盘、指向设备、语音识别设备或任何其他输入设备。
计算系统800还可包括存储设备850,该存储设备经由存储接口840耦接到通信基础设施805。存储设备850通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备850可包括磁盘驱动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口840通常表示用于在存储设备850与计算系统800的其他部件之间传送和/或传输数据的任何类型或形式的接口或设备。存储设备850可被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元执行读取和/或写入。合适的可移除存储单元的示例包括软盘、磁带、光盘、闪存存储器设备等。存储设备850还可包括用于允许将计算机软件、数据或其他计算机可读指令加载到计算系统800中的其他类似结构或设备。例如,存储设备850可被配置为读取和写入软件、数据或其他计算机可读信息。存储设备850还可以是计算系统800的一部分,或者可以是通过其他接口系统访问的独立设备。
可以将许多其他设备或子系统连接到计算系统800。相反地,图8所示的部件和设备不必都存在以实践本文所述和/或示出的实施方案。上文提及的设备和子系统也可以按照与图8所示不同的方式互连。计算系统800也可采用任何数量的软件配置、固件配置和/或硬件配置。例如,本文公开的实施方案中的一个或多个实施方案可被编码为计算机可读存储介质上的计算机程序(也被称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。计算机可读存储介质的示例包括磁存储介质(例如,硬盘驱动器和软盘)、光学存储介质(例如,CD-ROM或DVD-ROM)、电子存储介质(例如,固态驱动器和闪存介质)等。此类计算机程序也可被传输至计算系统800,以经由网络诸如互联网存储在存储器中或存储在载体介质上。
可以将包含计算机程序的计算机可读介质加载到计算系统800中。然后可以将计算机可读介质上存储的计算机程序的全部或一部分存储在存储器860中和/或存储设备850、协调器和数据磁盘205和/或数据磁盘210(1)-(N)的各个部分中。当由处理器855执行时,加载到计算系统800中的计算机程序可使处理器855执行本文所述和/或示出的实施方案中的一个或多个实施方案的功能和/或可使处理器成为用于执行本文所述和/或示出的实施方案中的一个或多个实施方案的功能的装置。除此之外或另选地,可在固件和/或硬件中实现本文描述和/或示出的实施方案中的一个或多个实施方案。例如,计算系统800可被配置为适于实现本文公开的实施方案中的一个或多个实施方案的专用集成电路(ASIC)。
示例性联网环境
图9是根据一个实施方案的联网系统的框图,示出了各种计算设备如何经由网络进行通信。在某些实施方案中,附网存储(NAS)设备可以被配置为使用各种协议诸如网络文件系统(NFS)、服务器消息块(SMB)或通用互联网文件系统(CIFS)与节点110(1)-(N)、协调器和数据磁盘205、数据磁盘210(1)-(N)和/或独立I/O隔离系统905通信。网络160通常表示能够促进装置105、协调器与数据磁盘205、数据磁盘210(1)-(N)和/或独立I/O隔离系统905之间的通信的任何类型或形式的计算机网络或架构。
在某些实施方案中,通信接口,诸如图8中的通信接口845,可以用于在装置105、协调器和数据磁盘205、数据磁盘210(1)-(N)和/或独立I/O隔离系统905与网络160之间提供连接。在至少某些实施方案中,数据磁盘210(1)-(N)在本文中如此称呼是因为每个此类数据磁盘专用于存储数据。类似地,协调器和数据磁盘205在本文中如此称呼是因为协调器和数据磁盘205存储数据并且被用于在无需专用仲裁器的情况下执行I/O隔离操作。本文描述和/或示出的实施方案并非限于互联网或任何特定的基于网络的环境。
在一些实施方案中,网络160可以是存储区域网络(SAN)。在其他实施方案中,独立I/O隔离系统905可以是节点110(1)-(N)的一部分,或者可以是单独的。如果是单独的,则独立I/O隔离系统905和节点110(1)-(N)和装置105可以经由网络160通信耦接。在一个实施方案中,一个或多个所公开的实施方案的全部或一部分可被编码为计算机程序并且加载到节点110(1)-(N)和/或独立I/O隔离系统905或它们的任何组合上并且加以执行。本文所公开的一个或多个实施方案中的全部或一部分还可以被编码为计算机程序、存储在节点110(1)-(N)、独立I/O隔离系统905、数据磁盘210(1)-(N)和/或协调器和数据磁盘205上,并且通过网络160分配。
在一些示例中,节点110(1)-(N)、独立I/O隔离系统905、数据磁盘210(1)-(N)和/或协调器和数据磁盘205的全部或一部分可表示基于云计算或网络的环境的部分。云计算环境可经由互联网提供各种服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等)可通过网页浏览器或其它远程接口访问。
本文所述的各种功能可通过远程桌面环境或任何其他基于云的计算环境提供。此外,本文所述的部件中的一个或多个部件可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,卷管理器115和/或隔离引擎120可以转换节点110(1)-(N)的行为,以使节点110(1)-(N)在无需专用仲裁器的情况下执行I/O隔离。例如,多个兼容SCSI-3的引擎和/或模块(诸如卷管理器115和/或隔离引擎120)可以在同一组SCSI-3磁盘上一起工作。
尽管已结合若干实施方案描述了本公开,但是本公开并非旨在限于本文阐述的具体形式。相反地,本公开旨在覆盖可被合理地包括在由所附权利要求书限定的本公开的范围内的此类替代物、修改形式和等同物。
Claims (20)
1.一种计算机实现的方法,包括:
通过将协调存储标识符作为元数据存储在共享存储设备中来指定多个共享存储设备中的所述共享存储设备为协调器和数据磁盘,其中
所述协调存储标识符作为所述元数据的一部分的存储将所述共享存储设备识别为所述协调器和数据磁盘;
所述协调存储标识符与集群的多个节点中的节点相关联;
所述多个共享存储设备被配置为由所述多个节点访问;
凭借一个或多个存储标识符的对应一个存储标识符被存储为一个或多个其他的共享存储设备的对应一个中的其他元数据,所述多个共享存储设备的一个或多个其他的共享存储设备被识别为数据磁盘;以及
所述一个或多个其他的共享存储设备是除了所述共享存储设备之外的所述多个共享存储设备中的共享存储设备;以及
执行输入/输出隔离操作,其中执行所述输入/输出隔离操作包括:
确定所述多个节点中的另一个节点已经丢失隔离竞争;
使用所述协调存储标识符识别所述共享存储设备;以及
从所述多个共享存储设备中的至少一个顶出数据密钥,其中
所述数据密钥和所述另一个节点关联,以及
所述另一个节点是除了所述节点之外的所述多个节点中的一个。
2.根据权利要求1所述的计算机实现的方法,还包括:
访问配置文件,其中
所述配置文件包括隔离模式元数据,并且
所述隔离模式元数据识别所述协调存储标识符。
3.根据权利要求2所述的计算机实现的方法,其中
所述协调存储标识符是所述数据密钥,
所述数据密钥由卷管理器生成,并且
所述卷管理器由所述节点执行。
4.根据权利要求3所述的计算机实现的方法,还包括
通过识别所述一个或多个存储标识符,识别所述一个或多个其他的共享存储设备的一个或多个数据磁盘。
5.根据权利要求4所述的计算机实现的方法,还包括:
确定隔离引擎是否已经从所述协调器和所述数据磁盘中顶出所述数据密钥;以及
如果所述隔离引擎尚未从所述协调器和所述数据磁盘中顶出所述数据密钥,则从所述协调器和所述数据磁盘中顶出所述数据密钥。
6.根据权利要求5所述的计算机实现的方法,还包括:
检测所述集群被划分为多个网络分区;以及
从所述协调器和所述数据磁盘中顶出所述数据密钥。
7.根据权利要求6所述的计算机实现的方法,还包括:
在从所述协调器和所述数据磁盘中顶出所述数据密钥时,确定隔离竞争的结果,其中
所述隔离竞争作为所述输入/输出隔离操作的一部分执行;
确定所述另一个节点是失败节点;
向所述节点的所述卷管理器发送通知,以从所述一个或多个数据磁盘中顶出所述失败节点的数据密钥;以及
从所述卷管理器处接收已经从所述一个或多个数据磁盘中顶出所述数据密钥的确认。
8.根据权利要求7所述的计算机实现的方法,其中
所述协调器和所述数据磁盘以及所述一个或多个数据磁盘由所述节点和所述另一个节点共享,
在无需一个或多个专用仲裁器的情况下执行所述输入/输出隔离操作,并且
所述输入/输出隔离操作由所述隔离引擎和所述卷管理器在同一组兼容小型计算机系统接口即SCSI-3的磁盘上执行。
9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括程序指令,所述程序指令能够执行以:
通过将协调存储标识符作为元数据存储在共享存储设备中来指定多个共享存储设备中的所述共享存储设备为协调器和数据磁盘,其中
所述协调存储标识符作为所述元数据的一部分的存储将所述共享存储设备识别为所述协调器和数据磁盘;
所述协调存储标识符与集群的多个节点中的节点相关联;
所述多个共享存储设备被配置为由所述多个节点访问,
凭借一个或多个存储标识符的对应一个存储标识符被存储为一个或多个其他的共享存储设备的对应一个中的其他元数据,所述多个共享存储设备的一个或多个其他的共享存储设备被识别为数据磁盘;以及
所述一个或多个其他的共享存储设备是除了所述共享存储设备之外的所述多个共享存储设备中的共享存储设备;以及
执行输入/输出隔离操作,其中
能够执行以执行所述输入/输出隔离操作的所述程序指令包括另外的程序指令,其能够执行以:
确定所述多个节点中的另一个节点已经丢失隔离竞争;
使用所述协调存储标识符识别所述共享存储设备;以及
从所述多个共享存储设备中的至少一个顶出数据密钥,其中
所述数据密钥和所述另一个节点关联,以及
所述另一个节点是除了所述节点之外的所述多个节点中的一个。
10.根据权利要求9所述的非暂态计算机可读存储介质,其中所述程序指令还能够执行以:
访问配置文件,其中
所述配置文件包括隔离模式元数据,并且
所述隔离模式元数据识别所述协调存储标识符。
11.根据权利要求10所述的非暂态计算机可读存储介质,其中
所述协调存储标识符是所述数据密钥,
所述数据密钥由卷管理器生成,并且
所述卷管理器由所述节点执行。
12.根据权利要求11所述的非暂态计算机可读存储介质,其中所述程序指令还能够执行以:
通过识别所述一个或多个存储标识符,识别所述一个或多个其他的共享存储设备的一个或多个数据磁盘。
13.根据权利要求12所述的非暂态计算机可读存储介质,其中所述程序指令还能够执行以:
确定隔离引擎是否已经从所述协调器和数据磁盘中顶出所述数据密钥;
如果所述隔离引擎尚未从所述协调器和数据磁盘中顶出所述数据密钥,则从所述协调器和数据磁盘中顶出所述数据密钥;
检测所述集群被划分为多个网络分区;
从所述协调器和数据磁盘中顶出所述数据密钥;
在从所述协调器和数据磁盘中顶出所述数据密钥时,确定隔离竞争的结果,其中
所述隔离竞争作为所述输入/输出隔离操作的一部分执行;
确定另一个节点是失败节点;
向所述节点的所述卷管理器发送通知,以从所述一个或多个数据磁盘中顶出所述失败节点的所述数据密钥;以及
从所述卷管理器处接收已经从所述一个或多个数据磁盘中顶出所述数据密钥的确认。
14.根据权利要求13所述的非暂态计算机可读存储介质,其中
所述协调器和数据磁盘以及所述一个或多个数据磁盘由所述节点和所述另一个节点共享,
在无需一个或多个专用仲裁器的情况下执行所述输入/输出隔离操作,并且
所述输入/输出隔离操作由所述隔离引擎和所述卷管理器在同一组兼容小型计算机系统接口即SCSI-3的磁盘上执行。
15.一种系统,包括:
一个或多个处理器;和
存储器,所述存储器耦接到所述一个或多个处理器,其中所述存储器存储能够由所述一个或多个处理器执行的程序指令,所述程序指令用于通过将协调存储标识符作为元数据存储在共享存储设备中来指定多个共享存储设备中的所述共享存储设备作为协调器和数据磁盘,其中
所述协调存储标识符作为所述元数据的一部分的存储将所述共享存储设备识别为所述协调器和数据磁盘;
所述协调存储标识符与集群的多个节点中的节点相关联;
所述多个共享存储设备被配置为由所述多个节点访问,
凭借一个或多个存储标识符的对应一个存储标识符被存储为一个或多个其他的共享存储设备的对应一个中的其他元数据,所述多个共享存储设备的一个或多个其他的共享存储设备被识别为数据磁盘;以及
所述一个或多个其他的共享存储设备是除了所述共享存储设备之外的所述多个共享存储设备中的共享存储设备;以及
执行输入/输出隔离操作,其中能够由所述一个或多个处理器执行以用于执行所述输入/输出隔离操作的所述程序指令包括能够由所述一个或多个处理器执行的另外的程序指令,其用于
确定所述多个节点中的另一个节点已经丢失隔离竞争;
使用所述协调存储标识符识别所述共享存储设备;以及
从所述多个共享存储设备中的至少一个顶出数据密钥,其中
所述数据密钥和所述另一个节点关联,以及
所述另一个节点是除了所述节点之外的所述多个节点中的一个。
16.根据权利要求15所述的系统,其中所述程序指令还能够由所述一个或多个处理器执行以:
访问配置文件,其中
所述配置文件包括隔离模式元数据,并且
所述隔离模式元数据识别所述协调存储标识符。
17.根据权利要求16所述的系统,其中
所述协调存储标识符是所述数据密钥,
所述数据密钥由卷管理器生成,并且
所述卷管理器由所述节点执行。
18.根据权利要求17所述的系统,其中所述程序指令还能够由所述一个或多个处理器执行以:
通过识别所述一个或多个存储标识符,识别所述一个或多个其他的共享存储设备的所述一个或多个数据磁盘。
19.根据权利要求18所述的系统,其中所述程序指令还能够由所述一个或多个处理器执行以:
确定隔离引擎是否已经从所述协调器和所述数据磁盘中顶出所述数据密钥;
如果所述隔离引擎尚未从所述协调器和所述数据磁盘中顶出所述数据密钥,则从所述协调器和所述数据磁盘中顶出所述数据密钥;
检测所述集群被划分为多个网络分区;
从所述协调器和所述数据磁盘中顶出所述数据密钥;
在从所述协调器和所述数据磁盘中顶出所述数据密钥时,确定隔离竞争的结果,其中
所述隔离竞争作为所述输入/输出隔离操作的一部分执行;
确定另一个节点是失败节点;
向所述失败节点的所述卷管理器发送通知,以从所述一个或多个数据磁盘中顶出所述数据密钥;以及
从所述卷管理器处接收已经从所述一个或多个数据磁盘中顶出所述数据密钥的确认。
20.根据权利要求19所述的系统,其中
所述协调器和所述数据磁盘以及所述一个或多个数据磁盘由所述节点和所述另一个节点共享,
在无需一个或多个专用仲裁器的情况下执行所述输入/输出隔离操作,并且
所述输入/输出隔离操作由所述隔离引擎和所述卷管理器在同一组兼容小型计算机系统接口即SCSI-3的磁盘上执行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/476,415 US11079971B2 (en) | 2017-03-31 | 2017-03-31 | Input/output (i/o) fencing without dedicated arbitrators |
US15/476415 | 2017-03-31 | ||
PCT/US2018/025232 WO2018183733A1 (en) | 2017-03-31 | 2018-03-29 | Input/output(i/o) fencing without dedicated arbitrators |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110612510A CN110612510A (zh) | 2019-12-24 |
CN110612510B true CN110612510B (zh) | 2023-04-28 |
Family
ID=62104367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880028528.6A Active CN110612510B (zh) | 2017-03-31 | 2018-03-29 | 无需专用仲裁器的输入/输出(i/o)隔离 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11079971B2 (zh) |
EP (1) | EP3602268B1 (zh) |
CN (1) | CN110612510B (zh) |
WO (1) | WO2018183733A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11079971B2 (en) * | 2017-03-31 | 2021-08-03 | Veritas Technologies Llc | Input/output (i/o) fencing without dedicated arbitrators |
US11025422B2 (en) * | 2019-07-23 | 2021-06-01 | Nasuni Corporation | Cloud-native global file system with constant-time rekeying |
CN112463023B (zh) * | 2020-10-18 | 2022-08-19 | 苏州浪潮智能科技有限公司 | 一种读写盘的数据处理方法、装置、设备及可读介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8281071B1 (en) * | 2010-02-26 | 2012-10-02 | Symantec Corporation | Systems and methods for managing cluster node connectivity information |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7168088B1 (en) * | 1995-11-02 | 2007-01-23 | Sun Microsystems, Inc. | Method and apparatus for reliable disk fencing in a multicomputer system |
US6021508A (en) * | 1997-07-11 | 2000-02-01 | International Business Machines Corporation | Parallel file system and method for independent metadata loggin |
US6708269B1 (en) * | 1999-12-30 | 2004-03-16 | Intel Corporation | Method and apparatus for multi-mode fencing in a microprocessor system |
US6715050B2 (en) * | 2001-05-31 | 2004-03-30 | Oracle International Corporation | Storage access keys |
US7631066B1 (en) | 2002-03-25 | 2009-12-08 | Symantec Operating Corporation | System and method for preventing data corruption in computer system clusters |
US7711820B2 (en) * | 2004-11-08 | 2010-05-04 | Cisco Technology, Inc. | High availability for intelligent applications in storage networks |
US7478221B1 (en) * | 2005-05-03 | 2009-01-13 | Symantec Operating Corporation | System and method for using consistent virtual addresses to communicate in cooperative multi-layer virtualization environments |
US7778157B1 (en) * | 2007-03-30 | 2010-08-17 | Symantec Operating Corporation | Port identifier management for path failover in cluster environments |
US7840730B2 (en) * | 2008-06-27 | 2010-11-23 | Microsoft Corporation | Cluster shared volumes |
US8145938B2 (en) * | 2009-06-01 | 2012-03-27 | Novell, Inc. | Fencing management in clusters |
US8707082B1 (en) * | 2009-10-29 | 2014-04-22 | Symantec Corporation | Method and system for enhanced granularity in fencing operations |
US8484510B2 (en) * | 2009-12-15 | 2013-07-09 | Symantec Corporation | Enhanced cluster failover management |
US8060773B1 (en) * | 2009-12-16 | 2011-11-15 | Symantec Corporation | Systems and methods for managing sub-clusters within a multi-cluster computing system subsequent to a network-partition event |
US8417899B2 (en) * | 2010-01-21 | 2013-04-09 | Oracle America, Inc. | System and method for controlling access to shared storage device |
US8527672B2 (en) * | 2010-11-05 | 2013-09-03 | International Business Machines Corporation | Fencing direct memory access data transfers in a parallel active messaging interface of a parallel computer |
US8560628B2 (en) * | 2011-01-11 | 2013-10-15 | International Business Machines Corporation | Supporting autonomous live partition mobility during a cluster split-brained condition |
EP2716003B1 (en) * | 2011-06-03 | 2016-09-28 | Oracle International Corporation | System and method for authenticating components in a network |
US8595460B2 (en) * | 2011-08-26 | 2013-11-26 | Vmware, Inc. | Configuring object storage system for input/output operations |
US9268590B2 (en) * | 2012-02-29 | 2016-02-23 | Vmware, Inc. | Provisioning a cluster of distributed computing platform based on placement strategy |
US9081507B2 (en) * | 2012-03-14 | 2015-07-14 | Symantec Corporation | Shared storage access management systems and methods |
US9026860B2 (en) * | 2012-07-31 | 2015-05-05 | International Business Machines Corpoation | Securing crash dump files |
US9753954B2 (en) * | 2012-09-14 | 2017-09-05 | Cloudera, Inc. | Data node fencing in a distributed file system |
US9146790B1 (en) * | 2012-11-02 | 2015-09-29 | Symantec Corporation | Performing fencing operations in multi-node distributed storage systems |
US9124534B1 (en) * | 2013-02-27 | 2015-09-01 | Symantec Corporation | Systems and methods for managing sub-clusters within dependent clustered computing systems subsequent to partition events |
CN103577247A (zh) * | 2013-11-13 | 2014-02-12 | 南京斯坦德通信股份有限公司 | 基于Rocks集群技术的虚拟机计算和存储集群及其构建方法 |
US9450852B1 (en) * | 2014-01-03 | 2016-09-20 | Juniper Networks, Inc. | Systems and methods for preventing split-brain scenarios in high-availability clusters |
US9852034B2 (en) * | 2014-03-24 | 2017-12-26 | International Business Machines Corporation | Efficient high availability for a SCSI target over a fibre channel |
US10341252B2 (en) * | 2015-09-30 | 2019-07-02 | Veritas Technologies Llc | Partition arbitration optimization |
US9836366B2 (en) * | 2015-10-27 | 2017-12-05 | Netapp, Inc. | Third vote consensus in a cluster using shared storage devices |
US10205782B2 (en) * | 2016-04-29 | 2019-02-12 | Netapp, Inc. | Location-based resource availability management in a partitioned distributed storage environment |
US10432713B2 (en) * | 2016-06-30 | 2019-10-01 | Veritas Technologies Llc | Application aware input/output fencing |
CN106155745A (zh) * | 2016-07-08 | 2016-11-23 | 北京百度网讯科技有限公司 | 基本输入输出系统的升级方法、装置和系统 |
US10412066B1 (en) * | 2017-01-31 | 2019-09-10 | Veritas Technologies Llc | Hierarchical input/output fencing in clustered environments |
US11079971B2 (en) * | 2017-03-31 | 2021-08-03 | Veritas Technologies Llc | Input/output (i/o) fencing without dedicated arbitrators |
-
2017
- 2017-03-31 US US15/476,415 patent/US11079971B2/en active Active
-
2018
- 2018-03-29 WO PCT/US2018/025232 patent/WO2018183733A1/en active Application Filing
- 2018-03-29 CN CN201880028528.6A patent/CN110612510B/zh active Active
- 2018-03-29 EP EP18721889.6A patent/EP3602268B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8281071B1 (en) * | 2010-02-26 | 2012-10-02 | Symantec Corporation | Systems and methods for managing cluster node connectivity information |
Also Published As
Publication number | Publication date |
---|---|
EP3602268B1 (en) | 2023-11-29 |
CN110612510A (zh) | 2019-12-24 |
EP3602268A1 (en) | 2020-02-05 |
US11079971B2 (en) | 2021-08-03 |
US20180285221A1 (en) | 2018-10-04 |
WO2018183733A1 (en) | 2018-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10412066B1 (en) | Hierarchical input/output fencing in clustered environments | |
EP3357191B1 (en) | Input/output fencing optimization | |
US10990462B2 (en) | Application aware input/output fencing | |
US10127124B1 (en) | Performing fencing operations in multi-node distributed storage systems | |
CN110612510B (zh) | 无需专用仲裁器的输入/输出(i/o)隔离 | |
EP3759597A1 (en) | Systems and methods for running applications on a multi-tenant container platform | |
US9098392B1 (en) | Systems and methods for changing fencing modes in clusters | |
US20150278048A1 (en) | Systems and methods for restoring data in a degraded computer system | |
US10749921B2 (en) | Techniques for warming up a node in a distributed data store | |
US9230121B1 (en) | Techniques for persistently toggling a FIPS-140 cryptographic mode of a clustered storage system | |
CN102904946B (zh) | 集群内节点管理方法和装置 | |
CN110046138B (zh) | 一种iSCSI目标器多实例处理方法及分布式存储系统 | |
US10325096B1 (en) | Modifying a portion of a read-only file system | |
US8225009B1 (en) | Systems and methods for selectively discovering storage devices connected to host computing devices | |
US11188393B1 (en) | Systems and methods for performing load balancing and distributed high-availability | |
US20170242605A1 (en) | Guid partition table based hidden data store system | |
GB2502288A (en) | Modifying the order of checking virtual machines for cached disc data | |
US9805047B1 (en) | Systems and methods for retrieving data | |
RU2750642C2 (ru) | Система и способ регистрации уникального идентификатора мобильного устройства | |
US20150112940A1 (en) | System, information processing apparatus, acquisition method, and recording medium | |
JP2021009554A (ja) | コンピュータ装置、データ共有システム、データアクセス方法、及びプログラム | |
US8914345B1 (en) | Systems and methods for host communication in a clustered file system | |
CN116244034A (zh) | 文件锁实现方法、装置、设备及存储介质 |
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 |