CN102077175A - 用于结合分布式raid执行应用的方法和系统 - Google Patents
用于结合分布式raid执行应用的方法和系统 Download PDFInfo
- Publication number
- CN102077175A CN102077175A CN2009801250139A CN200980125013A CN102077175A CN 102077175 A CN102077175 A CN 102077175A CN 2009801250139 A CN2009801250139 A CN 2009801250139A CN 200980125013 A CN200980125013 A CN 200980125013A CN 102077175 A CN102077175 A CN 102077175A
- Authority
- CN
- China
- Prior art keywords
- database
- section
- databases
- order
- volume
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/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/1084—Degraded mode, e.g. caused by single or multiple storage removals or disk failures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- 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/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- 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/2035—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 without idle spare hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- 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
- 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
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1028—Distributed, i.e. distributed RAID systems with parity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Power Sources (AREA)
Abstract
公开了允许在实施分布式RAID系统的同一组计算设备上执行可利用该分布式RAID系统的各种不同的应用(或其它类型的应用)的系统和方法。更具体地,在某些实施例中,可以在数据库上执行虚拟化层。通过使用这个虚拟化层,可以执行一组期望的应用程序,其中对于在虚拟化层上执行的应用的每个实例的上下文可被存储在卷中,被保持来利用分布式RAID系统。
Description
技术领域
本发明总的涉及存储设备的使用。更具体地,本发明的实施例涉及在存储设备上实施RAID和可以利用这个RAID功能的应用。甚至更具体地,本发明的某些实施例涉及在同一组计算设备上实施分布式RAID和一个或多个应用。
背景技术
数据代表许多实体的重要的资产。因此,数据丢失,不管是偶然的还是由于恶意的活动造成的,都会在人力浪费、来自客户的信誉的丢失、时间的损失和潜在的法律义务方面代价昂贵。为了确保用于商业、法律的或其它目的的数据的适当的保护,许多实体可能希望通过使用各种各样的技术,包括数据存储、冗余性、保密性等等,来保护它们的数据。然而,这些技术可能与由被使用来处理或存储这个数据的计算设备的状态或配置所施加的其它竞争约束条件或要求冲突。
用于处理这些紧张状态的一个方法是实施冗余磁盘阵列(RAID)。通常,RAID系统划分和复制在多个硬盘驱动器(或其它类型的存储介质)上的数据,统称为阵列,以增加可靠性,以及在某些情形下通过使用这些用于存储的RAID系统而提高计算设备(被称为主机)的吞吐量。然后对于主机,RAID阵列可以呈现为一个或多个单片存储区域。当主机希望与RAID系统通信(读出、写入等等)时,主机就好像RAID阵列是单个盘那样通信。RAID系统又处理这些通信,以结合这样的通信实施某个RAID级别。这些RAID级别可被设计成达到在各种各样的折衷,诸如可靠度、容量、速度等等之间的某个期望的平衡。例如,RAID(级别)0把数据分布在几个盘上,以使得它给出提高的速度和几乎利用盘的全部容量,但如果盘发生故障,则在盘上的所有的数据将丢失;RAID(级别)1使用两个盘(或更多的盘),每个盘存储相同的数据,以使得只要一个盘不出问题数据就不丢失。阵列的全部容量基本上是单个盘的容量,以及RAID(级别)5组合三个或更多的盘,以使得它保护数据免得遭受何一个盘的丢失;阵列的存储容量被减小一个盘。
在许多情形下,在给定现代计算设备的计算功率后,其在实施利用RAID系统的主机的计算设备与实施RAID系统本身的计算设备之间可能存在一定的冗余量。除了物理部件的冗余性以外,主机和RAID系统在运行期间也会消耗许多相同的资源。因为二者都可能需要功率、冷却、机架空间等等。而且,因为主机和RAID系统沿单独的路径通信以便实施RAID系统,可能需要利用某些网络部件和路径。这种情形会引起许多不希望的问题,包括增加的硬件花费、通信瓶颈、需要大量物理空间来包含主机和RAID系统等等。
因此,希望大大地改善这些问题。
发明内容
给出了允许在实施分布式RAID系统的同一组计算设备上执行各种不同的应用的系统和方法的实施例。具体地,在一个实施例中,为了允许在同一组计算设备上结合其它应用执行分布式RAID应用,可以在数据库上执行虚拟化层。通过使用这个虚拟化层,可以执行一组期望的应用程序,其中对于在虚拟化层上执行的应用的每个实例的上下文可被存储在卷(volume)中,被保持来利用分布式RAID系统。这些虚拟机(例如,被存储在卷中的应用和任何可应用的上下文信息)然后可以结合在任一个数据库上的虚拟化层被执行。这样,可以利用一组计算设备来实施分布式RAID系统和执行利用这样的分布式RAID系统的应用(这只是其中之一)。这些类型的应用,例如,可包括视频监视应用、游戏、零售或银行应用、视频流应用、内容操控应用等等。
通过结合实施分布式RAID系统的计算设备执行这些应用,可以得到许多优点。首先和最重要的,可以达到资源的联合,减小与物理资源和安装、配置、利用和保持这样的资源所需要的资源相关联的花费,如可以需要较少的空间、功率、冷却、备用部件等等。而且,在实施应用和分布式RAID系统时可以达到更大的速度,因为和这些应用以及分布式RAID系统的使用结合发生的通信可以较少或可以更快地进行。
另外,故障容忍度水平可被引入到配置中,其中应用的实例作为虚拟机被保存,它们在实施分布式RAID系统的数据库的虚拟化层上被执行,正如在更详细地考察本申请的其余部分后将会看到的。概略地,这个故障容忍度水平可能起源于这样的事实,每个虚拟机(例如,执行可以在虚拟化层上被执行的应用的实例)被存储在分布式RAID系统的卷中,可能意味着,在数据库之一出现故障的情形下虚拟机可被恢复。另外,故障容忍度可被引入,因为虚拟机可以在任何数据库的虚拟化层上被执行,因此即使在单个数据库出现故障时,每个虚拟机仍旧可被执行。
本发明的这些和其它方面,在结合以下的描述和附图被考虑时将更好地被意识到和理解。以下的描述,虽然指示本发明的各种实施例和本发明的许多具体的细节,但是作为说明而不是限制被给出的。在本发明的范围内可以作出许多替换、修改、添加、或重新安排,以及本发明包括所有的这样的替换、修改、添加、或重新安排。
附图说明
伴随本技术说明书并作为技术说明书的一部分的附图被包括来描绘本发明的某些方面。通过参考在附图上显示的示例性和非限制性的实施例,本发明和本发明所提供的系统的部件和运行的更清晰的印象变得更为明显,其中相同的附图标记是指相同的部件。应当指出,在附图上显示的特性不一定按比例画出。
图1是采用分布式RAID系统的结构体系的一个实施例的框图。
图2A是数据库的一个实施例的框图。
图2B是用于数据库的结构体系的一个实施例的框图。
图3是数据库的一个实施例的流程图。
图4A是用于数据库的结构体系的一个实施例的框图。
图4B是用于数据库的结构体系的一个实施例的框图。
图4C是用于数据库的结构体系的一个实施例的框图。
图5是利用在其上可以执行其它应用的分布式RAID系统的结构体系的一个实施例的框图。
图6是用于在分布式RAID系统上执行应用的一个实施例的流程图。
图7是描绘结合分布式RAID系统的虚拟机的存储的一个实施例的框图。
具体实施方式
本发明及其各种特性和有利的细节,将参照在附图上显示的和在以下的说明中详细阐述的非限制性实施例更全面地进行说明。熟知的开始资料、处理技术、部件和设备的描述被省略,以免用细节不必要地遮蔽本发明。然而,应当看到,详细说明和具体的例子,虽然指示本发明的优选实施例,但是作为说明而不是限制被给出的。在本发明概念的精神和/或范围内的各种替换、修改、添加、或重新安排,对于阅读本公开内容的本领域技术人员,将是显而易见。这里所讨论的实施例可以以适当的计算机可执行的指令被实施,这些指令可以放置在计算机可读的介质(例如,硬盘驱动器)、硬件电路等等,或它们的任何组合。
在讨论具体的实施例之前,这里先描述用于实施某些实施例的硬件结构体系的实施例。一个实施例可包括与网络通信地耦合的一个或多个计算机。正如本领域技术人员所熟知的,计算机可包括中央处理单元(“CPU”)、至少一个只读存储器(“ROM”)、至少一个随机存取存储器(“RAM”)、至少一个硬盘驱动器(“HD”)、和一个或多个输入/输出(“I/O”)设备。I/O设备可包括键盘、监视器、打印机、电子定向设备(诸如鼠标、跟踪球、指示笔等)等等。在各种实施例中,计算机通过网络接入到至少一个数据库。
ROM、RAM和HD是用于存储由CPU可执行的、计算机可执行的指令的计算机存储器。在本公开内容内,术语“计算机可读的介质”并不限于ROM、RAM、和HD,而是可包括任何类型的、可以由处理器读出的数据存储介质。在某些实施例中,计算机可读的介质可以是指数据盒式磁带、数据备份磁带、软盘、快闪存储器驱动器、和光学数据存储驱动器、CD-ROM、ROM、RAM、HD等等。
这里描述的功能实体或处理过程的至少一部分可以以适当的计算机可执行的指令被实施。计算机可执行的指令可以作为软件代码部件或模块被存储在一个或多个计算机可读的介质上(诸如,非易失性存储器、易失性存储器、DASD阵列、磁带、软盘、硬盘驱动器、光学存储设备等等、或任何其它适当的计算机可读的介质或存储设备)。在一个实施例中,计算机可执行的指令可包括成行的、汇编的C++、Java、HTML、或任何其它编程或脚本代码。
另外,所公开的实施例的功能可以在一个计算机上被实施,或在网络上在两个或更多个计算机之间被共享/分布。在实施本实施例的计算机之间的通信可以通过使用任何的电子的、光学的、射频的信号、或其它适当的方法和遵从已知的网络协议的通信工具而被完成。
正如这里使用的,术语“包括”、“具有”、或它们的其它变例,意在覆盖非排他的包括。例如,包括一系列单元的过程、处理、物体、设备不一定仅仅限于那些单元,而是可包括没有明显列出的,或对于这样的过程、处理、物体、设备来说是固有的其它单元。而且,除非明示的相反表示,“或”是指“包括的或”,而不是“排他的或”。例如,条件A或B由以下的任一项被满足:A是正确(或存在)和B是错误(或不存在),A是错误(或不存在)和B是正确(或存在),以及A和B都是正确(或存在)。
另外,这里给出的例子或说明无论如何不看作为对于它们被利用的任何术语的约束、限制、极限或表达它的定义。而是,这些例子或说明被看作为是对于一个特定的实施例描述的,以及仅仅作为说明性的。本领域技术人员将意识到,这些例子或说明利用的任何术语将包括在本说明书的此处或他处可能给出或没有给出的其他实施例,并且所有的这样的实施例意在被包括在该术语的范围内。指定这样的非限制性例子和说明的语言包括,但不限于:“例如”、“举例”、“在一个实施例中”。
本申请涉及到由Galloway等在2009年6月5日提交的、题目为“Method and System for Distributed RAID Implementation”的美国专利申请No.12/479,319;由Galloway等在2009年6月5日提交的、题目为“Method and System for Data Migration in a Distributed RAID Implementation”的美国专利申请No.12/479,360;由Galloway等在2009年6月5日提交的、题目为“Method and System for DistributingCommands to Targets”的美国专利申请No.12/479,403;由Galloway等在2009年6月5日提交的、题目为“Method and System for Initializing Storage in a Storage System”的美国专利申请No.12/479,377;由Galloway等在2009年6月5日提交的、题目为“Method and System for Rebuilding Data in a Distributed RAIDSystem”的美国专利申请No.12/479,434;和由Galloway等在2009年6月5日提交的、题目为“Method and System for Placement of Data on aStorage Device”的美国专利申请No.12/479,394;和由Galloway等提交的、题目为“Method and System for Protecting Against MultipleFailures in a RAID System”的专利申请No.______(PIVOT1170-1);所有这些专利申请在此通过引用并入本文。
现在,具体地对于数据存储的进行上下文的概略的讨论是有帮助的。正如以上讨论的,RAID系统在多个硬盘驱动器(或其它类型的存储介质),统称为阵列上划分和复制数据,以便通过使用这些RAID系统用于存储而增加可靠度,和在某些情形下,提高计算设备(称为主机)的吞吐量。然而,RAID的当前的实施方案可能有各种各样的问题。
具体地,这些问题中的某些问题是来自于由这些RAID系统的结构体系所施加的限制,诸如以下的事实:在许多实例中与RAID系统的所有的通信必须寻址到控制和管理RAID系统的单个服务器。这个结构体系可以导致在包括利用RAID系统的主机和被使用来实施RAID系统的计算设备的物理部件中的冗余性。除了物理部件的冗余性以外,主机和RAID系统在运行时还会消耗许多相同的资源。因为主机和RAID系统都可能需要功率、冷却、机架空间等等。这种情形会引起许多不希望的问题,包括增加的硬件花费、通信瓶颈、需要大量物理空间来包含主机和RAID系统等等。
针对特定的RAID系统描述本发明的某些实施例将是有帮助的,然而,应当指出,通过其描述某些实施例的特定的RAID系统没有对于本发明的其它实施例的可应用性或使用施加限制,以及这样的实施例可以在包括其它类型的RAID系统或一起包括其它的存储系统的任何的各种各样的上下文中被有用地利用。
通过以上所述的,某些实施例可以相对于分布式RAID系统被有用地描述,其中具有相关的RAID级别的卷可以通过使用分布式RAID系统被创建。然后每个分布式RAID应用可以协调与该卷的数据相关联的操作,以使得与该卷相关联的数据或结合该卷的期望的RAID级别的实施可被存储在分布式RAID系统的多个数据库。通过利用在多个数据库的每个上执行的类似的分布式RAID应用,将卷的数据以及和RAID的实施相关联的数据存储在该多个数据库中,结合卷来协调RAID级别的实施,来实现多个优点。即,不同的存储卷可以被分配,一个或多个卷结合不同的RAID级别被实施。而且,由于在数据库上存储的协调和RAID的实施是通过使用基本上相同的分布式RAID应用而完成的,在许多情形下,可以利用标准的或现成的硬件,诸如基于标准x86的服务器和存储介质。通过利用这里给出的实施例或其它实施例,也可以实现许多其它优点,以及在阅读本公开内容后,将认识到这样的优点,这些优点可以或可以没有以具体的细节被指出。
现在转到图1,图上显示利用分布式RAID系统的一个实施例的系统的结构体系的框图。分布式RAID系统100包括一组数据库110,每个数据库110通信地耦合到两个交换机120。每个交换机120还通信地耦合到每个主机102,以使得主机102可以通过对应于特定的数据库110的一组路径与每个数据库110通信,每条路径包括一个交换机120。
在数据库110、交换机120和主机102之间的通信耦合可以通过使用几乎任何期望的输送介质(有线或无线),包括以太网、SCSI、iSCSI、光纤信道、串行附属SCSI(“SAS”)、先进技术附件(“ATA”)、串行ATA(“SATA”)、或在技术上已知的其它协议,而被完成。而且,通信耦合可以结合诸如互联网、LAN、WAN、无线网络或在技术上已知的任何其它通信网络那样的通信网络被实施。
在一个实施例中,然后,通过使用诸如iSCSI、SCSI等命令协议,主机102可以与数据库110通信,以便操控数据。更具体地,每个数据库110包括存储介质(正如将在后面更详细地说明的)。总起来说,在数据库110中的存储介质可被虚拟化,并呈现给主机102作为一个或多个相邻的存储块,存储设备等等。例如,当利用iSCSI协议时,在数据库110中的存储介质可被呈现给主机102作为SCSI目标,在一个实施例中,其具有多个端口。
因此,在运行期间,在一个实施例中,主机102(或在主机102处或与数据库110接口的用户)可以请求创建卷,并规定结合该卷被实施的RAID的级别。与该卷相关联的数据和与该卷相关联的期望的级别RAID的实施被存储在数据库110。主机102然后可以通过使用对应于该卷或该卷的一部分的逻辑地址而存取这个卷。这样,主机102可以利用所创建的存储的卷,以及可以结合这些卷达到对于主机102来说基本上觉察不到的故障容忍度。
通过参考图2A可以更好地理解存储的虚拟化和利用数据库110的RAID的实施,在图2A上显示用来实施分布式RAID的数据库110的计算机的一个实施例的框图。这里,数据库110包括数据存储器(store)250和用来执行被存储在计算机可读的介质中的指令的处理器202,其中指令用来实施分布式RAID应用210。分布式RAID应用210可以周期地发布心跳通信到其它的数据库110上的分布式RAID应用210,以确定对于该数据库110是否有故障。如果分布式RAID应用210确定另一个数据库110有故障,则它可以设置对应于该数据库110的一个或多个故障标记。通过使用这些故障标记,对于每个数据库110上的每个分布式RAID应用210,特定的分布式RAID应用210可以确定某个数据库110是否有故障。
分布式RAID应用210还可以存取(例如,读出、写入、发布命令等等)包括一个或多个存储介质的数据存储器250,该存储介质例如可以是按照几乎任何已知的协议运行的盘252,诸如SATA、PATA、FC等等。其中每个盘252可以,或可能不一定,具有相等的大小。在每个数据库110上执行的分布式RAID应用210可以允许通过使用在数据库110上的数据存储器250而分配和使用卷,以及通过利用在数据库110之间共享的一组全局表格240、一组本地表格245和写高速缓存器260而结合这些卷实施RAID,所有这些表格可被存储在存储器230(它可以是数据存储器250或在一起的另外的存储器)。
图2B显示可被使用来实施用来实施分布式RAID的数据库110计算机的硬件结构体系的一个实施例的框图。在这个结构体系例子中,数据库110包括一个或多个处理器202,其可以一起附着到Intel x86结构体系或某个其它结构体系,以及存储器230,通过总线被耦合到I/O控制器中心212,其在一个实施例中可以是南桥芯片等等。I/O控制器中心212又可以被耦合到和控制诸如PCI-X总线、串行总线等等那样的总线272。被耦合到这个总线272的是一个或多个盘控制器262,诸如,例如LSI 1068SATA/SAS控制器。每个这些盘控制器262被耦合到一个或多个盘252,其中总起来说,这些盘252可包括数据存储器250。另外,一个或多个网络接口282也可以被耦合到总线272。这些网络接口282可以是被包括在主板上的网络接口(诸如,以太网等等),它可包括被配置成经由诸如以太网、光纤信道等等那样的一个或多个协议进行接口的一个或多个网络接口卡,或这些网络接口282可以是某些其它类型的网络接口,以使得数据库110可以通过这些网络接口282与交换机120通信。
正好,在某些实施例中,被使用来实施数据库110的计算设备的部件可具有(或可被构建成具有)比用于执行分布式RAID应用210所需要的计算功率更多的计算功率。在许多情形下,然后,被使用来实施数据库110的计算设备(例如,处理器、高速缓存器、存储器、电路板等等)当被使用来仅仅执行分布式RAID应用210时可能具有未利用的计算功率。然后,所期望的是,利用这个过量的计算功率来执行将在主机102上执行并利用分布式RAID应用210的应用。然而,这可能是成问题的,因为在许多情形下,可能有各种各样的这样的应用在不同的主机102上执行,其中每个主机可以执行不同的操作系统,应用可被配置成仅仅在一种类型的操作系统上执行,等等。
所以,现在注意点被引导到允许可利用分布式RAID系统的各种应用(或其它类型的应用)在实施该分布式RAID系统的同一组计算设备上执行的本发明的系统和方法。为了允许在同一组计算设备上结合其它应用执行分布式RAID应用,可以在数据库上执行虚拟化层,通过使用这个虚拟化层可以执行一组期望的应用程序,其中对于在虚拟化层上执行的应用的每个实例的上下文可被存储在卷中,被保持来利用分布式RAID系统。这些虚拟机(例如,被存储在卷中的应用和任何可应用的上下文信息)然后可以结合在任一个数据库上的虚拟化层执行。这样,可以利用一组计算设备来实施分布式RAID系统和执行利用这样的分布式RAID系统(这只是其中之一)的应用。这些类型的应用,例如,可包括视频监视应用、游戏、零售业或银行应用、视频流应用、内容操控应用等等。
通过结合实施分布式RAID系统的计算设备执行这些应用,可以得到许多优点。首先和最重要的,可以实现物理资源的联合,减小与物理资源和安装、配置、利用和保持这样的资源所需要的资源相关联的花费,因为可能需要较少的空间、功率、冷却、备用部件等等。而且,在实施应用和分布式RAID系统时可以达到更大的速度,因为结合应用和分布式RAID系统的使用发生的通信,可以较少或可以更快地进行。
另外,故障容忍度水平可被引入到配置中,其中应用的实例作为虚拟机被保存,它们在实施分布式RAID系统的数据库的虚拟化层上被执行,正如在更详细地考察本申请的其余部分后将会看到的。概略地,这个故障容忍度水平可以来源于这样的事实,每个虚拟机(例如,执行可以在虚拟化层上被执行的应用的实例)被存储在分布式RAID系统的卷中,意味着,在数据库之一出现故障的情形下虚拟机可被恢复。另外,故障容忍度可被引入,因为虚拟机可以在任何数据库的虚拟化层上执行,因此即使在单个数据库出现故障时,每个虚拟机仍旧可被执行。
现在参照图3,图上显示可以实施分布式RAID系统和允许执行各种不同的应用的数据库的一个实施例。这里,数据库1110包括数据存储器350和用来执行存储在计算机可读的介质上的指令的处理器(未示出)或其它硬件。这个硬件,例如,可以是x86平台等等。
被存储在计算机可读的介质上的指令可以用来实施虚拟化层312和分布式RAID应用310。虚拟化层312可以是,例如由SunMicrosystems的容器、Linux KVM、Linux Vserver、Oracle VM、Virtual PC、Microsoft的虚拟服务器、IBM的PowerVM、SunMicrosystems的逻辑域、VMware服务器等等,或任何其它类型的虚拟化或模仿机应用,正如在技术上已知的。分布式RAID应用310可以具有类似于上述功能的功能。为了帮助在存储器330中一个或多个这些表格340的实施,可以跟踪诸如由分布式RAID系统所存储的哪些卷是虚拟机和哪个数据库110被分配给特定的虚拟机那样的信息。
然后概略地参考图4A、4B和4C,图上显示具有虚拟化层的数据库1010的结构体系的三个实施例。将会指出,这样的结构体系的其它实施例也是可能的,它们可以被利用。在图4A上,虚拟化层312可以存在于硬件层402上,这样,分布式RAID应用310和虚拟机430(应用和它们的对应的上下文)可以在虚拟化层312上执行。图4B显示一个实施例,其中操作系统420(例如,Windows、Solaris、MacOS等)可以在具有在操作系统420上执行的虚拟化层312的硬件层402上执行,这样,分布式RAID应用310和虚拟机430(应用和它们的对应的上下文)可以在虚拟化层312上执行。图4C显示一个实施例,其中操作系统420可以在硬件层402上执行。分布式RAID应用310和虚拟化层312可以在操作系统420上执行。虚拟机430然后可以在虚拟化层312上执行。
因此,在图5中描述了可以用于通过使用一组数据库1110来实施分布式RAID系统并执行可以利用在一个或多个相同的数据库1110上的该分布式RAID系统的一个或多个应用的系统的一个实施例。
移到图6,图上显示用于在也正在执行分布式RAID应用310的数据库1110上执行一个或多个应用的方法的一个实施例。在步骤610,可以在数据库1110的虚拟化层312上执行应用。这个安装过程可以在步骤620创建虚拟机,用来当被虚拟化层312执行时执行与特定的上下文相关联的应用。更具体地,在一个实施例中,可以通过使用分布式RAID应用310来创建卷,其中应用可以连同从在虚拟化层312上在一定的时间量内执行该应用所得到的上下文一起被存储在该卷中。
这被更清晰地显示于图7,在图上显示每个虚拟机430可以如何成为被存储在每个数据库1110的数据存储器350中的卷。每个虚拟机可以对应于应用和相关联的上下文的一个安装的实例,这样,虚拟机430可以在虚拟化层312上执行,以便运行具有对应的上下文的应用。
回到图6,一旦应用被安装和虚拟机被创建,在一个实施例中,在步骤630,包括应用的实例的虚拟机就可被指定在特定的数据库1110上执行,因此虚拟机可以在步骤640在所指定的数据库1110的虚拟化层312上执行。
在任何时候,如果因为任何原因期望停止这个虚拟机的执行,则虚拟机可以被存储,以使得虚拟机的执行可以在以后由该虚拟机被分配到的那个特定的数据库1110从相同的点继续进行。这个存储可能使得把上下文存储在虚拟机(卷对应于虚拟机),如果需要的话。
将会指出,因为每个虚拟机430被存储在包括分布式RAID系统的数据库1110,该虚拟机被分配到的那个数据库1110可以存取和执行每个虚拟机。另外,注意,RAID的级别可以结合该虚拟机的存储被实施,因为该虚拟机可被存储在与分布式RAID应用310相关联的卷中。因此,正如先前讨论的,通过使用作为被分布式RAID应用310管理的卷被存储的虚拟机而在数据库1110上执行应用,在分布式RAID系统的结构体系中可以固有地实现故障容忍度。
更具体地,在一个实施例中,因为每个数据库1110可以存取任何虚拟机以及每个虚拟机430可以结合RAID级别被存储,即使在特定的数据库1110出现故障时,应用仍旧能够被执行,因为关于任何虚拟机的所有的数据仍旧可以由剩余的工作的数据库1110存取。事实上,在一个实施例中,如果特定的数据库1110有故障,则有故障的数据库1110可以被检测,以及被分配给有故障的数据库110的每个VM可以基本上自动地被分配给另一个工作的数据库1110,这样,在有故障的数据库1110上执行的所有的VM现在将在另一个数据库1100上执行。这个分配可以随机地或基于一个或多个准则完成,诸如,被分配给每个数据库1110的VM的数目等等。通过自动地重新分配有故障的数据库1110的VM,除了给予应用以某个水平的故障容忍度以外,停机时间可被最小化。
在以上的技术说明书中,本发明是参照具体的实施例描述的。然而,本领域技术人员将会看到,可以作出各种不同的修改和改变,而不背离如在下文所附权利要求中阐述的本发明的范围。因此,技术说明书和附图应当为说明的意义而不是限制的意义,以及所有的这样的修改意在被包括在本发明的范围内。
在上面对于具体的实施例描述了好处、其它优点和对于问题的解决方案。然而,好处、其它优点和对于问题的解决方案,以及可以使得任何好处、优点或解决方案发生或变为更明确的任何部件不被看作为任何或所有的权利要求的关键的、需要的、或本质的特性或部件。
Claims (24)
1.一种用于实施分布式RAID的系统,包括:
多个数据库计算机,每个数据库被耦合到每个主机和其他的多个数据库的每个,每个数据库包括:
处理器;
数据存储器;
包括指令的计算机可读的介质,所述指令可执行用于:
在数据库上执行第一应用程序,其中第一应用程序是第一虚拟机;以及
实施分布式RAID应用,所述分布式RAID应用用来:
接收对应于第一卷的第一段的命令,其中所述命令由第一应用程序发布,以及第一卷和对应于结合第一卷被实施的RAID级别的冗余性数据被存储在多个数据库的每个数据库,以使得对于第一卷的每个段,包括与该段相关联的冗余性数据的对应的冗余性段不处在与所述段相同的数据库上;
确定多个数据库的第一数据库,其中第一数据库对应于第一段;以及
如果第一数据库是接收命令的数据库,则对于第一段执行第一命令,而如果不是,则把第一命令转发到第一数据库。
2.根据权利要求1的系统,其中执行应用程序包括在数据库上通过使用虚拟化层而执行第一虚拟机。
3.根据权利要求2的系统,其中第一虚拟机对应于第二卷,第二卷被存储在多个数据库的每个数据库。
4.根据权利要求3的系统,其中指令还可执行用于:
检测多个数据库的有故障的数据库;
确定被分配给有故障的数据库的一组VM;以及
把该组VM重新分配给多个数据库的另一个数据库。
5.根据权利要求3的系统,其中指令还可执行用来确定第一命令是否为写命令,以及如果第一命令是写命令,则确定多个数据库的第二数据库,其中第二数据库对应于与第一段相关联的第一冗余性段,以及如果第二数据库是接收命令的数据库,则对于第一冗余性段执行第一命令,而如果不是,则把第一命令转发到第二数据库,其中每个卷的每个段对应于多个数据库的一个数据库,以及每个段按照多个数据库的排列被分配给多个数据库的一个数据库,以及每个冗余性段被分配到同对应于与该冗余性段相关联的卷的任何段的多个数据库的每个数据库不同的多个数据库的一个数据库。
6.一种用于在具有处理器的计算设备上结合各种应用程序实施分布式RAID的方法,包括:
在多个数据库上建立第一卷,其中第一卷包括段组以及该段组被存储在多个数据库;
在多个数据库上建立第二卷,其中第二卷对应于作为虚拟机被存储的应用程序;
在多个数据库的至少一个数据库上执行应用程序;
结合所述卷实施RAID级别,其中实施RAID级别包括存储一组冗余性段,每个冗余性段对应于该段组中的一个或多个段,以使得每个冗余性段不与该段组中的相应的一个或多个段处在相同的数据库上;
接收对应于卷的所述段组的第一段的命令,其中命令从在多个数据库的至少一个数据库上执行的应用程序接收;
确定多个数据库的第一数据库,其中第一数据库对应于第一段;以及
对于第一段执行第一命令,其中第一命令在第一数据库上被执行。
7.根据权利要求6的方法,其中执行应用程序包括在多个数据库的至少一个数据库上通过使用虚拟化层而执行虚拟机。
8.根据权利要求7的方法,其中第二卷被存储在多个数据库的每个数据库。
9.根据权利要求8的方法,还包括:
检测多个数据库的有故障的数据库;
确定被分配给有故障的数据库的一组VM;以及
把该组VM重新分配给多个数据库的另一个数据库。
10.根据权利要求9的方法,还包括:
确定第一命令是否为写命令,以及如果第一命令是写命令,则确定多个数据库的第二数据库,其中第二数据库对应于与第一段相关联的第一冗余性段,以及如果第二数据库是接收命令的数据库,则对于第一冗余性段执行第一命令,而如果不是,则把第一命令转发到第二数据库,其中每个卷的每个段对应于多个数据库的一个数据库,以及每个段按照多个数据库的排列被分配给多个数据库的一个数据库,以及每个冗余性段被分配到同对应于与该冗余性段相关联的卷的任何段的多个数据库的每个数据库不同的多个数据库的一个数据库。
11.一种用于结合应用程序在一个或多个数据库上实施的分布式RAID的方法,包括:
从应用程序接收对应于第一卷的第一段的命令,其中第一卷和对应于结合卷被实施的RAID级别的冗余性数据被存储在多个数据库的每个数据库,以使得对于卷的每个段,包括与该段相关联的冗余性数据的对应的冗余性段不处在与所述段相同的数据库上,以及应用程序作为虚拟机被存储,并在多个数据库的至少一个数据库上执行;
确定多个数据库的第一数据库,其中第一数据库对应于第一段;以及
对于第一段执行第一命令,其中第一命令在第一数据库上被执行。
12.根据权利要求11的方法,其中执行应用程序包括在数据库上通过使用虚拟化层而执行虚拟机。
13.根据权利要求12的方法,其中执行应用程序包括在数据库上通过使用虚拟化层而执行虚拟机。
14.根据权利要求13的方法,还包括:
检测多个数据库的有故障的数据库;
确定被分配给有故障的数据库的一组VM;以及
把该组VM重新分配给多个数据库的另一个数据库。
15.根据权利要求14的方法,还包括
确定第一命令是否为写命令,以及如果第一命令是写命令,则确定多个数据库的第二数据库,其中第二数据库对应于与第一段相关联的第一冗余性段,以及如果第二数据库是接收命令的数据库,则对于第一冗余性段执行第一命令,而如果不是,则把第一命令转发到第二数据库,其中每个卷的每个段对应于多个数据库的一个数据库,以及每个段按照多个数据库的排列被分配给多个数据库的一个数据库,以及每个冗余性段被分配到同对应于与该冗余性段相关联的卷的任何段的多个数据库的每个数据库不同的多个数据库的一个数据库。
16.一种计算机可读的介质,包括用于结合各种应用程序实施分布式RAID的计算机可执行的指令,所述计算机指令可执行用于:
在多个数据库上建立第一卷,其中第一卷包括段组以及该段组被存储在多个数据库;
在多个数据库上建立第二卷,其中第二卷对应于作为虚拟机被存储的应用程序;
在多个数据库的至少一个数据库上执行应用程序;
结合所述卷实施RAID级别,其中实施RAID级别包括存储一组冗余性段,每个冗余性段对应于该段组中的一个或多个段,以使得每个冗余性段不与该段组中的相应的一个或多个段处在相同的数据库上;
接收对应于卷的所述段组的第一段的命令,其中命令从在多个数据库的至少一个数据库上执行的应用程序接收;
确定多个数据库的第一数据库,其中第一数据库对应于第一段;以及
对于第一段执行第一命令,其中第一命令在第一数据库上被执行。
17.根据权利要求16的计算机可读的介质,其中执行应用程序包括在多个数据库的至少一个数据库上通过使用虚拟化层而执行虚拟机。
18.根据权利要求17的计算机可读的介质,其中第二卷被存储在多个数据库的每个数据库。
19.根据权利要求18的计算机可读的介质,其中指令还可执行用于:
检测多个数据库的有故障的数据库;
确定被分配给有故障的数据库的一组VM;以及
把该组VM重新分配给多个数据库的另一个数据库。
20.根据权利要求19的计算机可读的介质,其中指令可执行用于:确定第一命令是否为写命令,以及如果第一命令是写命令,则确定多个数据库的第二数据库,其中第二数据库对应于与第一段相关联的第一冗余性段,以及如果第二数据库是接收命令的数据库,则对于第一冗余性段执行第一命令,而如果不是,则把第一命令转发到第二数据库,其中每个卷的每个段对应于多个数据库的一个数据库,以及每个段按照多个数据库的排列被分配给多个数据库的一个数据库,以及每个冗余性段被分配到同对应于与该冗余性段相关联的卷的任何段的多个数据库的每个数据库不同的多个数据库的一个数据库。
21.一种计算机可读的介质,用于结合应用程序在一个或多个数据库计算机上实施分布式RAID,计算机指令可执行用于:
从应用程序接收对应于第一卷的第一段的命令,其中第一卷和对应于结合卷被实施的RAID级别的冗余性数据被存储在多个数据库的每个数据库,以使得对于卷的每个段,包括与该段相关联的冗余性数据的对应的冗余性段不处在与所述段相同的数据库上,以及应用程序作为虚拟机被存储,并在多个数据库的至少一个数据库上执行;
确定多个数据库的第一数据库,其中第一数据库对应于第一段;以及
对于第一段执行第一命令,其中第一命令在第一数据库上被执行。
22.根据权利要求21的计算机可读的介质,其中执行应用程序包括在数据库上通过使用虚拟化层而执行虚拟机。
23.根据权利要求22的计算机可读的介质,其中执行应用程序包括在数据库上通过使用虚拟化层而执行虚拟机。
24.根据权利要求23的计算机可读的介质,计算机指令可执行用于:
确定第一命令是否为写命令,以及如果第一命令是写命令,则确定多个数据库的第二数据库,其中第二数据库对应于与第一段相关联的第一冗余性段,以及如果第二数据库是接收命令的数据库,则对于第一冗余性段执行第一命令,而如果不是,则把第一命令转发到第二数据库,其中每个卷的每个段对应于多个数据库的一个数据库,以及每个段按照多个数据库的排列被分配给多个数据库的一个数据库,以及每个冗余性段被分配到同对应于与该冗余性段相关联的卷的任何段的多个数据库的每个数据库不同的多个数据库的一个数据库。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13353408P | 2008-06-30 | 2008-06-30 | |
US61/133,534 | 2008-06-30 | ||
PCT/US2009/048570 WO2010002678A1 (en) | 2008-06-30 | 2009-06-25 | Method and system for execution of applications in conjunction with distributed raid |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100763466A Division CN102176198A (zh) | 2008-06-30 | 2009-06-25 | 用于结合raid执行应用的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102077175A true CN102077175A (zh) | 2011-05-25 |
Family
ID=41448943
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100763466A Pending CN102176198A (zh) | 2008-06-30 | 2009-06-25 | 用于结合raid执行应用的方法和系统 |
CN2009801250139A Pending CN102077175A (zh) | 2008-06-30 | 2009-06-25 | 用于结合分布式raid执行应用的方法和系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100763466A Pending CN102176198A (zh) | 2008-06-30 | 2009-06-25 | 用于结合raid执行应用的方法和系统 |
Country Status (7)
Country | Link |
---|---|
US (3) | US8219750B2 (zh) |
EP (1) | EP2313828A4 (zh) |
JP (2) | JP2011527047A (zh) |
KR (2) | KR20110044746A (zh) |
CN (2) | CN102176198A (zh) |
IL (2) | IL209991A0 (zh) |
WO (1) | WO2010002678A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110232001A (zh) * | 2018-03-05 | 2019-09-13 | 三星电子株式会社 | 存储系统 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8127076B2 (en) | 2008-06-06 | 2012-02-28 | Pivot3 | Method and system for placement of data on a storage device |
US8219750B2 (en) * | 2008-06-30 | 2012-07-10 | Pivot3 | Method and system for execution of applications in conjunction with distributed RAID |
US8176247B2 (en) | 2008-10-28 | 2012-05-08 | Pivot3 | Method and system for protecting against multiple failures in a RAID system |
US8166478B2 (en) * | 2009-04-28 | 2012-04-24 | Lsi Corporation | System and apparatus for utilizing a virtual machine to support redundancy in a virtual machine manager pair |
US8438324B2 (en) * | 2011-02-01 | 2013-05-07 | Taejin Info Tech Co., Ltd. | RAID-based storage control board having fibre channel interface controller |
US8484400B2 (en) * | 2011-02-01 | 2013-07-09 | Taejin Info Tech Co., Ltd. | Raid-based storage control board |
US8527699B2 (en) * | 2011-04-25 | 2013-09-03 | Pivot3, Inc. | Method and system for distributed RAID implementation |
JP5919529B2 (ja) * | 2011-09-16 | 2016-05-18 | パナソニックIpマネジメント株式会社 | データ格納システム |
CN103702057B (zh) * | 2013-09-03 | 2017-04-12 | 成都竣泰科技有限公司 | 一种适应于多路并发写入流媒体数据的分块式存储算法 |
US20170031838A1 (en) * | 2015-07-28 | 2017-02-02 | Qualcomm Incorporated | Method and apparatus for using context information to protect virtual machine security |
US10838902B2 (en) * | 2017-06-23 | 2020-11-17 | Facebook, Inc. | Apparatus, system, and method for performing hardware acceleration via expansion cards |
US20220404786A1 (en) * | 2021-06-16 | 2022-12-22 | Fisher-Rosemount Systems, Inc. | Systems and Methods for Dynamically Maintained Redundancy and Load Balancing in Software Defined Control Systems for Industrial Process Plants |
CN117762529B (zh) * | 2023-12-26 | 2024-06-21 | 合芯科技有限公司 | 一种服务器批量组磁盘阵列的方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370605B1 (en) * | 1999-03-04 | 2002-04-09 | Sun Microsystems, Inc. | Switch based scalable performance storage architecture |
US20030159001A1 (en) * | 2002-02-19 | 2003-08-21 | Chalmer Steven R. | Distributed, scalable data storage facility with cache memory |
CN1747385A (zh) * | 2004-09-07 | 2006-03-15 | 北京邦诺存储科技有限公司 | 写一次读多次磁盘存储系统和设计方法 |
US7389393B1 (en) * | 2004-10-21 | 2008-06-17 | Symantec Operating Corporation | System and method for write forwarding in a storage environment employing distributed virtualization |
Family Cites Families (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US168018A (en) * | 1875-09-21 | Improvement in magneto-electric machines | ||
US172335A (en) * | 1876-01-18 | Improvement in apparatus for the manufacture of gaseous liquids | ||
US270680A (en) * | 1883-01-16 | Harness-buckle | ||
JP3160106B2 (ja) | 1991-12-23 | 2001-04-23 | ヒュンダイ エレクトロニクス アメリカ | ディスクアレーの区分け方法 |
JPH05324579A (ja) | 1992-05-25 | 1993-12-07 | Hitachi Ltd | 分散ファイルシステム及び記憶装置 |
JP2766424B2 (ja) * | 1992-06-04 | 1998-06-18 | 三菱電機株式会社 | 論理ボリューム装置 |
JPH07261945A (ja) | 1994-03-17 | 1995-10-13 | Hitachi Ltd | ディスクアレイ装置およびディスクアレイの区分け方法 |
US6449730B2 (en) | 1995-10-24 | 2002-09-10 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US6601138B2 (en) | 1998-06-05 | 2003-07-29 | International Business Machines Corporation | Apparatus system and method for N-way RAID controller having improved performance and fault tolerance |
JP3736134B2 (ja) * | 1998-08-28 | 2006-01-18 | 日本電信電話株式会社 | 分散記憶方法及び分散記憶システム及び分散記憶プログラムを記録した記録媒体 |
US7000069B2 (en) | 1999-04-05 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Apparatus and method for providing very large virtual storage volumes using redundant arrays of disks |
US6304942B1 (en) | 1999-08-09 | 2001-10-16 | Lsi Logic Corporation | Providing an upgrade path for an existing data storage system |
US20010044879A1 (en) * | 2000-02-18 | 2001-11-22 | Moulton Gregory Hagan | System and method for distributed management of data storage |
JP2002041305A (ja) * | 2000-07-26 | 2002-02-08 | Hitachi Ltd | 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム |
US20020069317A1 (en) | 2000-12-01 | 2002-06-06 | Chow Yan Chiew | E-RAID system and method of operating the same |
US6895485B1 (en) | 2000-12-07 | 2005-05-17 | Lsi Logic Corporation | Configuring and monitoring data volumes in a consolidated storage array using one storage array to configure the other storage arrays |
US7058788B2 (en) | 2001-02-23 | 2006-06-06 | Falconstor Software, Inc. | Dynamic allocation of computer memory |
US7076510B2 (en) | 2001-07-12 | 2006-07-11 | Brown William P | Software raid methods and apparatuses including server usage based write delegation |
US7644136B2 (en) | 2001-11-28 | 2010-01-05 | Interactive Content Engines, Llc. | Virtual file system |
US7096328B2 (en) | 2002-01-25 | 2006-08-22 | University Of Southern California | Pseudorandom data storage |
US6901499B2 (en) | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
US20040177218A1 (en) | 2002-11-06 | 2004-09-09 | Meehan Thomas F. | Multiple level raid architecture |
EP2299375A3 (en) | 2002-11-14 | 2012-02-01 | EMC Corporation | Systems and methods for restriping files in a distributed file system |
US7032086B2 (en) | 2003-02-28 | 2006-04-18 | Hewlett-Packard Development Company, L.P. | System and method for adjusting storage device layout with at least one status for the adjusting |
US6952743B2 (en) | 2003-03-07 | 2005-10-04 | Ivivity, Inc. | Interface for distributed processing of SCSI tasks |
US7111147B1 (en) | 2003-03-21 | 2006-09-19 | Network Appliance, Inc. | Location-independent RAID group virtual block management |
US7096316B1 (en) | 2003-06-30 | 2006-08-22 | Veritas Operating Corporation | Multi-host environment with coordinated distributed logging for writes to a raid storage volume |
US7254754B2 (en) | 2003-07-14 | 2007-08-07 | International Business Machines Corporation | Raid 3+3 |
US7523257B2 (en) | 2003-08-27 | 2009-04-21 | Adaptec, Inc. | Method of managing raid level bad blocks in a networked storage system |
WO2005036806A2 (en) * | 2003-10-08 | 2005-04-21 | Unisys Corporation | Scalable partition memory mapping system |
US7366837B2 (en) | 2003-11-24 | 2008-04-29 | Network Appliance, Inc. | Data placement technique for striping data containers across volumes of a storage system cluster |
US8055745B2 (en) | 2004-06-01 | 2011-11-08 | Inmage Systems, Inc. | Methods and apparatus for accessing data from a primary data storage system for secondary storage |
JP4555036B2 (ja) | 2004-09-16 | 2010-09-29 | 株式会社日立製作所 | ストレージ装置及びストレージ装置のデバイス切替制御方法 |
GB2419702A (en) * | 2004-10-29 | 2006-05-03 | Hewlett Packard Development Co | Virtual overlay infrastructures which can be suspended and later reactivated |
US20060129559A1 (en) | 2004-12-15 | 2006-06-15 | Dell Products L.P. | Concurrent access to RAID data in shared storage |
US20070094348A1 (en) * | 2005-01-07 | 2007-04-26 | Microsoft Corporation | BITS/RDC integration and BITS enhancements |
US7130960B1 (en) | 2005-04-21 | 2006-10-31 | Hitachi, Ltd. | System and method for managing disk space in a thin-provisioned storage subsystem |
JP4690765B2 (ja) | 2005-04-26 | 2011-06-01 | 株式会社日立製作所 | ストレージ管理システム、ストレージ管理サーバ、データ再配置制御方法およびデータ再配置制御プログラム |
US7617370B2 (en) | 2005-04-29 | 2009-11-10 | Netapp, Inc. | Data allocation within a storage system architecture |
US7904649B2 (en) | 2005-04-29 | 2011-03-08 | Netapp, Inc. | System and method for restriping data across a plurality of volumes |
JP2006331076A (ja) | 2005-05-26 | 2006-12-07 | Hitachi Ltd | データ記憶システム及び記憶方法 |
US7529816B2 (en) | 2005-06-03 | 2009-05-05 | Hewlett-Packard Development Company, L.P. | System for providing multi-path input/output in a clustered data storage network |
US7437507B2 (en) | 2005-06-06 | 2008-10-14 | Cisco Technology, Inc. | Online restriping technique for distributed network based virtualization |
US7418550B2 (en) | 2005-07-30 | 2008-08-26 | Lsi Corporation | Methods and structure for improved import/export of raid level 6 volumes |
US7844775B2 (en) | 2005-09-23 | 2010-11-30 | Avid Technology, Inc. | Distribution of data in a distributed shared storage system |
WO2007058617A1 (en) | 2005-11-17 | 2007-05-24 | Chee Keng Chang | A controller for non-volatile memories, and methods of operating the memory controller |
US20070143541A1 (en) | 2005-12-19 | 2007-06-21 | Lsi Logic Corporation | Methods and structure for improved migration of raid logical volumes |
US8321377B2 (en) * | 2006-04-17 | 2012-11-27 | Microsoft Corporation | Creating host-level application-consistent backups of virtual machines |
JP5124103B2 (ja) | 2006-05-16 | 2013-01-23 | 株式会社日立製作所 | 計算機システム |
JP5048760B2 (ja) | 2006-05-24 | 2012-10-17 | コンペレント・テクノロジーズ | Raid管理、再割振り、およびリストライピングのためのシステムおよび方法 |
US7546398B2 (en) | 2006-08-01 | 2009-06-09 | International Business Machines Corporation | System and method for distributing virtual input/output operations across multiple logical partitions |
JP2008107896A (ja) * | 2006-10-23 | 2008-05-08 | Nec Corp | 物理資源制御管理システム、物理資源制御管理方法および物理資源制御管理用プログラム |
JP5244332B2 (ja) | 2006-10-30 | 2013-07-24 | 株式会社日立製作所 | 情報システム、データ転送方法及びデータ保護方法 |
KR20090102789A (ko) | 2006-12-06 | 2009-09-30 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법 |
US8706968B2 (en) | 2007-12-06 | 2014-04-22 | Fusion-Io, Inc. | Apparatus, system, and method for redundant write caching |
US20080155191A1 (en) | 2006-12-21 | 2008-06-26 | Anderson Robert J | Systems and methods for providing heterogeneous storage systems |
JP5246388B2 (ja) * | 2007-03-08 | 2013-07-24 | 日本電気株式会社 | 仮想装置構成システム、及びその方法 |
US8117495B2 (en) * | 2007-11-26 | 2012-02-14 | Stratus Technologies Bermuda Ltd | Systems and methods of high availability cluster environment failover protection |
US20090172335A1 (en) | 2007-12-31 | 2009-07-02 | Anand Krishnamurthi Kulkarni | Flash devices with raid |
US8370833B2 (en) * | 2008-02-20 | 2013-02-05 | Hewlett-Packard Development Company, L.P. | Method and system for implementing a virtual storage pool in a virtual environment |
US8127076B2 (en) | 2008-06-06 | 2012-02-28 | Pivot3 | Method and system for placement of data on a storage device |
US8219750B2 (en) | 2008-06-30 | 2012-07-10 | Pivot3 | Method and system for execution of applications in conjunction with distributed RAID |
US8176247B2 (en) | 2008-10-28 | 2012-05-08 | Pivot3 | Method and system for protecting against multiple failures in a RAID system |
US8850114B2 (en) | 2010-09-07 | 2014-09-30 | Daniel L Rosenband | Storage array controller for flash-based storage devices |
US8527699B2 (en) | 2011-04-25 | 2013-09-03 | Pivot3, Inc. | Method and system for distributed RAID implementation |
-
2009
- 2009-06-24 US US12/490,810 patent/US8219750B2/en active Active
- 2009-06-25 EP EP09774129.2A patent/EP2313828A4/en not_active Withdrawn
- 2009-06-25 JP JP2011516637A patent/JP2011527047A/ja active Pending
- 2009-06-25 KR KR1020117001053A patent/KR20110044746A/ko not_active Application Discontinuation
- 2009-06-25 CN CN2011100763466A patent/CN102176198A/zh active Pending
- 2009-06-25 CN CN2009801250139A patent/CN102077175A/zh active Pending
- 2009-06-25 KR KR1020117002478A patent/KR20110048515A/ko not_active Application Discontinuation
- 2009-06-25 WO PCT/US2009/048570 patent/WO2010002678A1/en active Application Filing
-
2010
- 2010-10-28 US US12/914,559 patent/US8417888B2/en active Active
- 2010-12-14 IL IL209991A patent/IL209991A0/en unknown
- 2010-12-14 IL IL209992A patent/IL209992A0/en unknown
-
2011
- 2011-02-22 JP JP2011036454A patent/JP2011154697A/ja active Pending
-
2013
- 2013-01-25 US US13/750,417 patent/US9086821B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370605B1 (en) * | 1999-03-04 | 2002-04-09 | Sun Microsystems, Inc. | Switch based scalable performance storage architecture |
US20030159001A1 (en) * | 2002-02-19 | 2003-08-21 | Chalmer Steven R. | Distributed, scalable data storage facility with cache memory |
CN1747385A (zh) * | 2004-09-07 | 2006-03-15 | 北京邦诺存储科技有限公司 | 写一次读多次磁盘存储系统和设计方法 |
US7389393B1 (en) * | 2004-10-21 | 2008-06-17 | Symantec Operating Corporation | System and method for write forwarding in a storage environment employing distributed virtualization |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110232001A (zh) * | 2018-03-05 | 2019-09-13 | 三星电子株式会社 | 存储系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2313828A1 (en) | 2011-04-27 |
CN102176198A (zh) | 2011-09-07 |
IL209991A0 (en) | 2011-02-28 |
US20130219120A1 (en) | 2013-08-22 |
KR20110048515A (ko) | 2011-05-11 |
US9086821B2 (en) | 2015-07-21 |
JP2011154697A (ja) | 2011-08-11 |
US8417888B2 (en) | 2013-04-09 |
EP2313828A4 (en) | 2016-07-27 |
KR20110044746A (ko) | 2011-04-29 |
US20110040936A1 (en) | 2011-02-17 |
US8219750B2 (en) | 2012-07-10 |
JP2011527047A (ja) | 2011-10-20 |
WO2010002678A1 (en) | 2010-01-07 |
US20090327606A1 (en) | 2009-12-31 |
IL209992A0 (en) | 2011-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102077175A (zh) | 用于结合分布式raid执行应用的方法和系统 | |
EP3458931B1 (en) | Independent scaling of compute resources and storage resources in a storage system | |
US9671967B2 (en) | Method and system for implementing a distributed operations log | |
CN102047237B (zh) | 在虚拟机之间提供对象级输入/输出请求以存取存储子系统 | |
CN102163177B (zh) | 用于可写的写时复制快照功能的i/o延迟的减小 | |
US9798682B2 (en) | Completion notification for a storage device | |
US8677064B2 (en) | Virtual port mapped RAID volumes | |
US20170031699A1 (en) | Multiprocessing Within a Storage Array System Executing Controller Firmware Designed for a Uniprocessor Environment | |
US7203808B2 (en) | Isolation and protection of disk areas controlled and for use by virtual machine manager in firmware | |
CN103793182A (zh) | 可扩展存储保护 | |
CN102141928A (zh) | 虚拟环境下的数据处理方法、系统以及系统的部署方法 | |
US20120271998A1 (en) | Method and system for distributed raid implementation | |
US9558028B2 (en) | Systems and methods for migration of virtual machines across virtual storage resources | |
US10261821B2 (en) | System and method to expose remote virtual media partitions to virtual machines | |
US11055017B1 (en) | Throttling a point-in-time snapshot copy operation within a data consistency application | |
US8055867B2 (en) | Methods, apparatuses, and computer program products for protecting pre-staged provisioned data in a storage system | |
US20170322882A1 (en) | I/o blender countermeasures | |
CN103207762A (zh) | 存储虚拟化系统 | |
US8990523B1 (en) | Storage apparatus and its data processing method | |
CN109358808B (zh) | 一种数据处理方法、系统及相关组件 | |
CN117311646B (zh) | 固态硬盘配置管理方法、装置、计算机设备及存储介质 | |
Carlson | Storage for hyperscalers | |
US11256669B1 (en) | Transaction pipeline materialization schemas | |
Tran et al. | Virtualizing Microsoft SQL Server 2008 R2 Using VMware vSphere 5 on Hitachi Compute Rack 220 and Hitachi Unified Storage 150 Reference Architecture Guide |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110525 |