CN104750658A - 辅助式一致共享存储器 - Google Patents
辅助式一致共享存储器 Download PDFInfo
- Publication number
- CN104750658A CN104750658A CN201410706028.7A CN201410706028A CN104750658A CN 104750658 A CN104750658 A CN 104750658A CN 201410706028 A CN201410706028 A CN 201410706028A CN 104750658 A CN104750658 A CN 104750658A
- Authority
- CN
- China
- Prior art keywords
- node
- memory controller
- cluster
- shared
- memory area
- 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/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/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/202—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 processing functionality is redundant
- G06F11/2043—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 processing functionality is redundant where the redundant components share a common memory address 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1088—Reconstruction on already foreseen single or plurality of spare disks
-
- 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/2056—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 by mirroring
- G06F11/2087—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 by mirroring with a common controller
-
- 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/2089—Redundant storage control functionality
- G06F11/2092—Techniques of failing over between control units
-
- 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/2097—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 maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0837—Cache consistency protocols with software control, e.g. non-cacheable data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种辅助式一致共享存储器。在此描述了一种用于跨多个集群的一致共享存储器的装置。该装置包括结构存储器控制器和一个或多个节点。该结构存储器控制器管理对每个节点的共享存储器区域的访问,从而使得使用加载存储语义可访问每个共享存储器区域,即便是响应于该节点失效。该装置还包括全局存储器,其中,每个共享存储器区域被该结构存储器控制器映射到该全局存储器。
Description
技术领域
本公开总体上涉及多节点系统。更具体地,本公开涉及在多节点系统内共享存储器。
背景技术
多节点系统可包括多个节点。系统的类型包括但不限于网络、机架服务器系统、刀片服务器等等。在某些情况下,每个节点可以是跨在节点内的处理或输入/输出(I/O)设备之间具有硬件高速缓存一致性的一个或多个机架的大部分的大型对称多处理(SMP)节点。高速缓存一致性的结果是,大型SMP系统能够应用足够的计算资源来解决计算设备之间的细粒度负载均衡问题,同时具有大型存储器印迹来存储可通过存储器加载和存储语义由任何计算设备直接访问的应用数据。该系统还可以是松耦合(LC)系统,由多个较小的SMP系统组成,其中,节点能够在粗糙粒度水平上协调任务。
附图说明
通过参照包含所公开的主题的许多目标和特征的特定示例的附图可更好地理解以下详细描述。
图1是多节点系统模型的框图;
图2是部分一致系统的示图;
图3是全局存储器映射的示图;
图4是用于跨多个集群的一致共享存储器的过程流程图;以及
图5是可访问汇集存储器资源的节点500的框图。
贯穿本公开和附图使用相同的编号来引用相同的组件和特征。100系列中的编号指代最初在图1中发现的特征;200系列中的编号指代最初在图2中发现的特征,以此类推。
具体实施方式
SMP系统包括单个故障域,其中,系统的任何组件或软件的故障致使整个系统失效。例如,如果SMP节点失效,包括该SMP节点的整个系统失效。相反,LC系统将包含通过独立故障域的任何组件或软件的失效。因此,LC系统中受影响的服务器或组件可崩溃,但是其他服务器或组件将继续操作,就像失效从未发生似的。然而,LC系统中的存储器不通过加载/存储语义共享。而是,通过I/O驱动器发送消息以便完成LC系统中的存储器共享。当与SMP系统相比较时,由于与I/O驱动器相关联的更高延迟,使用I/O驱动器来实现存储器共享会降低LC系统的性能。
在此描述的实施例涉及跨多个集群的一致共享存储器。在实施例中,结构存储器控制器耦合到一个或多个节点。结构存储器控制器使用加载存储语义管理对每个节点内的存储器模块的访问。每个节点上的存储器模块可被包括在每个节点的共享存储器区域内。即便当节点已经失效时,共享存储器区域是可访问的。而且,结构存储器控制器管理全局存储器并且多个节点的每个共享存储器区域可被结构存储器控制器映射到全局存储器。结果,提供了可高速缓存的全局存储器。可高速缓存的全局存储器能够跨多个节点和集群递送数据一致性,同时维护每个节点或集群的独立故障域。进一步地,使用加载-存储语义可作为本地存储器访问和高速缓存全局存储器,同时每个集群维护其单独的故障域。附加地,共享存储器能够提供可靠性、可用性、以及可服务性(RAS)功能,包括全部独立盘冗余阵列(RAID)方案。本技术还可与任何高密度机架规模架构(RSA)一起使用。
在实施例中,每个节点包括一个或多个处理设备(例如,CPU)、可高速缓存的以及不可高速缓存的和易失性的以及非易失性的存储器、以及运行一个BIOS映像以及一个操作系统/虚拟机监控器映像的一个或多个I/O设备。以此方式,每个节点是所包含的故障域。节点中的任何硬件组件的或在节点上运行的软件的任何失效在最坏情况下仅击倒该节点。
在以下说明书和权利要求书中,可使用术语“耦合”和“连接”及其衍生词。应当理解的是这些术语不旨在作为彼此的同义词。相反,在具体实施例中,“连接”可用于指示两个或更多个元件彼此直接物理或电接触。“耦合”可意指两个或更多个元件直接物理或电接触。然而,“耦合”还可意指两个或更多个元件不彼此直接接触,但是仍可彼此合作或交互。然而,术语“松耦合”是指具有独立故障域的系统。结果,术语“耦合”的使用不改变或修改被称为松耦合的系统。
某些实施例可在一个硬件、固件、和软件或其组合中实现。某些实施例还可被实现为存储在机器可读介质上的指令,这些指令可由计算平台读取并执行以便执行在此描述的操作。机器可读介质可包括用于存储或传输机器(例如,计算机)可读形式的信息的任何机制。例如,机器可读介质可包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存设备等等。
实施例是实现方式或示例。贯穿本说明书对“实施例”、“一个实施例”、“某些实施例”、“各实施例”、或“其他实施例”的参考是指在此结合这些实施例所描述的特定特征、结构或特性包括在本发明的至少某些实施例但无需全部实施例中。“实施例”、“一个实施例”、或“某些实施例”的各种出现并非必须全部指代相同的实施例。实施例的元素或方面可与另一个实施例的元素或方面组合。
不是所有在此描述和示出的组件、特征、结构、特性等等需要被包括在一个或多个特定实施例。如果说明书陈述组件、特征、结构、或特性“可”、“可能”、“能够”或“可以”被包括,例如不要求包括该特定特征、结构、或特性。如果说明书或权利要求书参考“一”、“一个”元件,这不意味着仅存在一个这种元件。如果说明书或权利要求书参考“附加”元件,这不排除存在多于一个这种附加元件。
注意,尽管已经参照具体实现方式描述了某些实施例,其他实现方式根据某些实施例是可能的。附加地,在附图中示出和/或在此描述的电路元件或其他特征的安排和/或顺序无需以所示出和描述的特定方式安排。许多其他安排根据某些实施例是可能的。
在附图中示出的每个系统中,在某些情况下,元素可各自具有相同的参考标号或不同的参考标号,以便指示所表示的元素可不同和/或类似。然而,元素可足够灵活以便具有不同的实现方式并且与在此示出或描述的某些或所有系统一起工作。在附图中示出的各个元素可相同或不同。将哪一个称为第一元素以及将哪一个称为第二元素是任意的。
图1是多节点系统模型的框图100。多节点系统模型包括部分一致系统102、SMP系统104、以及LC系统106。尽管在每个系统中示出了若干服务器,每个系统可被认为是一个服务器。在SMP系统104中,每个节点108连接到节点控制器(NC)110。NC 110能够使得每个节点108连接到扩展互连112。扩展互连112可用于实现SMP系统104的每个NC 110之间的通信。相应地,SMP系统104是基于节点控制器的,具有共享存储器。SMP系统是完全一致的,并且包括快速分布式锁定管理器。然而,SMP系统104是单个故障域。换言之,任何节点108或节点控制器110内出现的单个故障将致使整个系统失效、崩溃、或以其他方式不可用。
在LC系统106中,每个节点114连接到网络接口卡(NIC)116。在某些情况下,NIC 116是能够进行远程直接存储器访问(RDMA)的以太网设备或另一个I/O控制器,诸如InfiniBand主机总线适配器(IB HBA)。NIC 116能够使得每个节点114连接到RDMA互连118。RDMA互连118使得每个NIC 116能够传递消息,以便实现跨LC系统106的存储器共享。相应地,LC系统106包括独立故障域。然而,不在LC系统106中共享存储器。进一步地,难以跨LC系统106均衡负载并且LC系统106具有分布式锁定管理器扩展性。
部分一致系统102包括多个节点120,每个节点连接到多个增强型节点控制器(eNC)122之一。每个eNC 122将其对应的节点120连接到扩展互连124。部分一致系统102跨具有独立故障域的多节点系统共享存储器。通过使用以下描述的软件辅助,部分一致系统102是部分一致的。附加地,部分一致系统102包括快速分布式锁定管理器。
图2是部分一致系统102的示图。部分一致系统102包括节点202和节点204。节点202包括结构存储器控制器(FMC)206,并且节点204包括FMC 208。附加地,节点202包括节点存储器214以及本地存储器218。节点204包括节点存储器216以及本地存储器220。每个FMC 206和208可以是具有其对应的节点的离散组件,如图2所示。在某些实施例中,FMC206和208可集成到多节点系统的每个节点内的CPU中。相应地,在某些实施例中,FMC 206可集成到节点202的CPU 210A和CPU 210B中,并且FMC 208可集成到节点204的CPU 212A和CPU 212B中。CPU 210A、210B、212A、和212B各自使用PLM(Plattsmouth)协议访问全局存储器,该协议是类似于SMI3的存储器语义(对于系统存储器映射)和用于模块型存储器访问的I/O协议(诸如PCIe)的组合。全局存储器包括节点存储器214以及节点存储器216。在实施例中,全局存储器可作为共享存储器或模块存储器访问。全局存储器可被分成多个区域。附加地,FMC 206和FMC208分别实现故障隔离边界207A和故障隔离边界207B,其中,全局存储器可由其他节点访问,甚至当其本地节点崩溃时。
Plattsmouth(PLM)链路可用于将每个CPU连接到FMC。相应地,节点202包括将CPU 210A和CPU 210B连接到FMC 206的一对PLM链路222。类似地,节点204包括将CPU 212A和CPU 212B连接到FMC 208的一对PLM链路224。PLM链路226A和PLM链路226B还可用于分别将节点202和节点204连接到交换机228。每条PLM链路能够支持具有可选目录信息(诸如SMI2)的存储器语义和具有加载和存储功能的I/O协议,诸如快速外围组件互连(PCIe)协议。在实施例中,能够使用一组公共引脚支持存储器语义和I/O协议的任何链路可用于将节点连接到SMC。而且,能够使用一组公共引脚支持存储器语义和I/O协议的任何链路可用于将CPU连接到FMC。附加地,可使用PCIe架构的物理层实现PLM链路。
可通过交换机228访问全局存储器。交换机228可用于连接来自多节点系统内的多个节点的多个FMC。在某些情况下,交换机228可以是Stormlake(STL)交换机、用作交换机的另一个FMC、或直接附连机制。交换机可用于在一个或多个节点之间路由对全局数据的请求。在任何情况下,交换机228用于跨全局存储器传递低延迟消息语义。在实施例中,多个FMC直接使用PLM链路或者通过另一个FMC交换机连接到彼此。而且,在实施例中,可通过STL交换机在类似STL的联网堆栈上通过遂穿PLM协议来连接多个FMC。
通过交换机和PLM链路连接多个节点的FMC的结果是,共享全局存储器并且可通过加载存储语义对其进行访问。针对节点本地的计算,节点可访问为那些计算预留的其自身的存储器。驻留在多个节点上的全局存储器可具有相同的特征存储器,并且每个节点可在该存储器上执行操作。附加地,可通过策略向全局存储器的特定部分指派节点,并且这些策略可由每个节点或连接该多个节点的FMC的交换机维护。
代替将消息传递通过RMDA,加载存储语义用于通过FMC在节点之间通信。每个FMC实现故障隔离边界,即便当节点的CPU失效时,也可通过FMC访问每个节点的全局存储器。如上所述,可通过STL联网堆栈或PLM链路访问共享存储器。该多个节点的每个FMC可使用加载/存储语义在节点之间传递消息,但是不抵消该多个节点的流量。
FMC的故障隔离边界可使用各种技术实现。在某些实施例中,硬件用于确保每个CPU独立于同一节点和系统内的其他CPU。以此方式,独立CPU的失效不影响其他CPU的操作。在其他实施例中,CPU的失效可致使其他CPU失效,然而,失效节点内的全局存储器可被加电并且活跃,从而使得该节点可失效而不影响其他节点的处理,并且仍可访问失效节点的存储器。
图3是全局存储器映射300的示图。以充当路由器或交换机以便协调跨节点对全局存储器的访问的一个或多个FMC的视角,示出全局存储器映射300。全局存储器映的各个部分可被存储在节点302和节点306上。全局存储器可被分成多个共享存储器区域306。全局存储器可由FMC管理,如图2所示。相应地,全局存储器的每个节点302和节点306被FMC映射到全局存储器中,如全局储存器映射300所示出的那样。具体而言,节点302的共享存储器区域308可包括任何数量的共享存储器区域,范围从1到n。节点304的共享存储器区域310可包括另一数量的共享存储器区域,范围从1到p。于是,全局存储器包括范围从1到n的共享存储器区域308和范围从1到p的共享存储器区域310。每个共享存储器区域可被物理地附连到一个FMC或者可跨多个FMC分拆。而且,存储器区域的大小可以是可变的或固定的。在实施例中,每个区域可在页水平粒度维护,从而使得整个存储器区域可被标页码,作为存储器管理方案的一部分。如图2所示,每个节点可包括FMC不可访问的并且不由全局存储器映射300表示的本地存储器。全局集群存储器映射300包括部分312,部分312将本地一致存储器区域314和本地一致存储器区域316识别为不可通过加载-存储结构访问的每个单独节点的专用存储器。
本地一致存储器区域314和316可用作消息区域。相应地,本地一致存储器区域314和316各自分别包括消息区域318和消息区域320。尽管本地消息区域318和消息区域320不可直接由充当交换机或路由器以便跨节点共享存储器的FMC访问,FMC可间接地访问消息区域322。
共享存储器区域308和共享存储器区域310对具有与全局集群存储器映射300相同的地址范围的每个节点可见。每个共享存储器区域可具有针对每组节点不同的访问权限。访问权限可基于一组策略。而且,每个共享存储器区域的地址范围以及任何访问权限可由一组范围寄存器强制执行。在某些情况下,如果区域是FMC中的(超级)页,每个共享存储器区域的地址范围和访问权限可由驻留在存储器内的页表实现。如果任何节点具有适当的访问权限,全局存储器可高速缓存在该节点中。然而,管理全局存储器的一个或多个FMC可不强制执行节点之间的基于硬件的高速缓存一致性机制。作为替代,数据一致性由在每个节点上运行的软件强制执行。
消息区域318和消息区域320可用于确保跨节点302和节点304的数据一致性。每个节点可向可访问存储器的具体存储器部分并且请求有关该具体存储器部分的状态的信息的其他节点广播消息。例如,第一节点可请求具有属于特定存储器区域的数据的任何节点更新该存储器区域,如果其具有属于该存储器区域的数据。具有该存储器区域的任何节点可响应于该消息并且通知请求第一节点该存储器区域已经被更新并替换。在某些情况下,传递消息以便访问全局存储器是基于软件的握手,该握手是直接存储器访问并且不使用I/O堆栈来访问数据。
全局存储器可包括节点可采取并更新全局存储器内的数据的协定,存在具有节点之间的握手的存储器的集群模型。附加地,FMC可确保每个节点的适当访问权限,并且提供对已经死亡的任何节点的数据的访问。这种访问使用加载/存储语义和硬件发生,而不具有I/O软件堆栈的延迟。而且,存储器可与平面存储器类似地以线性方式每字节而不是模块访问来访问。在某些情况下,共享存储器区域是可高速缓存的。进一步地,在某些情况下,消息区域可用于在节点之间传递数据,而不是使用FMC来传递有关存储在节点上的数据的消息。
图4是用于跨多个集群的一致共享存储器的过程流程图400。在框402,建立可高速缓存的全局存储器。在某些情况下,使用跨多个集群的共享存储器区域实现可高速缓存的全局存储器,其中,可使用加载存储语义访问共享存储器区域。在框404,使用软件辅助机制跨多个集群确保数据一致性。在框406,通过使用结构存储器控制器为每个集群维护独立故障域。
在某些实施例中,结构存储器控制器用于实现跨多节点系统的可靠性、可用性、可服务性(RAS)特征。为了能够用于企业,FMC支持存储器复制,诸如跨其它FMC的各种形式的RAID。以此方式,实现如果FMC或其相关联的全局存储器崩溃则重构经复制存储器的内容的能力。复制可以是K-aryl复制,其中,每次写入被复制(k-1)附加拷贝。地址映射范围寄存器(或页表)存储初始位置和备份位置。在RAID方案的情况下,主机FMC维护被RAID在一起的其他地址和FMC。主存初始位置的FMC在主存备份位置的每个FMC中复制写入。在RAID配置中,主存FMC向存储奇偶性的RAID位置发送ex-or信息。
在写入时,对于被写入的地址位置而言是初始的FMC向备份位置发送写入。在某些实施例中,FMC向RAID ex-or位置发送针对存储奇偶性的FMC的写入。备份FMC向初始FMC发送写入完成。即使写入被张贴,直至所有写入完成,写入不被认为在初始FMC中完成。初始FMC为发送写入的每个其他FMC维护计时器。如果未从每个目的FMC接收到完成,初始FMC可超时。而且,初始FMC可尝试使用替代路径重新进行事务并且/或者通知系统软件采取必要的恢复行动。
如果复制被启用,可通过初始FMC或备份FMC实现读取。附连到生成读取请求的节点的FMC维护计时器。如果超时之时未接收到完成,其可尝试到相同FMC或备份FMC的替代路径某个预定次数。如果事务仍超时,其可阻碍数据返回。FMC还可向系统软件报告超时错误,以便采取必要的校正行动或简单地记录错误。在实施例中,如果FMC或附连到FMC的存储器模块失效,内容可相应地被传送到具有备用容量的另一个FMC以及经更新的范围寄存器(或页表条目)。
图5是可访问汇集存储器资源的节点500的框图。节点500可以是例如膝上计算机、桌上计算机、平板计算机、移动设备、服务器、或刀片服务器等等。节点500还可以是任何高密度机架规模架构(RSA)中的节点。在某些示例中,节点是能够跨多节点系统与另一个节点通信的任何设备。相应地,在某些示例中,多节点系统是节点网络,其中,每个节点是能够跨该网络通信的任何设备。附加地,在某些示例中,多节点是机架服务器系统中的服务器。
节点500可包括被配置成用于执行所存储的指令的中央处理单元(CPU)502。CPU 502可以是单核处理器、多核处理器、计算集群、或任何数量的其他配置。在某些情况下,节点500的CPU 502和其他组件可被实现为片上系统(SoC)。进一步地,节点500可包括多于一个CPU 502。由CPU 502执行的指令可用于实现跨多个节点汇集存储器资源。
节点500还可包括图形处理单元(GPU)504。如所示,CPU 502可通过总线506连接到GPU 504。然而,在某些实施例中,CPU 502和GPU 504位于同一管芯上。GPU 504可被配置成用于执行节点500内的任何数量的图形操作。例如,GPU 504可被配置成用于渲染或操纵有待显示给节点500的用户的图形图像、图形帧、视频等等。然而,在某些情况下,节点500不包括GPU 504。
CPU 502还可通过总线506连接到CPU输入/输出(I/O)。在实施例中,CPU I/O 508被使用,从而使得CPU 502可访问多节点系统内的汇集存储器。CPU 502可访问汇集存储器,而不包括节点500内的专用存储器。进一步地,CPU I/O 508可访问多节点系统内的汇集存储器,而不使用通信和联网协议,诸如传输控制协议和互联网协议(TCP/IP)以及InfiniBand(IB)。在实施例中,诸如Plattsmouth(PLM)链路510等链路用于将每个节点连接到使用在串行链路上运行的基于存储器语义的协议的共享存储器控制器。快速外围组件互连(PCIe)链路512可用于将CPU 502连接到网络。
CPU 502还可通过总线506连接到被配置成用于将节点500连接到一个或多个I/O设备516的输入/输出(I/O)设备接口514。I/O设备516可包括例如键盘和指点设备,其中,指点设备可包括触摸板或触摸屏等等。I/O设备516可以是节点500的内建组件,或者可以是外部地连接到节点500的设备。CPU 502还可通过总线506连接到被配置成用于将节点500连接到显示设备520的显示接口518。显示设备520可包括是节点500的内建组件的显示屏。显示设备520还可包括外部地连接到节点500的计算机监视器、电视机、或投影仪等等。
图5的框图不旨在指示节点500将包括图5中示出的所有组件。进一步地,节点500可包括未在图5中示出的任何数量的附加组件,取决于特定实现方式的细节。而且,节点500可包括比图5中示出的那些更少的组件。例如,节点500可不包括GPU 504、I/O设备接口514、或显示接口518。
本技术实现可高速缓存的全局存储器同时维护独立故障域。全局存储器可用于存储不同节点之间的共享数据结构(例如,数据库)并且还用于节点之间的快速通信。如果共享存储器是持久的(即,在非易失性存储器(NVM)中),则在计划的或未计划的节点崩溃时间或节点之间的任务迁移之后恢复操作的时间变得非常快,因为数据仍在存储器中。而且,因为数据一致性由软件强制执行,存在经修改的可高速缓存的数据的显式切换,可用于如果节点失效则建立检查点以便从其进行恢复。
本技术还提供RAS特征来实现存储器和储存器水平弹性。而且,在某些实施例中,存储器可以是储存器的替代物。如果存储器是非易失性存储器,整个数据库可被从存储器映射,从而使得数据库的各个部分不被从磁盘或固态驱动器(SSD)上载。以此方式,访问数据库的时间减少。在某些情况下,下一代非易失性存储器具有可作为储存器替代物但是使用存储器类型语义可访问的大容量。而且,在本技术中描述的非易失性存储器维持相同的储存器弹性。非易失性存储器可被复制多次。以此方式,任何RAID方案可被实现以提供高可靠性水平和故障隔离。
示例1
在此描述了一种用于跨多个集群的一致共享存储器的装置。该装置包括结构存储器控制器、一个或多个节点、以及全局存储器。该结构存储器控制器管理对每个节点的共享存储器区域的访问,从而使得使用加载存储语义可访问每个共享存储器区域,甚至响应于该节点失效。每个共享存储器区域被该结构存储器控制器映射到全局存储器。
结构存储器控制器可位于该一个或多个节点内。附加地,该加载存储语义实现该一个或多个节点之间的通信。该结构存储器控制器还可支持存储器复制,从而使得该全局存储器是可访问的,不管该一个或多个节点的状态如何。进一步地,该结构存储器控制器可支持跨该全局存储器的全部独立盘冗余阵列(RAID)方案,从而使得在失效的情况下能够重构该全局存储器的任何部分。该装置可包括备份结构存储器控制器,其中,该备份结构存储器控制器在该第一结构存储器控制器失效的情况下使用。响应于该结构存储器控制器失效,该失效结构存储器控制器的内容被转移到另一个结构存储器控制器。附加地,响应于附连到该结构存储器控制器的存储器模块失效,该失效结构存储器模块的内容被转移到另一个结构存储器控制器或存储器模块。
示例2
在此描述了一种用于辅助式一致共享存储器的系统。该系统包括部分一致存储器和结构存储器控制器。该部分一致存储器包括来自多个集群的多个共享存储器区域,同时维护每个集群的独立故障域,并且该结构存储器控制器实现通过加载存储语义访问该部分一致存储器。
可通过Plattsmouth链路、联网堆栈、I/O堆栈、或其任何组合访问该多个共享存储器区域。该多个集群可访问存储在该共享存储器区域内的数据并且将来自该共享存储器区域的数据本地地高速缓存在本地高速缓存中。可使用一个或多个增强型联网接口控制器连接该部分一致存储器的该集群。进一步地,每个节点维护其他节点不可直接访问的本地存储器。该共享存储器区域可以是集中式的,并且可通过由该结构存储器控制器实现的故障隔离边界维护每个集群的该独立故障域。
示例3
在此描述了一种用于跨多个集群的一致共享存储器的方法。该方法包括使用跨多个集群的共享存储器区域实现可高速缓存的全局存储器,其中,可使用加载存储语义访问该共享存储器区域。该方法还可包括使用软件辅助机制确保跨该多个集群的数据一致性。进一步地,该方法包括通过使用结构存储器控制器为每个集群维护独立故障域。
该结构存储器控制器可通过该多个集群分布。附加地,该加载存储语义使每个集群能直接与另一个集群通信。进一步地,故障隔离边界可实现每个集群的独立故障域。
在以上描述中,已经描述了所公开的主题的各方面。为了解释的目的,列出了特定的编号、系统和配置,以便提供本主题的透彻理解。然而,对具有本公开的本领域普通技术人员而言明显的是可在不具有这些特定细节的情况下实践本主题。在其他情况下,公知的特征、组件、或模块被省略、简化、组合、或分离,以便不混淆所公开的主题。
所公开的主题的各实施例可在硬件、固件、软件、或其组合中实现,并且可参照或结合程序代码描述,诸如指令、函数、过程、数据结构、逻辑、应用程序、用于模拟、仿真、或制造设计的设计表示或格式,当由机器访问时,这些程序代码导致该机器执行任务、定义抽象数据类型或低级硬件上下文、或产生结果。
为了模拟,程序代码可使用基本上提供将期望如何执行所设计的硬件的模型的硬件描述语言或另一种功能描述语言表示硬件。程序代码可以是汇编或机器语言、或可编译和/或解释的数据。进一步地,本领域常见的是当采取行动或造成结果时谈及一种形式或另一种形式的软件。这种表达仅仅是表述通过处理系统执行程序代码以便致使处理器执行动作或产生结果的简写方式。
程序代码可被存储在例如易失性和/或非易失性存储器中,诸如存储设备和/或相关联的机器可读或机器可访问介质,包括固态存储器、硬盘驱动器、软盘、光存储、磁带、闪存、存储器棒、数字视频盘、数字通用盘(DVD)等等,以及更独特的介质,诸如机器可访问生物状态保存存储。机器可读介质可包括用于存储、传输、或接收机器(诸如天线、光纤、通信接口等等)可读形式的信息的任何有形机制。程序代码可被以数据包、串行数据、并行数据等形式传输,并且可以用压缩或加密格式使用。
程序代码可被在可编程机器上执行的程序中实现,诸如移动或静态计算机、个人数字助理、机顶盒、蜂窝电话和寻呼机、以及其他电子设备,其各自包括处理器、处理器可读的易失性和/或非易失性存储器、至少一个输入设备和/或一个或多个输出设备。可将程序代码应用到使用输入设备输入的数据,以便执行所描述的实施例并且生成输出信息。输出信息可被应用到一个或多个输出设备。本领域普通技术人员可认识到所公开的主题的实施例可在各种计算机系统配置下实践,包括多处理器或多核处理器系统、小型算机、大型计算机、以及可被嵌入到实际上任何设备中的通用或小型计算机或处理器。所公开的主题的实施例还可在分布式计算环境中实践,其中可由通过通信网络链接的远程处理设备执行任务。
尽管操作可被描述为顺序过程,某些操作可实际上并行地、并发地、和/或在分布式环境中执行,并且本地地和/或远程地存储程序代码以便由单处理器或多处理器机器执行。附加地,在某些实施例中,操作的顺序可被重新安排,而不背离所公开的主题的精神。程序代码还可由或结合嵌入式控制器使用。
尽管已经参照说明性实施例描述了所公开的主题,本描述不旨在以限制性的意义被解释。对所公开的主题所涉及的本领域普通技术人员明显的本主题的说明性实施例以及其他实施例的各种修改被认为落入所公开的主题的范围内。
Claims (25)
1.一种用于跨多个集群的一致共享存储器的装置,包括:
结构存储器控制器;
一个或多个节点,其中,所述结构存储器控制器管理对每个节点的共享存储器区域的访问,使得即便响应于所述节点失效,也能够使用加载存储语义访问每个共享存储器区域;以及
全局存储器,其中,每个共享存储器区域被所述结构存储器控制器映射到所述全局存储器。
2.如权利要求1所述的装置,其中,所述结构存储器控制器位于所述一个或多个节点内。
3.如权利要求1所述的装置,其中,所述加载存储语义实现所述一个或多个节点之间的通信。
4.如权利要求1所述的装置,其中,所述结构存储器控制器支持存储器复制,使得所述全局存储器是可访问的,不管所述一个或多个节点的状态如何。
5.如权利要求1所述的装置,其中,所述结构存储器控制器支持跨所述全局存储器的全部独立盘冗余阵列(RAID)方案,使得在失效的情况下能够重构所述全局存储器的任何部分。
6.如权利要求1所述的装置,其中,所述装置包括备份结构存储器控制器,其中,所述备份结构存储器控制器在所述第一结构存储器控制器失效的情况下使用。
7.如权利要求1所述的装置,其中,响应于所述结构存储器控制器失效,所述失效的结构存储器控制器的内容被转移到另一个结构存储器控制器。
8.如权利要求1所述的装置,其中,响应于附连到所述结构存储器控制器的存储器模块失效,所述失效的存储器模块的内容被转移到另一个结构存储器控制器或存储器模块。
9.如权利要求1所述的装置,其中,所述结构存储器控制器是增强型节点控制器。
10.如权利要求1所述的装置,包括快速分布式锁定管理器。
11.一种用于辅助式一致共享存储器的系统,包括:
部分一致存储器,其中,所述部分一致存储器包括来自多个集群的多个共享存储器区域,同时每个集群的独立故障域被维护;以及
结构存储器控制器,其中,所述结构存储器控制器实现通过加载存储语义访问所述部分一致存储器。
12.如权利要求11所述的系统,其中,所述多个共享存储器区域通过Plattsmouth链路、联网堆栈、I/O堆栈、或其任何组合而被访问。
13.如权利要求11所述的系统,其中,所述多个集群访问存储在所述共享存储器区域内的数据并且将来自所述共享存储器区域的所述数据本地地高速缓存在本地高速缓存中。
14.如权利要求11所述的系统,其中,所述部分一致存储器的所述集群通过使用一个或多个增强型联网接口控制器来连接。
15.如权利要求11所述的系统,其中,每个节点维护其他节点不可直接访问的本地存储器。
16.如权利要求11所述的系统,其中,所述共享存储器区域是集中式的。
17.如权利要求11所述的系统,其中,通过由所述结构存储器控制器实现的故障隔离边界维护每个集群的独立故障域。
18.一种跨多个集群的一致共享存储器的方法,所述方法包括:
使用跨多个集群的共享存储器区域实现可高速缓存的全局存储器,其中,使用加载存储语义能够访问所述共享存储器区域;
使用软件辅助机制确保跨所述多个集群的数据一致性;以及
通过使用结构存储器控制器为每个集群维护独立故障域。
19.如权利要求18所述的方法,其中,所述结构存储器控制器通过所述多个集群分布。
20.如权利要求18所述的方法,其中,所述加载存储语义使每个集群能直接与另一个集群通信。
21.如权利要求18所述的方法,其中,所述系统具有高密度机架规模架构(RSA)。
22.如权利要求18所述的方法,其中,故障隔离边界实现每个集群的所述独立故障域。
23.如权利要求18所述的方法,其中,其他集群能访问失效集群的共享存储器区域。
24.如权利要求18所述的方法,其中,所述可高速缓存的全局存储器实现跨多个节点和集群的数据一致性。
25.如权利要求18所述的方法,包括通过将跨多个集群的共享存储器区域映射到所述全局存储器,使用所述共享存储器区域实现所述可高速缓存的全局存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/142,726 US9372752B2 (en) | 2013-12-27 | 2013-12-27 | Assisted coherent shared memory |
US14/142,726 | 2013-12-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750658A true CN104750658A (zh) | 2015-07-01 |
CN104750658B CN104750658B (zh) | 2018-09-11 |
Family
ID=53372168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410706028.7A Active CN104750658B (zh) | 2013-12-27 | 2014-11-27 | 辅助式一致共享存储器 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9372752B2 (zh) |
JP (1) | JP6202756B2 (zh) |
CN (1) | CN104750658B (zh) |
DE (1) | DE102014117465B4 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874138A (zh) * | 2015-12-11 | 2017-06-20 | 成都华为技术有限公司 | 一种业务节点的分配方法及装置 |
CN107888657A (zh) * | 2017-10-11 | 2018-04-06 | 上海交通大学 | 低延迟分布式存储系统 |
CN108153622A (zh) * | 2016-12-06 | 2018-06-12 | 华为技术有限公司 | 一种故障处理的方法、装置和设备 |
CN109416620A (zh) * | 2016-05-04 | 2019-03-01 | 净睿存储股份有限公司 | 存储集群 |
CN111066009A (zh) * | 2017-10-23 | 2020-04-24 | 维卡艾欧有限公司 | 具有写入均衡的闪存寄存器 |
CN114051609A (zh) * | 2019-06-27 | 2022-02-15 | 通用电气公司 | 用于发动机的数据构造管理系统 |
CN118051448A (zh) * | 2024-04-16 | 2024-05-17 | 沐曦集成电路(上海)有限公司 | 一种访问存储器的方法 |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9367398B1 (en) * | 2014-03-28 | 2016-06-14 | Emc Corporation | Backing up journal data to a memory of another node |
WO2016118607A1 (en) | 2015-01-20 | 2016-07-28 | Ultrata Llc | Distributed index for fault tolerant object memory fabric |
US11579774B2 (en) | 2015-01-20 | 2023-02-14 | Ultrata, Llc | Object memory data flow triggers |
US10698628B2 (en) | 2015-06-09 | 2020-06-30 | Ultrata, Llc | Infinite memory fabric hardware implementation with memory |
US9971542B2 (en) | 2015-06-09 | 2018-05-15 | Ultrata, Llc | Infinite memory fabric streams and APIs |
US9886210B2 (en) | 2015-06-09 | 2018-02-06 | Ultrata, Llc | Infinite memory fabric hardware implementation with router |
US9851906B2 (en) * | 2015-06-16 | 2017-12-26 | Vmware, Inc. | Virtual machine data placement in a virtualized computing environment |
JP6495779B2 (ja) * | 2015-08-11 | 2019-04-03 | 日本電信電話株式会社 | 演算処理管理方法及び演算装置 |
US20170078367A1 (en) * | 2015-09-10 | 2017-03-16 | Lightfleet Corporation | Packet-flow message-distribution system |
US11240334B2 (en) * | 2015-10-01 | 2022-02-01 | TidalScale, Inc. | Network attached memory using selective resource migration |
WO2017100281A1 (en) | 2015-12-08 | 2017-06-15 | Ultrata, Llc | Memory fabric software implementation |
EP3387548B1 (en) | 2015-12-08 | 2023-08-02 | Ultrata LLC | Memory fabric operations and coherency using fault tolerant objects |
US10248337B2 (en) | 2015-12-08 | 2019-04-02 | Ultrata, Llc | Object memory interfaces across shared links |
US10241676B2 (en) | 2015-12-08 | 2019-03-26 | Ultrata, Llc | Memory fabric software implementation |
US10152527B1 (en) | 2015-12-28 | 2018-12-11 | EMC IP Holding Company LLC | Increment resynchronization in hash-based replication |
WO2017123208A1 (en) * | 2016-01-12 | 2017-07-20 | Hewlett Packard Enterprise Development Lp | Partially coherent memory transfer |
WO2017134795A1 (ja) * | 2016-02-04 | 2017-08-10 | 株式会社日立製作所 | ストレージシステム及びキャッシュ制御方法 |
US10705907B1 (en) | 2016-03-24 | 2020-07-07 | EMC IP Holding Company LLC | Data protection in a heterogeneous random access storage array |
US9857990B1 (en) | 2016-03-24 | 2018-01-02 | EMC IP Holding Company LLC | Fast startup for modular storage systems |
US10324782B1 (en) | 2016-03-24 | 2019-06-18 | Emc Corporation | Hiccup management in a storage array |
US10101934B1 (en) | 2016-03-24 | 2018-10-16 | Emc Corporation | Memory allocation balancing for storage systems |
US9921997B2 (en) * | 2016-04-01 | 2018-03-20 | Intel Corporation | Mechanism for PCIE cable topology discovery in a rack scale architecture environment |
US10162770B2 (en) | 2016-06-30 | 2018-12-25 | Intel Corporation | Virtual machine migration in rack scale systems |
JP6745174B2 (ja) * | 2016-09-09 | 2020-08-26 | 株式会社日立産機システム | コントローラ及びコントロール管理システム |
US10042762B2 (en) * | 2016-09-14 | 2018-08-07 | Advanced Micro Devices, Inc. | Light-weight cache coherence for data processors with limited data sharing |
US10255172B1 (en) | 2016-09-30 | 2019-04-09 | EMC IP Holding Company LLC | Controlled testing using code error injection |
US10223008B1 (en) | 2016-09-30 | 2019-03-05 | EMC IP Holding Company LLC | Storage array sizing for compressed applications |
US10152371B1 (en) | 2016-09-30 | 2018-12-11 | EMC IP Holding Company LLC | End-to-end data protection for distributed storage |
US10375038B2 (en) | 2016-11-30 | 2019-08-06 | International Business Machines Corporation | Symmetric multiprocessing management |
US10628057B2 (en) | 2017-03-28 | 2020-04-21 | Hewlett Packard Enterprise Development Lp | Capability based locking and access of shared persistent memory |
US10423530B2 (en) | 2017-05-08 | 2019-09-24 | Hewlett Packard Enterprise Development Lp | Partial cache coherence |
US10579274B2 (en) | 2017-06-27 | 2020-03-03 | TidalScale, Inc. | Hierarchical stalling strategies for handling stalling events in a virtualized environment |
US10817347B2 (en) | 2017-08-31 | 2020-10-27 | TidalScale, Inc. | Entanglement of pages and guest threads |
US11175927B2 (en) | 2017-11-14 | 2021-11-16 | TidalScale, Inc. | Fast boot |
JP7255790B2 (ja) | 2018-06-15 | 2023-04-11 | 三菱重工業株式会社 | 半導体装置 |
US10922178B2 (en) | 2018-10-31 | 2021-02-16 | Hewlett Packard Enterprise Development Lp | Masterless raid for byte-addressable non-volatile memory |
US10970213B2 (en) * | 2019-04-30 | 2021-04-06 | Hewlett Packard Enterprise Development Lp | Selective disabling of hardware-based cache coherency and enforcement of software-based cache coherency |
US11086739B2 (en) * | 2019-08-29 | 2021-08-10 | EMC IP Holding Company LLC | System comprising non-volatile memory device and one or more persistent memory devices in respective fault domains |
US12001183B2 (en) | 2021-02-26 | 2024-06-04 | Hewlett Packard Enterprise Development Lp | Scalable microservices-driven industrial IoT controller architecture |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001142731A (ja) * | 1999-11-17 | 2001-05-25 | Nec Kofu Ltd | 情報処理システム及びそれに用いるデータコピーを伴う障害処理方式 |
US20010052054A1 (en) * | 1999-03-29 | 2001-12-13 | Hubertus Franke | Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems |
CN1447257A (zh) * | 2002-04-09 | 2003-10-08 | 威盛电子股份有限公司 | 分布式共享内存系统数据维护方法 |
CN1508714A (zh) * | 2002-12-18 | 2004-06-30 | �Ҵ���˾ | 确定高可用性集群之活跃度的方法和系统 |
CN1589447A (zh) * | 2001-09-21 | 2005-03-02 | 泛伺服公司 | 用于具有共享存储器的多节点环境的系统和方法 |
CN1808400A (zh) * | 2005-01-07 | 2006-07-26 | 索尼计算机娱乐公司 | 管理多处理器系统中的共享存储器的方法和设备 |
CN102077193A (zh) * | 2008-06-27 | 2011-05-25 | 微软公司 | 群集共享卷 |
CN102103567A (zh) * | 2009-12-21 | 2011-06-22 | 英特尔公司 | 在异构处理器之间共享基于虚拟存储器的多版本数据 |
US20120042032A1 (en) * | 2010-08-12 | 2012-02-16 | Talari Networks Incorporated | Adaptive Private Network Asynchronous Distributed Shared Memory Services |
CN102594858A (zh) * | 2010-11-19 | 2012-07-18 | 马维尔国际贸易有限公司 | 云存储环境中的镜像解决方案 |
US20130185379A1 (en) * | 2012-01-16 | 2013-07-18 | International Business Machines Corporation | Efficient state tracking for clusters |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5384657A (en) * | 1976-12-30 | 1978-07-26 | Fujitsu Ltd | Multiprocessor system |
JPH0233649A (ja) * | 1988-07-25 | 1990-02-02 | Matsushita Electric Ind Co Ltd | マルチマスタプロセッサ装置 |
JP3489157B2 (ja) | 1993-11-26 | 2004-01-19 | 株式会社日立製作所 | 分散共有メモリシステムおよび計算機 |
US5893144A (en) * | 1995-12-22 | 1999-04-06 | Sun Microsystems, Inc. | Hybrid NUMA COMA caching system and methods for selecting between the caching modes |
US5896492A (en) * | 1996-10-28 | 1999-04-20 | Sun Microsystems, Inc. | Maintaining data coherency between a primary memory controller and a backup memory controller |
US6959372B1 (en) * | 2002-02-19 | 2005-10-25 | Cogent Chipware Inc. | Processor cluster architecture and associated parallel processing methods |
US7035974B2 (en) * | 2002-11-06 | 2006-04-25 | Synology Inc. | RAID-5 disk having cache memory implemented using non-volatile RAM |
US7353336B2 (en) | 2005-03-09 | 2008-04-01 | Hewlett-Packard Development Company, L.P. | External RAID-enabling cache |
US7949766B2 (en) * | 2005-06-22 | 2011-05-24 | Cisco Technology, Inc. | Offload stack for network, block and file input and output |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US7882479B2 (en) * | 2007-06-06 | 2011-02-01 | International Business Machines Corporation | Method and apparatus for implementing redundant memory access using multiple controllers on the same bank of memory |
US9448940B2 (en) * | 2011-10-28 | 2016-09-20 | The Regents Of The University Of California | Multiple core computer processor with globally-accessible local memories |
JP5590022B2 (ja) | 2011-12-28 | 2014-09-17 | 富士通株式会社 | 情報処理装置、制御方法および制御プログラム |
-
2013
- 2013-12-27 US US14/142,726 patent/US9372752B2/en active Active
-
2014
- 2014-11-12 JP JP2014229936A patent/JP6202756B2/ja active Active
- 2014-11-27 CN CN201410706028.7A patent/CN104750658B/zh active Active
- 2014-11-27 DE DE102014117465.8A patent/DE102014117465B4/de active Active
-
2016
- 2016-06-08 US US15/176,185 patent/US10229024B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010052054A1 (en) * | 1999-03-29 | 2001-12-13 | Hubertus Franke | Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems |
JP2001142731A (ja) * | 1999-11-17 | 2001-05-25 | Nec Kofu Ltd | 情報処理システム及びそれに用いるデータコピーを伴う障害処理方式 |
CN1589447A (zh) * | 2001-09-21 | 2005-03-02 | 泛伺服公司 | 用于具有共享存储器的多节点环境的系统和方法 |
CN1447257A (zh) * | 2002-04-09 | 2003-10-08 | 威盛电子股份有限公司 | 分布式共享内存系统数据维护方法 |
CN1508714A (zh) * | 2002-12-18 | 2004-06-30 | �Ҵ���˾ | 确定高可用性集群之活跃度的方法和系统 |
CN1808400A (zh) * | 2005-01-07 | 2006-07-26 | 索尼计算机娱乐公司 | 管理多处理器系统中的共享存储器的方法和设备 |
CN102077193A (zh) * | 2008-06-27 | 2011-05-25 | 微软公司 | 群集共享卷 |
CN102103567A (zh) * | 2009-12-21 | 2011-06-22 | 英特尔公司 | 在异构处理器之间共享基于虚拟存储器的多版本数据 |
US20120042032A1 (en) * | 2010-08-12 | 2012-02-16 | Talari Networks Incorporated | Adaptive Private Network Asynchronous Distributed Shared Memory Services |
CN102594858A (zh) * | 2010-11-19 | 2012-07-18 | 马维尔国际贸易有限公司 | 云存储环境中的镜像解决方案 |
US20130185379A1 (en) * | 2012-01-16 | 2013-07-18 | International Business Machines Corporation | Efficient state tracking for clusters |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874138A (zh) * | 2015-12-11 | 2017-06-20 | 成都华为技术有限公司 | 一种业务节点的分配方法及装置 |
CN109416620A (zh) * | 2016-05-04 | 2019-03-01 | 净睿存储股份有限公司 | 存储集群 |
CN108153622A (zh) * | 2016-12-06 | 2018-06-12 | 华为技术有限公司 | 一种故障处理的方法、装置和设备 |
CN107888657A (zh) * | 2017-10-11 | 2018-04-06 | 上海交通大学 | 低延迟分布式存储系统 |
CN111066009A (zh) * | 2017-10-23 | 2020-04-24 | 维卡艾欧有限公司 | 具有写入均衡的闪存寄存器 |
CN111066009B (zh) * | 2017-10-23 | 2023-08-22 | 维卡艾欧有限公司 | 具有写入均衡的闪存寄存器 |
CN114051609A (zh) * | 2019-06-27 | 2022-02-15 | 通用电气公司 | 用于发动机的数据构造管理系统 |
CN114051609B (zh) * | 2019-06-27 | 2022-12-23 | 通用电气公司 | 用于发动机的数据构造管理系统 |
CN118051448A (zh) * | 2024-04-16 | 2024-05-17 | 沐曦集成电路(上海)有限公司 | 一种访问存储器的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104750658B (zh) | 2018-09-11 |
DE102014117465B4 (de) | 2021-05-06 |
US20150186215A1 (en) | 2015-07-02 |
JP2015127949A (ja) | 2015-07-09 |
US20170052860A1 (en) | 2017-02-23 |
DE102014117465A1 (de) | 2015-07-02 |
JP6202756B2 (ja) | 2017-09-27 |
US9372752B2 (en) | 2016-06-21 |
US10229024B2 (en) | 2019-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750658B (zh) | 辅助式一致共享存储器 | |
Aguilera et al. | Remote memory in the age of fast networks | |
CN104750624B (zh) | 群集级数据一致性模型和协议 | |
US10521135B2 (en) | Data system with data flush mechanism | |
US20200371700A1 (en) | Coordinated allocation of external memory | |
US10140136B2 (en) | Distributed virtual array data storage system and method | |
US9336094B1 (en) | Scaleout replication of an application | |
US9158540B1 (en) | Method and apparatus for offloading compute resources to a flash co-processing appliance | |
US9286261B1 (en) | Architecture and method for a burst buffer using flash technology | |
US11860672B2 (en) | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD | |
US10909072B2 (en) | Key value store snapshot in a distributed memory object architecture | |
US20150222705A1 (en) | Large-scale data storage and delivery system | |
US20210064234A1 (en) | Systems, devices, and methods for implementing in-memory computing | |
CN104516832B (zh) | 操作数据处理系统的方法、数据处理系统以及处理器 | |
CN112513828A (zh) | 以分布式方式实现文件的一致性和页面高速缓存支持 | |
WO2024051292A1 (zh) | 数据处理系统、内存镜像方法、装置和计算设备 | |
KR20160068481A (ko) | 모바일 디바이스 및 모바일 디바이스의 메모리 관리 방법 | |
Tate et al. | Implementing the IBM System Storage SAN Volume Controller with IBM Spectrum Virtualize V8. 2.1 | |
Bolinches et al. | IBM elastic storage server implementation guide for version 5.3 | |
Shan | Distributing and Disaggregating Hardware Resources in Data Centers | |
US11366618B2 (en) | All flash array server and control method thereof | |
US11216348B2 (en) | All flash array server and control method thereof | |
US20240095196A1 (en) | Method for supporting erasure code data protection with embedded pcie switch inside fpga+ssd | |
Cully | Extending systems with virtual hardware aggregation | |
Krogh et al. | System Planning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |