CN102945139B - 存储设备驱动器和集群参与 - Google Patents
存储设备驱动器和集群参与 Download PDFInfo
- Publication number
- CN102945139B CN102945139B CN201210335850.8A CN201210335850A CN102945139B CN 102945139 B CN102945139 B CN 102945139B CN 201210335850 A CN201210335850 A CN 201210335850A CN 102945139 B CN102945139 B CN 102945139B
- Authority
- CN
- China
- Prior art keywords
- storage
- storage pool
- cluster
- memory device
- node
- 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
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storage Device Security (AREA)
Abstract
在计算机的存储设备的表示,例如作为逻辑卷,可以涉及通过合并多个存储设备从而应用诸如镜像和校验和的冗余计划。此处给出一种存储设备驱动器,其配置成:作为生成存储设备的存储区域的表示的存储设备接口操作;要求作为存储控制器的那些区域;并且将合并的存储区域暴露为逻辑盘。另外,该存储设备驱动器可以支持在集群中包括存储设备,该集群包括可以被指定为下述各项的节点:存储池配置的管理器;存储设备的管理器;可以排它性读/写访问该存储池或集群资源的所有者;以及可以排它性写访问集群资源的集群资源写装置。集群的节点可以相互操作以共享该存储设备,同时避免写冲突。
Description
背景技术
在计算领域中,许多情形涉及生成计算机上的存储设备的逻辑表示。作为第一示例,本地连接硬盘驱动器可以利用总线连接到计算机,并且可以通过存储设备驱动器与计算机接口,该存储设备驱动器将硬盘驱动器的一个或多个分区作为逻辑卷呈现给计算机。作为第二示例,诸如廉价盘冗余阵列(RAID)阵列的网络连接存储(NAS)装置可以装载有硬盘驱动器并且通过网络与计算机通信,该计算机可以安装由NAS装置暴露的卷作为网络卷。作为第三示例,虚拟硬盘驱动器(VHD)可以被生成作为被分配在另一设备上存储块,并且可以作为虚拟卷呈现给计算机。这些和其它示例会建议各式各样的具有变化属性和接口的物理和虚拟存储设备可以呈现给计算机。为了降低与这一系列存储设备交互的复杂性,计算机可以指定逻辑表示标准,使得驱动器可以以比较标准方式呈现该计算机可以使用的存储设备的逻辑表示,而与底层存储设备的类型、位置、特性或复杂性无关。
同样在计算领域中,许多情形涉及由网络连接的相互操作节点的集群,诸如协同提供服务的设备的服务器群。在这些情形中,节点可以共享一个或多个存储池(storage pool),并且可以建立用于使用这种存储设备的协议(例如为了降低写冲突和死锁)。存储池可以由一个或多个存储设备的共享的容量提供,每个存储池可以连接到存储设备和/或连接到网络,并且由这种存储设备提供的容量可以以许多方式聚集(aggregate)。
发明内容
提供本发明内容是为了以简化形式介绍将在下面的详细描述部分中进一步描述的概念的选集。本发明内容不意图确认出所要求保护的主题的关键因素或实质特征,也不意图用于限制所要求保护的主题的范围。
存储设备可以由一个或多个计算机以各种各样方式使用。作为第一示例,存储设备的整个容量可以被分配用于单个逻辑卷,或者可以被分区和暴露为两个或更多个逻辑卷。作为第二示例,第一存储设备的容量可以与第二存储设备的存储容量合并(pool)(例如成跨越或条带布置)。作为第三示例,聚集两个或更多个存储设备的容量的存储池可以利用弹性计划来创建,该弹性计划使能实现诸如在存储设备故障、错误检测和错误校正情况下进行恢复的特征。这种弹性计划可包括:镜像计划,其中数据集合的相同拷贝被存储在每个存储设备上,以及奇偶计划,其中存储在一些设备上的数据可以由存储在其它设备上的一个或多个奇偶计算(例如校验和)支持,使得如果任何存储设备故障或者变得不可用,存储在该存储设备上的数据可以使用存储在所述其它存储设备上的对应的数据和对应的奇偶计算重建。作为第四示例,会是有利的是,将存储设备的容量分割成不同存储池;例如,一个具体存储设备可以将一些容量分配到利用来自第一存储设备集合的容量聚集的第一池,以及将一些附加容量分配到利用来自不同存储设备集合的容量聚集的第二池,并且将其余容量分配到未合并的逻辑表示。作为第五示例,存储设备可以被诸如集群节点的若干计算机共享和同时访问,所述若干计算机可能不得不相互通信并且按照减小写冲突、弹性不一致和死锁的方式使用所述存储设备。再者,会是有利的是,不是通过以比较孤立和不透明方式操作的专用存储控制器,而是通过可以与计算环境鲁棒地交互的软件接口,将存储设备暴露于一个或多个计算机。
此处给出了用于在计算机上表示存储设备的技术,所述技术可以促进这些情形中的许多种情形。依据此处给出的技术,计算机可包括存储设备驱动器,所述存储设备驱动实施层集合,所述层集合在不同情形下将存储设备呈现给计算机的操作环境。具体地,存储设备驱动器包括:存储设备接口部件,所述存储设备接口部件按照低级别方式与存储设备交互(例如发出读和写请求,处理诸如冲洗的缓存语义,以及应用存储设备的寻址协议),并且所述存储设备接口部件暴露存储设备的存储区域的存储区域表示集合(例如,分配在存储设备上的分区或容量片(slab)的表示);存储控制器驱动器部件,所述存储控制器驱动器部件要求存储区域表示,应用存储设备关系的能力(例如容量合并和弹性方案),并且给出合并的存储区域表示;以及存储端口驱动器部件,所述存储端口驱动器部件要求合并的存储区域表示并且将存储设备的合并的存储区域的逻辑表示呈现给操作环境。存储设备驱动器的架构因此可以使能实现在提供(provision)存储设备集合时的巨大灵活性,并且可以将相应存储设备作为若干不同表示暴露于操作环境,所述若干不同表示使得在存储设备的提供和利用方面能够实现简化的利用和丰富的信息。另外,这些能力可以在计算机的操作环境中实施为存储设备驱动器,由此减小了涉及专用硬件部件,所述专用硬件部件会使存储情形孤立和复杂化。
此处给出的技术还涉及将存储设备暴露于可能协同地利用存储设备的节点的集群。在这种情形下,存储设备驱动器可以进一步配置成促进集群考虑,诸如存储池或集群资源的管理以及节点之间的所有权和权限的协商。通过可以依据此处给出的技术在计算机的操作环境中呈现存储设备的存储设备驱动器的架构和配置,可以实现这些和其它优点。
为了实现前述和相关目的,下面给出的描述和附图阐述了某些说明性方面和实现方式。这些仅仅表明可以采用一个或多个方面的各种方式当中的几种。通过结合附图考虑下面的详细描述,本公开内容的其它方面、优点和新颖特征将变得显而易见。
附图说明
图1为示例性情形的图示,其特征在于计算机上的存储设备集合的表示。
图2为示例性情形的图示,其特征在于存储设备集合被分组成各存储池并且由相应的节点集群访问。
图3为示例性存储设备驱动器的图示,该存储设备驱动器依据此处给出的技术表示计算机的操作环境内的存储设备。
图4为图示依据此处给出的技术表示设备可访问的存储设备的示例性方法的流程图。
图5为示例性计算机可读介质的图示,该计算机可读介质包括处理器可执行指令,所述处理器可执行指令配置成具体实施一个或多个此处阐述的提供。
图6为示例性情形的图示,其特征在于依据此处给出的技术向集群的节点表示相应存储设备的存储区域。
图7为另一示例性情形的图示,其特征在于依据此处给出的技术向集群的节点表示相应存储设备的存储区域。
图8图示示例性计算环境,在该计算环境中可以实施一个或多个此处阐述的提供。
具体实施方式
下面将参照附图描述所要求保护的主题,其中相同的附图标记始终被用来指代相同的元件。在下面的描述中,出于解释的目的阐述了许多特定细节以便提供对于所要求保护的主题的透彻理解。但是可以明显看出,可以在没有这些特定细节的情况下实践所要求保护的主题。在其它情况中,以框图形式示出了各结构和设备以便于描述所要求保护的主题。
A.介绍。
在计算领域中,许多情形涉及在计算机上的存储设备的表示。作为第一示例,硬盘驱动器或固态存储设备可以直接连接到计算机,诸如使用串行ATA(SATA)连接器或者通用串行总线(USB)连接器,并且在存储设备的固件上提供的存储设备驱动器可以执行在计算机的操作环境中暴露存储设备所涉及的任务。硬盘驱动器的容量可以完全被分配作为单个逻辑卷,或者可以分区或以其它方式分割为两个或更多个容量子集合,每个所述容量子集合可以被暴露成为逻辑卷。作为第二示例,计算机可包括一个或多个光盘驱动器(例如DVD-ROM驱动器),并且光盘驱动器的存储设备驱动器可以与操作环境的其它部件相互操作(例如盘刻录应用),从而暴露光盘驱动器的能力(例如光盘擦除和印刷技术)以及其限制(例如高延迟和有限随机写访问)。作为第三示例,一个或多个硬盘驱动器可以装载到存储装置中,该存储装置可以管理硬盘驱动器并且将合并的表示呈现给计算机。作为一个示例,在廉价盘冗余阵列(RAID)装置中,通过交换I/O请求,监视硬盘驱动器的状态和健康,并且应用各式各样特征,RAID控制器管理硬盘驱动器的阵列。例如,RAID控制器可以生成在一个硬盘驱动器上孤立的逻辑卷;跨越两个或更多个硬盘驱动器的逻辑卷(按照顺序或条带方式);在两个或更多个硬盘驱动器上镜像的逻辑卷(例如,其中数据集合在每个存储设备上被存储为相同的拷贝);以及逻辑卷,在将数据集合写到一些存储设备时,该逻辑卷将数据集合的奇偶计算写到另一存储设备,使得在存储设备的突然故障、断开或其它类型的不可访问情况下,所述不可访问的存储设备上的数据可以使用其它存储设备上的对应的数据和该奇偶计算来重建。然而,RAID控制器可能抽象掉存储设备阵列的许多许多,并且可能在计算机的操作环境内作为单个网络卷来呈现该阵列。作为第四示例,虚拟硬盘驱动器(VHD)可以从一个或多个其它存储设备的存储容量生成。VHD可以作为物理存储设备的模拟而被呈现给操作环境,并且用于VHD的存储设备驱动器可以将VHD内相应地址的访问请求转变为目标在于为包括指定地址的VHD提供容量的存储设备的请求。
这些和其它类型的存储设备可以给出可能连接到计算机的各种存储设备的指示。配置计算机的操作环境从而按照鉴于存储设备特性的专门方式与每个存储设备交互会是非常困难的,特别是由于存储设备的新的类型、特征和属性被频繁地开发。相反,可以按照至少两种方式来管理这种变动的复杂性。第一,操作环境可以配置成不与存储设备直接交互,而是与配置成将与存储设备的专门交互(例如对硬盘驱动器的突发访问能力、写缓存的冲洗语义、以及光盘驱动器的刻录和擦拭语义)转变为比较广义的操作(例如读、写、格式化和列出内容)的存储设备驱动器交互。第二,操作环境可以定义将由所有存储设备驱动器暴露用于所有存储设备的存储设备的逻辑表示。这种逻辑表示可以使能实现由操作环境列举存储设备以及操作环境与每个存储设备的比较一致的交互,而与其具体属性无关。
图1给出示例性情形100的图示,其特征在于计算机108可访问的存储设备102集合。存储设备102可具有不同特性(例如,可用的和被使用的容量、访问速率、延迟、易失性以及事务处理写能力)并且可以基于变化的设计模式来工程化(例如,硬盘驱动器、固态存储电路和光盘)。然而,计算机108配置成按照比较标准化方式与每个存储设备102交互,例如,通过对存储设备102询问容量,利用诸如文件系统或数据库系统的存储系统格式化存储设备102,提供和/或分配存储设备102的容量,以及发出读和写请求以利用存储设备102的分配的容量。为了实现这种标准化,相应存储设备102可以通过具体部件与计算机108接口,所述具体部件可以以简化方式将存储容量暴露于计算机108。例如,第一存储设备102可包括存储设备驱动器110,该存储设备驱动器要求整个存储设备102并且将其作为逻辑卷104暴露于计算机108。两个附加存储设备102可以被选择从而作为存储池116相互操作,其中存储设备102的容量以跨越方式(例如,其中顺序地址空间的第一半被存储在第一存储设备102上并且地址空间的第二半被存储在第二存储设备102上)或者以条带方式(例如,其中地址空间以交替方式遍布存储设备102分配)被聚集在统一的逻辑卷104中。动态卷存储驱动器112可以因此要求所述两个存储设备102并且作为逻辑卷104而生成合并的容量的表示。当计算机108发出请求以写到具体转变请求从而访问逻辑卷104内的具体逻辑地址时,动态卷存储驱动器112可以识别对应于所述逻辑地址的所述两个存储设备102中的一个上的物理地址,并且可以发出转变的访问请求到对应的存储设备102。四个存储设备102的第三集合可以聚集在由诸如RAID控制器的存储控制器114控制的存储池116中。存储控制器114可以自动地应用各种存储特征到存储池116的存储设备102,诸如有选择的聚集计划和/或有选择的弹性计划;可以监视和报告存储设备102的健康(例如,检测存储设备102的临近的故障);并且可以在这种存储设备102上自动地执行维护操作,诸如在取代故障的、断开的或者移除的存储设备102的存储设备102的上重建数据。然而,存储控制器114可以将整个存储池116作为逻辑卷104呈现给计算机108。各种存储设备驱动器和存储控制器可以因此实现计算机108的存储机制的标准化,并且可以将存储设备102和存储池116的复杂的相互关系和特征转换为容量存储器的简单集合。
作为附加并发情况,存储设备102可以利用各种程度的相互操作而被计算机108的集合同时访问。具体地,计算机108的集合可以配置成作为集群的节点而相互操作。集群可以被提供以实现为大的用户和/或设备集合提供服务的各种任务,诸如共享的计算容量以用于高性能计算应用和同时处理能力。这种集群也可以配置有许多复杂特征,诸如故障转移能力,其中崩溃、与集群断开、或者其它方式故障的节点的责任可以自动地并且迅速地由替代节点承担,由此减小先前被分派到故障节点的服务的提供的中断。具体地,节点的集群可以与一个或多个存储设备102交互,并且可以同时访问一个或多个存储设备102。然而,集群的节点对存储设备102的不受限制和不受协调的访问会导致许多问题,所述问题包括:写冲突(例如,同时写到存储设备102的具体位置的两个或更多个数据集合之间的竞争状态,从而导致非确定的结果以及不一致地写入的数据,诸如由不同集群的节点写到同一位置的不同数据集合的任意融合);冗余故障(例如,诸如奇偶计算技术的弹性方案的故障,其由竞争状态造成并且导致弹性保证的故障以及潜在数据败坏);以及死锁(例如,第一节点排它性地锁定数据集合或存储设备102,这给尝试访问该数据集合或存储设备102的其它节点引发问题)。再者,会期望提供存储设备102以参与两个或更多个存储池116,和/或与两个或更多个集群的节点通信。以使能实现这种复杂情形的灵活方式配置操作环境可能代表一个困难的任务。
图2给出示例性情形200的图示,其特征在于提供存储设备102集合的容量与与节点208的两个集群206通信。在此示例性情形200中,六个存储设备102被提供,并且每个存储设备102的存储容量202被分摊到相应逻辑卷104中。具体地,在存储设备102之间提供存储容量202。例如,第一存储设备102可以被完全分配作为单个计算机108可访问的单个逻辑卷104。然而,再者,另一个存储设备102的存储容量202可以聚集到一个或多个存储池116中,每个存储池可以指定存储特征204的具体集合。例如,第一存储池116可以条带分布跨过第二和第三存储设备102,而第二存储池116可以指定镜像关系,其中相同数据存储在被分配用于镜像存储池116的每个存储设备102的存储容量202内。这种存储池可以被暴露(排它性或非排它性地)到节点208的集群206以用于提供集群206的服务。例如,集群206可以提供利用分布式数据库的电子邮件托管服务,并且用于该分布式数据库的容量可以由实施促成该服务的各种存储特征204(例如,高吞吐量、故障弹性以及高可用性)的存储池116提供。节点208也可以占据集群206中的各种角色(例如,数据驱动的应用程序可包括作为数据服务器操作的节点208的第一集合,节点208的第二集合应用业务逻辑,并且节点208的第三集合作为前端操作),并且可以在这些规则的上下文中实施各种权限集合和信任级别。存储设备102可以因此不得不支持集群206的复杂配置,以及被分配到集群206的存储池116的存储特征204。再者,会期望配置存储设备102从而为不同存储池116分配存储容量202的不同部分,每个存储池可具有不同存储特征204(例如,第六存储设备102的存储容量202被分区为孤立逻辑卷104以及分别参与具有不同存储特征204的不同存储池116的两个部分)。
鉴于存储设备102集合的配置、存储设备102之间的存储池106、以及与节点208的集群206的相互操作的复杂性,可能难以配置存储设备102和计算机108(既单独地又作为集群206的节点208)从而以高性能方式满足这种复杂性,同时也减小管理复杂性并且简化存储设备102的逻辑表示以及提供的容量的可用性。某些这些复杂性可以例如通过将一些功能封装在诸如RAID存储控制器的专用硬件控制器中来解决,所述专用硬件控制器可以实施用于各种存储设备102的选定的存储特征204,同时向计算机108呈现简化的表示。然而,通过专用硬件控制器可实现的简化会产生若干缺点。作为第一示例,专用硬件涉及附加的获得和操作成本,以及专用管理和用户训练。作为第二示例,专用硬件会对存储设备102施加附加限制。例如,RAID控制器经常涉及排它性地要求参与单个存储池的存储设备102的整个存储容量202,这会无法兼容图2的示例性情形200中第四、第五和第六存储设备102中的每一个的各式配置。作为第三示例,由RAID控制器提供的简化也可以代表存储设备102的细节的抽象,以及对于计算机108或者对于集群206的节点208会是有价值的信息的混淆。例如,通过检查数据集合在存储设备102上存储在何处以及如何存储在存储设备102上,可以标识在访问具体数据集合时由存储池116展示的不良性能的原因。然而,RAID控制器可能抽象掉这种信息,并且可能难以确定数据集合位于何处以及如何通过RAID控制器被访问。作为第四示例,硬件控制器可能难以用新功能更新;例如,高性能集群206可能涉及专用数据访问技术,但是硬件控制器可能不是鲁棒地可配置或者不是充分灵活以实施该技术,而存储设备102的基于软件的控制器可以容易地配置。这些和其它因素会鼓励减小复杂存储情形中在存储设备102的控制中的硬件部件。
B.给出的技术。
此处给出了用于在计算机108上表示存储设备102的技术,该技术与其它表示技术相比可以实现一些优点。依据这些技术,可以设想到一种存储设备驱动器,其能够与存储设备102交互,同时应用许多类型的存储特征204,并且其可以以简化和标准化方式表示存储设备102(例如,作为逻辑表示318,诸如逻辑盘),同时也暴露存储设备102的底层细节(例如,存储设备102集合聚集为存储池116,以及通过具有各种集群情况的节点208的集群206访问存储设备102)。再者,存储设备驱动器可以实施为软件驱动器,并且可以提供这些鲁棒特征,同时完全符合操作环境的现有存储设备驱动器架构,并且可以与支持和表示其它存储设备102的传统存储设备驱动器一起操作。
具体地,此处给出的技术涉及通过各层的具体架构在计算机108上表示存储设备102,每个层实施具体的存储特征204集合,并且在不同上下文中暴露一个或多个存储设备102。例如,所述技术可以实施为软件驱动器,该软件驱动器在低级别包括存储设备接口部件,其配置成生成相应存储设备102的相应存储区域的存储区域表示。存储区域表示可包括例如在计算机108的操作环境中存储设备102的现有存储区域的低级别表示(例如物理地址范围、分区或容量片)。软件驱动器在中间级别也可以包括存储控制器驱动器部件,其配置成将相应存储区域聚集到存储池116中,并且可以实施存储池116的各种存储特征204(例如,通过将每个接收写请求转换为指向不同存储设备102的不同存储区域的相同请求,应用镜像弹性计划)。另外,存储控制器驱动器部件可以要求存储池中涉及的存储区域的存储区域表示(例如,在计算机108的操作环境指示该存储区域被保留并且由存储控制器驱动器部件排它性地使用,并且对于其它部件的访问是不可用的),并且可以暴露存储池116作为合并的存储区域表示(例如,存储池116的计算机108的操作环境中的表示,可选地指示存储池116的特性,诸如实施的存储特征204)。存储设备驱动器在高级别也可以包括存储端口驱动器部件,其配置成从由存储控制器驱动器部件生成的合并的存储区域表示生成逻辑表示。例如,存储端口驱动器部件可以将计算机108的操作环境中的存储池116表示为逻辑盘。
图3呈现示例性情形300的图示,其特征在于依据此处给出的技术在计算机108上表示存储设备102。在此示例性情形300中,两个存储设备102的集合(在底部)对于计算机108是可访问的,并且将表示在该计算机上。再者,存储设备102可以呈现一个或多个存储区域304的集合,并且可以被提供用于聚集为存储池116,并且可以具有具体存储设备关系302(例如一个或多个存储特征204,诸如带条带关系、镜像关系或校验和关系,或者其它类型的关系,诸如主要/次要关系或故障转移关系)。此处给出的技术可以通过提供按照下述方式配置的存储设备驱动器306,而被用于在计算机108的操作环境中表示存储设备102的存储区域304。存储设备驱动器306包括存储设备接口部件308,其配置成在低级别与存储设备102交互,例如通过发出访问请求到存储设备102,协商每个存储设备102的寻址方案,以及处理写高速缓存和缓存语义(例如,与读高速缓存交互并且冲洗写高速缓存)。存储设备接口部件308可以生成存储设备102的每个存储区域304的存储区域表示310(例如,指示在计算机108的操作环境中每个存储区域304的存在和特性)。存储设备驱动器306还包括存储控制器驱动器部件312,其可以配置成将两个或更多个存储区域表示310聚集为存储池116,并且还可以实施存储设备关系302的细节(例如,将相应写请求引导到两个存储区域304从而满足镜像存储设备关系302)。存储控制器驱动器部件312也可以配置成要求存储区域表示310(例如,向计算机108的操作环境中的其它进程指示所表示的存储区域304被保留用于存储池116,并且对于其它存储进程是不可用的),以及生成合并的存储区域表示314(例如,指示计算机108的操作环境中存储池116的存在,可选地包括有关存储池118的细节,诸如其是可用的和所使用的容量以及在其中实施的存储特征204)。存储设备驱动器306还包括存储端口驱动器部件316,其将计算机108的操作环境中的合并的存储区域表示314表示为逻辑表示318(例如,表示为逻辑盘)。存储端口驱动器部件316可以因此将所表示的存储池116暴露为简单容量存储。
如图3的示例性情形300所描绘,此处给出的技术可以呈现与存储设备102的其它表示相比的许多优点。作为第一示例,作为存储设备驱动器306的技术的架构可以使能这种丰富特征集合可以在许多计算机108的现有存储驱动器架构中实施,以及与传统存储设备驱动器110一起操作(例如,图3中描绘的简单存储设备驱动器110,其简单地将单个存储设备102表示为逻辑卷104)。然而,此示例性存储设备驱动器306也暴露存储设备102的若干表示,其包括:用于存储设备102的存储区域304的存储区域表示310;用于存储池116的合并的存储区域表示314;以及按照存储端口驱动器方式的逻辑表示318。这种分层呈现使得计算机108的个体和进程能够在不同上下文中以及在变化的细节级别检查存储设备102,所述级别包括简单容量存储的最高级别表示、在其中实施的存储池116和存储特征204的中间级别表示;以及在其上实施的存储设备102和存储区域304的低级别表示。此外,按照分层方式的表示存储设备102使得实现在下述中的鲁棒灵活性:作为存储区域表示的存储设备102的存储区域的配置;将存储区域表示合并到具有各种存储特征204集合的存储池116中;以及将存储池116暴露和用作可以按照许多方式分摊和利用的逻辑表示。再者,由于在计算机108的操作环境中执行的存储设备102的存储设备驱动器306知晓存储情形的丰富复杂性,存储设备驱动器306可以在各种层实施附加特征。例如,如果计算机108为集群206的节点208,并且如果存储设备102和/或存储池16由作为集群206的一部分的计算机108访问,则存储设备驱动器306可以实施集群环境的特征(例如,校验权限和访问权,并且将这种访问通知集群206的其它节点208),并且可以在设备驱动器级别如此操作,由此在存储设备驱动器306级别实现在对存储设备102的基础和全面访问中的复杂存储情形细节的实施。这些和其它优点可以通过依据此处给出的技术的存储设备102在计算机108上的表示来实现。
C.示例性实施例。
图3呈现这些技术的第一示例性实施例的图示,其被图示为配置成表示计算机108可访问的存储设备102的示例性存储设备驱动器306。存储设备驱动器306包括相互操作的部件的集合,其中相应部件可以例如实施为在计算机108的存储器部件(例如存储器电路、硬盘驱动器的盘片、固态存储设备或者磁盘或光盘)中存储的指令集合,所述指令集合在被执行时在计算机108的操作环境中实施存储设备驱动器306,该存储设备驱动器306生成在计算机108中存储设备102的表示。存储设备驱动器306可以被提供存储计划(例如,由用户提供的规范,从而指示存储设备102如何将被聚集到存储池116、存储特征204和/或逻辑表示31中),并且可以根据此处给出的技术实施存储计划。具体地,存储设备驱动器306包括存储设备接口部件308,其配置成生成相应存储设备102的相应存储区域304的存储区域表示310。存储设备驱动器306还包括存储控制器驱动器部件312,其配置成,对于包括相应存储设备102的至少一个存储区域304的相应存储池116,要求存储池116中涉及的存储设备102的存储区域304的存储区域表示310;应用存储设备关系302到存储池116;以及生成存储池116的合并的存储区域表示314。存储设备驱动器306还包括存储端口驱动器部件316,其配置成,对于相应的合并的存储区域表示314,生成合并的存储区域表示314的逻辑表示318。以此方式,存储设备驱动器306可以依据此处给出的技术以分层和灵活的方式在计算机108的操作环境中呈现存储设备102。
图4呈现这些技术的第二实施例的图示,其被图示为表示具有处理器的计算机108可访问的存储设备102的示例性方法400。示例性方法400可以例如实施为在计算机108的存储器部件(例如,存储器电路、硬盘驱动器的盘片、固态存储器部件或者磁盘或光盘)中存储的指令集合,当由计算机108的处理器执行时,所述指令集合使得计算机108执行此处给出的技术。示例性方法400在402开始并且涉及在处理器上执行404指令。特别地,指令配置成在计算机108上安装存储设备驱动器306,该存储设备驱动器306进而包括指令,所述指令配置成当在处理器上执行时使得计算机108根据此处给出的技术表示存储设备102。具体地,存储设备驱动器306的指令配置成生成406相应存储设备102的相应存储区域304的存储区域表示310。存储设备驱动器306的指令还配置成,对于包括至少一个存储设备102的至少一个存储区域304的相应408存储池116,要求410存储池116中涉及的存储设备102的存储区域304的存储区域表示310;应用412存储设备关系302到存储池116;以及生成414存储池116的合并的存储区域表示314。存储设备驱动器306的指令还配置成,对于相应的合并的存储区域表示314,生成416存储区域表示310的逻辑表示。通过在计算机108上安装配置成以此方式操作的存储设备驱动器306,示例性方法400在计算机108的操作环境中依据此处给出的技术表示存储设备102,并且因此在418结束。
又一实施例涉及包括处理器可执行指令的计算机可读介质,所述处理器可执行指令配置成应用此处给出的技术。这样的计算机可读介质例如可以包括涉及有形设备的计算机可读存储介质,诸如存储器半导体(例如利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和/或同步动态随机存取存储器(SDRAM)技术的半导体)、硬盘驱动器的盘片、闪速存储器设备或者磁盘或光盘(诸如CD-R、DVD-R或软盘),其编码计算机可读指令集合,当由设备的处理器执行时,所述计算机可读指令集合使得该计算机实施此处给出的技术。这样的计算机可读介质还可以包括(作为与计算机可读存储介质不同的一类技术的)各种类型的通信介质,比如可以通过各种物理现象传播的信号(例如电磁信号、声波信号或光学信号)以及在各种有线情形(例如通过以太网或光纤线缆)和/或无线情形(例如,诸如WiFi的无线局域网(WLAN)、诸如蓝牙的个人区域网(PAN)、或者蜂窝或无线电网络)中传播的信号,并且其编码计算机可读指令集合,当由设备的处理器执行时,所述计算机可读指令集合使得该计算机实施此处给出的技术。
图5中图示了可以按照这些方式设想到的示例性计算机可读介质,其中实施方式500包括在其上编码计算机可读数据504的计算机可读介质502(例如CD-R、DVD-R或者硬盘驱动器的盘片)。该计算机可读数据504进而包括计算机指令506集合,其配置成根据这里阐述的原理来操作。在一个这样的实施例中,处理器可执行指令506可以被配置成执行在计算机上表示存储设备的方法,诸如图4的示例性方法400。该计算机可读介质的一些实施例可以包括非瞬时计算机可读存储介质(例如硬盘驱动器、光盘或闪速存储器设备),其被配置成存储以这种方式配置的处理器可执行指令。本领域普通技术人员可以设想到被配置成根据此处给出的技术操作的许多这种计算机可读介质。
D.变型。
在许多方面可以设想到此处讨论的技术的变型,并且其中一些变型相对于这些和其它技术的其它变型可以给出附加的优点和/或减少缺点。再者,一些变型可以被组合实施,并且通过协同的合作,一些组合可以特征在于附加的优点和/或减少的缺点。所述变型可以被结合在各种实施例中(例如图4的示例性方法400),以便为这种实施例赋予单独的和/或协作的优点。
D1.情形。
在这些技术的各实施例之间可能有所不同的第一方面涉及可以在其中利用这样的技术的各种情形。作为该第一方面的第一变型,这些技术可以在许多类型的存储设备102中使用,所述存储设备102包括硬盘驱动器、固态存储设备、非易失性存储器电路、基于带的存储设备以及磁盘和光盘。这种存储设备102也可以直接连接到实施这些技术的计算机108;可以通过有线或无线局域网(例如802.11 WiFi网络或特别(ad-hoc)连接,或者红外连接)访问;以及/或者可以通过有线或无线广域网(例如蜂窝网络或因特网)访问。
作为该第一方面的第二变型,存储设备102可以存储许多类型的数据集合。例如,存储设备102的容量可以用于存储:存储各种类型的二进制对象的二进制存储系统;存储文件的文件系统;存储媒体对象的媒体库;存储许多类型的对象的对象系统;存储记录的数据库;以及存储电子邮件消息的电子邮件系统。另外,这种数据集合可以按照许多方式阻止,诸如无序集合、序列、诸如树的层级结构、或者元组集。
作为此第一方面的第三变型,这些技术的某些部分或全部可以被实施在计算环境内的一个或更多部件中,比如存储在可以访问存储设备102的计算机或设备的易失性或非易失性存储器中的软件指令集合(例如操作系统处理或硬件驱动程序);由被配置成与存储设备102接口的存储系统实施(例如硬件存储控制器);或者被实施在相应存储设备102中。
作为该第一方面的第四变型,存储设备102可以配置成按照各种方式分配容量。例如,存储设备102可以配置成将容量分配为暴露逻辑卷的分区集合;分配为与空间关联的扩展集合;或者分配为可以进一步被提供且与空间关联的容量片集合。本领域技术人员可以设想到在其中可以利用此处给出的技术的许多情形。
D2.存储设备驱动器。
可以在这些技术的实施例之间变化的第二方面涉及存储设备驱动器306的实施方式中的变型。作为第一变型,存储设备驱动器306的架构可以在许多方面改变。图3的示例性情形300图示了示例性存储设备驱动器306的一种合适架构,其包括:存储设备接口部件308,作为与存储设备102的较低级别接口;存储控制器驱动器部件312,作为实施存储池116和存储设备关系302的中间级别接口;以及存储端口驱动器部件316,作为高级别接口,其生成在计算机108的操作环境中存储池116的最高级别表示。然而,可以设想到仍然可以捕获此处给出的技术的此架构中的许多变型。作为一个这种示例,存储控制器驱动器部件312可以实施为:合并部件,其将存储设备102聚集到存储池116中;以及分离存储设备关系部件,其实施存储池116的存储设备关系302(例如,在合并部件上、下或者并排实施的不同部件)。可以设想到许多这种架构变型,而同时仍与此处给出的技术兼容。
作为该第二方面的第二变型,存储设备驱动器306的相应部件可以在不同上下文生成存储设备102的各种表示,并且可以按照许多方式如此操作。作为第一示例,一个或多个部件可以生成在计算机108的操作环境中是可见的存储设备的表示。可替换地,部件可以生成在存储设备驱动器36内部的表示,并且可以将该表示仅仅暴露于更高级别部件由此用于消耗。例如,存储控制器驱动器部件312可以生成对于计算机108的其它进程是可见的合并的存储区域表示314,或者可以将合并的存储区域表示314仅仅呈现给存储端口驱动器部件316以用于进一步表示为逻辑表示318。作为第二示例,相应部件可以要求由较低级别部件生成的存储设备102的表示。例如,对于由存储设备接口部件308生成的,用于存储池116中涉及的存储区域304的相应存储区域表示310,存储控制器驱动器部件312可以通过彻底消耗并且将它们从计算机108的操作环境的其它进程隐藏来要求这种存储区域表示310(例如,从存储设备列举完全移除托管这种存储区域304的存储设备102),使得存储区域304没有被可见地表示并且看上去不存在。可替换地,存储控制器驱动器部件312可以简单地改变存储区域表示310,例如简单地改变将存储设备列举中的存储设备102包含到专用存储设备类型,或者利用合并的存储区域表示将该表示替换到存储设备列举,由此允许这种表示仍可见,但是被标记为被保留用于包含在合并的存储区域表示314中。作为另一可替换方案,存储控制器驱动器部件312可以按照非排它性方式要求存储区域表示,例如通过将合并的存储区域表示314与底层存储区域表示310关联,但是可以允许其它进程按照与未合并的存储区域304相似的方式与存储区域表示310交互。在实施此处给出的技术的同时,本领域技术人员在存储设备驱动器306的架构和操作中可以设想到许多变型。
D3.简单集群。
可以在这些技术的实施例之间变化的第三方面涉及调适此处给出的技术(例如存储设备驱动器306的配置)用于简单集群情形。例如,在其中存储设备驱动器306表示存储设备102的计算机108可以被包括为简单集群206中的节点208,其中相应节点208可访问(包括连接到此计算机108,连接到其它节点208,和/或通过网络可访问的)存储设备102集合。在简单集群206,相应节点208可以在节点208之间请求对存储设备102可访问的存储池116的排它性访问。例如,存储池116每次只能由集群206的一个节点208访问,并且节点208可以通过各种并发机制协商访问。具体地,节点可以配置成选择可以排它性访问存储池116的存储池所有者,所述存储池所有者可以保持为存储池所有者,直至放弃存储池116的所有权和/或直至所有权被集群206撤销。例如,集群206的节点208可以检测各种替代事件(例如,负载重新平衡事件,其指示从集群206的第一节点208重新平衡到集群206的第二节点208;断开事件,其指示存储池所有者从集群206断开;以及故障事件,其指示节点208的故障,诸如存储池所有者的故障),所述替代事件可以迫使发生替代池所有者的选择。在这种事件中,集群206的其它节点208可以在集群206的其余可用节点208中自动地选择存储池116的新存储池所有者(或者可以简单地撤销存储池116的所有权,直至或者除非由另一节点208提出要求)。
存储设备驱动器306可以配置成支持包含计算机108作为简单集群206情形中的节点208。作为第一示例,如果计算机108被选择作为存储池116的存储池所有者,存储设备驱动器306可以指示该存储池可由作为集群206的节点208的计算机108访问(例如,通过自动地生成合并的存储区域表示314和/或存储池116的逻辑表示318,和/或在检测到将计算机108指定为存储池所有者时,通过自动地安装存储池116作为逻辑盘)。作为第二示例,如果另一节点208被选择作为存储池所有者,或者如果所有权从计算机108被撤销,则存储设备驱动器306可以指示存储池116不可由计算机108访问(例如,通过自动地卸载作为逻辑盘的存储池116,和/或自动地撤回由存储池116产生的逻辑表示318和/或合并的存储区域表示314)。
在该第三方面的另一变型中,集群206的节点208可以配置成区分具有冗余计划的存储池116(例如,包括诸如镜像或奇偶计算的存储特征204的存储池116),并且可以仅仅为这种存储池116选择存储池所有者,同时允许集群206的任何节点208访问不具有冗余计划的存储池116。这种存储池116区别可以反映准予多个节点208同时访问具有这种冗余计划的存储池116的显著和潜在灾难性效果;例如,如果两个节点208对存储池116的部分进行写入,其导致校验和与对应数据集合不匹配,则毫无关联的数据集合的完整性可能受连累,并且实际上整个存储池116的完整性可能受危害。相比之下,不以冗余计划为特征的存储池116可以不受写冲突连累;例如,写入的数据集合的有效性可能由于写冲突受损害,但是不可能危害整个存储池116的完整性。因此,存储设备驱动器306可以配置成排它性地通过为具有冗余方案的存储池116指定存储池所有者而识别和实施访问,但是可以不将如此严格限制应用到其它存储池116。本领域技术人员在存储设备驱动器306的配置中可以设想到许多变型,从而依据此处给出的技术支持简单集群情形。
D4.高可用性集群。
可以在这些技术的实施例之间变化的第四方面涉及在被包括作为高可用性集群206的节点208的计算机108上存储设备102的存储设备驱动器306的表示。与简单集群情形相比,高可用性集群206可以呈现节点208之间更紧凑的相互操作程度。例如,这种集群206可包括更复杂机制用于共享存储池116以及用于共享池资源(例如,存储设备102和/或存储区域304的群组);以及包括更复杂机制用于提供和保护对相应存储设备102、存储区域304和存储池116的访问。通过以全面方式与存储情形的复杂性集成(例如,通过封装存储设备102、存储区域304、存储池116、存储设备关系302、存储特征204和逻辑表示318,以及使计算机108加入作为高可用性集群206的节点208),存储设备驱动器306可以能够实施高可用性集群206的这种访问控制以及其它特征。
作为该第四方面的第一变型,存储设备驱动器306可以配置成识别将集群206的节点208(包括存储设备驱动器306安装于其上的计算机108)指定为存储池116的存储池管理器。在高可用性集群206中,存储池116可包括存储池配置,其可以存储在参与存储池116的相应存储设备102上。例如,存储池配置可以指示:从存储池116产生的逻辑表示318;显露存储池116的存储设备102的存储区域304的提供和分配;以及存储特征204的细节(例如,使用特定奇偶算法计算奇偶值)。存储池配置可以很少更新,但是这种变化可能表示存储设备102的显著调整。因此,会是有利的是确保这种变化仅仅由一个节点208写入,并且迅速从该节点208广播到集群206的所有其它节点208(例如,而不是以分散方式散布这种信息)。因此,会是有利的是,集群206选择节点208作为存储池管理器,该存储池管理器可以排它性写访问相应存储设备102上的存储池配置。试图改变(例如,发起在存储池116中创建新逻辑表示318)存储池配置的其它节点208可以被禁止直接更新存储池配置,并且可以反而将这种请求转发到集群206中存储池116的存储池管理器。另外,在更新存储池配置时,存储池管理器可以配置成将更新广播到集群206的其它节点208,从而促使其它节点208重新读取存储池配置,从而促使对包括存储池116的存储区域304以及存储设备102的正确访问。
在这种情况下,存储设备驱动器306可以配置成参与和/或被告知这种选择,并且可以因此实施对相应存储设备102上的存储池配置的访问。作为第一示例,存储设备驱动器306可以检测集群206的节点208被配置成选择一存储池管理器,该存储池管理器被配置成(主导或者排它性)更新存储池配置。如果存储设备驱动器306安装于其上的计算机108被选择作为存储池管理器,存储设备驱动器306可以使得该计算机108能够访问相应存储设备102和存储池116的存储池配置。然而,如果计算机108不是存储池管理器,存储设备驱动器306可以禁止这种访问,并且/或者可以自动地将这种访问转发到当前存储池管理器。实际上,在一些实施例中,存储设备驱动器306可以甚至参与在集群206的节点208中选择存储池管理器(有可能通过与安装在集群206的其它节点208上的存储设备驱动器306通信),并且/或者参与散播有关存储池配置更新的信息(例如,在计算机108更新存储池116的存储池配置时,存储设备驱动器306可以调用集群206的广播接口,从而向集群206的其它节点208通知存储池配置的更新)。
图6呈现示例性情形600的图示,其特征在于包括可访问存储设备102的存储池116的节点208集合的高可用性集群206。在此示例性情形600中,相应存储设备102可包括存储区域304集合,所述存储区域304集合被分配到集群206的节点208可访问的存储池116,并且可以从存储池116暴露逻辑表示318的集合。具体地,相应集群206的节点208可包括根据此处给出的技术配置的存储设备驱动器306,其可以实现在相应节点208的操作环境中生成包括存储池116的存储区域304的逻辑表示318。再者,相应存储设备102可以存储含有关于存储池116的配置和维护信息的存储池配置602。存储设备102可以自动地同步604在存储设备102上存储的存储池配置602,从而维持存储池116的表示的一致性和同步。
在图6的示例性情形600中,在集群206的每个节点208上操作的存储设备驱动器306可以按照各种方式促进集群206。例如,不是使得集群206的任一节点208能够访问任何存储设备102上的存储池配置602,存储设备驱动器306可以在集群206的节点208之间发起、参与和/或监视被授权排它性写访问存储池配置602的存储池管理器606的选择。存储设备驱动器306可以许可由存储池管理器606发起存储池配置602的更新,和/或转发到存储池管理器606用于发起,并且可以许可存储池管理器606更新608存储设备102的存储池配置602。在接收到更新时,存储设备102可以自动地同步604存储池配置602从而传播到其它存储设备102。可替换地,存储池管理器606和/或存储设备驱动器306可以同步604存储池配置602。另外,如果其上安装了该存储设备驱动器的节点208不是存储池116的存储池管理器606,则每个存储设备驱动器306可以禁止该节点208更新608存储池配置602。以此方式,存储设备驱动器306促进高可用性集群206的操作。
作为该第四方面的第一变型的另一示例,鉴于存储设备102是否当前被集群206请求,存储设备驱动器306可以触发对存储设备102的存储池配置602的排它性访问。可以理解,如果存储设备102不被集群206和/或存储池116使用,则可以允许使得任何计算机108能够更新存储池配置602(因为它可能不被集群206的其它节点208所严重依赖)。在一个这种情形中,相应存储池116的存储池配置62可包括集群参与指示符,诸如指示集群206是否要求存储池116的特定位或值。存储设备驱动器306可以配置成:在检测到存储池116加入集群206时,设置存储池106的存储池配置602的集群参与指示符;以及在检测到存储池116离开集群206时,清除存储池106的存储池配置602的集群参与指示符。再者,在接收到更新存储池106的存储池配置602的请求时,存储设备驱动器306可以确定存储池116的存储池配置606的集群参与指示符是否被设置。如果被设置,存储设备驱动器306可以忍住并且该计算机不是存储池116的存储池管理器,禁止对存储池116的存储池配置606更新608,除非计算机108被选为存储池116的存储池管理器604。例如,基于存储设备102是否参与集群206,以及节点208是否被选为存储池116的存储池管理器604,存储设备驱动器306可以在读/写状态与只读状态之间触发存储池配置602在节点208上的表示。
作为该第四方面的第二变型,存储设备驱动器306可以促进集群206对存储池116和存储设备102的要求,其中在该集群206中计算机108被登记为节点208,存储设备驱动器306安装于该计算机108上。在这种情形中,会是有利的是,将对存储设备102的访问限制到集群206的节点;例如,通过访问存储设备102的集群206的节点208之间的可信任通信,可以实现和/或促进对存储设备102的同时访问。因此,相应存储设备102可包括登记列表,在该登记列表中可以记录被许可访问存储设备102的计算机108的登记,并且这种登记可以指定相应计算机108被授权对集群206的存储池116中涉及的存储区域304进行写入。通过仅仅从登记列表中包括的计算机108接受写请求(并且可选地,也接受读请求和/或其它访问请求),存储设备102可以配置成实施此许可。因此,当集群206的节点208发起对存储设备102的访问时,节点208可以首先访问在存储设备102上存储的登记列表,并且可以将自身添加到该登记列表。另外,集群206的节点208可以被选择作为存储设备102的存储设备管理器,并且可以监视登记列表(例如,通过频繁调查或者通过发布/订阅通知系统)以确保仅仅在集群206中登记的节点208被包括在登记列表中。如果存储设备管理器标识计算机108的登记列表上的登记未被登记为集群206的节点208(例如,从集群206断开或驱逐的节点208),则存储设备管理器可以从用于计算机108的登记列表移除该登记。存储设备管理器可以按照许多方式被选择,例如,通过选择或自选择;可替换地,集群206的存储池管理器602也可以作为由集群206使用的存储设备102的存储设备管理器操作。再者,存储设备104可以通过下述来促进登记列表的维护:包括用于被选为存储设备管理器的节点208的保留;以及仅仅容许具有该保留的节点208更新登记列表。存储设备驱动器306可以按照各种方式参与存储设备102的这种保护机制,例如在计算机108访问存储设备102时通过自动地请求登记;通过发起、参与和/或监视存储设备管理器的选择;和/或通过禁止计算机108访问计算机108不具有针对其的登记的存储设备102。
图7呈现示例性情形700的图示,其特征在于通过实施登记列表702来保护存储设备102。在此示例性情形700中,节点208的集群206(每个节点安装了根据此处给出的技术配置的存储设备驱动器306)访问存储设备102,由此可以由存储设备驱动器306生成逻辑表示318的集合。具体地,参与存储池116的存储设备102可以被保留以仅供集群206的节点208访问,并且拒绝对当前在集群206中没有登记的计算机108的访问。因此,存储设备102可包括登记列表702,该登记列表702包括指示对节点208授权以访问存储设备102的登记704。节点208可以通过简单地更新登记列表702而为自己创建706登记704。然而,存储设备102也可以被集群206外的计算机108访问,例如被从集群206断开或驱逐的计算机108访问。再者,计算机108可能甚至不检测断开或驱逐,并且因此可能无法确定访问存储设备102不再是安全的。因此,集群206的节点208(例如存储池管理器606)可以被选择作为用于存储设备102的存储设备管理器708。可以通过将保留710添加到标识被选为存储设备管理器708的节点208的登记列表702来指示此选择。存储设备管理器708可以调查712登记列表702,并且可以将在存储设备102上具有登记704的节点208与当前登记在集群206中的节点208列表比较。如果存储设备管理器708标识计算机108具有登记704但是当前不是集群206的节点208,则存储设备管理器708可以从登记列表702移除计算机108的登记704。由于缺少对计算机108的登记704原因,计算机108随后对写存储设备102的尝试可以接着被存储设备102自动否决。以此方式,存储设备102可以利用登记列表702来限制仅仅由集群206的当前节点208访问。
登记列表702也可以为集群206呈现附加的使用,例如,作为共享机制以协商对存储设备102上表示的存储池116的访问。作为一个示例,登记列表702可以使得高可用性集群206能够避免简单集群206碰到的关于同时访问具有冗余计划的存储池116的类似问题,其中授权多个节点208同时访问具有冗余计划的存储池116可能具有显著且灾难性效果。例如,如果两个节点208对存储池116的部分进行写入,其导致校验和与对应数据集合不匹配,则毫无关联的数据集合的完整性可能受连累,并且实际上整个存储池116的完整性可能受危害。为了避免这种同时访问问题,相应节点208(包括安装在其上的存储设备驱动器306)可以在从计算机108接收到访问具有冗余计划的存储池116的请求时,读取存储设备102的登记列表702;对于在登记列表702上具有登记704的节点208,请求其它节点208卸载存储池116,并且在从所有其它节点208接收到卸载确认之后,可以访问存储设备102的存储池116。类似地,相应计算机108(包括安装在其上的存储设备驱动器306)可以配置成,在从节点208接收到卸载存储池116的请求时,卸载存储池116(如果它当前被安装),并且发送卸载确认到节点208。登记列表702可以因此促进存储池116和存储设备102在集群206的节点208之间的共享,同时避免对具有冗余计划的存储池116的同时访问的一些问题。
作为该第四方面的第四变型,集群206可包括可以被保留供特定节点208访问的各种集群资源(例如一个或多个逻辑表示318)。例如,节点208可以被委派以提供集群206的特定服务(例如负载平衡服务器),并且为了完成此任务,节点208可以被许可访问集群资源,诸如相应集群206的节点208的身份和工作负载记录于其中或者负载平衡确定被记载在其中的逻辑卷。在这种情形下,集群206可以提供对所选择的节点208的各种类型的访问。作为第一示例,节点208可以被选择作为集群资源所有者,并且可以授权对集群资源的排它性读和写访问,同时其它节点208可以被禁止以任何方式访问集群资源。作为第二示例,节点208可以被选择作为集群资源写装置,并且可以被授权对集群资源的排它性读和写访问,而其它节点208被授权对集群资源的只读访问(并且可以转发对被选为集群资源写装置的节点208进行写入的请求)。存储设备驱动器306可以发起、参与和/或监视集群资源所有者和/或相应集群资源的集群资源写装置的选择,并且可以在每个存储设备驱动器306安装于其上的节点208上实施这种选择。另外,在检测到涉及被选择作为集群资源所有者和/或集群资源写装置的集群206的节点208的替代事件(例如故障、断开或者负载平衡确定)时,存储设备驱动器306可以发起替代集群资源所有者和/或集群资源的替代集群资源写装置的选择。通过选择可以排它性写访问集群资源(例如存储池配置602)的集群资源写装置(例如存储池管理器606),同时授权对集群206的其它节点208的读取访问,这种机制可以特别地用于调节对存储池116的存储池配置602的访问。
图7呈现示例性情形的图示,其特征在于依据这些技术调节对集群资源714的访问。在此示例性情形700中,集群资源714由存储设备102提供,从而促进由集群206的节点208提供的服务。在集群206的节点208之间,特定节点208可以被选择作为集群资源写装置716,并且可以被授权对集群资源714的排它性写访问。集群资源写装置716可以因此将写请求718直接发送到专用于存储设备102的集群资源714。集群206的其它节点208可以将读请求720直接发送到集群资源714,但是可以被引导将涉及集群资源714的写请求718转发到被选为集群资源写装置716的节点208,其可以确定是否将写请求718应用到集群资源714。集群资源714的这些访问限制可以例如通过存储设备102和/或存储在集群206的相应节点208上的存储设备驱动器306来实施。
按照此方式可以被访问的特定类型的集群资源714为维护区域,有关集群206中涉及的各种存储区域304的元数据可以记录在该维护区域中。例如,维护区域可以记录具有冗余计划的存储池116的健康;例如,当存储设备102或存储区域304故障时,集群206的节点208可以,在执行存储池116的修补时,在维护区域中记录关于存储池116的健康的健康信息。维护区域也可以包括关于相应存储设备102的可用性的信息(例如存储设备102是临时还是永久分离)以及肮脏区域信息(例如,将被同步的存储区域304的冗余数据集合,诸如将被更新的校验和)。
维护区域可以用于促进经受故障(诸如分离、数据崩溃、或者存储该存储区域304的存储设备102损坏)的存储区域304的修补。集群206的节点208(特别是指定为用于维护区域的集群资源写装置716的节点208)可以配置成更新维护区域,从而记录所检测的健康更新。如果健康更新提示存储区域304的修补操作,集群资源写装置716可以(可选地)首先等待简短等待期以确定存储区域304是否被恢复(例如,健康更新可包括由临时网络断开造成的“分离”指示符)。然而,或者在检测到健康更新时迅速地或者在等待期到期之后,集群资源写装置716可以确定该存储区域304已经出故障,并且可以发起修补操作。一些修补操作可以通过重写或重建存储区域304中的数据来完成,例如从而修补通过使用存储集合中其它位置中存储的弹性数据的竞争状态导致的数据崩溃。然而,其它修补可以涉及:抛弃已经发生不可挽回的故障的存储区域304和/或存储设备102;以及为对应存储池116重新分配空间,这可能不得不涉及存储池管理器606以执行该重新分配。因此,集群资源写装置716可以直接向存储池管理器606通知存储区域304的健康更新以及修补操作的不可挽回。可替换地,集群资源写装置716可以利用健康更新简单地更新维护区域,并且存储池管理器606可以监视维护区域,从而检测可能提示存储池配置602的重新配置的健康更新。在任一情形中,集群资源写装置716可能无法撤销修补操作的发起(因为存储池管理器606已经将受损坏的存储区域304标记为不能使用和/或为存储区域304分配新容量)。另外,集群资源写装置716可能无法采取修补操作中的另外动作,直至容量被分配。
在接收到该通知和/或检测到提示修补操作的维护区域的健康更新时,存储池管理器606可以分配新存储区域304,并且可以更新存储池配置602以反映该分配。存储池管理器606可以随后通知集群资源写装置716新容量已经被分配。此通知可以是明确和直接的(例如,存储池管理器606可以直接接触集群资源写装置716以指示容量分配),或者可以是含蓄的(例如,存储池配置602的更新的通知可以自动地被传播到集群206的其它节点208,并且用于维护区域的集群资源写装置716可以检测在存储池配置602的更新中替代存储区域304的分配)。在任一情形中,在接收到新容量已经被分配的通知时,集群资源写装置716可以发起将数据重建到替代存储区域304中从而修补存储区域304。以此方式,存储池管理器606和用于维护区域的集群资源写装置716可以隐含地协作以实现存储区域304的修补。本领域技术人员可以设想到用于与此处给出的技术的高可用性集群206一起使用的许多调适。
E.计算环境。
图8和下面的讨论提供了适当计算环境的简要、普通描述以实施这里阐述的一个或多个供应的实施例。图8的操作环境仅是适当操作环境的一个示例并且不意图建议对操作环境的使用或功能的范围进行任何限制。示例计算设备包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费者电子装置、小型计算机、大型计算机、包括任何前述系统或设备的分布式计算环境等等。
尽管不要求如此,在“计算机可读指令”由一个或多个计算设备执行的一般上下文中描述了各实施例。计算机可读指令可以通过计算机可读介质分布(下文讨论)。计算机可读指令可以实施为执行具体任务或者实施特定的抽象数据类型的程序模块,诸如函数、对象、应用程序接口(API)、数据结构等。典型地,计算机可读指令的功能可以在各种环境中根据需要组合或分布。
图8图示了包括被配置成实施这里提供的一个或多个实施例的计算设备802的系统800的示例。在一种配置中,计算设备802包括至少一个处理单元806和存储器808。取决于计算设备的确切配置和类型,存储器808可以是易失性的(例如,诸如RAM)、非易失性的(诸如ROM、闪速存储器等等)或者这二者的某种组合。这种配置在图8中由虚线804图示。
在其它实施例中,设备802可以包括附加的特征和/或功能。例如,设备802还可以包括附加的存储装置(例如可移除和/或不可移除),其包括(但不限于)磁性存储装置、光学存储装置等等。这样的附加存储装置在图8中由存储装置810图示。在一个实施例中,实施这里提供的一个或多个实施例的计算机可读指令可以在存储装置810中。存储装置810还可以存储其它计算机可读指令以实施操作系统、应用程序等等。计算机可读指令可以被加载到存储器808中例如用于由处理单元806执行。
这里所使用的术语“计算机可读介质”包括计算机存储介质。该计算机存储介质包括以用于存储诸如计算机可读指令或其它数据的信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除的介质。存储器808和存储装置810是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁性存储设备、或者可以被用来存储期望信息并且可以被设备802访问的任何其它介质。任何这样的计算机存储介质可以是设备802的一部分。
设备802还可以包括(多个)通信连接816,其允许设备802与其它设备进行通信。所述(多个)通信连接816可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发送器/接收器、红外端口、USB连接或者用于将计算设备802连接到其它计算设备的其它接口。(多个)通信连接816可以包括有线连接或无线连接。(多个)通信连接816可以发送和/或接收通信介质。
术语“计算机可读介质”可以包括通信介质。通信介质典型地具体化计算机可读指令或者在诸如载波的“调制数据信号”或其它传送机制中的其它数据,并且包括任何信息递送介质。术语“调制数据信号”可以包括这样的信号,该信号具有其特性集合中的一个或多个或者以解码该信号中的信息的方式来改变。
设备802可以包括(多个)输入设备814,比如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外摄影机、视频输入设备和/或任何其它输入设备。(多个)输出设备812(比如一个或多个显示器、扬声器、打印机和/或任何其它输出设备)也可以被包括在设备802中。(多个)输入设备814和/或(多个)输出设备812可以通过有线连接、无线连接或其任意组合连接到设备802。在一个实施例中,来自另一个计算设备的输入设备或输出设备可以被用作用于计算设备802的(多个)输入设备814或(多个)输出设备812。
计算设备802的部件可以通过各种互连(比如总线)连接。这样的互连可以包括外围部件互连(PCI)(比如PCI Express)、通用串行总线(USB)、火线(IEEE 1394)、光学总线结构等等。在另一个实施例中,计算设备802的部件可以通过网络互连。举例来说,存储器808可以包括位于通过网络互连的不同物理位置的多个物理存储器单元。
本领域技术人员将认识到,被用来存储计算机可读指令的存储设备可以分布在网络上。举例来说,可通过网络818访问的计算设备820可以存储计算机可读指令以实施这里所提供的一个或多个实施例。计算设备802可以访问计算设备820,并且下载所述计算机可读指令的一部分或全部以便执行。可替换地,计算设备802可以按照需要下载一部分计算机可读指令,或者一些指令可以在计算设备802处执行,并且一些指令可以在计算设备820处执行。
F.术语的使用。
虽然用特定于结构特征和/或方法步骤的语言描述了本发明的主题内容,但是应当理解的是,在所附权利要求中限定的主题不必受限于上文描述的特定特征或步骤。相反,前面描述的特定特征和步骤是作为实施权利要求的示例性形式而公开的。
如在本申请中使用的术语“部件”、“模块”、“系统”、“接口”等等通常意图指代与计算机有关的实体,或者是硬件、硬件与软件的组合、软件,或者是执行中的软件。举例来说,部件可以是但不限于运行在处理器上的进程、处理器、对象、可执行程序、执行线程、程序和/或计算机。以说明的方式,运行在控制器上的应用和控制器都可以是部件。一个或多个部件可以驻留在执行的进程和/或线程内,并且部件可以位于一台计算机上和/或分布在两台或更多台计算机之间。
此外,所要求保护的主题可以被实施为一种利用标准编程和/或工程技术来产生软件、固件、硬件或其任意组合以便控制计算机实施所公开的主题的方法、设备、或者制造品。这里使用的术语“制造品”意图包含可以从任何计算机可读设备、载体或介质访问的计算机程序。当然,本领域技术人员将认识到,在不背离所要求保护的主题的范围或精神的情况下,可以对这种配置做出许多修改。
这里提供了实施例的各种操作。在一个实施例中,所描述的其中一项或多项操作可以构成存储在一个或多个计算机可读介质上的计算机可读指令,在由计算设备执行时,所述计算机可读指令将使得所述计算设备执行所描述的操作。描述其中一部分或全部操作的顺序不应被理解为意味着这些操作必须依赖于顺序。受益于本说明书,本领域技术人员将认识到替换的排序。此外还将理解的是,不一定所有操作都必须存在于这里提供的每一个实施例中。
此外,这里使用的“示例性”一词意味着充当一个示例、事例或说明。在这里被描述为“示例性”的任何方面或设计不必须被理解为比其它方面或设计有利。更确切地,使用“示例性”一词是意图以具体的方式呈现概念。本申请中所使用的术语“或者”意图是指包含性的“或者”而不是排它性的“或者”。也就是说,除非另行指明或者可以从上下文明显看出,否则“X采用A或B”意图是指任何自然的包含性排列。也就是说,如果X采用A;X采用B;或者X采用A和B两者,则“X采用A或B”在任何前述事例下都得以满足。此外,除非另行指明或者从上下文中可以明显看出是针对单数形式,否则用在本申请和所附权利要求书中的“一”("a"或"an")通常可以被理解为是指“一个或多个”。
此外,虽然关于一种或多种实现方式示出并描述了本公开内容,但是基于阅读并理解本说明书和附图,本领域技术人员将会想到等效的更改和修改。本公开内容包括所有这样的修改和更改,并且仅由所附权利要求书的范围限制。特别关于由前面描述的部件(例如元件、资源等等)所施行的各项功能,被用来描述这样的部件的术语意图对应于(除非另行表明)施行所述部件的指定功能的任何部件(例如功能上等效),尽管其在结构上不等效于在本公开内容的这里说明的示例性实现方式中施行所述功能的所公开的结构。此外,虽然本公开内容的具体特征可能是关于几种实现方式当中的仅仅一种公开的,但是这样的特征可以与其它实现方式的一项或多项其它特征组合,正如可能对于任何给定或特定应用所期望且有利的那样。此外,就在详细描述部分或权利要求书中使用的“包含”、“具有”、“带有”等术语或其各种变体而言,这样的术语与术语“包括”类似都意图是包含性的。
Claims (10)
1.一种表示具有处理器(512)和处理器的计算机(510)可访问的存储设备(102)的方法(400),该方法(400)包括:
在计算机(510)的存储器中存储包括指令(506)的存储设备驱动器(306),该指令(506)当在处理器(512)上执行时,使得计算机(510):
生成(406)存储设备(102)的相应存储区域(304)的存储区域表示(310);
对于包括至少一个存储设备(102)的至少一个存储区域(304)的相应(408)存储池(116):
要求(410)存储池(116)中涉及的存储设备(102)的存储区域(304)的存储区域表示(310);
应用(412)存储设备关系(302)到存储池(116);以及
生成(414)存储池(116)的合并的存储区域表示(314);以及
对于相应的合并的存储区域表示(314),生成(416)存储区域表示(310)的逻辑表示(318)。
2.如权利要求1所述的方法:
该计算机配置成呈现该计算机可访问的存储设备的存储设备列举;
要求存储池中涉及的存储设备的存储设备表示包括:从存储设备列举移除存储设备;以及
生成存储池的存储区域表示包括:添加合并的存储区域表示到存储设备列举。
3.如权利要求1所述的方法:
包括可以访问存储设备的节点的集群中包括的计算机包括存储池;以及
所述指令配置成,对于相应存储池:
在集群的节点中选择可以排它性访问存储池的存储池所有者;
在检测到涉及存储池所有者的替代事件时,在集群的可用节点中选择替代存储池所有者;
在节点被选为存储池所有者时,指示该节点可访问该存储池;
在另一节点被选为存储池所有者时,指示该节点不可访问该存储池。
4.如权利要求1所述的方法:
相应存储池在相应存储设备被表示为存储池配置;
包括可以访问存储设备的节点的集群中包括的计算机包括存储池;以及
所述指令配置成,对于相应存储池:
在集群的节点中选择配置成更新存储池配置的存储池管理器;以及
在检测到涉及存储池管理器的替代事件时,在集群的可用节点中选择替代存储池管理器。
5.如权利要求4所述的方法,从替代事件集合选择的替代事件包括:
负载重新平衡事件,其指示从集群的第一节点重新平衡到集群的第二节点;
断开事件,其指示节点从集群断开;以及
故障事件,其指示节点的故障。
6.如权利要求4所述的方法,所述指令配置成,在接收到更新存储设备的存储池配置的请求时:
确定该节点是否为包括该节点的存储池的存储池管理器;
在确定该节点不是存储池管理器时,将该请求转发到存储池管理器;以及
在确定该节点为存储池管理器时,更新存储设备上的存储池配置。
7.如权利要求4所述的方法,所述指令配置成,在接收到更新存储池配置的通知时,读取该存储池配置。
8.如权利要求4所述的方法:
相应存储池的存储池配置包括集群参与指示符;以及
所述指令配置成:
在存储池加入集群时,设置存储池的存储池配置的集群参与指示符;
在存储池离开集群,清除存储池的存储池配置的集群参与指示符;以及
在接收到更新存储池的存储池配置的请求时,如果存储池的集群参与指示符被设置并且该计算机不是存储池的存储池管理器,则禁止更新该存储池的存储池配置。
9.如权利要求4所述的方法:
存储池的相应存储设备包括登记列表,该登记列表包括至少零个登记,所述登记指定被授权对存储设备上的存储池的存储区域进行写入的节点;以及
所述指令配置成,在向存储池的存储至少一个存储区域的存储设备进行写入之前,将该节点添加到存储设备的登记列表。
10.如权利要求4所述的方法:
至少一个存储池包括至少一个集群资源;以及
所述指令配置成:
对于相应集群资源,在集群的节点中选择可以排它性读和写访问该集群资源的集群资源所有者;以及
在检测到涉及集群的节点的替代事件时:
标识其节点包括该集群资源所有者的集群资源;以及
在可用的集群的节点中,对于相应集群资源,选择替代集群资源所有者。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/230827 | 2011-09-12 | ||
US13/230,827 US8886910B2 (en) | 2011-09-12 | 2011-09-12 | Storage device drivers and cluster participation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102945139A CN102945139A (zh) | 2013-02-27 |
CN102945139B true CN102945139B (zh) | 2015-09-30 |
Family
ID=47728088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210335850.8A Active CN102945139B (zh) | 2011-09-12 | 2012-09-12 | 存储设备驱动器和集群参与 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8886910B2 (zh) |
CN (1) | CN102945139B (zh) |
Families Citing this family (193)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8443153B1 (en) * | 2010-01-06 | 2013-05-14 | Netapp, Inc. | Dynamic balancing of performance with block sharing in a storage system |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US8886910B2 (en) | 2011-09-12 | 2014-11-11 | Microsoft Corporation | Storage device drivers and cluster participation |
US9304912B1 (en) * | 2012-01-06 | 2016-04-05 | Marvell International Ltd. | Systems and methods for building redundancy data in a RAID system |
US9037921B1 (en) * | 2012-03-29 | 2015-05-19 | Amazon Technologies, Inc. | Variable drive health determination and data placement |
US9792192B1 (en) | 2012-03-29 | 2017-10-17 | Amazon Technologies, Inc. | Client-side, variable drive health determination |
US8719320B1 (en) | 2012-03-29 | 2014-05-06 | Amazon Technologies, Inc. | Server-side, variable drive health determination |
US8972799B1 (en) | 2012-03-29 | 2015-03-03 | Amazon Technologies, Inc. | Variable drive diagnostics |
WO2014018907A1 (en) | 2012-07-26 | 2014-01-30 | University Of Louisville Research Foundation, Inc. | Atrial appendage closure device and related methods |
US10013318B2 (en) | 2013-04-16 | 2018-07-03 | Entit Software Llc | Distributed event correlation system |
WO2014205667A1 (zh) * | 2013-06-26 | 2014-12-31 | 华为技术有限公司 | 网络卷创建方法、数据存储方法、存储设备和存储系统 |
JP6931531B2 (ja) * | 2013-08-02 | 2021-09-08 | 博世尼克資訊股▲ふん▼有限公司 | プログラムをライセンスする装置 |
CN104424052A (zh) * | 2013-09-11 | 2015-03-18 | 杭州信核数据科技有限公司 | 一种自动冗余的分布式存储系统及方法 |
US20150120844A1 (en) * | 2013-10-31 | 2015-04-30 | International Business Machines Corporation | Hierarchical response-enabled notification system |
US9323764B2 (en) * | 2013-11-12 | 2016-04-26 | International Business Machines Corporation | Copying volumes between storage pools |
US10120617B2 (en) | 2013-11-12 | 2018-11-06 | International Business Machines Corporation | Using deterministic logical unit numbers to dynamically map data volumes |
US9619157B2 (en) * | 2014-04-03 | 2017-04-11 | Analysis Solution Llc | High-speed data storage |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US20160092287A1 (en) * | 2014-09-26 | 2016-03-31 | Intel Corporation | Evidence-based replacement of storage nodes |
WO2016051512A1 (ja) * | 2014-09-30 | 2016-04-07 | 株式会社日立製作所 | 分散型ストレージシステム |
US10078361B2 (en) | 2014-10-08 | 2018-09-18 | Apple Inc. | Methods and apparatus for running and booting an inter-processor communication link between independently operable processors |
CN104504348B (zh) * | 2014-12-11 | 2017-09-01 | 上海爱数信息技术股份有限公司 | 一种基于高可用存储系统的数据保护方法 |
US10425352B2 (en) | 2015-03-09 | 2019-09-24 | International Business Machines Corporation | Policy driven storage hardware allocation |
US9948615B1 (en) | 2015-03-16 | 2018-04-17 | Pure Storage, Inc. | Increased storage unit encryption based on loss of trust |
US11294893B2 (en) | 2015-03-20 | 2022-04-05 | Pure Storage, Inc. | Aggregation of queries |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US11232079B2 (en) | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
US10437506B2 (en) | 2015-08-17 | 2019-10-08 | Microsoft Technology Licensing Llc | Optimal storage and workload placement, and high resiliency, in geo-distributed cluster systems |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US9946642B2 (en) * | 2015-11-13 | 2018-04-17 | Samsung Electronics Co., Ltd | Distributed multimode storage management |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US9740582B2 (en) * | 2015-12-30 | 2017-08-22 | Sybase, Inc. | System and method of failover recovery |
US9880774B2 (en) * | 2016-04-29 | 2018-01-30 | Netapp, Inc. | Methods for automatic data storage device assignment during system initialization and devices thereof |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
CN107870731B (zh) * | 2016-09-23 | 2021-07-27 | 伊姆西Ip控股有限责任公司 | 独立盘冗余阵列系统的管理方法和电子设备 |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US10929290B2 (en) * | 2016-12-31 | 2021-02-23 | Intel Corporation | Mechanism for providing reconfigurable data tiers in a rack scale environment |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US10979223B2 (en) | 2017-01-31 | 2021-04-13 | Pure Storage, Inc. | Separate encryption for a solid-state drive |
US10521143B2 (en) * | 2017-03-23 | 2019-12-31 | Netapp Inc. | Composite aggregate architecture |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
CN108874719B (zh) * | 2017-05-16 | 2020-10-20 | 杭州海康威视数字技术股份有限公司 | 一种基于PCIe总线的扩展存储设备 |
US10620879B2 (en) * | 2017-05-17 | 2020-04-14 | Macronix International Co., Ltd. | Write-while-read access method for a memory device |
US10528400B2 (en) | 2017-06-05 | 2020-01-07 | International Business Machines Corporation | Detecting deadlock in a cluster environment using big data analytics |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US10452445B2 (en) * | 2017-06-28 | 2019-10-22 | Microsoft Technology Licensing, Llc | Dynamically configurable storage clusters |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
CN107453951A (zh) * | 2017-08-15 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种存储池监控方法及装置 |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
CN107766001B (zh) * | 2017-10-18 | 2021-05-25 | 成都索贝数码科技股份有限公司 | 一种基于用户群组的存储配额方法 |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10990566B1 (en) | 2017-11-20 | 2021-04-27 | Pure Storage, Inc. | Persistent file locks in a storage system |
CN108038384B (zh) * | 2017-11-29 | 2021-06-18 | 北京京航计算通讯研究所 | 一种高安全的集群共享存储虚拟化方法 |
US10719265B1 (en) | 2017-12-08 | 2020-07-21 | Pure Storage, Inc. | Centralized, quorum-aware handling of device reservation requests in a storage system |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10498809B2 (en) * | 2018-01-29 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Selections of managing nodes in clusters of nodes |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US11792307B2 (en) * | 2018-03-28 | 2023-10-17 | Apple Inc. | Methods and apparatus for single entity buffer pool management |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
US11438279B2 (en) | 2018-07-23 | 2022-09-06 | Pure Storage, Inc. | Non-disruptive conversion of a clustered service from single-chassis to multi-chassis |
US10846224B2 (en) | 2018-08-24 | 2020-11-24 | Apple Inc. | Methods and apparatus for control of a jointly shared memory-mapped region |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US10454498B1 (en) | 2018-10-18 | 2019-10-22 | Pure Storage, Inc. | Fully pipelined hardware engine design for fast and efficient inline lossless data compression |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
US11176017B2 (en) * | 2018-12-19 | 2021-11-16 | International Business Machines Corporation | Measurement of simulated mirroring in a data storage system |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
CN112214466B (zh) * | 2019-07-12 | 2024-05-14 | 海能达通信股份有限公司 | 分布式集群系统及数据写入方法、电子设备、存储装置 |
CN110827424B (zh) * | 2019-09-25 | 2022-07-29 | 招商华软信息有限公司 | 用于实现不间断运行的etc门架的控制方法、设备及介质 |
US11829303B2 (en) | 2019-09-26 | 2023-11-28 | Apple Inc. | Methods and apparatus for device driver operation in non-kernel space |
US11558348B2 (en) | 2019-09-26 | 2023-01-17 | Apple Inc. | Methods and apparatus for emerging use case support in user space networking |
US11477123B2 (en) | 2019-09-26 | 2022-10-18 | Apple Inc. | Methods and apparatus for low latency operation in user space networking |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11256587B2 (en) | 2020-04-17 | 2022-02-22 | Pure Storage, Inc. | Intelligent access to a storage device |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11606302B2 (en) | 2020-06-12 | 2023-03-14 | Apple Inc. | Methods and apparatus for flow-based batching and processing |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
CN111949213B (zh) * | 2020-07-28 | 2022-08-30 | 新华三半导体技术有限公司 | 内存颗粒访问控制芯片、内存颗粒的访问控制系统及方法 |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11775359B2 (en) | 2020-09-11 | 2023-10-03 | Apple Inc. | Methods and apparatuses for cross-layer processing |
US11954540B2 (en) | 2020-09-14 | 2024-04-09 | Apple Inc. | Methods and apparatus for thread-level execution in non-kernel space |
US11799986B2 (en) | 2020-09-22 | 2023-10-24 | Apple Inc. | Methods and apparatus for thread level execution in non-kernel space |
CN112416259B (zh) * | 2020-12-04 | 2022-09-13 | 海光信息技术股份有限公司 | 数据访存方法和数据访存装置 |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US11876719B2 (en) | 2021-07-26 | 2024-01-16 | Apple Inc. | Systems and methods for managing transmission control protocol (TCP) acknowledgements |
US11882051B2 (en) | 2021-07-26 | 2024-01-23 | Apple Inc. | Systems and methods for managing transmission control protocol (TCP) acknowledgements |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US11740803B2 (en) * | 2021-10-22 | 2023-08-29 | EMC IP Holding Company, LLC | System and method for stretching storage protection configurations in a storage cluster |
CN114185485B (zh) * | 2021-11-04 | 2024-06-14 | 浙江华忆芯科技有限公司 | 静态电压表的节点处理方法、装置、计算机设备和存储介质 |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
CN115994045A (zh) * | 2023-02-22 | 2023-04-21 | 深圳计算科学研究院 | 一种基于共享存储数据库集群的事务托管方法及装置 |
CN117591038B (zh) * | 2024-01-18 | 2024-06-11 | 济南浪潮数据技术有限公司 | 一种数据访问方法、装置、分布式存储系统及设备和介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1766851A (zh) * | 2004-10-30 | 2006-05-03 | 惠普开发有限公司 | 用于数据存储区管理的系统及方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6640278B1 (en) * | 1999-03-25 | 2003-10-28 | Dell Products L.P. | Method for configuration and management of storage resources in a storage network |
JP2002222061A (ja) * | 2001-01-25 | 2002-08-09 | Hitachi Ltd | 記憶領域を設定する方法、記憶装置およびプログラム記憶媒体 |
US20060129998A1 (en) * | 2004-03-31 | 2006-06-15 | Danilo Florissi | Method and apparatus for analyzing and problem reporting in storage area networks |
US7747836B2 (en) | 2005-03-08 | 2010-06-29 | Netapp, Inc. | Integrated storage virtualization and switch system |
US7484039B2 (en) | 2005-05-23 | 2009-01-27 | Xiaogang Qiu | Method and apparatus for implementing a grid storage system |
US7809739B2 (en) * | 2005-08-05 | 2010-10-05 | International Business Machines Corporation | Application configuration in distributed storage systems |
US8385061B2 (en) | 2006-10-24 | 2013-02-26 | Lsi Corporation | System and method for implementing a meta-disk aggregation model for storage controllers |
US7779118B1 (en) * | 2006-12-28 | 2010-08-17 | Emc Corporation | Method and apparatus for representing, managing, analyzing and problem reporting in storage networks |
US9389921B2 (en) * | 2008-01-14 | 2016-07-12 | Hewlett Packard Enterprise Development Lp | System and method for flexible device driver resource allocation |
US8606822B2 (en) | 2008-08-15 | 2013-12-10 | International Business Machines Corporation | Apparatus and method to optimize the available storage capacity of a plurality of sequential data storage media disposed in a data storage system |
US8224782B2 (en) * | 2008-09-29 | 2012-07-17 | Hitachi, Ltd. | System and method for chunk based tiered storage volume migration |
JP2010086424A (ja) * | 2008-10-01 | 2010-04-15 | Hitachi Ltd | ストレージ装置の管理装置 |
US8176289B2 (en) * | 2009-05-21 | 2012-05-08 | Red Hat Israel, Ltd. | Method to support sparse volumes or thin provisioned volumes in real time |
US8244956B2 (en) * | 2009-11-30 | 2012-08-14 | Red Hat Israel, Ltd. | Mechanism for automatic adjustment of virtual machine storage |
US8886910B2 (en) | 2011-09-12 | 2014-11-11 | Microsoft Corporation | Storage device drivers and cluster participation |
-
2011
- 2011-09-12 US US13/230,827 patent/US8886910B2/en active Active
-
2012
- 2012-09-12 CN CN201210335850.8A patent/CN102945139B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1766851A (zh) * | 2004-10-30 | 2006-05-03 | 惠普开发有限公司 | 用于数据存储区管理的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US8886910B2 (en) | 2014-11-11 |
CN102945139A (zh) | 2013-02-27 |
US20130067188A1 (en) | 2013-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102945139B (zh) | 存储设备驱动器和集群参与 | |
US11516072B2 (en) | Hybrid cluster recovery techniques | |
US10642704B2 (en) | Storage controller failover system | |
US20080281959A1 (en) | Managing addition and removal of nodes in a network | |
RU2702268C2 (ru) | Масштабируемые пулы хранения данных | |
JPWO2008114441A1 (ja) | ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置 | |
US20170308398A1 (en) | Mechanism for ssds to efficiently manage background activity with notify | |
CN102929786A (zh) | 非易失性存储设备集合的易失性存储器表示 | |
US11070979B2 (en) | Constructing a scalable storage device, and scaled storage device | |
CN102937882A (zh) | 对具有使用位图的存储设备的有效访问 | |
US9935844B2 (en) | Reducing internodal communications in a clustered system | |
US20130007091A1 (en) | Methods and apparatuses for storing shared data files in distributed file systems | |
US8931051B2 (en) | Scalable and highly available clustering for large scale real-time applications | |
CN108369544A (zh) | 计算系统中延期的服务器恢复 | |
US10084860B2 (en) | Distributed file system using torus network and method for configuring and operating distributed file system using torus network | |
CN111147274B (zh) | 为集群解决方案创建高度可用的仲裁集的系统和方法 | |
WO2013018288A1 (ja) | 計算機およびリソース検索方法 | |
JP2009026091A (ja) | 接続管理プログラム、接続管理方法および情報処理装置 | |
US9590839B2 (en) | Controlling access to a shared storage system | |
US11099827B2 (en) | Networking-device-based hyper-coverged infrastructure edge controller system | |
US11956313B2 (en) | Dynamic storage sharing across network devices | |
US10747579B2 (en) | Method and device for allocating resources in a system | |
CN116974489A (zh) | 一种数据处理方法、装置、系统、电子设备及存储介质 | |
US20080250421A1 (en) | Data Processing System And Method | |
CN111752892B (zh) | 分布式文件系统及其实现方法、管理系统、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150616 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150616 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |