CN109690494A - 系统存储装置中的分层容错 - Google Patents
系统存储装置中的分层容错 Download PDFInfo
- Publication number
- CN109690494A CN109690494A CN201780054867.7A CN201780054867A CN109690494A CN 109690494 A CN109690494 A CN 109690494A CN 201780054867 A CN201780054867 A CN 201780054867A CN 109690494 A CN109690494 A CN 109690494A
- Authority
- CN
- China
- Prior art keywords
- website
- data
- failure
- failure group
- group
- 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.)
- Granted
Links
Classifications
-
- 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/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/182—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/187—Voting techniques
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/186—Passive fault masking when reading multiple copies of the same data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
实施例使数据库管理系统(DBMS)能够管理两级盘故障组。通过将用于DBMS的盘组的盘分组为两级故障组(即,均包含盘的两个或更多个“故障组”的“数据站点”)来实现这两级冗余。这种盘分组系统允许DBMS有可能容忍第一站点的全部和第二站点的一部分的丢失。这种DBMS使用基于故障组级投票和站点级投票这两者的多级投票系统来识别存储关键管理数据的管理数据结构(ADS)的当前版本。除了存储数据库数据的数据站点之外,DBMS还包括具有存储ADS的副本的单个仲裁故障组的仲裁站点。仲裁站点在多级投票事件期间对站点级投票有贡献。
Description
权益声明
本申请要求于2017年4月21日提交的标题为“Hierarchical Fault Tolerance InSystem Storage”的美国申请No.15/494240的优先权,该美国申请进而要求于2016年9月16日提交的标题为“Hierarchical Fault Tolerance In Extended Storage Deployment”的美国临时申请No.62/396059的权益,每个申请的全部内容都通过引用并入本文,如同在本文完全阐述一样。
技术领域
本发明涉及改善由单个冗余解决方案提供的数据库冗余保护,更具体而言,涉及使用两级故障分组(failure grouping)来镜像存储于为数据库管理系统服务的盘组内的数据以及基于两级故障分组使用多级投票来识别关键管理数据的当前版本的单个卷管理器。
背景技术
数据库管理员确保数据库管理系统所存储的数据的可用性和完整性的一种方式是通过冗余地存储数据,即,存储并维护数据库数据的多个副本。冗余地存储数据允许数据库管理系统在一定程度上容忍数据丢失。例如,在第一数据结构上存储特定文件的副本并且在不同的第二数据结构上存储该特定文件的另一副本的数据库管理系统仅在第一和第二数据结构都丢失时才丢失该特定文件。因此,给定示例中的数据库管理系统容忍第一和第二数据结构之一的丢失,但不能容忍两个数据结构都丢失。
在一些情况下,数据库管理员被要求通过在多个站点创建数据的冗余副本来保护由数据库管理系统维护的数据,其中每个站点位于与其它站点不同的位置。例如,系统管理员维护数据库管理系统在第一地理城市中的一个站点处的存储,以及数据库管理系统在第二地理城市中的另一站点处的更多存储。作为另一个示例,系统管理员在建筑物内的第一火灾单元(fire cell)中维护第一站点,并在同一建筑物中的另一个火灾单元中维持另一站点。冗余地存储在多个站点的数据防止诸如火灾、地震等物理威胁造成的数据丢失。
诸如独立磁盘冗余阵列(RAID)之类的传统存储冗余以两种方式之一部署:a)跨同一站点内的多个故障组,或b)跨两个不同站点。传统的RAID技术都不能跨多个站点实现这两种存储冗余,其中每个站点涵盖多个故障组。因此,为了容忍整个站点的丢失以及在第二站点处的存储单元的一部分的同时丢失,数据库管理员必须通过使多种技术分层来实现跨多个站点的冗余以及对于站点的冗余。
数据库管理员使多种技术分层,以基于期望的数据容错来冗余地存储数据库数据,并且可以使用一种技术来跨两个不同的站点进行保护并使用另一种技术来跨给定站点内的故障组进行保护。例如,数据库管理员(其管理跨两个站点具有冗余数据的数据库管理系统)在每个站点处部署存储阵列,并附加地使用RAID 1跨两个站点镜像(mirror)数据。存储阵列在站点内提供冗余(这允许对于站点内的一些存储单元的丢失的容忍),而RAID 1将两个站点作为整体进行镜像。
对于单个数据库管理系统来说,组合和管理多个冗余解决方案会是困难的。例如,这些分层冗余解决方案需要数据库管理员为单个数据库管理系统管理两个不同的冗余解决方案,这增加了系统的管理开销,并且还增加了错误配置的机会。具有跨多个站点和在站点自身内部都提供数据冗余的简化的单一解决方案将是有益的。
本节中描述的方法是可以追求的方法,但不一定是以前构想或追求的方法。因此,除非另有指示,否则不应当仅仅由于它们被包括在本节中而假设本节中描述的任何方法是现有技术。
附图说明
在附图中:
图1是描绘了示例性数据库管理系统的框图。
图2描绘了用于跨两个故障组和跨站点镜像数据的流程图。
图3描绘了卷管理器实施多级投票事件以确定在由数据库管理系统存储的数据的多个副本当中关键管理数据的哪个版本是当前版本的流程图。
图4是可以在其上实现实施例的计算机系统的框图。
图5是可以用于控制计算机系统的操作的基本软件系统的框图。
具体实施方式
在下面的描述中,出于解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。但是,将清楚的是,可以在没有这些具体细节的情况下实践本发明。在其它情况下,以框图形式描述众所周知的结构和设备,以便避免不必要地模糊本发明。
总体概述
一个或多个实施例使得数据库管理系统(DBMS)的卷管理器能够管理服务于DBMS的盘组(disk group)中的两级冗余。通过将盘组的盘分组为两级故障组,即,两个或更多个“数据站点”,来实现这两级冗余,每个“数据站点”涵盖两个或更多个“故障组”。这个盘分组系统可以用于跨多个站点(其可以在物理上分开)以及还跨每个站点内的多个故障组创建冗余,从而允许系统有可能在丢失第二站点中的存储单元的一部分的同时容忍整个第一站点的丢失。
此外,根据一个或多个实施例,具有两级故障组的DBMS采用基于故障组级投票和站点级投票这两者的多级投票系统来识别最当前版本的管理数据结构(ADS),其中ADS存储关键管理数据,诸如伙伴关系和状态表(Partnership and Status Table)和/或投票文件等。除了存储由DBMS维护的数据的数据站点之外,DBMS还包括仲裁(quorum)站点,该仲裁站点具有存储了ADS的副本的单个仲裁故障组。仲裁站点在多级投票活动期间提供站点级投票。
另外,存储由DBMS维护的数据库数据的每个数据站点存储ADS的多个副本,其中ADS的每个副本被存储在数据站点的不同故障组内。数据库管理系统可以自动地将存储ADS的副本的仲裁故障组添加到数据站点,以增加在数据站点内存储的ADS的副本的数量。
管理数据结构
图1描绘了DBMS 100的示例性资源布置,其中服务器设备110托管数据库服务器实例112和卷管理器114,数据库服务器实例112逻辑地管理由DBMS 100维护的用户数据,卷管理器114管理为DBMS 100服务的盘组(其涵盖图1的盘“A”-“Y”)并且还管理如何将数据存储在盘组内。用户数据可以是用户选择在DBMS 100内维护的任何数据。
卷管理器114将用于DBMS 100的数据存储在存储单元中。存储单元(或“存储介质”)是可以用于持久地存储数据的物理计算机存储设备。存储单元可以是盘、盘驱动器、盘架、盘阵列、块存储装置、或可以用于持久地存储数据的任何其它物理计算机存储设备。属于特定数据库管理系统的所有存储单元在本文被称为“盘组”。本文对存储单元作为“盘”的引用是示例性的,并且不将实施例限制成作为特定种类的存储设备的存储单元。
卷管理器114在一个或多个ADS中跟踪关于系统100的存储单元的信息,这一个或多个ADS跟踪关于系统100内的存储单元的身份、状态和组成员资格(下面进一步详细讨论)的信息。ADS的一个示例是伙伴关系和状态表(PST),它存储关于为DBMS 100服务的盘组中的盘的以下一项或多项信息:盘编号、盘状态、伙伴盘编号、心跳信息和故障组信息。本文对PST的引用是示例性的,根据实施例,任何形式的ADS可以用来代替PST。
ADS的另一个示例是投票文件。根据实施例,投票文件存储关于包括服务器设备110的节点集群(如果有的话)的节点的元数据。具体而言,投票文件中的元数据指示哪些节点是这种节点集群的成员以及来自节点的最新心跳等。投票文件中的信息还可以用于检测集群中的拆分场景。投票文件可以与盘组中存储的PST的副本共址,或者可以是PST的一部分。在适用时,投票文件中包括的元数据以与本文中结合PST描述的方式类似的方式引用盘组、故障组、数据站点和仲裁站点。
在系统100的示例配置中,卷管理器114将PST的副本存储在盘组的若干盘内。根据实施例,系统100内的每个数据站点存储PST的至少一个副本。卷管理器114更新并维护PST的所有副本,以反映盘组的当前状态。例如,卷管理器114在创建盘组时或者每当盘组配置改变(诸如由于盘的添加或删除、由于盘组中的盘的状态改变(例如,故障)等)时更新PST。如此,卷管理器114使用PST中的信息来确定盘状态和盘组成员资格。
故障组和数据站点
根据实施例,文件的副本在盘组的盘内维护,这些盘被组织成两级故障组。这两级故障组包括存储了用于DBMS的用户数据的两个或更多个“数据站点”,每个“数据站点”涵盖两个或更多个“故障组”。图2描绘了用于跨两个故障组并跨站点镜像数据的流程图200。
在流程图200的步骤202处,数据库管理系统的卷管理器针对存储用于数据库管理系统的数据库信息的多个存储单元维护故障组成员资格信息。根据实施例,故障组成员资格信息至少包括以下两项:成员资格信息,该成员资格信息对于多个故障组中的每一个,指示多个存储单元中属于该故障组的存储单元集合;以及映射信息,映射信息将多个故障组中的每个故障组映射到多个站点中的特定站点。例如,图1中描绘的DBMS 100的卷管理器114维护PST的多个副本,即,在故障组152、141-145和131-135中的每一个内。
卷管理器114在PST的每个副本内存储关于为DBMS 100服务的盘组中的每个盘所属的故障组的信息。在图1中描绘的示例性布置中,除了被指派给仲裁站点150内的故障组152的单个盘“A”以外,为DBMS 100服务的盘组内的盘各自成对地被指派给故障组,这在下面进一步详细描述。如此,PST的每个当前副本包括指示盘“B”和“C”被指派给故障组141、盘“D”和“E”被指派给故障组142等的元数据。
为系统100的每个故障组指派具有相同故障特点的盘集合。故障特点可以是物理特点,诸如处于同一个外壳中、在同一个网络上、在同一个存储机架上等。根据实施例,管理员可以向给定故障组指派少于具有共同物理故障特点(诸如在同一个存储机架上)的盘集合的全部。
此外,故障特点可以是逻辑故障特点而不是物理特点,其中逻辑故障特点源于数据在故障组的盘上的布置。具体而言,根据实施例,文件在故障组内跨多个盘被条带化(striped)。这允许I/O硬件并行地读写文件的块,而不是从单个磁盘串行地读写整个文件(这比并行读/写文件块花费更长的时间)。卷管理器114仅跨处于同一个故障组中的盘将特定文件条带化。以这种方式,单个盘的故障只会破坏在发生故障的盘的故障组中存储的数据,而不会影响在其它故障组中存储的数据的完整性。
由于数据跨故障组中的许多或所有盘被条带化(并且在故障组中存储的至少一个文件很可能跨故障组中的所有盘被条带化),因此故障组的盘具有共同的逻辑故障特点,因为故障组的单个盘的损坏会破坏整个故障组的数据。根据实施例,故障组包括至少一个盘,并且对于可指派给给定故障组的盘的数量没有限制。
根据实施例,DBMS 100还将故障组指派给站点。站点是表示盘组和盘的故障组之间的层次结构级别的逻辑构造。换句话说,盘组的盘被划分为多个站点,并且每个站点中的盘又被指派给一个或多个故障组。
管理员可以将系统100的第一站点定义为包括位于第一物理位置的所有盘,并且将系统100的第二站点定义为包括位于第二物理位置的所有盘。两个物理位置可以物理地分开,例如通过距离和/或通过使用物理屏障(诸如火灾单元壁)的分离。虽然站点可能存在物理隔离,但站点经由网络连接可通信地连接,如图1中所描绘的。
继续流程图200的步骤202的解释,卷管理器114在PST内存储将DBMS 100的每个故障组映射到特定站点的映射信息。根据图1中描绘的实施例,为DBMS 100服务的盘组中的每个盘被指派给站点130、140和150之一。因此,在为DBMS 100服务的盘组内存储的PST的每个当前副本存储了将故障组141-146映射到站点140、将故障组131-136映射到站点130以及将仲裁故障组152映射到仲裁站点150的映射数据。
此外,图1描绘了数据站点130处和数据站点140处的同等数量的资源。实际上,将相同的存储量指派给彼此镜像的站点是最有用的,因为彼此镜像的数据站点受限于可以由具有最小容量的数据站点存储的数据量。
镜像
卷管理器114使得数据按可配置的次数(诸如两次或三次)被冗余地存储在映射到特定数据站点的故障组中。因此,在数据站点内存储的给定文件的多个副本分别在数据站点的相同数量的故障组内维护。数据站点的每个故障组仅保持被存储到该数据站点的任何给定文件的一个副本。因此,卷管理器114通过同步执行下面进一步详细描述的步骤204-210来维护在为DBMS 100服务的盘组内存储的任何给定数据文件。卷管理器114通过在声明对数据文件的特定动作(诸如数据更新)完成之前执行所有步骤(或其中一个或多个步骤的替代动作)来同步地执行这些步骤。
继续流程图200的解释,在步骤204处,卷管理器在映射到多个站点中的第一站点的第一故障组的一个或多个存储单元中维护包括数据库信息的特定文件的第一主副本。例如,卷管理器114从数据库服务器实例112接收更新已存储在DBMS 100内的特定数据文件的命令。卷管理器114维护关于特定文件的位置的信息。这个被维护的位置信息指示文件的主副本被存储在站点140内的故障组141上。卷管理器114通过更新被存储在站点140中的故障组141上的特定数据文件的副本来维护该特定数据文件的主副本,如接收到的更新命令所指示的。
根据实施例,卷管理器114将由DBMS 100维护的一个或多个文件跨所指派的故障组的两个盘条带化,其中所指派的每个盘存储特定文件的一部分。根据实施例,卷管理器114将由DBMS 100维护的一个或多个文件的副本的所有数据完全存储在指派给故障组的盘之一内。
在步骤206处,卷管理器通过在映射到第一站点的第二故障组的一个或多个存储单元中同步维护特定文件的第一辅助副本来镜像第二故障组上的特定文件的第一主副本。例如,由卷管理器114维护的位置信息指示特定文件的辅助副本被存储在同一站点140中的故障组146内。卷管理器114通过更新被存储在站点140中的故障组146上的特定数据文件的副本来维护特定数据文件的辅助副本,如由接收到的更新命令所指示的。
存储在故障组146内的文件的镜像副本与存储在故障组141内的文件的副本被同步地维护。换句话说,在认为更新操作成功之前,对在站点140内存储的文件的主副本所做的任何改变也对盘组内的该文件的所有副本做出,包括存储在站点140内的该文件的辅助副本(或者,根据一个或多个实施例,对主副本和辅助副本中的一个或多个执行替代动作)。
因为在单个故障组中没有存储任何给定文件的两个副本,因此只有当站点内的临界数量(其多于一个)故障组发生故障时,数据站点才会发生故障。由于文件的任何给定副本的数据仅跨单个故障组的盘被条带化,并且每个故障组具有对故障组的数据进行镜像的至少一个其它故障组,因此站点内的至少两个(以及更多个)故障组的故障才会危及整个站点。
除了镜像数据站点内的文件之外,卷管理器114还将数据从数据站点140镜像到系统100内的第二数据站点130。在流程图200的上下文中,卷管理器通过执行步骤208-210将被存储到第一站点的数据镜像到多个站点中的第二站点。
在步骤208处,卷管理器在映射到第二站点的第三故障组的一个或多个存储单元中维护特定文件的第二主副本。继续上面的示例,由卷管理器114维护的位置信息指示特定文件的第二主副本被存储在站点130的故障组131内。卷管理器114通过更新被存储在站点130中的故障组131上的特定数据文件的副本来维护故障组131上的特定数据文件的主副本,如由接收到的更新命令所指示的。
根据一个或多个实施例,卷管理器114不指派特定故障组跨不同数据站点彼此镜像。不指派一个站点的故障组镜像另一个站点的故障组允许在站点之间镜像数据的灵活性。
在流程图200的步骤210处,卷管理器通过在映射到第二站点的第四故障组的一个或多个存储单元中同步维护特定文件的第二辅助副本来镜像第四故障组上的特定文件的第二主副本。例如,由卷管理器114维护的位置信息指示特定文件的辅助副本被存储在同一站点130中的故障组133内。卷管理器114通过更新被存储在站点130中的故障组133上的特定数据文件的副本来维护该特定数据文件的辅助副本,如由接收到的更新命令所指示的。
存储在故障组133内的文件的镜像副本与存储在故障组131中的文件的副本被同步地维护。换句话说,在认为更新操作成功之前,对在站点130内存储的文件的主副本所做的任何改变也对在站点130内存储的文件的辅助副本做出(或者关于主副本和辅助副本中的一个或多个执行替代动作)。
有时,在对给定文件的副本进行更新时,并非文件的所有副本都可用。当正在更新的文件的一个或多个副本不可用时,卷管理器114对不可用的副本执行替代动作,该替代动作满足同步维护文件的所有副本的要求,如结合流程图200所描述的。
例如,可以对文件的不可用副本执行的替代动作是卷管理器114在元数据中记录文件的不可用副本是陈旧的。基于这个记录的元数据,下次当该文件的陈旧副本变得可用时,卷管理器114利用已经对该文件的其它副本所做的改变来更新该文件,即,基于记录了对系统100中的文件所做的改变的改变日志。当文件的给定副本是陈旧的时,卷管理器114不使用文件的那个副本来响应对文件的读取请求。根据一个或多个实施例,仅在当进行改变时文件的至少一个副本可用的情况下,对于给定文件的动作才被认为是成功的。
取决于盘可用性,卷管理器114可以在任何给定时间访问站点130和140内存储数据文件的副本的任何位置,以便检索文件的当前版本。如果卷管理器114尝试从文件的第一副本读取,并且该文件是不可用或陈旧的,那么卷管理器114立即并自动尝试从该文件的不同副本读取,然后根据需要从另一个副本读取,直到卷管理器114识别并读取了文件的可用和当前副本。
除非文件的所有副本都不可用,否则文件的一个或多个副本的不可用性不会暴露给文件的请求者。例如,数据库服务器实例112从卷管理器114请求(结合流程图200描述的)特定文件。卷管理器114从故障组141、146、131或133内维护的文件的四个副本中的任何一个中检索文件的有效副本,并将特定文件的该副本返回到数据库服务器实例112,而不需要数据库服务器实例112具有关于数据的底层结构的任何信息。换句话说,在数据库数据被存储的文件系统的结构对数据库服务器实例112是透明的。
盘合作(disk partnering)
继续前面的示例,由于特定文件的副本被存储在站点140内的两个故障组141和146内,因此站点140可以容忍故障组141或146中的任何一个(但不是两者)的丢失并且仍然维护站点内的特定文件的一个有效副本。
假设需要在任何给定站点内的所有文件的两个副本,并且没有对于文件的所需两个副本可以被保存到哪两个故障组的任何约束,那么存在可以存储任何给定文件的副本的大量可能的故障组的组合。由于用于任何给定文件的可能存储位置的大量组合,任何双重故障(即,站点140中的任何两个故障组的故障)将导致丢失由站点140存储的至少一个文件的两个副本的可能性增加。随着故障组数量的增加,任何双重故障都会造成站点数据丢失的可能性增加。所描述的在站点内存储所有文件的两个副本的要求是用于说明原理的示例。根据一个或多个实施例,卷管理器114可以在站点内维护文件的任意数量的副本,包括每个文件一个、两个和三个副本。
如此,根据实施例,卷管理器114基于文件的主副本在站点内的放置来限制可以在哪些故障组上放置文件的辅助副本。换句话说,卷管理器114使任何给定故障组与同一站点中的一个或多个其它伙伴故障组(其包括少于映射到该站点的故障组的全部)成为伙伴,其中主副本存储在给定故障组中的任何文件的辅助副本必须存储在伙伴故障组之一中。在用于说明流程图200的示例中,故障组141和146是站点140内的伙伴故障组,故障组131和133也是站点130内的伙伴故障组。
根据实施例,卷管理器114在PST中记录识别故障组伙伴关系的合作信息。因此,作为PST的最新版本的系统100内的PST的所有当前副本都反映了所记录的信息。至少部分地基于这种合作信息,卷管理器114确定将具有在故障组141上存储的主副本的文件的辅助副本存储到故障组146。另外,至少部分地基于这种合作信息,卷管理器114确定将具有在故障组131上存储的主副本的文件的辅助副本存储到故障组133。使用故障组合作,卷管理器114降低了双重故障将导致任何给定文件的所有副本丢失的可能性。
根据实施例,卷管理器114选择具有不同物理故障特点的故障组。例如,卷管理器114确定故障组141和146在不同的盘机架上(要么基于概率、要么基于关于故障组的物理配置的已知信息)并且,至少部分地基于这个确定,将故障组141和146指派为伙伴故障组。如此,如果包含用于故障组141的盘的盘机架被损坏或拔出,那个第二副本可能保持在线,因为它存储在不同物理盘机架上的盘中。盘机架是全部由同一电源供电的盘的集合。
当第一故障组中的盘的可排序标识符与另一个故障组中的盘的标识符紧密排序时,卷管理器114确定两个故障组很可能位于同一盘机架内。具体而言,管理员多次按盘的位置的次序为盘指派名称。这些盘名称暗示盘的位置。
根据实施例,故障组合作在同一站点内完成。根据实施例,在一个站点内的特定盘上存储的数据可以被镜像在系统的第二站点中的任何一个或多个盘上,而不要求来自第一站点内的特定故障组的数据必须被存储到第二站点内的任何特定的“合作”故障组。
PST数据的镜像
为了保留PST,卷管理器114将PST的副本存储在每个数据站点内的多个故障组内,并且还存储在至少一个仲裁站点内。存储PST的副本的每个故障组只有PST的一个副本,这确保任何给定故障组的丢失将只会导致最多丢失PST的一个副本。可能存在不存储PST的副本的故障组,诸如图1的故障组146和136。根据实施例,每个数据站点包括至少一个存储PST的副本的故障组。
一般而言,为了容忍给定站点内的n个故障,系统内的任何给定数据必须有2n+1个副本。因此,为了保证容忍给定数据站点内的两个故障组的故障,站点内必须有PST的五个副本。如果在五个不同的故障组中有PST的五个副本,如果给定站点内存储有PST的两个故障组被破坏,那么该站点内有三个未损坏的存储有PST的故障组。因此,如下面详细描述的,这种站点仍然有可能在故障组级投票中产生关于PST的哪个副本最新的大多数(majority)。在图1中,数据站点130和140中的每一个均存储PST的五个副本,即,在站点140的故障组141-145内和站点130的故障组131-135内。根据实施例,任何给定的数据站点存储PST的至多五个副本。
仲裁站点
根据实施例,在数据库管理系统中包括至少一个仲裁站点。根据实施例,仲裁站点包括一个或多个仲裁故障组,每个仲裁故障组存储PST的副本。根据实施例,仲裁故障组是存储ADS并且不用于存储DBMS的用户数据的管理故障组。用户数据是用户使得在数据库管理系统内维护的数据。
图1描绘了映射到单个仲裁故障组152的仲裁站点150。仲裁站点是映射到一个或多个仲裁故障组的站点,每个仲裁故障组存储PST的单个副本。因此,仲裁故障组152包括让仲裁站点150投出对于PST的最新版本的站点级投票的足够信息,如下面详细描述的。
添加/维护仲裁故障组相对便宜,因为仲裁故障组仅需要存储相对小的ADS。例如,仲裁故障组可以由NFS安装的文件系统实现,该文件系统仅存储所需的ADS(因为没有用户数据存储在仲裁故障组上)。仲裁故障组相对于系统的其它故障组具有孤立的故障特点。
根据实施例,管理员可以将仲裁故障组添加到数据站点(即,存储用户数据的站点)。将仲裁故障组添加到数据站点可以用于增加数据站点内的故障组的数量,以达到确保DBMS稳定性所需的每站点的最小故障组数。例如,在包括两个数据站点的系统中,其中每个数据站点仅包括两个故障组,那个系统的管理员在每个站点内配备一个或多个附加的仲裁故障组,以将站点中的故障组的数量增加至三个故障组的最小值。由于每个仲裁故障组都被配置为存储ADS的副本,因此通过使奇数个实体可以对系统内的ADS的最新版本进行投票,将存储有ADS的副本的至少一个仲裁故障组添加到每个站点可以增加系统的稳定性,如下面详细描述的。
根据一个或多个实施例,在包括仅具有两个故障组的数据站点的系统中,那个系统的管理员在站点内配备两个或更多个附加的仲裁故障组。管理员不使ADS的副本存储到所有附加的仲裁故障组,从而导致一个或多个“未使用的”仲裁故障组。在此类实施例中,在系统的卷管理器检测到站点内存储有ADS的副本的仲裁故障组的故障时,卷管理器自动在一个或多个“未使用的”仲裁故障组中创建ADS的副本。根据此类实施例,“未使用的”仲裁故障组用作备用仲裁故障组以防止故障。
根据实施例,卷管理器114确定DBMS内的特定数据站点存储ADS的少于五个副本(图1中未绘出)。响应于确定特定数据站点存储ADS的少于最小数量的副本(例如,五个),卷管理器114确定特定数据站点内的任何故障组是否还不包含ADS的副本。如果特定数据站点内存在尚未包含ADS的副本的故障组,那么卷管理器114自动将ADS的副本存储到该故障组以增加站点内的ADS的副本数量。卷管理器114重复如下处理:识别没有ADS的副本的故障组,并在这种故障组上创建ADS的新副本,直到在特定站点内存储ADS的最小数量的副本。
根据一个或多个实施例,数据库管理系统可以包括比图1中描绘的三个站点更多的站点。例如,特定系统包括五个站点,其中两个站点是数据站点,三个站点是仲裁网站。作为附加的示例,特定系统包括五个站点,其中三个站点是数据站点,并且两个站点是仲裁站点。可替代地,包括三个数据站点的系统可以包括被配置为投出两个站点级投票的单个仲裁站点。如本文针对单票仲裁站点详细描述的那样制定双站点级投票。
对于PST的分布式投票
DBMS 100使用PST中的信息来确定要信任哪些信息源(即,盘)。PST的每个副本都存储关于盘组内存储的PST的所有副本的信息,包括存储有PST副本的盘的身份和PST副本的版本。
但是,由于PST也被存储在可能出错的盘上,因此卷管理器114还必须确定在所有存储的PST副本当中PST的哪一个或多个副本包含可信赖的信息(即,未过期或损坏的信息)。其中一些PST副本可能无法反映对PST所做的最新改变,例如,如果存储了PST的特定副本的盘在PST的任何给定更新期间被拔出。因此,当盘重新联机时,在该盘上存储的PST副本将不是PST的最新版本(其被称为PST的“陈旧”副本)。
在某些时候,卷管理器114必须基于来自PST的信息来管理数据库,诸如当卷管理器114重新启动时。在发现哪些盘是盘组的一部分的初始化步骤期间,卷管理器114针对为DBMS 100服务的盘组识别PST的所有副本,并运行多级投票事件以确定PST的哪一个或多个副本表示PST的当前版本。图3描绘了卷管理器实施多级投票事件以确定在由数据库管理系统存储的ADS的多个副本当中ADS的哪个版本是当前版本的流程图300。
在步骤302处,数据库管理系统的卷管理器在一个或多个管理数据结构(ADS)中针对存储用于数据库管理系统的数据库信息的多个存储单元维护故障组成员资格信息。根据实施例,故障组成员资格信息包括:对于多个故障组中的每一个,指示多个存储单元当中属于该故障组的存储单元集合的成员资格信息;将多个故障组中的每个故障组映射到多个数据站点中的数据站点的映射信息;以及指示映射到仲裁故障组的仲裁站点的仲裁信息。例如,如上面所讨论的,卷管理器114在PST中维护指示为系统100服务的盘组的盘被组织成的故障组、数据站点和仲裁站点的信息。
根据实施例,通过执行流程图300的步骤304-310,卷管理器114实施多级投票事件,以在多个存储单元内维护的ADS的所有副本当中识别ADS的当前版本。
在步骤304处,卷管理器从映射到多个数据站点的各个数据站点的故障组中检索对于ADS的当前版本的多个故障组级投票。例如,卷管理器114从数据站点130和140中的每一个中检索对于PST的当前版本的故障组级投票。根据实施例,给定的数据站点存储PST的奇数个副本。这允许每个数据站点在关于PST的最当前版本的分布式投票期间达成站点级多数共识。
具体而言,卷管理器114从存储PST的副本的站点130内的所有故障组的每个故障组131-135中检索关于PST的当前版本的故障组级投票。因此,卷管理器114使用故障组131-135中的每一个作为单个故障组级投票的源。卷管理器114基于存储在故障组中并且针对故障组的最当前信息识别给定故障组的故障组级投票,其中最当前信息指示针对故障组的PST的工作版本。以类似的方式,卷管理器114从存储PST副本的站点140内的所有故障组的故障组141-145中检索关于PST的当前版本的故障组级投票。
在步骤306处,对于多个数据站点中的每个数据站点并基于来自数据站点的多个故障组级投票,卷管理器识别对于由多个故障组级投票的大多数所指示的ADS的当前版本的站点级投票。例如,卷管理器114基于来自站点130的故障组级投票确定反映了针对PST的当前版本的站点130的站点级多数共识的站点级投票。当给定站点内存储有PST的故障组(即,站点130的故障组131-135)的总数中的大多数投票给PST的相同版本作为PST的最当前版本时,达成站点级共识。卷管理器114还基于来自站点140的故障组级投票确定反映了关于PST的当前版本的针对站点140的站点级多数共识的第二站点级投票。
根据实施例,如果在给定的数据站点内存储有PST的五个故障组中的至少三个进行投票,并投票给PST的相同版本,那么卷管理器114从那个数据站点设置站点级投票,让PST的当前版本成为由来自故障组的投票的大多数识别的PST的版本。作为进一步说明,如果给定的数据站点具有三个故障组,那么该站点将具有PST的三个副本,每个故障组一个副本。为了形成多数,具有PST的副本的其中两个故障组应当可以在故障组级进行投票,以便让站点能够产生有效的站点级投票。此外,如果数据站点有五个故障组,那么(假定需要具有PST的尽可能多副本,PST的多达五个副本)五个故障组中的每一个都将托管PST的副本。在这种情况下,具有PST的副本的故障组中的三个应当可以在故障组级进行投票,以使该站点能够产生有效的站点级投票。
在步骤308处,卷管理器从仲裁站点检索对于ADS的当前版本的仲裁站点级投票。例如,卷管理器114还识别仲裁站点150的站点级投票,这是基于存储在仲裁站点150内的仲裁故障组152中并针对仲裁故障组152的信息对于PST的当前版本的投票。
在步骤310处,基于由来自多个数据站点和来自仲裁站点的站点级投票中的大多数所指示的ADS的版本,卷管理器识别ADS的当前版本。例如,在多级投票事件期间,卷管理器114将要信任的PST的版本识别为从站点130-150接收大多数站点级投票的PST的版本。
在来自站点130和140的站点级投票不反映PST的相同版本的情况下,仲裁站点150充当打破平局者。因为仲裁站点150维护了足以投出对于PST的最新版本的投票的信息,所以来自仲裁站点150的投票有助于为作为PST的最当前版本的PST的给定版本创建多数站点级投票。
在步骤312处,至少部分地根据基于由大多数站点级投票指示的ADS的版本来识别ADS的当前版本,卷管理器使用识别出的ADS当前版本管理用于数据库管理系统的数据库信息。例如,卷管理器114基于经由多数站点级投票识别出的PST的版本来管理为系统100服务的盘组和存储在其上的数据。
从盘故障中恢复
假定使用上述故障组和数据站点这两者,除了第二站点中的一部分故障组的丢失之外,实施例还可以容忍整个站点的丢失。例如,由于系统100内的上述镜像,系统可以可靠地容忍整个站点130的丢失/损坏,同时可以容忍站点140中的一个或有时多个故障组的丢失/损坏,而不会损坏用户数据或ADS。
但是,如果系统100内的数据站点发生故障,那么有可能在站点级不存在多数共识,因为只有一个数据站点和仲裁站点150可用于进行站点级投票,而剩余的两个站点级投票会导致平局。根据一个或多个实施例,如果剩余的两个站点级投票不是针对ADS的相同版本,那么卷管理器114不安装盘组。
如果仲裁站点150发生故障,那么系统100类似地在多级投票的站点级处留下潜在的平局。根据一个或多个实施例,在偶数个站点级投票的情况下,如果站点级投票不产生PST的多数选择版本(即,存在平局),那么卷管理器114不安装盘组。在这种情况下,需要管理员干预。
根据实施例,如果仲裁站点150发生故障并且同时数据站点(诸如站点130)发生故障,那么卷管理器114请求DBMS 100的管理员识别PST的当前版本。例如,卷管理器114检测到仲裁站点150和数据站点130当前都发生故障。根据实施例,响应于检测到这个故障,卷管理器114向系统100的管理员发送指示仲裁站点150和站点130都发生故障并且站点140是关于哪个是PST的最新版本进行站点级投票的唯一剩余站点的消息。根据实施例,管理员向卷管理器114授予使站点140成为ADS上的权威(authority)的许可。作为ADS上的权威的站点是卷管理器114在没有其它功能站点的情况下用来基于权威数据站点内的信息确定PST的当前版本的站点,即,通过制定站点级投票的处理,如上面详细描述的那样。在这个示例中,仅当站点140是所指定的ADS上的权威时,才需要来自站点140的站点级投票以识别PST的当前版本。在恢复先前发生故障的站点中的一个或多个站点后,卷管理器114自动恢复到上述多级投票系统。
根据实施例,管理员在系统100内为属性SITE_REPAIR_TIME设置值,其指定用于盘组中的任何给定数据站点的缺省修复时间。如果卷管理器114确定整个站点(诸如站点130)发生故障,那么使用SITE_REPAIR_TIME。在整个站点发生故障时,在站点中的盘被认为是永久性故障之前,卷管理器114允许过去由SITE_REPAIR_TIME指示的时间量。卷管理器114还分别维护用于任何给定盘和任何给定故障组的修复时间的属性。
根据实施例,SITE_REPAIR_TIME的缺省值为空。如果值为null,那么在没有用户干预的情况下永远不会重建经历过故障的站点。很多时候,整个数据站点的明显故障是由可修复的状况造成的,诸如站点之间的网络电缆连接的故障。此外,由破坏站点硬件的事件造成的站点故障可能需要管理员配备在其上重新创建被破坏站点的数据的新硬件。根据实施例,如果存在为盘指定的修复时间,诸如利用ALTER DISK GROUP OFFLINE DISK语句的DROPAFTER子句,则那个盘修复时间将覆盖SITE_REPAIR_TIME。
数据库管理系统体系架构
如图1中所示,示例性DBMS 100包括经由网络120通信地耦接的服务器设备110和站点130、140、150。根据实施例,示例性DBMS 100可以包括其它实体或设备,包括客户端设备、服务器设备和存储设备。图1中描绘的盘的数量是示例性的。
网络120可以用促进服务器设备110与站点130、140、150之间的信息交换的任何类型的介质和/或机制来实现。此外,网络120可以促进任何类型的通信协议的使用,并且可以是安全的或不安全的,这取决于特定实施例的要求。
服务器设备110可以由通信地连接到网络120的任何类型的计算设备来实现。服务器设备110可以是多节点系统中的节点,或者可以独立于任何其它节点发挥作用。在DBMS100中,服务器设备110配置有数据库服务器实例112,数据库服务器实例112实现管理在系统100内维护的用户数据的数据库服务器。
数据库服务器实例是包括软件和来自节点的资源分配的组合的服务器。具体而言,诸如数据库服务器之类的服务器是集成的软件部件和计算资源(诸如存储器、节点(即,计算设备)和/或节点上用于在处理器上执行集成的软件部件的进程)的分配的组合,软件和计算资源的组合专用于代表一个或多个客户端执行特定功能。
如上面详细描述的,服务器设备110还配置有卷管理器114。卷管理器114可以由管理数据库管理系统的盘组内的数据的任何卷管理系统(诸如Oracle自动存储管理)来实现。卷管理器114使用盘组来存储数据文件;盘组是作为一个单元、由卷管理器114管理的盘集合。在盘组内,卷管理器114暴露用于数据库文件的文件系统接口。
根据实施例,数据库服务器实例112和卷管理器114都共享对于在站点130、140和150内存储的数据库数据的访问。这种共享访问包括对于一组存储单元和对于存储在这些存储单元上的数据块的访问。取决于特定实现方式,服务器设备110可以配置有其它机制、处理和功能。
根据一个或多个实施例,结合数据库服务器实例112和卷管理器114描述的每个处理和/或功能是自动执行的,并且可以使用一个或多个计算机程序、其它软件元素和/或数字逻辑在通用计算机或专用计算机中的任何一个中实现,同时执行涉及与计算机的存储器的物理状态的变换和交互的数据检索、变换和存储操作。
数据库管理系统
在数据库管理系统(DBMS)的上下文中使用本发明的实施例。因此,DBMS的描述是有用的。DBMS管理数据库。DBMS可以包括一个或多个数据库服务器。数据库包括在持久性存储器机制(诸如为DBMS 100服务的存储单元)上存储的数据库数据和数据库字典。数据库数据可以被存储在一个或多个逻辑数据容器中。用户可以通过向数据库服务器实例提交使数据库服务器实例对存储在数据库中的数据执行操作的命令来与DBMS的数据库服务器的实例交互。例如,客户端设备处的用户经由数据库客户端向数据库服务器实例112提交数据库命令,其中数据库客户端维护与数据库服务器实例112的连接。用户可以是在客户端设备上运行的使数据库客户端与数据库服务器实例112交互的一个或多个应用。多方可以通过给定的应用访问数据库资源。多方和/或用户在本文也可以统称为用户。
卷管理器114是执行DBMS服务器软件的计算机系统进程,其使得进程管理DBMS100的文件系统和存储单元。例如,卷管理器114通过维护指示正在由系统100维护的每个数据文件在系统100的哪些存储单元上被找到的位置信息来管理DBMS 100的文件系统。作为另一个示例,卷管理器114通过维护指示各种存储单元的状态(包括特定盘当前是否不可用)的信息来管理DBMS 100的存储单元。卷管理器114可以通过诸如Oracle自动存储管理(ASM)之类的卷管理系统实现。关于作为卷管理系统的示例的Oracle ASM的更多信息在Oracle数据库在线文档11g第2版(11.2)的“Automatic Storage ManagementAdministrator's Guide”中找到,该文档通过引入并入于此,如同在本文中完全阐述一样。
硬件概述
根据一个实施例,本文描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行这些技术,或者可以包括数字电子设备,诸如被持久地编程为执行这些技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA),或者可以包括被编程为根据固件、存储器、其它存储装置或组合中的程序指令执行这些技术的一个或多个通用硬件处理器。这种专用计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制编程相结合,以实现这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或者结合硬连线和/或程序逻辑以实现这些技术的任何其它设备。
例如,图4是图示了可以在其上实现本发明的实施例的计算机系统400的框图。计算机系统400包括总线402或用于传送信息的其它通信机制、以及与总线402耦接以处理信息的硬件处理器404。硬件处理器404可以是例如通用微处理器。
计算机系统400还包括耦接到总线402的主存储器406,诸如随机存取存储器(RAM)或其它动态存储设备,用于存储将由处理器404执行的指令和信息。主存储器406还可以用于在由处理器404执行的指令的执行期间存储临时变量或其它中间信息。当被存储在处理器404可访问的非瞬态存储介质中时,这些指令使计算机系统400变成被定制为执行指令中指定的操作的专用机器。
计算机系统400还包括耦接到总线402的只读存储器(ROM)408或其它静态存储设备,用于存储用于处理器404的静态信息和指令。存储设备410(诸如磁盘、光盘或固态驱动器)被提供并耦接到总线402,用于存储信息和指令。
计算机系统400可以经由总线402耦接到显示器412(诸如阴极射线管(CRT)),用于向计算机用户显示信息。包括字母数字键和其它键的输入设备414耦接到总线402,用于将信息和命令选择传送到处理器404。另一种类型的用户输入设备是光标控件416(诸如鼠标、轨迹球或光标方向键),用于将方向信息和命令选择传送到处理器404并用于控制显示器412上的光标移动。这种输入设备通常在第一轴(例如,x)和第二轴(例如,y)这两个轴上具有两个自由度,这允许设备指定平面中的位置。
计算机系统400可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑(它们与计算机系统相结合,使计算机系统400成为或将计算机系统400编程为专用机器)来实现本文所述的技术。根据一个实施例,响应于处理器404执行主存储器406中包含的一个或多个指令的一个或多个序列,计算机系统400执行本文的技术。这些指令可以从另一个存储介质(诸如存储设备410)读入到主存储器406中。主存储器406中包含的指令序列的执行使得处理器404执行本文所述的处理步骤。在替代实施例中,可以使用硬连线的电路系统代替软件指令或与软件指令组合。
如本文使用的术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非瞬态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘、磁盘或固态驱动器,诸如存储设备410。易失性介质包括动态存储器,诸如主存储器406。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒带。
存储介质不同于传输介质但可以与传输介质结合使用。传输介质参与信息在存储介质之间的传送。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线402的导线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的那些。
各种形式的介质可以参与将一个或多个指令的一个或多个序列传送到处理器404以供执行。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统400本地的调制解调器可以在电话线上接收数据并使用红外发送器将数据转换成红外信号。红外检测器可以接收红外信号中携带的数据,并且适当的电路系统可以将数据放在总线402上。总线402将数据传送到主存储器406,处理器404从主存储器406检索并执行指令。由主存储器406接收的指令可以可选地在由处理器404执行之前或之后存储在存储设备410上。
计算机系统400还包括耦接到总线402的通信接口418。通信接口418提供耦接到网络链路420的双向数据通信,其中网络链路420连接到本地网络422。例如,通信接口418可以是集成服务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或者提供与对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口418可以是局域网(LAN)卡,以提供与兼容LAN的数据通信连接。还可以实现无线链路。在任何此类实现中,通信接口418都发送和接收携带表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。
网络链路420通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路420可以通过本地网络422提供与主机计算机424或到由互联网服务提供商(ISP)426运营的数据设备的连接。ISP 426进而通过全球分组数据通信网络(现在通常称为“互联网”428)提供数据通信服务。本地网络422和互联网428都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及在网络链路420上并通过通信接口418的信号(其携带去往和来自计算机系统400的数字数据)是传输介质的示例形式。
计算机系统400可以通过(一个或多个)网络、网络链路420和通信接口418发送消息和接收数据,包括程序代码。在互联网示例中,服务器430可以通过互联网428、ISP 426、本地网络422和通信接口418发送对应用程序的所请求的代码。
接收到的代码可以在被接收到时由处理器404执行,和/或被存储在存储设备410或其它非易失性存储器中以供稍后执行。
在前面的说明书中,已经参考众多具体细节描述了本发明的实施例,这些细节可以随着实现方式不同而有所变化。因而,说明书和附图应被视为说明性而非限制性的。本发明范围的唯一和排他性指示,以及申请人意图作为本发明范围的内容,是以发布这种权利要求书的具体形式从本申请发布的权利要求书集合的字面和等同范围,包括任何后续更正。
软件概述
图5是可以用于控制计算机系统400的操作的基本软件系统500的框图。软件系统500及其部件,包括它们的连接、关系和功能,仅仅是示例性的,并且不意味着限制(一个或多个)示例性实施例的实现。适于实现(一个或多个)示例性实施例的其它软件系统可以具有不同的部件,包括具有不同的连接、关系和功能的部件。
软件系统500被提供用于指导计算机系统400的操作。可以存储在系统存储器(RAM)406和固定存储装置(例如,硬盘或闪存)410上的软件系统500包括内核或操作系统(OS)510。
OS 510管理计算机操作的低级方面,包括管理进程的执行、存储器分配、文件输入和输出(I/O)以及设备I/O。表示为502A、502B、502C...502N的一个或多个应用可以被“加载”(例如,从固定存储装置410传送到存储器406中)以供系统500执行。意图在计算机系统400上使用的应用或其它软件也可以被存储为一组可下载的计算机可执行指令,例如,用于从互联网位置(例如,Web服务器、app商店或其它在线服务)下载和安装。
软件系统500包括图形用户界面(GUI)515,用于以图形(例如,“点击”或“触摸手势”)方式接收用户命令和数据。进而,这些输入可以由系统500根据来自操作系统510和/或(一个或多个)应用502的指令来操作。GUI 515还用于显示来自OS 510和(一个或多个)应用502的操作结果,于是用户可以提供附加的输入或终止会话(例如,注销)。
OS 510可以直接在计算机系统400的裸硬件520(例如,(一个或多个)处理器404)上执行。可替代地,管理程序或虚拟机监视器(VMM)530可以插入在裸硬件520和OS 510之间。在这个配置中,VMM 530充当OS 510与计算机系统400的裸硬件520之间的软件“缓冲”或虚拟化层。
VMM 530实例化并运行一个或多个虚拟机实例(“客户机”)。每个客户机包括“客户”操作系统(诸如OS 510),以及被设计为在客户操作系统上执行的一个或多个应用(诸如应用502)。VMM 530向客户操作系统呈现虚拟操作平台并管理客户操作系统的执行。
在一些情况中,VMM 530可以允许客户操作系统如同其直接在计算机系统400的裸硬件520上运行一样运行。在这些情况中,被配置为直接在裸硬件520上执行的客户操作系统的相同版本也可以在VMM 530上执行而无需修改或重新配置。换句话说,VMM 530可以在一些情况下向客户操作系统提供完全硬件和CPU虚拟化。
在其它情况中,客户操作系统可以被专门设计或配置为在VMM 530上执行以提高效率。在这些实例中,客户操作系统“意识到”它在虚拟机监视器上执行。换句话说,VMM 530可以在某些情况下向客户操作系统提供半虚拟化。
计算机系统进程包括硬件处理器时间的分配以及存储器的分配(物理和/或虚拟),存储器的分配用于存储由硬件处理器执行的指令的存储器的分配、用于存储由硬件处理器执行指令所生成的数据、和/或用于当计算机系统进程未运行时在硬件处理器时间的分配之间存储硬件处理器状态(例如,寄存器的内容)。计算机系统进程在操作系统的控制下运行,并且可以在计算机系统上执行的其它程序的控制下运行。
云计算
本文一般地使用术语“云计算”来描述计算模型,该计算模型使得能够按需访问计算资源的共享池,诸如计算机网络、服务器、软件应用和服务,并且允许以最少的管理工作或服务提供商交互来快速提供和释放资源。
云计算环境(有时称为云环境或云)可以以各种不同方式实现,以最好地适应不同要求。例如,在公共云环境中,底层计算基础设施由组织拥有,该组织使其云服务可供其它组织或公众使用。相反,私有云环境一般仅供单个组织使用或在单个组织内使用。社区云旨在由社区内的若干组织共享;而混合云包括通过数据和应用可移植性绑定在一起的两种或更多种类型的云(例如,私有、社区或公共)。
一般而言,云计算模型使得先前可能由组织自己的信息技术部门提供的那些职责中的一些职责改为作为云环境内的服务层来输送,以供消费者使用(根据云的公共/私人性质,在组织内部或外部)。取决于特定的实现方式,由每个云服务层提供或在每个云服务层内提供的部件或特征的精确定义可以有所不同,但常见示例包括:软件即服务(SaaS),其中消费者使用在云基础设施上运行的软件应用,同时SaaS提供者管理或控制底层云基础设施和应用。平台即服务(PaaS),其中消费者可以使用由PaaS的供应者支持的软件编程语言和开发工具,以开发、部署和以其它方式控制它们自己的应用,同时PaaS提供者管理或控制云环境的其它方面(即,运行时执行环境下的一切)。基础设施即服务(IaaS),其中消费者可以部署和运行任意软件应用,和/或配备处理、存储、网络和其它基础计算资源,同时IaaS提供者管理或控制底层物理云基础设施(即,操作系统层下面的一切)。数据库即服务(DBaaS),其中消费者使用在云基础设施上运行的数据库服务器或数据库管理系统,同时DbaaS提供者管理或控制底层云基础设施、应用和服务器(包括一个或多个数据库服务器)。
上述基本计算机硬件和软件以及云计算环境是为了说明可以用于实现(一个或多个)示例性实施例的基本底层计算机部件的目的而给出的。但是,(一个或多个)示例性实施例不必限于任何特定的计算环境或计算设备配置。相反,(一个或多个)示例性实施例可以在本领域技术人员依据本公开将理解为能够支持本文呈现的(一个或多个)示例性实施例的特征和功能的任何类型的系统体系架构或处理环境中实现。
Claims (14)
1.一种计算机实现的方法,包括:
数据库管理系统的卷管理器,在一个或多个管理数据结构(ADS)中针对存储用于数据库管理系统的数据库信息的多个存储单元维护故障组成员资格信息;
其中故障组成员资格信息包括:
成员资格信息,对于多个故障组中的每个故障组,指示所述多个存储单元中属于该故障组的存储单元集合,
映射信息,将所述多个故障组中的每个故障组映射到多个数据站点中的数据站点,以及
仲裁信息,指示映射到仲裁故障组的仲裁站点;
在所述多个存储单元内维护的ADS的所有副本当中,卷管理器进行多级投票以识别ADS的当前版本,包括:
卷管理器从映射到所述多个数据站点中的每个相应数据站点的故障组中检索对于ADS的当前版本的多个故障组级投票,
对于所述多个数据站点中的每个数据站点并基于来自该数据站点的所述多个故障组级投票,卷管理器识别对于由所述多个故障组级投票中的大多数所指示的ADS的当前版本的站点级投票,
卷管理器从仲裁站点检索对于ADS的当前版本的仲裁站点级投票,以及
基于由来自所述多个数据站点和来自仲裁站点的站点级投票中的大多数所指示的ADS的版本,卷管理器识别ADS的当前版本;
至少部分地根据基于由站点级投票中的大多数所指示的ADS的版本来识别ADS的当前版本,卷管理器使用识别出的ADS的当前版本来管理用于数据库管理系统的数据库信息;
其中所述方法由一个或多个计算设备执行。
2.如权利要求1所述的方法,其中:
映射到所述多个数据站点中的每个数据站点的至少一个故障组维护ADS的副本;以及
仲裁故障组维护ADS的副本。
3.如权利要求1所述的方法,还包括
卷管理器确定所述多个数据站点中的特定数据站点存储ADS的少于五个副本;
卷管理器将新故障组添加到该特定数据站点;
响应于将新故障组添加到特定数据站点,并且基于该特定数据站点存储ADS的少于五个副本,卷管理器将ADS的新副本保存到新故障组。
4.如权利要求1所述的方法,其中:
所述多个存储单元包括多个盘;以及
ADS存储以下的一个或多个:
所述多个盘中的每个盘的盘标识符,
所述多个盘中的每个盘的状态,
所述多个故障组中的每个故障组的伙伴关系信息;或
所述多个盘中的每个盘的心跳信息。
5.如权利要求1所述的方法,其中所述多个数据站点包括偶数个数据站点。
6.如权利要求1所述的方法,其中仲裁故障组是管理故障组,并且仲裁站点仅映射到作为仲裁故障组的单个故障组。
7.如权利要求1所述的方法,其中所述多个数据站点由第一数据站点和第二数据站点组成,还包括:
卷管理器检测仲裁站点和第一数据站点这两者的故障;
卷管理器从数据库管理系统的管理员接收使第二数据站点成为ADS上的权威的许可;以及
响应于接收到使第二数据站点成为ADS上的权威的许可,卷管理器基于来自第二数据站点的对于ADS的当前版本的站点级投票来识别ADS的当前版本。
8.一种计算机实现的方法,包括:
数据库管理系统的卷管理器针对存储用于数据库管理系统的数据库信息的多个存储单元维护故障组成员资格信息;
其中故障组成员资格信息至少包括以下两项:
成员资格信息,对于多个故障组中的每一个故障组,指示所述多个存储单元中属于该故障组的存储单元集合;以及
映射信息,将所述多个故障组中的每个故障组映射到多个数据站点中的数据站点;
卷管理器通过同步执行以下操作来维护在所述多个存储单元内包括数据库信息的特定文件:
在映射到所述多个站点中的第一站点的第一故障组的一个或多个存储单元中维护该特定文件的第一主副本;
通过在第二故障组的一个或多个存储单元中同步维护该特定文件的第一辅助副本,在映射到第一站点的第二故障组上镜像该特定文件的第一主副本;
通过以下操作将存储到第一站点的数据镜像到所述多个站点中的第二站点:
在映射到第二站点的第三故障组的一个或多个存储单元中维护该特定文件的第二主副本,以及
通过在第四故障组的一个或多个存储单元中同步维护该特定文件的第二辅助副本,在映射到第二站点的第四故障组上镜像该特定文件的第二主副本;
其中该方法由一个或多个计算设备执行。
9.如权利要求8所述的方法,其中所述多个站点中的至少两个站点在物理上是分开的并且经由网络连接可通信地连接。
10.如权利要求8所述的方法,还包括:
卷管理器维护将第二故障组指派为第一故障组的伙伴故障组的特定伙伴关系信息;
其中在第二故障组上镜像特定文件的第一主副本至少部分地基于该特定伙伴关系信息。
11.如权利要求10所述的方法,还包括:
卷管理器维护将第四故障组指派为第三故障组的伙伴故障组的第二伙伴关系信息;
其中在第四故障组上镜像特定文件的第二主副本至少部分地基于该第二伙伴关系信息。
12.如权利要求10所述的方法,还包括卷管理器基于第一故障组的盘位于与第二故障组的盘所在的物理机架不同的物理机架内而将第一故障组和第二故障组指派为伙伴。
13.如权利要求8所述的方法,还包括:
卷管理器检测所述多个站点中的特定站点的故障;
响应于检测到所述多个站点中的所述特定站点的故障,
计算何时基于由卷管理器存储的站点修复时间属性来重建存储在发生故障的所述特定站点上的数据。
14.存储一个或多个指令序列的一个或多个非瞬态计算机可读介质,所述一个或多个指令序列当由一个或多个处理器执行时使得执行权利要求1-13中任一项的步骤。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662396059P | 2016-09-16 | 2016-09-16 | |
US62/396,059 | 2016-09-16 | ||
US15/494,240 US10387273B2 (en) | 2016-09-16 | 2017-04-21 | Hierarchical fault tolerance in system storage |
US15/494,240 | 2017-04-21 | ||
PCT/US2017/050302 WO2018052780A1 (en) | 2016-09-16 | 2017-09-06 | Hierarchical fault tolerance in system storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109690494A true CN109690494A (zh) | 2019-04-26 |
CN109690494B CN109690494B (zh) | 2023-01-03 |
Family
ID=59930775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780054867.7A Active CN109690494B (zh) | 2016-09-16 | 2017-09-06 | 系统存储装置中的分层容错 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10387273B2 (zh) |
EP (2) | EP3745269B1 (zh) |
CN (1) | CN109690494B (zh) |
WO (1) | WO2018052780A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688262A (zh) * | 2019-08-23 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种基于主机仲裁的双活存储系统及存储方法 |
CN112703462A (zh) * | 2018-06-28 | 2021-04-23 | 推特股份有限公司 | 用于在可组合基础设施中保持存储设备故障容差的方法和系统 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10691369B2 (en) * | 2018-04-23 | 2020-06-23 | Hewlett Packard Enterprise Development Lp | Pool partner based replication |
US10795787B1 (en) * | 2018-10-31 | 2020-10-06 | EMC IP Holding Company LLC | Disaster recovery for software defined network attached storage using storage array asynchronous data replication |
US10795786B1 (en) * | 2018-10-31 | 2020-10-06 | EMC IP Holding Company LLC | Disaster recovery for software defined network attached storage using storage array synchronous data replication |
CN111857542A (zh) * | 2019-04-25 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
US11321178B1 (en) * | 2021-06-29 | 2022-05-03 | Dell Products, L. P. | Automated recovery from raid double failure |
CN113938487A (zh) * | 2021-09-13 | 2022-01-14 | 北京和利时系统工程有限公司 | 车站管理系统、站区中心节点、车站节点及控制中心节点 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6530035B1 (en) * | 1998-10-23 | 2003-03-04 | Oracle Corporation | Method and system for managing storage systems containing redundancy data |
US20040054648A1 (en) * | 2002-09-17 | 2004-03-18 | Hitachi, Ltd. | Method for creation and management of virtual volumes for DBMs |
US20050262382A1 (en) * | 2004-03-09 | 2005-11-24 | Bain William L | Scalable, software-based quorum architecture |
WO2005114525A2 (en) * | 2004-05-21 | 2005-12-01 | Dizpersion Group, L.L.C. | Method and system for providing network based target advertising and encapsulation |
US7681072B1 (en) * | 2004-08-13 | 2010-03-16 | Panasas, Inc. | Systems and methods for facilitating file reconstruction and restoration in data storage systems where a RAID-X format is implemented at a file level within a plurality of storage devices |
JP2010182287A (ja) * | 2008-07-17 | 2010-08-19 | Steven C Kays | 適応型インテリジェント・デザイン |
US8156195B2 (en) * | 2006-02-14 | 2012-04-10 | Emc Corporation | Systems and methods for obtaining ultra-high data availability and geographic disaster tolerance |
US8219848B2 (en) * | 2007-04-10 | 2012-07-10 | International Business Machines Corporation | Mechanism for recovery from site failure in a stream processing system |
US20130276024A1 (en) * | 2009-03-20 | 2013-10-17 | Ad-Vantage Networks, Inc. | Methods and systems for processing and displaying video content |
US8698116B2 (en) * | 2008-06-12 | 2014-04-15 | Gigaphoton Inc. | Extreme ultra violet light source apparatus |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7191357B2 (en) * | 2002-03-29 | 2007-03-13 | Panasas, Inc. | Hybrid quorum/primary-backup fault-tolerance model |
US6859811B1 (en) | 2004-01-15 | 2005-02-22 | Oracle International Corporation | Cluster database with remote data mirroring |
US7577868B2 (en) | 2005-09-30 | 2009-08-18 | Lockheed Martin Corporation | No data loss IT disaster recovery over extended distances |
US7516348B1 (en) | 2006-02-24 | 2009-04-07 | Emc Corporation | Selective power management of disk drives during semi-idle time in order to save power and increase drive life span |
US7669076B2 (en) | 2006-05-30 | 2010-02-23 | Oracle International Corporation | Estimating data availability on managed storage devices |
US9146705B2 (en) * | 2012-04-09 | 2015-09-29 | Microsoft Technology, LLC | Split brain protection in computer clusters |
US9639437B2 (en) * | 2013-12-13 | 2017-05-02 | Netapp, Inc. | Techniques to manage non-disruptive SAN availability in a partitioned cluster |
US9881697B2 (en) * | 2016-03-04 | 2018-01-30 | Sandisk Technologies Llc | Dynamic-shifting redundancy mapping for non-volatile data storage |
-
2017
- 2017-04-21 US US15/494,240 patent/US10387273B2/en active Active
- 2017-09-06 WO PCT/US2017/050302 patent/WO2018052780A1/en active Search and Examination
- 2017-09-06 EP EP20185470.0A patent/EP3745269B1/en active Active
- 2017-09-06 EP EP17771934.1A patent/EP3513296B1/en active Active
- 2017-09-06 CN CN201780054867.7A patent/CN109690494B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6530035B1 (en) * | 1998-10-23 | 2003-03-04 | Oracle Corporation | Method and system for managing storage systems containing redundancy data |
US20040054648A1 (en) * | 2002-09-17 | 2004-03-18 | Hitachi, Ltd. | Method for creation and management of virtual volumes for DBMs |
US20050262382A1 (en) * | 2004-03-09 | 2005-11-24 | Bain William L | Scalable, software-based quorum architecture |
WO2005114525A2 (en) * | 2004-05-21 | 2005-12-01 | Dizpersion Group, L.L.C. | Method and system for providing network based target advertising and encapsulation |
US7681072B1 (en) * | 2004-08-13 | 2010-03-16 | Panasas, Inc. | Systems and methods for facilitating file reconstruction and restoration in data storage systems where a RAID-X format is implemented at a file level within a plurality of storage devices |
US8156195B2 (en) * | 2006-02-14 | 2012-04-10 | Emc Corporation | Systems and methods for obtaining ultra-high data availability and geographic disaster tolerance |
US8219848B2 (en) * | 2007-04-10 | 2012-07-10 | International Business Machines Corporation | Mechanism for recovery from site failure in a stream processing system |
US8698116B2 (en) * | 2008-06-12 | 2014-04-15 | Gigaphoton Inc. | Extreme ultra violet light source apparatus |
JP2010182287A (ja) * | 2008-07-17 | 2010-08-19 | Steven C Kays | 適応型インテリジェント・デザイン |
US20130276024A1 (en) * | 2009-03-20 | 2013-10-17 | Ad-Vantage Networks, Inc. | Methods and systems for processing and displaying video content |
Non-Patent Citations (3)
Title |
---|
孙红等: "一种基于两阶段封锁的分布式实时提交协议", 《上海理工大学学报》 * |
左德承等: "面向事务处理的容错计算机系统结构设计与实现", 《高技术通讯》 * |
李晓翠等: "浅谈数据库故障的恢复技术", 《科技传播》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112703462A (zh) * | 2018-06-28 | 2021-04-23 | 推特股份有限公司 | 用于在可组合基础设施中保持存储设备故障容差的方法和系统 |
CN110688262A (zh) * | 2019-08-23 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种基于主机仲裁的双活存储系统及存储方法 |
CN110688262B (zh) * | 2019-08-23 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种基于主机仲裁的双活存储系统及存储方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3745269B1 (en) | 2022-01-12 |
US20180081768A1 (en) | 2018-03-22 |
CN109690494B (zh) | 2023-01-03 |
EP3745269A1 (en) | 2020-12-02 |
WO2018052780A1 (en) | 2018-03-22 |
EP3513296B1 (en) | 2021-04-14 |
EP3513296A1 (en) | 2019-07-24 |
US10387273B2 (en) | 2019-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109690494A (zh) | 系统存储装置中的分层容错 | |
CN100419664C (zh) | 存储网络中执行备份操作的方法 | |
US11099953B2 (en) | Automatic data healing using a storage controller | |
CN102831075B (zh) | 将预先存在数据导入存储池的方法和系统 | |
US9471259B2 (en) | Shared storage architecture | |
US9773012B2 (en) | Updating map structures in an object storage system | |
CN109074362A (zh) | 分布式系统中的拆分和移动范围 | |
CN110389864A (zh) | 独立盘冗余阵列重构装置及方法 | |
CN100359479C (zh) | 存储服务与系统 | |
CN102938784A (zh) | 应用于分布式存储系统中的数据存储方法和系统 | |
US20220147365A1 (en) | Accelerating Segment Metadata Head Scans For Storage System Controller Failover | |
CN100485630C (zh) | 具有中央控制的数据备份的方法和系统 | |
US11182094B2 (en) | Performing a recovery copy command using a recovery copy data structure for a backup volume lookup | |
US9606873B2 (en) | Apparatus, system and method for temporary copy policy | |
US11182081B2 (en) | Performing a recovery copy command to restore a safeguarded copy backup to a production volume | |
US20220311757A1 (en) | Cross-regional replication of keys | |
JP4937863B2 (ja) | 計算機システム、管理計算機及びデータ管理方法 | |
US20230195444A1 (en) | Software Application Deployment Across Clusters | |
CN101957728B (zh) | 用于向本地物理卷复制远程虚拟卷的装置和方法 | |
US11226746B2 (en) | Automatic data healing by I/O | |
US10789132B2 (en) | Performing a recovery copy command to create a recovery volume for a consistency group | |
Thomas | PostgreSQL 12 High Availability Cookbook: Over 100 recipes to design a highly available server with the advanced features of PostgreSQL 12 | |
CN110413370A (zh) | 用于实现依赖原始设备映射盘的虚拟机的数据备份的方法和系统 | |
US12001688B2 (en) | Utilizing data views to optimize secure data access in a storage system | |
US20230195535A1 (en) | Containerized Application Deployment to Use Multi-Cluster Computing Resources |
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 |