CN100552611C - 仿真操作系统元数据以提供对存储卷的跨平台访问的系统和方法 - Google Patents
仿真操作系统元数据以提供对存储卷的跨平台访问的系统和方法 Download PDFInfo
- Publication number
- CN100552611C CN100552611C CNB2004800405835A CN200480040583A CN100552611C CN 100552611 C CN100552611 C CN 100552611C CN B2004800405835 A CNB2004800405835 A CN B2004800405835A CN 200480040583 A CN200480040583 A CN 200480040583A CN 100552611 C CN100552611 C CN 100552611C
- Authority
- CN
- China
- Prior art keywords
- logical volume
- metadata
- storage device
- host
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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)
- Stored Programmes (AREA)
Abstract
仿真操作系统元数据,从而提供对存储卷的跨平台访问的系统和方法可包括第一主机和一个无主机式虚拟器。无主机式虚拟器被配置成产生第一虚拟存储装置,例如虚拟LUN的操作系统元数据,并使该操作系统元数据可被第一主机访问。可根据在第一主机使用的操作系统的要求定制元数据。第一主机可包括存储软件栈,所述存储软件栈包括第一层,所述第一层被配置成使用操作系统元数据检测作为可寻址存储装置的第一虚拟存储装置的存在。
Description
技术领域
本发明涉及计算机系统,更具体地说,涉及存储环境内的无主机式虚拟化。
背景技术
对于紧要使命应用来说,许多商业组织和政府实体依赖于访问大量的数据,通常超过千兆字节的数据的应用程序。这样的数据通常保存在本质可能不同的许多不同存储装置上,包括来自许多不同制造商的许多不同类型的装置。
随着异质存储环境在规模和复杂性方面的放大,配置消耗数据的应用程序,或者配置宿流(host)这种应用程序的应用程序服务器系统,以便识别和直接与可能在该环境中遇到的每个不同的存储装置交互作用会越来越困难。于是,在一些存储环境中,专用的存储管理软件和硬件可被用于向存储空间消费者提供更统一的存储模型。这样的软件和硬件还可被配置成将物理存储装置作为虚拟存储装置(例如虚拟SCSI磁盘)提供给计算机主机,和向存储模型中增加单个存储装置中不存在的存储特征。例如,借助硬件或软件,可在存储模型中实现增大故障容错的特征,例如数据镜像,快照/固定图像创建,或者数据奇偶校验,以及提高数据访问性能的特征,例如磁盘分条。增加的存储特征可被称为存储虚拟化特征,提供虚拟存储装置和增加的存储特征的软件和/或硬件可被称为“虚拟器”或者“虚拟化控制器”。虚拟化可在计算机主机内进行,例如在主机的存储软件栈的卷管理器层内进行,和/或在主机之外的装置中,例如虚拟化交换机或者虚拟化设备中进行。提供虚拟化的这种外部装置可被称为“无主机式”虚拟器,并且可被用于从主机卸下虚拟化所需的处理。无主机式虚拟器可通过各种互连,例如光纤通道链路,网际协议(IP)网络等,与它们向其提供虚拟化功能的外部物理存储装置连接。
传统上,计算机主机内的存储软件由许多层组成,例如文件系统层,磁盘驱动器层等。一些存储软件层可形成在主机使用的操作系统的一部分,并且可因操作系统而异。当访问物理磁盘时,指定操作系统的一层,例如磁盘驱动器层可被配置成期待磁盘的某些类型的配置信息将按照特定格式布置,例如布置在包含磁盘分区布局信息的标题(位于磁盘的前几个存储块)中。用于访问本地物理磁盘的存储栈软件层也可被用于访问由无主机式虚拟器以虚拟存储装置的形式提供的外部存储装置。于是,对于无主机式虚拟器来说,最好按照可在存储环境中的主机使用的不同操作系统期待的格式提供虚拟存储装置的配置信息。另外,对于无主机式虚拟器来说,最好实现一种灵活并且动态地将外部物理存储装置内的存储空间映射到提供给主机存储软件层的虚拟存储装置,而不要求主机的重新启动的技术。
发明内容
公开了仿真操作系统元数据,从而提供对存储卷(storagevolumes)的跨平台访问的系统和方法的各种实施例。
根据本发明,提供了一种系统:包括
第一主机;和
无主机式虚拟器;
其中所述无主机式虚拟器被配置成:
接收对于在所述第一主机中所用的操作系统的元数据要求;
基于所述接收的元数据要求,对于第一虚拟存储装置生成第一操作系统元数据,其中在所述第一主机请求访问所述第一虚拟存储装置时,生成所述第一操作系统元数据;
使所述第一操作系统元数据可被所述第一主机访问;
其中所述第一主机包括存储软件栈,所述存储软件栈包括第一层;
其中所述第一层被配置成使用所述第一操作系统元数据,检测作为第一可寻址存储装置的所述第一虚拟存储装置的存在。
根据本发明,还提供了一种方法,包括:
接收对于在第一主机中所用的操作系统的元数据要求;
基于所述接收的元数据要求,对于第一虚拟存储装置生成第一操作系统元数据,其中在所述第一主机请求访问所述第一虚拟存储装置时,生成所述第一操作系统元数据;
使所述第一虚拟存储装置的第一操作系统元数据可被所述第一主机访问;
在所述第一主机的存储软件栈的第一层中使用第一操作系统元数据,检测作为第一可寻址存储装置的所述第一虚拟存储装置的存在。
根据第一实施例,系统可包括第一主机和一个无主机式虚拟器,例如虚拟化交换机或虚拟化设备。无主机式虚拟器可被配置成产生第一虚拟存储装置,例如虚拟LUN的操作系统元数据,并使该操作系统元数据可被第一主机访问。可按照在主机使用的操作系统的要求定制操作系统元数据;即,无主机式虚拟器能够提供为在不同主机使用的许多不同操作系统定制的元数据。第一主机可被配置成向无主机式虚拟器指定其操作系统的特定元数据要求。第一主机可包括存储软件栈,存储软件栈包括配置成使用无主机式虚拟器提供的操作系统元数据来检测作为可寻址存储装置,比如分区的第一虚拟存储装置的存在的第一层,比如磁盘驱动器层。在另一实施例中,无主机式虚拟器可被配置成将一个或多个物理存储装置内的存储空间聚合成一个逻辑卷,并将该逻辑卷映射到第一虚拟存储装置或虚拟LUN。在这样的实施例中,无主机式虚拟器还可被配置成向存储软件栈的第二层(例如磁盘驱动器层和文件系统层之间的中间驱动器层)提供逻辑卷元数据,允许第二层对逻辑卷进行I/O操作。
在一个实施例中,第一虚拟存储装置最初未被映射到物理存储空间。可在开始产生I/O操作之前的系统初始化阶段期间,发生作为可寻址存储装置的无映射第一虚拟存储装置的识别。这样,可为无主机式虚拟器进行的后续动态地映射准备无映射的或者“空白的”虚拟LUN。无映射的LUN可被赋予和在主机上使用的操作系统所支持的最大许可LUN大小相等的初始大小,以致在初始化之后,虚拟LUN的大小不需要修改。在一些实施例中,可预先产生多个虚拟LUN供在单个主机上使用,以便隔离用于不同应用程序的存储空间,或者适应对最大LUN大小的限制。
在另一实施例中,系统还可包括两个或者更多的处理存储装置,无主机式虚拟器可被配置成将第一和第二物理存储装置的物理存储空间动态地映射到第一虚拟存储装置内的相应范围的地址。例如,无主机式虚拟器可被配置成在物理存储装置(它可被称为物理LUN)和虚拟LUN之间进行N对1映射,允许通过预先产生的虚拟LUN从主机访问物理存储装置中的存储空间。利用各种不同的机构,关于虚拟LUN内的第一和/或第二地址范围(即,被映射到物理存储装置的虚拟LUN的区域)的位置的配置信息可从无主机式虚拟器传送给在主机的存储栈的第二层(例如,磁盘驱动器层之上的中间驱动器层)。这样的机构可包括,例如将配置信息写入虚拟LUN内的某些特殊块的无主机式虚拟器,通过网络向主机发送消息,或者特殊的扩展SCSI模式页。在一个实施例中,单个物理存储装置内的两个或者更多不同范围的物理存储空间可被映射到对应的预先产生的虚拟存储装置,比如虚拟LUN,并被提供给对应的主机。即,无主机式虚拟器允许多个主机中的每个主机通过相应的虚拟LUN,访问物理存储装置的一个相应部分。在这样的实施例中,无主机式虚拟器还可被配置成实现隔离在共享物理存储装置内的多个范围的物理存储空间的安全策略,即,只允许一个主机访问该主机已被准许访问的那些区域,以及防止擅自访问。
在一个实施例中,无主机式虚拟器还可被配置成将一个物理存储装置内的存储空间聚合成一个逻辑卷,将该逻辑卷动态地映射到预先产生的虚拟存储装置内的一个地址范围,并将逻辑卷元数据传给存储栈的第二层,允许对该逻辑卷进行I/O操作。来自单个物理存储装置的存储空间可被聚合成任意所需数目的不同逻辑卷,任何所需数目的逻辑卷可被映射到单个虚拟存储装置或者VLUN。无主机式虚拟器还可被配置成提供卷级安全性,即防止主机对逻辑卷的擅自访问,即使当对应于逻辑卷的物理存储空间是共享物理存储装置的一部分。另外,来自任何所需数目的物理存储装置的物理存储空间可被聚合成一个逻辑卷,从而允许单个卷在比单个物理存储装置的最大许可大小更大的地址范围内延续。虚拟存储装置或者虚拟LUN可分布在许多独立的前端存储网络中,例如光纤通道架构,支持逻辑卷的物理存储装置可分布在许多独立的后端存储网络中。例如,第一主机可通过第一存储网络访问其虚拟存储装置,第二主机可通过与第一存储网络无关的第二存储网络(即,第一存储网络中的重构和/或故障不会影响第二存储网络)访问其虚拟存储装置。类似地,无主机式虚拟器可通过第三存储网络访问第一物理存储装置,通过第四存储网络访问第二物理存储装置。无主机式虚拟器的跨越分布在独立的存储网络之中的预先产生的虚拟存储装置,动态地映射存储空间的能力可支持稳固并且灵活的存储环境。
附图说明
图1a是图解说明计算机系统的一个实施例的方框图。
图1b是图解说明配置成利用无主机式块虚拟化的系统的一个实施例的方框图。
图2a是根据一个实施例,图解说明将操作系统专有元数据加入封闭源卷的虚拟逻辑单元(LUN)的方框图。
图2b是图解说明其中无主机式虚拟器被配置成将分区表包括在操作系统元数据内的一个实施例的方框图。
图2c是图解说明其中无主机式虚拟器被配置成将物理存储装置内的存储空间集合成一个逻辑卷,并将逻辑卷映射到虚拟LUN的一个实施例的方框图。
图3是图解说明包括一个配置成创建多个虚拟LUN的无主机式虚拟器的实施例的方框图。
图4是图解说明配置成产生操作系统元数据的主机和无主机式虚拟器的操作的各个方面的流程图。
图5是图解说明其中无主机式虚拟器被配置成将一个或多个物理存储装置中的存储空间集合成一个逻辑卷,并将该逻辑卷映射到一个虚拟LUN的一个实施例的流程图。
图6是根据一个实施例,图解说明无映射虚拟LUN的一个例子的方框图。
图7是图解说明包括一个配置成创建多个无映射虚拟LUN的无主机式虚拟器的一个实施例的方框图。
图8是图解说明其中无主机式虚拟器被配置成动态地将物理存储空间从两个不同的物理存储装置内映射到单一虚拟LUN的一个实施例的方框图。
图9是图解说明其中无主机式虚拟器被配置成动态地将物理存储空间从单个物理存储装置内映射到分配给不同主机的两个虚拟LUN的一个实施例的方框图。
图10是图解说明其中无主机式虚拟器被配置成将一个物理存储装置的存储空间集合成一个逻辑卷,并将该逻辑卷动态地映射到虚拟LUN的一系列块的一个实施例的方框图。
图11是图解说明其中无主机式虚拟器被配置成动态地将多个逻辑卷映射到单一虚拟LUN的一个实施例的方框图。
图12是图解说明其中无主机式虚拟器被配置成将一个物理存储装置的存储空间集合成两个逻辑卷,并动态地将这两个逻辑卷中的每一个映射到一个不同的虚拟LUN的一个实施例的方框图。
图13是图解说明采用多个存储网络的一个实施例的方框图。
图14是图解说明其中无主机式虚拟器被配置成将两个物理存储装置的存储空间集合成单个逻辑卷的一个实施例的方框图。
图15是根据其中无主机式虚拟器被配置成支持动态物理LUN隧穿的一个实施例,图解说明主机和无主机式虚拟器的操作的各个方面的流程图。
图16是根据其中无主机式虚拟器180被配置成支持动态卷隧穿的一个实施例,图解说明主机和无主机式虚拟器的操作的各个方面的流程图。
图17是图解说明其中无主机式虚拟器包含虚拟化交换机的一个实施例的方框图。
图18是图解说明其中无主机式虚拟器包含虚拟化设备的一个实施例的方框图。
图19是根据一个实施例,图解说明例证的主机的方框图。
图20是根据一个实施例,图解说明计算机可访问介质的方框图。
虽然本发明容许各种修改和备选形式,不过附图中举例表示了本发明的具体实施例,这里将具体描述这些实施例。但是,应明白附图及其详细说明并不意图将本发明局限于公开的特定形式,相反,目的是覆盖落入由附加的权利要求限定的本发明的精神和范围内的所有修改\等同物和替代物。
具体实施方式
图1a是根据一个实施例,图解说明计算机系统100的方框图。系统100包括通过互连130与物理分块装置120耦接的主机110。主机110包括传统的软件存储栈140A,软件存储栈140A可被用于通过互连130对物理分块装置120进行I/O操作。
一般来说,物理分块装置120可包含提供一批可被读取或写入的线性寻址数据块的任何硬件实体。例如,在一个实施例中,物理分块装置可以是配置成以一批被索引块的形式提供其所有扇区的单个磁盘驱动器。在另一实施例中,物理分块装置可以是磁盘阵列装置,或者配置成磁盘阵列装置的一部分的磁盘。预期任何适当类型的存储装置可被配置成分块装置,例如固定的或可拆卸的磁性介质驱动器(例如,硬盘驱动器,软盘驱动器或Zip驱动器),可写或者只读光学介质驱动器(例如CD或DVD),磁带驱动器,固态大容量存储装置,或者任何其它类型的存储装置。互连130可利用任何所需的存储连接技术,例如小型计算机系统接口(SCSI)协议,光纤通道,网际协议(IP),因特网SCSI(iSCSI)的各种变形,或者这样的存储连网技术的组合。软件存储栈140A可包含在主机110的操作系统内的多层软件,并且可由客户机应用程序访问,以便对所需的物理分块装置120进行I/O(输入/输出)。
在用于分块装置访问的传统存储软件栈中,客户机应用程序可发起I/O请求,例如以读取在文件内的指定偏移量的一块数据的请求的形式。该请求可在文件系统层112被接收(例如,以read()系统调用的形式),被转换成读取特定装置对象(即,表示存储装置的软件实体)内的一块,并被传送给磁盘驱动器层114。磁盘驱动器层114随后可选择和磁盘装置对象对应的目标物理分块装置120,随后利用互连相关I/O驱动器层116,通过互连130,向在目标物理分块装置的一个地址发送请求。例如,主机总线适配器(HBA)(比如SCSI HBA)可被用于将按照适当的存储协议(例如SCSI)格式化的I/O请求传送给互连的特殊链路(例如SCSI总线)。在物理分块装置120,互连相关固件层122可接收该请求,在物理存储层124进行所需的物理I/O操作,并通过互连将结果回送给主机。随后在被传送给发生请求的客户机应用程序之前,结果(例如待读取的文件的所需各块)可按照相反的顺序(即,从互连相关I/O驱动器到文件系统)经过存储栈140A的各层。
在一些操作系统中,分级方案可被用于对物理分块装置120内的存储空间寻址。例如,操作系统可将<″hba″,″bus″,″target″,″lun″>形式的四级分级寻址方案用于SCSI装置,包括SCSI HBA标识符(″hba″),SCSI总线标识符(″bus″),SCSI目标标识符(″target″),和逻辑单元标识符(″lun″),并且可被配置成在引导期间,用可用SCSI装置的地址填充装置数据库。主机110可包括多个SCSI HBA,一个不同的SCSI适配器标识符可被用于每个HBA。SCSI适配器标识符可以是由操作系统内核根据HBA卡相对于彼此的物理布置(即,根据用于适配器卡的插槽编号)发出的数字。每个HBA可控制一个或多个SCSI总线,唯一的SCSI总线编号可被用于识别HBA内的每个SCSI总线。在系统初始化期间,或者响应特殊的配置命令,HBA可被配置成探查每条总线,以识别目前连接到总线上的SCSI装置。根据使用的SCSI的版本,可在SCSI总线上连接的装置(例如磁盘或磁盘阵列)的数目可能局限于15个装置,不包括HBA本身。可发起I/O操作的SCSI装置,例如HBA被称为SCSI发起者,而在其进行物理I/O的装置被称为SCSI目标。SCSI总线上的每个目标可响应探查,向HBA识别它自己。另外,每个目标装置还可容纳高达特定于协议的最大数目的“逻辑单元”(LUN),所述逻辑单元代表目标装置内的物理存储空间的可独立寻址的单元,并且可将逻辑单元标识符通知HBS。在一些实施例中,目标装置可包含单个LUN(例如,LUN可代表整个磁盘或者甚至磁盘阵列)。SCSI装置配置信息,例如目标装置标识符和LUN标识符可由HBA传给磁盘驱动器层114。当发出I/O请求时,磁盘驱动器层114可利用如上所述的分级SCSI地址。
当访问LUN时,磁盘驱动器层114预期在LUN内的某些特定位置看到OS专有的元数据。例如,在许多操作系统中,磁盘驱动器层114可负责实现逻辑分区(即,将物理磁盘内的空间细分成分区,每个分区可被用于较小的文件系统)。描述分区的布局的元数据(例如LUN内的分区的串块偏移量,和分区的长度)可按照和操作系统相关的格式保存,并且保存在LUN内的和操作系统相关的位置中,例如保存在标题或尾标中。在Sun Microsystems的SolarisTM操作系统中,内容的虚拟表(VTOC)结构可位于磁盘卷的第一分区中,VTOC的副本也可位于卷的最后两个柱面中。另外,操作系统元数据可包括柱面对准和/或柱面大小信息,以及引导代码(如果卷是可引导的话)。各种版本的Microsoft WindowsTM的操作系统元数据可包括“幻数”(操作系统期望得到的一个或多个特殊数字,通常在磁盘的开始处或其附近),子磁盘布局信息等。如果磁盘驱动器层114未在预期的位置并按预期的格式找到元数据,那么磁盘驱动器层不能在LUN进行I/O操作。
随着时间的过去,相对简单的传统的存储软件栈140A已被增强,以帮助提供高级的存储特征,主要是通过引入块虚拟化层。一般来说,块虚拟化指的是从一个或多个基础的物理或逻辑分块装置中创建或聚集逻辑或虚拟分块装置,并使该虚拟分块装置可为分块装置消费者访问以便进行存储操作的过程。例如,在块虚拟化的一个实施例中,例如光纤通道存储区域网(SAN)中的多个物理分块装置内的存储空间可被聚集和提供给主机,作为单一的虚拟存储装置,例如虚拟LUN(VLUN),如下更详细所述。在另一实施例中,软件的一层或多层可重新排列来自一个或多个分块装置,例如磁盘的块,并增加各种功能。所得到的重新排列的一批块随后被提供给存储消费者,例如应用程序或文件系统,作为表现为一个或多个基本磁盘驱动器的一个或多个聚合装置。即,可提供由重新排列块,和增加功能性而产生的更复杂的结构,好像它是块,或者逻辑分块装置的一个或多个简单阵列那样。在一些实施例中,可实现多层虚拟化。在这样的实施例中,一个或多个分块装置可被映射成特殊的虚拟化分块装置,所述特殊的虚拟化分块装置又可被映射成另一虚拟化分块装置,以允许利用简单的分块装置实现复杂的存储功能。这里使用的术语“逻辑卷”指的是可直接提供给不能直接使用分块装置的文件系统,数据库或者其它应用程序使用的虚拟化分块装置。下面提供有关块虚拟化,和块虚拟化所支持的高级存储特征的细节。
可用硬件和软件在存储栈和相关的存储环境内的各个地方实现块虚拟化。例如,可在磁盘驱动器层114和文件系统层112之间增加呈卷管理器,例如VERITAS Software Corporation的VERITASVolume ManagerTM形式的块虚拟化层。在一些存储环境中,虚拟化功能可被加入到主机总线适配器中,即加入介于互连相关I/O驱动器层116和互连130之间的一层中。也可在主机110外,例如在构成互连130的一部分的虚拟化设备或虚拟化交换机中实现块虚拟化。提供块虚拟化的这种外部装置(即,未包含在主机110内的装置)可被称为无主机式虚拟器或者无主机式虚拟化控制器。在一些存储环境中,块虚拟化功能可由和基于主机的虚拟器合作的无主机式虚拟器实现。即,一些块虚拟化功能中脱离主机执行,其它块虚拟化特征可在主机上实现。在另一实施例中,在主机110之外的多个装置,例如两个或更多的虚拟化交换机,两个或更多的虚拟化设备,或者虚拟化交换机和虚拟化设备的组合可合作提供块虚拟化功能;即,无主机式虚拟器可包括多个协同操作的装置。
虽然可向存储软件栈140A中加入另外的层,不过一般难以除去或者完全绕过操作系统的现有存储软件层。于是,一般按照即使当提供给操作系统的存储装置是虚拟的而不是物理的,是远程的而不是本地的,仍然允许现有的存储软件层继续工作的方式实现无主机式虚拟器。例如,由于当进行I/O操作时,磁盘驱动器层114预期处理SCSILUN,因此无主机式虚拟器可以虚拟LUN的形式,将虚拟化存储装置提供给磁盘驱动器层。即,如下更详细所述,当向主机110提供对虚拟化存储装置的访问时,无主机式虚拟器可封闭或者仿真LUN的元数据。另外,如下所述,一个或多个软件模块或层可被加入到存储栈140A中,以支持其它形式的利用虚拟LUN的虚拟化。
图1b是图解说明配置成利用无主机式块虚拟化的系统100的一个实施例的方框图。如图所示,系统可包括无主机式虚拟器180,例如虚拟化交换机或虚拟化设备,它可包括在链接主机110和物理分块装置120的互连130内。主机110可包含增强的存储软件栈140B,存储软件栈140B可包括介于磁盘驱动器层114和文件系统层112之间的中间驱动器层。在一个实施例中,无主机式虚拟器180可被配置成将物理分块装置120,或者多个物理分块装置120内的存储空间映射成一个虚拟存储装置(例如虚拟LUN或VLUN),并将虚拟存储装置提供给主机110。
在下面的描述中,映射到虚拟LUN的后端物理分块装置120可被称为“物理LUN(PLUN)”。在一个实施例中,无主机式虚拟器180可被配置成将存储空间直接从后端物理LUN映射到VLUN,而不存在任何另外的虚拟化(即,不创建逻辑卷)。在下面的说明中,将PLUN映射到VLUN的这种技术可被称为“PLUN隧穿”。在另一实施例中,无主机式虚拟器180可被配置成将一个或多个物理分块装置120内的存储空间聚合成一个或多个逻辑卷,并在提供给主机110的VLUN的地址空间内映射所述逻辑卷。这里,术语“卷隧穿”或“逻辑卷隧穿”可被用于表示通过VLUN映射逻辑卷的技术。无主机式虚拟器180还可被配置成向中间驱动器层130提供和隧穿的逻辑卷有关的元数据或配置信息,允许中间驱动器层130代表客户机,例如文件系统层112或者其它应用程序,定位位于虚拟LUN内的逻辑卷,并对其进行I/O操作。在一些实施例中,诸如符号链接之类的别名使用技术可被用于使名称和隧穿的逻辑卷相联系,允许文件系统、应用程序和系统管理员利用常规的或者推荐的命名方案表示隧穿的逻辑卷。在一个实施例中,还可在主机110和无主机式虚拟器180之间协调名称的选择,例如,使用扩展的SCSI模式页中的一个字段,或者通过包括一个或多个另外的装置和/或主机的外部虚拟化管理基础结构。这里,配置成利用中间驱动器层113和存储栈140B的各个较下层的文件系统层112和应用程序(例如数据库管理系统)可被称为“虚拟存储客户机”或“虚拟存储消费者”。虽然在图1b中描述的实施例中,无主机式虚拟器180被表示在互连130内,不过注意在其它实施例中,也可在物理分块装置120内(例如,由物理存储层124和固件层122之间的虚拟化层),或者在互连130之外的另一装置处提供无主机式虚拟化。如下更详细所述,在一些实施例中,许多可独立配置的互连可被用于使无主机式虚拟器180和主机110及后端存储装置120链接;例如,一个或多个前端互连130或存储区域网(SAN)架构可连接无主机式虚拟器180和主机110,而一个或多个后端互连130可链接无主机式虚拟器和后端存储装置。
如上所述,在一些实施例中,磁盘驱动器层114可预期某些操作系统专有元数据存在于LUN内的操作系统专用位置或偏移量处。于是,当向主机110提供虚拟LUN时,在这样的实施例,无主机式虚拟器180可在预期的位置合乎逻辑地插入预期的元数据。图2a是根据一个实施例,图解说明将操作系统专有元数据加入封闭源卷205的虚拟LUN中的方框图。如图所示,源卷205由编号0~(N-1)的N块组成。虚拟LUN 210可包括两个区域的插入元数据:包含H块元数据的标题215,和包括T块元数据的尾标225。在标题215和尾标225之间,虚拟LUN 210的块220可被映射到源卷205,从而使虚拟LUN 210总长为(H+N+T)块(即,虚拟LUN可包含编号0~(H+N+T-1)的块)。包含在标题215和/或尾标225中的操作系统专有元数据可被磁盘驱动器层114用于将虚拟LUN 210识别成可寻址的存储装置。这里使用的“可寻址的存储装置”是通过利用包括装置标识符(例如逻辑单元标识符)的地址和装置内的偏移量,可访问其存储块(例如,从诸如磁盘驱动器之类的装置驱动器)的存储装置。在一些实施例中,另外的配置信息或逻辑卷元数据也可被包括在标题215和/或尾标225内。标题215和尾标225的长度,以及元数据的格式和内容可随着在主机110使用的操作系统而变化。注意在一些实施例中,元数据可能只需要标题215,或者只需要尾标225,而不是既需要标题又需要尾标;在其它实施例中,元数据可被保存在LUN内的任何偏移量处。
无主机式虚拟器180可被配置成根据在主机110使用的操作系统的具体要求,定制产生的操作系统元数据(例如,在标题215和/或尾标225中)。由不同的操作系统强加的要求可能在将包括在元数据内的信息的类型(例如,元数据是否包括分区表),保存信息的格式(例如,指定分区大小或卷大小的单位,比如千字节或512字节存储块,偏移量是用十六进制数字还是十进制数字表示等),LUN内将找到元数据的位置等方面不同。在一些实施例中,所述要求可从主机110发送给无主机式虚拟器180。例如,在一个实施例中,可利用一个或多个装置和/或另外的主机(即,利用不同于主机110和无主机式虚拟器180的装置和/或主机)实现虚拟化管理基础结构。虚拟化管理基础结构的装置或主机可被配置成与主机110通信,从主机110获得操作系统的元数据要求,并将所述要求提供给无主机式虚拟器180。在另一实施例中,主机110可被配置成例如利用存储命令的扩展(例如扩展的SCSI请求),将操作系统要求提供给无主机式虚拟器。在一些实施例中,存储命令和/或所述扩展可以是厂商唯一的(即,对于不同的硬件存储器厂商,存储命令需要按照不同的方式来扩展)。在一个实施例中,只有在主机110使用的操作系统的身份(例如,操作系统名称和版本号)可被提供给无主机式虚拟器180,无主机式虚拟器可被配置成利用操作系统身份,获得操作系统要求的细节(例如,从保存在无主机式虚拟器180的数据库,或者从外部数据库)。在一些实施例中,也可手动地,例如系统管理员利用图形用户界面或命令行界面对无主机式虚拟器180指定主机110的操作系统身份和/或元数据要求。在一些实施例中,可以使用由多个操作系统共享的公共元数据格式。
在一些实施例中,插入虚拟LUN 210内的元数据可被保存在持久存储器中,例如保存在物理分块装置120的一些块中,或者保存在无主机式虚拟器180内的存储器上,并且逻辑上与映射块220连接。在其它实施例中,元数据可被保存在非持久存储器中(例如,保存在位于无主机式虚拟器180的内存内)和/或每当主机110访问虚拟LUN210时动态产生。在一些实施例中,元数据可由不同于无主机式虚拟器180的外部代理产生。外部代理能够按照不同操作系统(包括当部署无主机式虚拟器180时还未知的操作系统)的各种格式仿真元数据。在一个实施例中,无主机式虚拟器180可被配置成支持一个以上的操作系统;即,当将虚拟LUN提供给主机110时,无主机式虚拟器可合乎逻辑地插入和许多不同操作系统中的任意之一对应的元数据块,从而允许具有不同操作系统的主机共享对特定存储装置120的访问。
如前所述,在一些实施例中,无主机式虚拟器180可被配置成产生包括分区布局信息的操作系统元数据。图2b是图解说明其中无主机式虚拟器180被配置成将分区表255包括在产生的操作系统元数据标题215内的一个实施例的方框图。分区表255可提供描述LUN 210内的偏移量的布局或映射信息,映射到物理存储装置250的一个逻辑分区的块可位于所述偏移量处。在图解说明的实施例中,布局表可包含分别与物理存储装置250的分区1、分区2和分区3对应的三个条目。
在一些实施例中,无主机式虚拟器还可被配置成将一个或多个逻辑卷映射到虚拟LUN的地址空间。图2c是图解说明其中无主机式虚拟器180被配置成将物理存储装置250A和250B内的存储空间集合成一个逻辑卷260,并将逻辑卷260映射到虚拟LUN 210的块261的一个实施例的方框图。在这样的实施例中,除了如上所述产生操作系统元数据之外,无主机式虚拟器180还可被配置成产生逻辑卷特有的元数据。这样的逻辑卷元数据263包括允许中间驱动器层113对逻辑卷260进行I/O操作的信息(例如起始偏移量,卷长度,诸如镜像的数目之类的虚拟化层信息等)。注意在一个实施例中,逻辑卷元数据可包括在标题215或尾标225内,即,打算供中间驱动器层113使用的逻辑卷元数据可和打算供磁盘驱动器层114使用的操作系统元数据共处一地。虽然图2c中图解说明的逻辑卷260由两个物理存储装置250A和250B支持,不过一般来说,来自许多物理存储装置250的存储空间(包括来自单个物理存储装置的存储空间)可被集合成一个逻辑卷260。
图3是图解说明包括一个配置成创建多个虚拟LUN(VLUN)210的无主机式虚拟器180的实施例的方框图。在图解说明的实施例中,主机110A、110B和110C(总称为主机110)可通过互连130A与无主机式虚拟器180耦接,无主机式虚拟器180可通过互连130B与存储装置340A、340B和340C(总称为存储装置340)耦接。存储装置340可包括物理分块装置120以及虚拟分块装置(例如,在采用多层虚拟化的实施例中,如下所述)。主机110A和110B可利用操作系统A,而主同110C利用操作系统B;即,一般来说,主机110中的每个主机可支持许多操作系统中的任意一种。如图所示,无主机式虚拟器180可被配置成产生许多VLUN 210A-210E的元数据。VLUN 210A可被分配给主机110A(即,为VLUN 210A产生的操作系统元数据可供主机110A访问,允许主机110A检测作为可寻址存储装置的VLUN210A的存在)。VLUN 210B可被配置成给主机110B,而VLUN 210C、210D和210E可全部分配给主机110C。存储装置340A内的存储空间可被映射到VLUN 210A和VLUN 210E,如图3中的虚箭头所示。从而,在图解说明的实施例中,两个或更多的具有不同操作系统的主机(例如主机110A和主机110C)中的每个主机可利用不同的VLUN(例如210A和210E)访问相同的存储装置(例如340A)。一般来说,无主机式虚拟器180可被配置成支持任意所需数目的VLUN 210,将任何所需VLUN分配给指定主机,和将存储空间从存储装置340的任何所需组合映射到指定VLUN。注意在一些实施例中,某些操作系统可对主机110可看到的LUN(或VLUN)的总数,和/或指定LUN或VLUN的大小加以限制,并且无主机式虚拟器可被配置成遵守这样的限制。
图4是图解说明配置成如上所述产生操作系统元数据的主机110和无主机式虚拟器180的操作的各个方面的流程图。无主机式虚拟器180可被配置成利用上述技术之一,例如扩展的SCSI命令,从主机110接收操作系统元数据要求(方框410)。无主机式虚拟器180随后根据所述要求,产生虚拟存储装置,比如VLUN 210的操作系统元数据(方框420),并使该操作系统元数据可供主机110访问(方框430)。在一些实施例中,借助无主机式虚拟器180通过互连130A发送的消息,使所述元数据可供主机110访问。在其它实施例中,主机110A可被配置成向无主机式虚拟器180发送查询,请求和分配给主机110的VLUN有关的信息,响应所述查询可提供元数据。位于主机110的存储软件栈的第一层(例如磁盘驱动器层114)可被配置成使用该元数据检测作为可寻址存储装置的虚拟存储装置的存在(方框440)。注意在其中存储环境中的所有主机110被配置成使用相同操作系统的一些实施例中,对应于方框410的操作可被省略,即,在所有主机110上使用单一操作系统的均质环境中,不需要向无主机式虚拟器180提供操作系统特有的要求。
图5是图解说明其中无主机式虚拟器180被配置成将一个或多个物理存储装置中的存储空间集合成一个逻辑卷260,并将该逻辑卷映射到VLUN 210的一个实施例的流程图。如图4中一样,操作系统元数据要求可被无主机式虚拟器180接收(方框510),根据所述要求,无主机式虚拟器可产生虚拟存储装置或VLUN 210的操作系统元数据(方框520)。无主机式虚拟器可被配置成将一个或多个物理存储装置340内的存储空间集合成一个逻辑卷260(方框530),并将该逻辑卷映射成虚拟存储装置或VLUN的地址空间(方框540)。操作系统元数据,以及逻辑卷特有的其它元数据可被提供给主机110(方框550)。位于主机的存储软件栈的第一层(例如磁盘驱动器层114)可被配置成使用操作系统元数据检测虚拟存储装置的存在(方框560),而第二层(例如中间驱动器层113)可被配置成使用逻辑卷元数据来访问和发起对逻辑卷260的I/O操作(方框570)。
在一些实施例中,上面说明的PLUN隧穿和卷隧穿的基本技术可被扩展,以允许PLUN和/或逻辑卷与VLUN的动态联系。虽然一般可高效地创建和动态重构(例如生长或收缩,输入主机110或者从主机110输出)诸如逻辑卷260之类的逻辑卷,不过对LUN(即,物理和/或虚拟LUN)的类似配置操作一般相当慢。一些LUN配置操作可能至少部分异步,可能具有极大的完成时间和/或不明确的故障状态。在许多操作系统上,只在系统重新启动之后才完成LUN重构;例如,如果不重新启动,那么操作系统检测不到新创建的物理或虚拟LUN。于是为了能够灵活地将逻辑卷映射到虚拟LUN,同时避免与LUN重构相关的延迟和问题,可取的是产生无映射的虚拟LUN(即,为一开始不被映射到任何物理LUN或者映射到逻辑卷的虚拟LUN创建操作系统元数据),并且将无映射的虚拟LUN预先分配给主机110,作为初始化过程的一部分。可在代表应用程序对虚拟LUN进行存储操作之前完成所述初始化过程。在初始化过程中(在一些实施例中,它可包括系统的重新启动),软件存储栈140B的各层可被配置成检测作为可寻址存储装置的虚拟LUN的存在。在初始化之后,无主机式虚拟器180可动态地将物理LUN和/或逻辑卷映射到虚拟LUN(例如,通过修改操作系统元数据的多个部分),如下更详细所述。这里使用的术语“动态地映射”指的是通过修改一块或多块元数据,和/或通过借助一个或多个消息传送给主机进行的虚拟存储装置(例如VLUN)的映射,而不要求向其提供虚拟存储装置的主机110的重新启动。
图6是根据一个实施例,图解说明无映射虚拟LUN 230的一个例子的方框图。如图所示,无映射虚拟LAN 230可包括操作系统元数据标题215和操作系统元数据尾标225,以及无映射块235的区域。在一些实施例中,无映射块(在所描述的例子中的X块)的区域的大小可被设置成操作系统支持的最大可容许LUN或者最大逻辑卷大小,以致逻辑卷或物理LUN到虚拟LUN的任何后续映射不要求虚拟LUN的大小的扩大。在一个备选实施例中,无映射的虚拟LUN只由仿真的元数据(例如标题215和/或尾标225)组成,当动态地映射卷或物理LUN时,虚拟LUN的大小可被增大。在这样的实施例中,当虚拟LUN被扩展时,磁盘驱动器层114不得不修改其一些内部数据结构,为了修改其一些内部数据结构,不得不重新读取仿真的元数据。无主机式虚拟器180可被配置成将元数据变化通知消息发送给磁盘驱动器层114,以便触发元数据的重新读取。
图7是图解说明包括配置成创建多个无映射虚拟LUN(VLUN)230的无主机式虚拟器180的一个实施例的方框图。如图所示,一个以上的无映射VLUN可以和单一主机110相联系。例如,无主机式虚拟器180可将无映射VLUN 230A和230B分配给主机110A,将无映射VLUN 230C、230D和230E分配给主机110B。在一些实施例中,多个VLUN可与指定主机相联系,以便隔离用于不同应用程序的存储空间,或者允许访问超过系统中所支持的最大可容许LUN大小的存储空间。无主机式虚拟器180可被配置成动态地将存储装置340的物理和/或虚拟存储空间映射到无映射的虚拟LUN 230。主机110A和110B可被配置成在一些实施例中使用不同的操作系统,在其它实施例中使用相同的操作系统。在物理或虚拟存储空间已被动态地映射之后,先前无映射的VLUN 230可提供和前面关于在基本(即非动态)PLUN隧穿和基本卷隧穿中提供的VLUN 210描述的功能相同的常规功能。下面说明动态地将物理存储装置和逻辑卷映射到VLUN的许多不同的技术。注意在一些实施例中,也可利用基本PLUN隧穿或者基本卷隧穿来实现每种这样的技术(例如,从两个PLUN到单个VLUN的映射),即,不从预先分配给主机110的无映射VLUN开始。
如前所述,无主机式虚拟器180产生的操作系统专有元数据(例如在图2b的标题215和/或尾标225中)可允许在主机110的磁盘驱动器层114检测作为可寻址存储装置的无映射虚拟LUN 230的存在。在VLUN 230已被磁盘驱动器层114识别之后,在VLUN地址空间内的任何偏移量处的块可被磁盘驱动器层114访问,从而被磁盘驱动器层之上的任何其它层访问。例如,中间驱动器层113可被配置成通过从在VLUN 230内仿真的指定一组存储块读取,和/或对其写入,与无主机式虚拟器180通信。在一个实施例中,这样的指定存储块可向无主机式虚拟器180提供一种机构,从而向中间驱动器层113提供和映射到VLUN 230的逻辑卷或物理LUN相关的配置信息。
在一个实施例中,无主机式虚拟器180可被配置成动态地直接将存储空间从后端物理LUN映射到无映射的VLUN 230,而不存在任何另外的虚拟化(即,不创建逻辑卷)。这样的将PLUN动态地映射到VLUN 230的技术可被称为“动态PLUN隧穿”(与上面描述的不使用无映射的VLUN的基本PLUN隧穿相反)。在一些实施例中,每个PLUN可被映射到对应的VLUN 230(即,无主机式虚拟器180可实现PLUN到VLUN的1对1映射)。在其它实施例中,如下结合图8的说明所述,来自多个PLUN的存储空间可被映射到指定VLUN 230的子范围中。一般来说,基本PLUN隧穿和动态PLUN隧穿允许无主机式虚拟器180充当VLUN 230(主机110可直接访问的存储实体)和后端PLUN之间的隔离层,允许无主机式虚拟器对主机隐瞒和物理存储协议实现相关的细节。例如在一种实现中,后端PLUN可实现和主机100看到的版本(例如SCSI-2)不同版本的存储协议(例如SCSI-3),并且无主机式虚拟器可提供这两种版本之间的所需的任何转换。在另一种实现中,无主机式虚拟器180可被配置成实现后端PLUN的协作访问控制机制,该机制的细节仍然对主机110隐瞒。
另外,无主机式虚拟器180还可被配置成利用PLUN隧穿(即,基本PLUN隧穿或动态PLUN隧穿),提高数据共享的级别。磁盘阵列装置通常对同时发生的“登录”的总数,即,可访问指定磁盘阵列装置的实体的总数加以限制。在将PLUN隧穿用于磁盘阵列(即,PLUN是磁盘阵列装置)的存储环境中,无主机式虚拟器180可允许多个主机通过单一登录访问磁盘阵列。即,多个主机110可登录到无主机式虚拟器180,而无主机式虚拟器可代表多个主机一次登录到磁盘阵列PLUN。无主机式虚拟器180随后利用单一登录,将I/O请求从多个主机传送给磁盘阵列PLUN。从而通过隧穿可降低磁盘阵列PLUN看到的登录(即登录的不同实体)的数目,而不减少从其可发起以磁盘阵列PLUN为目标的I/O操作的主机110的数目。从而可增大可访问位于具有登录计数限制的单一磁盘阵列PLUN的存储空间的主机110的总数,从而提高数据共享的总体水平。
图8是图解说明其中无主机式虚拟器180被配置成动态地将物理存储空间从两个不同的物理存储装置340A和340B内映射到单一VLUN 230B的一个实施例的方框图。即,无主机式虚拟器180可被配置成将第一范围的物理存储空间从装置340A映射到VLUN 230B内的映射块的第一区域,将第二范围的物理存储空间从装置340B映射到VLUN 230B内的映射块的第二区域。第一范围和第二范围的物理存储空间均可代表相应的PLUN,例如磁盘阵列,或者PLUN的相应子集。在不同的实施例中,利用各种机制,指示映射块821A和821B所位于的VLUN 230B内的偏移量的配置信息可由无主机式虚拟器180提供给中间驱动器层113。例如,在一个实施例中,无主机式虚拟器180可将配置信息写VLUN 230内的指定一组存储块,中间驱动器层113可被配置成读取所述指定一组存储块,如上所述。在另一实施例中,无主机式虚拟器180可直接地(通过互连350A或另一网络)或者通过中间协调服务器,将包含配置信息的消息发送给主机110A。在又一实施例中,可在特殊的SCSI模式页内提供配置信息(即,中间驱动器层113可被配置成读取包含由无主机式虚拟器180更新的配置信息的特殊SCSI模式页)。在一些实施例中可以使用这些技术的组合:例如,在一个实施例中,无主机式虚拟器180可向中间驱动器层113发送请求中间驱动器层读取包含配置信息的特殊SCSI模式页的消息。
图9是图解说明其中无主机式虚拟器180被配置成动态地将物理存储空间从单个物理存储装置340A内映射到分配给不同主机110A和110B的两个VLUN 230的一个实施例的方框图。如图所示,物理存储装置340A的第一范围的物理存储空间955A可被映射到分配给主机110A的VLUN 230B内的第一范围的映射块821A。同一物理存储装置340A的第二范围的物理存储空间955B可被映射到分配给主机110B的VLUN 230E的第二范围的映射块821C。另外,在一些实施例中,无主机式虚拟器180可被配置成防止主机110B擅自访问物理存储范围955A,和防止主机110A擅自访问物理存储空间955B。从而,除了允许从多个主机110访问单一的物理存储装置340A之外,无主机式虚拟器180还可被配置成根据指定的安全协议,为每个范围的物理存储空间955A和955B提供安全性。例如,在一个实施例中,安全协议只允许来自单一主机110的对指定VLUN 230(及对其后备物理存储空间)的I/O操作。在一些实施例中,无主机式虚拟器180可被配置成保持关于主机110和VLUN 230的访问权信息,而在其它实施例中,可向每个主机110提供安全权标,指示允许从主机对其访问的特定VLUN,安全权标可包含在I/O请求内。
在一些实施例中,无主机式虚拟器180可被配置成将物理存储空间集合成一个逻辑卷,并动态地将该逻辑卷映射到VLUN 230内的一个地址范围。将逻辑卷动态地映射到VLUN 230的这种技术可被称为“动态卷隧穿”(与上面描述的不使用无映射VLUN的基本卷隧穿相反)。图10是图解说明其中无主机式虚拟器180被配置成将物理存储装置340A的存储空间1055A集合成一个逻辑卷1060A,并将逻辑卷1060A动态地映射到VLUN 230B的一系列块(被指定为图10中的映射卷1065A)的一个实施例的方框图。和PLUN隧穿的情况一样,利用各种机制中的任何一种,例如扩展的SCSI模式页,VLUN 230A内仿真的虚拟块,和/或从无主机式虚拟器180送给主机110A的直接或间接消息,与隧穿的逻辑卷1060A相关的配置信息或元数据可被提供给中间驱动器层113。虽然在描述的实施例中,逻辑卷1060A被表示成由单一物理存储装置340A的一部分支持,不过在其它实施例中,逻辑卷1060A可聚合自单一物理存储装置内的所有存储空间,或者聚合自两个或更多物理装置的存储空间。在采用多层虚拟化的一些实施例中,逻辑卷1060A本身可聚合自其它逻辑存储装置,而不是直接聚合自物理存储装置。在一个实施例中,可向每个主机110(即,除主机110A外还有主机110B)提供通过独立VLUN对逻辑卷1060A的访问,而在另一实施例中,不同的一组逻辑卷可被提供给不同的主机110。
图11是图解说明其中无主机式虚拟器180被配置成将多个逻辑卷动态地映射到单一VLUN 230的一个实施例的方框图。如图所示,无主机式虚拟器180可被配置成将物理存储装置340A的存储范围1155C和物理存储装置340B的物理存储范围1155B聚合成一个逻辑卷1160A,并将逻辑卷1160A映射到VLUN 230B的第一映射卷区域1165A。另外,无主机式虚拟器180还可将物理存储装置340A的物理存储范围1155B聚合成第二逻辑卷1160B,并将逻辑卷760B映射到VLUN 230B的第二映射卷区域116B。一般来说,无主机式虚拟器180可将来自一个或多个物理存储装置340的物理存储块的任何适当选择聚合成一个或多个逻辑卷,并将所述逻辑卷映射到一个或多个预先产生的无映射VLUN 230。
图12是图解说明其中无主机式虚拟器180被配置成将物理存储装置340A的存储空间集合成逻辑卷1260A和1260B,并将这两个逻辑卷中的每一个动态地映射到一个不同的VLUN 230的一个实施例的方框图。例如,如图所示,逻辑卷1260A可被映射到可从主机110A访问的VLUN 230B内的第一地址范围,而逻辑卷1260B可被映射到可从主机110B访问的VLUN 230E内的第二地址范围。类似于上面关于PLUN隧穿说明的安全协议,无主机式虚拟器180还可被配置成实现防止擅自访问和/或数据破坏的安全协议。无主机式虚拟器180可在逻辑卷级别实现所述安全协议:即,无主机式虚拟器180可防止对其数据可被保存在单一物理存储装置340A内的逻辑卷1260A的访问(例如从主机110B)和逻辑卷1260B的访问(例如从主机110A)。在一个实施例中,无主机式虚拟器180可被配置成保持每个主机110已被准许访问的逻辑卷1260的访问权信息。在其它实施例中,可向每个主机110提供安全权标(例如由无主机式虚拟器180,或者由外部安全服务器),所述安全权标指示允许主机访问的特定逻辑卷1260,所述安全权标包括在I/O请求内。
许多存储环境利用存储区域网(SAN),例如光纤通道架构来访问物理存储装置。可能需要交换机重构,重新布线,重新启动等的SAN架构重构(例如,提供从先前不可以访问所需PLUN或逻辑卷的特定主机对特定PLUN或逻辑卷的访问)一般相当复杂,并且易于出错。上面所述的动态PLUN隧穿和动态卷隧穿的技术允许SAN重构操作的简化。通过使预先产生的无映射的VLUN和主机相联系,并根据需要将PLUN和逻辑卷动态地映射到VLUN,许多重构操作只要求在交换机的映射表的改变,和中间驱动器层113对新的元数据的识别。通过利用PLUN隧穿和/或卷隧穿,存储装置更易于在多个主机110间共享,或者逻辑上从一个主机传给另一主机。还可简化从协调存储分配器保持的存储池的存储空间的分配和/或供给。
除了简化SAN配置变化外,PLUN隧穿和卷隧穿还可支持跨越独立配置的存储网络的存储互连(例如,跨越多个光纤通道架构的互连)。图13是图解说明采用多个存储网络的一个实施例的方框图。如图所示,无主机式虚拟器180可被配置成通过第一存储网络1310A访问物理存储装置340A,通过第二存储网络1310B访问物理存储装置340B。无主机式虚拟器180可将来自物理存储装置340A的存储空间聚合成逻辑卷136A,并将逻辑卷1360A映射到VLUN 230B。类似地,无主机式虚拟器180可将来自物理存储装置340B的存储空间聚合成逻辑卷1360B,并将逻辑卷1360B映射到VLUN 230E。主机110A可被配置成通过第三存储网络1310C访问VLUN 230A,通过第四存储网络1310D访问VLUN 230B。
每个存储网络1310(即,存储网络1310A、1310B、1310C或1310D)是可以独立配置的:即,在指定存储网络1310内进行的重构操作不会影响任何其它的存储网络1310。指定存储网络1310内的故障或误配置也不会影响任何其它独立的存储网络1310。在一些实施例中,主机110可包括多个HBA,允许每个主机访问多个独立的存储网络。例如,在图13中描述的实施例中,主机110A可包括两个HBA,第一个HBA允许访问存储网络1310C,第二个HBA允许访问存储网络1310D。在这样的实施例中,主机110可被提供与后端物理存储装置340的完全连接性,同时仍然保持配置隔离的优点。虽然图13描述和卷隧穿一起的多个独立存储网络的使用,不过在其它实施例中,多个独立的存储网络也可和PLUN隧穿,或者与PLUN隧穿和卷隧穿的组合一起使用。另外,注意在一些实施例中,独立的存储网络1310的使用可以是不对称的:例如,在一个实施例中,多个独立的存储网络1310可被用于前端连接(即,介于无主机式虚拟器180和主机110之间),而只有一个存储网络被用于后端连接(即,介于无主机式虚拟器180和物理存储装置340之间)。任何所需的互连技术和/或协议可被用于实现存储网络1310,例如光纤通道,基于IP的协议等。例如,在一个实施例中,每个存储网络1310可以是光纤通道架构。在另一实施例中,在第一存储网络1310内使用的互连技术或协议可不同于在第二存储网络130内使用的互连技术或协议。
在一个实施例中,卷隧穿还允许克服最大LUN大小限制。例如,SCSI协议可被配置成使用32位无符号整数作为LUN块地址,从而将可在单一LUN访问的存储空间的最大量限制为2千兆字节(对于512字节块来说)或者32千兆字节(对于8千字节块来说)。卷隧穿允许中间驱动器层113访问作为映射到单一VLUN的多个物理LUN的存储空间,从而克服最大LUN大小限制。图14是图解说明其中无主机式虚拟器180被配置成将两个物理存储装置340A和340B的存储空间集合成单个逻辑卷1460A的一个实施例的方框图,其中卷1460A的大小超过在存储装置340使用的存储协议所支持的许可的最大LUN大小。无主机式虚拟器180还可被配置成将逻辑卷1460A动态地映射到VLUN 230B,并将逻辑卷元数据提供给在主机110A的中间驱动器层113。逻辑卷元数据可包括足以满足中间驱动器层113访问VLUN 230B内比许可的最大LUN大小更大的地址空间的信息。
图15是根据其中无主机式虚拟器180被配置成支持动态物理LUN隧穿的一个实施例,图解说明主机110和无主机式虚拟器180的操作的各个方面的流程图。在收到操作系统元数据要求之后(方框1505),无主机式虚拟器180可被配置成产生无映射虚拟存储装置(例如VLUN)的操作系统元数据(方框1510),并使该元数据可被主机110访问(方框1515)。位于主机110的存储软件栈的第一层,例如图1b的磁盘驱动器层114可被配置成在系统初始化或引导期间,使用O.S.元数据来检测作为可寻址存储装置(例如作为LUN)的虚拟存储装置的存在(方框1520)。在检测到无映射虚拟存储装置之后,无主机式虚拟器180可被配置成将一个或多个后端物理存储装置340(例如PLUN)的物理存储空间动态地映射到虚拟存储装置内的一个地址范围(方框1525)。
图16是根据其中无主机式虚拟器180被配置成支持动态卷隧穿的一个实施例,图解说明主机110和无主机式虚拟器180的操作的各个方面的流程图。图16中描述的前三个方框表示和图15中所示的前三个方框类似的功能。即,无主机式虚拟器180可被配置成接收操作系统元数据要求(方框1605),产生无映射虚拟存储装置(例如VLUN)的操作系统元数据(方框1610),并使该元数据可被主机110访问(方框1615)。存储软件栈的第一层,例如图1b的磁盘驱动器层114可被配置成在系统初始化或引导期间,使用O.S.元数据来检测作为可寻址存储装置(例如作为LUN)的虚拟存储装置的存在(方框1620)。另外,无主机式虚拟器180可被配置成将位于一个或多个物理存储装置340的存储空间聚合成一个逻辑卷(方框1625),并将该逻辑卷动态地映射到在先前无映射的虚拟存储装置内的一个地址范围(方框1630)。无主机式虚拟器180还可被配置成将逻辑卷元数据提供给位于主机110的存储软件栈的第二层(例如中间驱动器层113)(方框1635),允许所述第二层查找逻辑卷的块的位置,并对逻辑卷进行所需的I/O操作(方框1640)。
在各个实施例中,无主机式虚拟器180利用块虚拟化实现众多不同类型的存储功能。例如,在一个实施例中,诸如逻辑卷之类的虚拟分块装置可实现装置分条(数据块要分布在多个物理或逻辑分块装置间),和/或装置跨越(其中多个物理或逻辑分块装置可被结合成表现为单一的大型逻辑分块装置)。在一些实施例中,虚拟化分块装置中提供镜像和其它形式的冗余数据存储,创建某一时刻的特定分块装置的快照或静态图像的能力,和/或在通过诸如局域网(LAN)或广域网(WAN)之类网络连接的存储系统是复制数据块的能力。另外,在一些实施例中,虚拟化分块装置可实现某些性能优化,例如负载分布,和/或虚拟装置结构的在线重组的各种能力,例如装置间的在线数据迁移。在其它实施例中,一个或多个分块装置可被映射到特定的虚拟化分块装置,所述特定的虚拟化分块装置又可被映射到另一虚拟化分块装置,允许利用简单的分块装置实现复杂的存储功能。从而在一些实施例中,一个以上的虚拟化特征,例如分条和镜像可在单一的虚拟分块装置内被组合,创建一个逻辑分层的虚拟存储装置。
无主机式虚拟器180可单独地,或者与一个或多个其它虚拟器,比如位于主机110的卷管理器或者其它无主机式虚拟器合作提供诸如虚拟化分块装置的配置管理和分块装置虚拟化的分布式协调之类的功能。例如,在两个主机110共享的逻辑卷的重构之后(例如,当逻辑卷被扩展时,或者当逻辑卷中加入新的镜像时),无主机式虚拟器180可被配置成将指示所述重构的元数据或卷描述分发给这两个主机110。在一个实施例中,一旦所述卷描述已被提供给主机,那么位于主机的存储栈可被配置成按照卷描述,直接与各个存储装置34交互作用(即,利用卷描述将逻辑I/O请求变换成物理I/O请求)。对一个或多个虚拟装置客户机,例如主机110分发作为卷的虚拟化分块装置可被称为分布式块虚拟化。
如前所述,在一些实施例中,例如可以在主机级别以及在脱离主机级别,比如在虚拟化交换机或者在虚拟化设备采用多层虚拟化。在这样的实施例中,对于虚拟装置消费者,比如文件系统层112来说,虚拟化的一些方面是可见的,而其它方面可由脱离主机级别透明实现。此外,在一些多层实施例中,对于虚拟装置消费者来说,一个分块装置(例如一个卷)的虚假化细节是完全明确的(即,没有在脱离主机级别的另外的虚拟化),而对于虚拟装置消费者来说,另一分块装置(例如另一卷)的虚拟化细节是部分或者完全透明的。
在一些实施例中,虚拟器,比如无主机式虚拟器180可被配置成将所有定义的逻辑卷分发给存在于系统内的每个虚拟装置客户机,例如主机110。这样的实施例可被称为对称分布式块虚拟化系统。在其它实施例中,特定的卷只可被分发给相应的虚拟装置消费者或主机,以致至少一个卷不为两个虚拟装置消费者所共有。这样的实施例可被称为不对称分布式块虚拟化系统。
注意无主机式虚拟器180可以是在主机110外的能够提供虚拟化功能,包括上面说明的PLUN隧穿和卷隧穿的任何类型的装置。例如,无主机式虚拟器180可包括虚拟化交换机,虚拟化设备,专用于提供块虚拟化的特殊的附加主机,或者配置成使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)技术来执行提供块虚拟化功能的嵌入式系统。图17是图解说明其中无主机式虚拟器180包含虚拟化交换机1710的一个实施例的方框图,图18是图解说明其中无主机式虚拟器180包含虚拟化设备1810的另一实施例的方框图。虚拟化交换机1710可以是除了提供光纤通道连接之外,还配置有足以进行虚拟化功能的处理容量的智能光纤通道交换机。虚拟化设备1810是程控提供虚拟化功能,比如镜像、分条、快照等的智能装置。设备不同于通用计算机,因为设备软件通常是关于该设备专用于的功能(例如虚拟化)而定制的,由厂商预先安装,并且用户不易于修改。在一些实施例中,无主机式块虚拟化可由一批协作装置,比如两个或更多的虚拟化交换机,而不是由单个装置提供。可配置这样的一批协作装置,以便实现失效恢复,即,备用的协作装置可被配置成接管由发生故障的协作装置支持的虚拟化功能。无主机式虚拟器180可包含一个或多个处理器,以及易失性和/或非易失性存储器。在一些实施例中,与虚拟化相关的配置信息可被保存在与无主机式虚拟器180分离的数据库中,并可由无主机式虚拟器通过网络访问。在一个实施例中,无主机式虚拟器是可编程和/或可配置的。无主机式虚拟器180的众多其它配置也是可能的。
图19是根据一个实施例,图解说明例证的主机110的方框图。主机110可以是能够支持上面说明的存储软件栈140B的任何计算机系统,例如包含一个或多个处理器1910和一个或多个内存1920的服务器。如图所示,主机110可包括一个或多个本地存储装置1930(例如磁盘),以及提供到互连130的接口的一个或多个网络接口1940。存储软件栈140B的多个部分可驻留在内存1920中,并可根据需要从存储装置1930装入内存1920中。在一些实施例中,主机110还可以是无磁盘的计算机,所述无磁盘的计算机被配置成从远程位置访问存储器,而不是利用本地存储装置1930。在不同的实施例中,各种其它组件,比如视频卡、监视器、鼠标等也可被包含在主机110内。在主机110上可使用任何所需的操作系统,包括各种版本的MicrosoftWindowsTM,Sun Microsystems的SolarisTM,各种版本的Linux,基于UNIX的其它操作系统等。在一些实施例中,中间驱动器层113可被包含在卷管理器内。
图20是图解说明计算机可访问介质2000的方框图,所述计算机可访问介质2000包含能够提供上面所述的无主机式虚拟器180和块存储软件栈140B的功能的虚拟化软件2010。可利用各种计算机可访问介质,包括电介质(例如快擦写存储器),磁介质,比如RAM(例如SDRAM、RDRAM、SRAM等),光学存储介质,比如CD-ROM等,以及通过通信介质,比如网络和/或无线链路传送的传输介质或信号,比如电信号、电磁信号或数字信号将虚拟化软件2010提供给计算机系统。
虽然相当详细地说明了上面的实施例,不过一旦充分理解上面的公开内容,那么对本领域的技术人员来说,各种变化和修改将变得明显。下面的权利要求意图包含所有这样的变化和修改。
Claims (30)
1、一种仿真操作系统元数据以提供对存储卷的跨平台访问的系统:包括
第一主机;和
无主机式虚拟器;
其中所述无主机式虚拟器被配置成:
接收对于在所述第一主机中使用的操作系统的元数据要求;
基于所述接收的元数据要求,为第一虚拟存储装置生成第一操作系统元数据,其中在所述第一主机请求访问所述第一虚拟存储装置时,生成所述第一操作系统元数据;
使所述第一操作系统元数据可被所述第一主机访问;
其中所述第一主机包括存储软件栈,所述存储软件栈包括第一层;
其中所述第一层被配置成使用所述第一操作系统元数据来检测作为第一可寻址存储装置的所述第一虚拟存储装置的存在。
2、按照权利要求1所述的系统,其中所述无主机式虚拟器还被配置成响应在所述第一主机中使用的操作系统的元数据要求,定制操作系统元数据。
3、按照权利要求2所述的系统,其中所述第一主机被配置成将在所述第一主机中使用的操作系统的元数据要求提供给所述无主机式虚拟器。
4、按照权利要求1所述的系统,还包括存储装置,其中所述第一可寻址存储装置是所述存储装置的一个分区。
5、按照权利要求1所述的系统,还包括一个或多个物理存储装置,其中所述存储软件栈包括第二层,其中所述无主机式虚拟器还被配置成:
将一个或多个物理存储装置内的存储空间聚合成一个逻辑卷;
将所述逻辑卷映射到第一虚拟存储装置的地址空间;
向所述存储软件栈的第二层提供逻辑卷的逻辑卷元数据;
其中所述存储软件栈的第二层被配置成使用逻辑卷元数据来访问所述逻辑卷,以便进行I/O操作。
6、按照权利要求1所述的系统,其中所述第一虚拟存储装置是虚拟逻辑单元。
7、按照权利要求1所述的系统,其中所述无主机式虚拟器是虚拟化交换机。
8、按照权利要求1所述的系统,其中所述无主机式虚拟器是虚拟化设备。
9、按照权利要求1所述的系统,其中在I/O操作开始前的系统初始化阶段期间,所述第一虚拟存储装置未被映射到物理存储空间。
10、按照权利要求9所述的系统,还包括两个或更多的物理存储装置,其中所述无主机式虚拟器还被配置成在系统初始化阶段后将两个或者更多的物理存储装置中的每个物理存储装置动态地映射到所述第一虚拟存储装置内的相应地址范围。
11、按照权利要求9所述的系统,还包括物理存储装置和第二主机,其中所述无主机式虚拟器还被配置成:
为第二虚拟存储装置产生第二操作系统元数据,其中在I/O操作开始前的系统初始化阶段期间,所述第二虚拟存储装置未被映射到物理存储空间;和
使所述第二操作系统元数据可被所述第二主机访问;
其中所述第二主机包括第二存储软件栈,所述第二存储软件栈包括第一层;
其中所述第二存储软件栈的第一层被配置成使用第二操作系统元数据来检测作为第二可寻址存储装置的第二虚拟存储装置的存在;
其中所述无主机式虚拟器还被配置成:
在系统初始化阶段后将所述物理存储装置的第一物理地址范围动态地映射到所述第一虚拟存储装置内的第一虚拟地址范围;
在系统初始化阶段后将所述物理存储装置的第二物理地址范围动态地映射到所述第二虚拟存储装置内的第二虚拟地址范围;和
阻止所述第一主机对所述第二物理地址范围的访问。
12、按照权利要求9所述的系统,还包括第一物理存储装置,其中所述存储软件栈包括第二层,其中所述无主机式虚拟器还被配置成:
将所述第一物理存储装置内的第一范围的物理存储空间聚合成第一逻辑卷;
在系统初始化阶段后将所述第一虚拟存储装置内的第一范围的虚拟存储空间动态地映射到所述第一逻辑卷;和
将所述第一逻辑卷的第一逻辑卷元数据提供给所述存储软件栈的第二层;
其中所述存储软件栈的第二层被配置成使用所述第一逻辑卷元数据来访问所述第一逻辑卷,以便进行I/O操作。
13、按照权利要求12所述的系统,其中所述无主机式虚拟器还被配置成:
将所述第一物理存储装置内的第二范围的物理存储空间聚合成第二逻辑卷;
在系统初始化阶段后将所述第一虚拟存储装置内的第二范围的虚拟存储空间动态地映射到所述第二逻辑卷;和
将所述第二逻辑卷的第二逻辑卷元数据提供给所述存储软件栈的第二层;
其中所述存储软件栈的第二层被配置成使用所述第二逻辑卷元数据来访问所述第二逻辑卷,以便进行I/O操作。
14、按照权利要求12所述的系统,还包括第二主机,其中所述无主机式虚拟器还被配置成:
为第二虚拟存储装置产生第二操作系统元数据,其中在I/O操作开始前的系统初始化阶段期间,所述第二虚拟存储装置未被映射到物理存储空间;
使所述第二操作系统元数据可被所述第二主机访问;
将所述第一物理存储装置内的第二范围的物理存储空间聚合成第二逻辑卷;和
将所述第二逻辑卷的第二逻辑卷元数据提供给所述第二主机;
其中所述第二主机包括第二存储软件栈,所述第二存储软件栈包括第一层和第二层,其中
所述第二存储软件栈的第一层被配置成使用所述第二操作系统元数据来检测作为第二可寻址存储装置的所述第二虚拟存储装置的存在,和
其中所述第二存储软件栈的第二层被配置成使用所述第二逻辑卷元数据来访问所述第二逻辑卷,以便进行I/O操作。
15、按照权利要求14所述的系统,其中所述无主机式虚拟器还被配置成防止所述第二主机对所述第一逻辑卷进行I/O操作。
16、按照权利要求14所述的系统,其中所述第一主机能够通过第一存储网络访问所述第一可寻址存储装置,所述第二主机能够通过第二存储网络访问所述第二可寻址存储装置。
17、按照权利要求12所述的系统,还包括第二主机和第二物理存储装置,其中所述无主机式虚拟器还被配置成:
为第二虚拟存储装置产生第二操作系统元数据,其中在I/O操作开始前的系统初始化阶段期间,所述第二虚拟存储装置未被映射到物理存储空间;
使所述第二操作系统元数据能被所述第二主机访问;
将所述第二物理存储装置内的第二范围的物理存储空间聚合成第二逻辑卷;
在系统初始化阶段后将所述第二虚拟存储装置内的第二范围的虚拟存储空间动态地映射到所述第二逻辑卷;和
将所述第二逻辑卷的第二逻辑卷元数据提供给所述第二主机;
其中所述第二主机包括第二存储软件栈,所述第二存储软件栈包括第一层和第二层,其中
所述第二存储软件栈的第一层被配置成使用第二操作系统元数据来检测作为第二可寻址存储装置的所述第二虚拟存储装置的存在,和
其中所述第二存储软件栈的第二层被配置成使用所述第二逻辑卷元数据来访问所述第二逻辑卷,以便进行I/O操作;
其中所述第一主机能够通过第一存储网络访问所述第一可寻址存储装置,所述第二主机能够通过第二存储网络访问所述第二可寻址存储装置,所述无主机式虚拟器能够通过第三存储网络访问所述第一物理存储装置,所述无主机式虚拟器能够通过第四存储网络访问所述第二物理存储装置。
18、按照权利要求17所述的系统,其中所述第一、第二、第三和第四存储网络均包括能被独立配置的光纤通道架构。
19、按照权利要求1所述的系统,其中所述存储软件栈包括第二层,该系统还包括第一和第二物理存储装置,其中所述无主机式虚拟器还被配置成:
将所述第一物理存储装置内的第一范围的存储空间和所述第二物理存储装置内的第二范围的存储空间聚合成单个逻辑卷;和
将所述单个逻辑卷的逻辑卷元数据提供给所述存储软件栈的第二层;
其中所述存储软件栈的第二层被配置成使用所述逻辑卷元数据来访问所述单个逻辑卷,以便进行I/O操作。
20、一种仿真操作系统元数据以提供对存储卷的跨平台访问的方法,包括:
接收对于在第一主机中使用的操作系统的元数据要求;
基于所述接收的元数据要求,为第一虚拟存储装置生成第一操作系统元数据,其中在所述第一主机请求访问所述第一虚拟存储装置时,生成所述第一操作系统元数据;
使所述第一虚拟存储装置的第一操作系统元数据可被所述第一主机访问;以及
在所述第一主机的存储软件栈的第一层中使用第一操作系统元数据来检测作为第一可寻址存储装置的所述第一虚拟存储装置的存在。
21、按照权利要求20所述的方法,还包括:
响应在所述第一主机中使用的操作系统的元数据要求,定制第一操作系统元数据。
22、按照权利要求20所述的方法,其中在I/O操作开始前的系统初始化阶段期间,所述第一虚拟存储装置未被映射到物理存储空间。
23、按照权利要求22所述的方法,还包括:
在系统初始化阶段后将第一和第二物理存储装置动态地映射到第一虚拟存储装置内的相应地址范围。
24、按照权利要求22所述的方法,还包括:
将第一物理存储装置内的第一范围的物理存储空间聚合成第一逻辑卷;
在系统初始化阶段后将所述第一虚拟存储装置内的第一范围的虚拟存储空间动态地映射到所述第一逻辑卷;
将所述第一逻辑卷的第一逻辑卷元数据提供给所述存储软件栈的第二层;和
在所述存储软件栈的第二层使用第一逻辑卷元数据来访问所述第一逻辑卷,以便进行I/O操作。
25、按照权利要求24所述的方法,还包括:
将所述第一物理存储装置内的第二范围的物理存储空间聚合成第二逻辑卷;
在系统初始化阶段后将所述第一虚拟存储装置内的第二范围的虚拟存储空间动态地映射到所述第二逻辑卷;
将所述第二逻辑卷的第二逻辑卷元数据提供给所述存储软件栈的第二层;和
在所述存储软件栈的第二层使用所述第二逻辑卷元数据来访问第二逻辑卷,以便进行I/O操作。
26、按照权利要求24所述的方法,还包括:
为第二虚拟存储装置产生第二操作系统元数据,其中在I/O操作开始前的系统初始化阶段期间,所述第二虚拟存储装置未被映射到物理存储空间;
使所述第二操作系统元数据可被第二主机访问;
在所述第二主机的存储软件栈的第一层中使用所述第二操作系统元数据来检测作为第二可寻址存储装置的所述第二虚拟存储装置的存在,
将所述第一物理存储装置内的第二范围的物理存储空间聚合成第二逻辑卷;
在系统初始化阶段后将所述第二虚拟存储装置内的第二范围的虚拟存储空间动态地映射到所述第二逻辑卷;
将所述第二逻辑卷的第二逻辑卷元数据提供给在所述第二主机的存储软件栈的第二层;和
在所述第二主机上的存储软件栈的第二层使用所述第二逻辑卷元数据来访问所述第二逻辑卷,以便进行I/O操作。
27、按照权利要求26所述的方法,还包括:
阻止所述第二主机对所述第一逻辑卷进行I/O操作。
28、按照权利要求24所述的方法,还包括:
为第二虚拟存储装置产生第二操作系统元数据,其中在I/O操作开始前的系统初始化阶段期间,所述第二虚拟存储装置未被映射到物理存储空间;
使所述第二操作系统元数据能被第二主机访问;
在所述第二主机的存储软件栈的第一层中使用第二操作系统元数据来检测作为第二可寻址存储装置的所述第二虚拟存储装置的存在;
在无主机式虚拟器中将第二物理存储装置内的第二范围的物理存储空间聚合成第二逻辑卷;
将所述第二虚拟存储装置内的第二范围的虚拟存储空间动态地映射到所述第二逻辑卷;
将所述第二逻辑卷的第二逻辑卷元数据提供给在所述第二主机中的存储软件栈的第二层;和
在所述第二主机中的存储软件栈的第二层使用所述第二逻辑卷元数据来访问第二逻辑卷,以便进行I/O操作;
其中所述第一物理存储装置内的第一范围的物理存储空间被无主机式虚拟器聚合成第一逻辑卷;和
其中所述第一主机能够通过第一存储网络访问所述第一可寻址存储装置,所述第二主机能够通过第二存储网络访问所述第二可寻址存储装置,无主机式虚拟器能够通过第三存储网络访问所述第一物理存储装置,所述无主机式虚拟器能够通过第四存储网络访问所述第二物理存储装置。
29、按照权利要求28所述的方法,其中所述第一、第二、第三和第四存储网络均包括能被独立配置的光纤通道架构。
30、按照权利要求22所述的方法,还包括:
将第一物理存储装置内的第一范围的存储空间和第二物理存储装置内的第二范围的存储空间聚合成单个逻辑卷;
在系统初始化阶段后将所述第一虚拟存储装置内的一段虚拟存储空间动态地映射到所述单个逻辑卷;
将所述单个逻辑卷的逻辑卷元数据提供给所述存储软件栈的第二层;和
在所述存储软件栈的第二层使用所述逻辑卷元数据来访问所述单个逻辑卷,以便进行I/O操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/722,614 US20050114595A1 (en) | 2003-11-26 | 2003-11-26 | System and method for emulating operating system metadata to provide cross-platform access to storage volumes |
US10/722,614 | 2003-11-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1906569A CN1906569A (zh) | 2007-01-31 |
CN100552611C true CN100552611C (zh) | 2009-10-21 |
Family
ID=34592023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800405835A Active CN100552611C (zh) | 2003-11-26 | 2004-11-22 | 仿真操作系统元数据以提供对存储卷的跨平台访问的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (4) | US20050114595A1 (zh) |
EP (1) | EP1687706A1 (zh) |
JP (1) | JP4750040B2 (zh) |
CN (1) | CN100552611C (zh) |
WO (1) | WO2005055043A1 (zh) |
Families Citing this family (324)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9603582D0 (en) | 1996-02-20 | 1996-04-17 | Hewlett Packard Co | Method of accessing service resource items that are for use in a telecommunications system |
US8032701B1 (en) * | 2004-03-26 | 2011-10-04 | Emc Corporation | System and method for managing provisioning of storage resources in a network with virtualization of resources in such a network |
US7024427B2 (en) * | 2001-12-19 | 2006-04-04 | Emc Corporation | Virtual file system |
US7769722B1 (en) | 2006-12-08 | 2010-08-03 | Emc Corporation | Replication and restoration of multiple data storage object types in a data network |
US20050114595A1 (en) * | 2003-11-26 | 2005-05-26 | Veritas Operating Corporation | System and method for emulating operating system metadata to provide cross-platform access to storage volumes |
US7669032B2 (en) * | 2003-11-26 | 2010-02-23 | Symantec Operating Corporation | Host-based virtualization optimizations in storage environments employing off-host storage virtualization |
US7461141B2 (en) * | 2004-01-30 | 2008-12-02 | Applied Micro Circuits Corporation | System and method for performing driver configuration operations without a system reboot |
US20050216680A1 (en) * | 2004-03-25 | 2005-09-29 | Itzhak Levy | Device to allow multiple data processing channels to share a single disk drive |
US7945657B1 (en) * | 2005-03-30 | 2011-05-17 | Oracle America, Inc. | System and method for emulating input/output performance of an application |
US20050262150A1 (en) * | 2004-05-21 | 2005-11-24 | Computer Associates Think, Inc. | Object-based storage |
US9264384B1 (en) | 2004-07-22 | 2016-02-16 | Oracle International Corporation | Resource virtualization mechanism including virtual host bus adapters |
US7409495B1 (en) * | 2004-12-22 | 2008-08-05 | Symantec Operating Corporation | Method and apparatus for providing a temporal storage appliance with block virtualization in storage networks |
US7493462B2 (en) * | 2005-01-20 | 2009-02-17 | International Business Machines Corporation | Apparatus, system, and method for validating logical volume configuration |
US8812433B2 (en) * | 2005-02-07 | 2014-08-19 | Mimosa Systems, Inc. | Dynamic bulk-to-brick transformation of data |
US7917475B2 (en) * | 2005-02-07 | 2011-03-29 | Mimosa Systems, Inc. | Enterprise server version migration through identity preservation |
US8271436B2 (en) * | 2005-02-07 | 2012-09-18 | Mimosa Systems, Inc. | Retro-fitting synthetic full copies of data |
US8799206B2 (en) * | 2005-02-07 | 2014-08-05 | Mimosa Systems, Inc. | Dynamic bulk-to-brick transformation of data |
US7778976B2 (en) * | 2005-02-07 | 2010-08-17 | Mimosa, Inc. | Multi-dimensional surrogates for data management |
US8275749B2 (en) * | 2005-02-07 | 2012-09-25 | Mimosa Systems, Inc. | Enterprise server version migration through identity preservation |
US8161318B2 (en) * | 2005-02-07 | 2012-04-17 | Mimosa Systems, Inc. | Enterprise service availability through identity preservation |
US8918366B2 (en) * | 2005-02-07 | 2014-12-23 | Mimosa Systems, Inc. | Synthetic full copies of data and dynamic bulk-to-brick transformation |
US7657780B2 (en) * | 2005-02-07 | 2010-02-02 | Mimosa Systems, Inc. | Enterprise service availability through identity preservation |
US7870416B2 (en) * | 2005-02-07 | 2011-01-11 | Mimosa Systems, Inc. | Enterprise service availability through identity preservation |
US8543542B2 (en) * | 2005-02-07 | 2013-09-24 | Mimosa Systems, Inc. | Synthetic full copies of data and dynamic bulk-to-brick transformation |
US7519851B2 (en) * | 2005-02-08 | 2009-04-14 | Hitachi, Ltd. | Apparatus for replicating volumes between heterogenous storage systems |
US7774514B2 (en) * | 2005-05-16 | 2010-08-10 | Infortrend Technology, Inc. | Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method |
US7630998B2 (en) * | 2005-06-10 | 2009-12-08 | Microsoft Corporation | Performing a deletion of a node in a tree data storage structure |
US20070038749A1 (en) * | 2005-07-29 | 2007-02-15 | Broadcom Corporation | Combined local and network storage interface |
US8433770B2 (en) * | 2005-07-29 | 2013-04-30 | Broadcom Corporation | Combined local and network storage interface |
US7802000B1 (en) * | 2005-08-01 | 2010-09-21 | Vmware | Virtual network in server farm |
US9813283B2 (en) | 2005-08-09 | 2017-11-07 | Oracle International Corporation | Efficient data transfer between servers and remote peripherals |
KR101340176B1 (ko) * | 2005-08-25 | 2013-12-10 | 실리콘 이미지, 인크. | 스마트 스케일러블 스토리지 스위치 아키텍처 |
US20070083653A1 (en) * | 2005-09-16 | 2007-04-12 | Balasubramanian Chandrasekaran | System and method for deploying information handling system images through fibre channel |
JP2007094578A (ja) * | 2005-09-27 | 2007-04-12 | Fujitsu Ltd | ストレージシステム及びその構成部品交換処理方法 |
US7765187B2 (en) * | 2005-11-29 | 2010-07-27 | Emc Corporation | Replication of a consistency group of data storage objects from servers in a data network |
US8572330B2 (en) * | 2005-12-19 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for granular resource management in a storage network |
JP4474356B2 (ja) * | 2005-12-27 | 2010-06-02 | 富士通株式会社 | コンピュータシステムおよびストレージ仮想化装置 |
JP4797636B2 (ja) * | 2006-01-16 | 2011-10-19 | 株式会社日立製作所 | 複合型情報プラットフォーム装置とその情報処理装置構成方法 |
TWI353536B (en) * | 2006-01-26 | 2011-12-01 | Infortrend Technology Inc | Virtualized storage computer system and method of |
US20070180287A1 (en) * | 2006-01-31 | 2007-08-02 | Dell Products L. P. | System and method for managing node resets in a cluster |
US20070180167A1 (en) * | 2006-02-02 | 2007-08-02 | Seagate Technology Llc | Dynamic partition mapping in a hot-pluggable data storage apparatus |
US7904492B2 (en) * | 2006-03-23 | 2011-03-08 | Network Appliance, Inc. | Method and apparatus for concurrent read-only access to filesystem |
JP2007265001A (ja) * | 2006-03-28 | 2007-10-11 | Hitachi Ltd | ストレージ装置 |
JP5037881B2 (ja) * | 2006-04-18 | 2012-10-03 | 株式会社日立製作所 | ストレージシステム及びその制御方法 |
US7617373B2 (en) * | 2006-05-23 | 2009-11-10 | International Business Machines Corporation | Apparatus, system, and method for presenting a storage volume as a virtual volume |
WO2007149688A2 (en) * | 2006-05-30 | 2007-12-27 | Schneider Automation Inc. | Remote virtual placeholder configuration for distributed input/output modules |
US7904681B1 (en) * | 2006-06-30 | 2011-03-08 | Emc Corporation | Methods and systems for migrating data with minimal disruption |
US8261068B1 (en) | 2008-09-30 | 2012-09-04 | Emc Corporation | Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit |
US8416954B1 (en) | 2008-09-30 | 2013-04-09 | Emc Corporation | Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management |
US7536503B1 (en) * | 2006-06-30 | 2009-05-19 | Emc Corporation | Methods and systems for preserving disk geometry when migrating existing data volumes |
US8909746B2 (en) * | 2006-07-25 | 2014-12-09 | Nvidia Corporation | System and method for operating system installation on a diskless computing platform |
US9003000B2 (en) * | 2006-07-25 | 2015-04-07 | Nvidia Corporation | System and method for operating system installation on a diskless computing platform |
US7610483B2 (en) * | 2006-07-25 | 2009-10-27 | Nvidia Corporation | System and method to accelerate identification of hardware platform classes |
US10013268B2 (en) * | 2006-08-29 | 2018-07-03 | Prometric Inc. | Performance-based testing system and method employing emulation and virtualization |
US8095715B1 (en) * | 2006-09-05 | 2012-01-10 | Nvidia Corporation | SCSI HBA management using logical units |
US7584378B2 (en) | 2006-09-07 | 2009-09-01 | International Business Machines Corporation | Reconfigurable FC-AL storage loops in a data storage system |
US7761738B2 (en) | 2006-09-07 | 2010-07-20 | International Business Machines Corporation | Establishing communications across virtual enclosure boundaries |
US8332613B1 (en) * | 2006-09-29 | 2012-12-11 | Emc Corporation | Methods and systems for managing I/O requests to minimize disruption required for data encapsulation and de-encapsulation |
JP2008090657A (ja) * | 2006-10-03 | 2008-04-17 | Hitachi Ltd | ストレージシステム及び制御方法 |
JP2008112399A (ja) * | 2006-10-31 | 2008-05-15 | Fujitsu Ltd | ストレージ仮想化スイッチおよびコンピュータシステム |
US7975135B2 (en) * | 2006-11-23 | 2011-07-05 | Dell Products L.P. | Apparatus, method and product for selecting an iSCSI target for automated initiator booting |
US9104599B2 (en) | 2007-12-06 | 2015-08-11 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for destaging cached data |
WO2008070172A2 (en) | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for remote direct memory access to a solid-state storage device |
US8706968B2 (en) | 2007-12-06 | 2014-04-22 | Fusion-Io, Inc. | Apparatus, system, and method for redundant write caching |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
US8443134B2 (en) | 2006-12-06 | 2013-05-14 | Fusion-Io, Inc. | Apparatus, system, and method for graceful cache device degradation |
US8706833B1 (en) * | 2006-12-08 | 2014-04-22 | Emc Corporation | Data storage server having common replication architecture for multiple storage object types |
JP4813385B2 (ja) * | 2007-01-29 | 2011-11-09 | 株式会社日立製作所 | ストレージシステムの複数の論理リソースを制御する制御装置 |
US7840790B1 (en) * | 2007-02-16 | 2010-11-23 | Vmware, Inc. | Method and system for providing device drivers in a virtualization system |
JP5104855B2 (ja) * | 2007-03-23 | 2012-12-19 | 富士通株式会社 | 負荷分散プログラム、負荷分散方法、及びストレージ管理装置 |
CN100547566C (zh) * | 2007-06-28 | 2009-10-07 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的控制方法 |
US8738871B1 (en) * | 2007-06-29 | 2014-05-27 | Symantec Corporation | Method and apparatus for mapping virtual drives |
US7568051B1 (en) * | 2007-06-29 | 2009-07-28 | Emc Corporation | Flexible UCB |
US8635429B1 (en) | 2007-06-29 | 2014-01-21 | Symantec Corporation | Method and apparatus for mapping virtual drives |
US8176405B2 (en) * | 2007-09-24 | 2012-05-08 | International Business Machines Corporation | Data integrity validation in a computing environment |
US20090089498A1 (en) * | 2007-10-02 | 2009-04-02 | Michael Cameron Hay | Transparently migrating ongoing I/O to virtualized storage |
US20090119452A1 (en) * | 2007-11-02 | 2009-05-07 | Crossroads Systems, Inc. | Method and system for a sharable storage device |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
WO2009070898A1 (en) * | 2007-12-07 | 2009-06-11 | Scl Elements Inc. | Auto-configuring multi-layer network |
US8032689B2 (en) * | 2007-12-18 | 2011-10-04 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques for data storage device virtualization |
US8028062B1 (en) * | 2007-12-26 | 2011-09-27 | Emc Corporation | Non-disruptive data mobility using virtual storage area networks with split-path virtualization |
US8055867B2 (en) * | 2008-01-11 | 2011-11-08 | International Business Machines Corporation | Methods, apparatuses, and computer program products for protecting pre-staged provisioned data in a storage system |
US8074020B2 (en) * | 2008-02-13 | 2011-12-06 | International Business Machines Corporation | On-line volume coalesce operation to enable on-line storage subsystem volume consolidation |
US20090216944A1 (en) * | 2008-02-22 | 2009-08-27 | International Business Machines Corporation | Efficient validation of writes for protection against dropped writes |
US20110055476A1 (en) * | 2008-03-27 | 2011-03-03 | Christ Bryan E | RAID Array Access By A RAID Array-unaware Operating System |
JP2009238114A (ja) * | 2008-03-28 | 2009-10-15 | Hitachi Ltd | ストレージ管理方法、ストレージ管理プログラム、ストレージ管理装置およびストレージ管理システム |
US7979260B1 (en) * | 2008-03-31 | 2011-07-12 | Symantec Corporation | Simulating PXE booting for virtualized machines |
US8745336B2 (en) * | 2008-05-29 | 2014-06-03 | Vmware, Inc. | Offloading storage operations to storage hardware |
US8893160B2 (en) * | 2008-06-09 | 2014-11-18 | International Business Machines Corporation | Block storage interface for virtual memory |
GB2460841B (en) * | 2008-06-10 | 2012-01-11 | Virtensys Ltd | Methods of providing access to I/O devices |
US8725688B2 (en) * | 2008-09-05 | 2014-05-13 | Commvault Systems, Inc. | Image level copy or restore, such as image level restore without knowledge of data object metadata |
US8073674B2 (en) * | 2008-09-23 | 2011-12-06 | Oracle America, Inc. | SCSI device emulation in user space facilitating storage virtualization |
US8055842B1 (en) | 2008-09-26 | 2011-11-08 | Nvidia Corporation | Using raid with large sector size ATA mass storage devices |
US8516190B1 (en) * | 2008-09-26 | 2013-08-20 | Nvidia Corporation | Reporting logical sector alignment for ATA mass storage devices |
US20100082715A1 (en) * | 2008-09-30 | 2010-04-01 | Karl Dohm | Reduced-Resource Block Thin Provisioning |
US8510352B2 (en) * | 2008-10-24 | 2013-08-13 | Microsoft Corporation | Virtualized boot block with discovery volume |
US8166314B1 (en) | 2008-12-30 | 2012-04-24 | Emc Corporation | Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown |
US8417969B2 (en) * | 2009-02-19 | 2013-04-09 | Microsoft Corporation | Storage volume protection supporting legacy systems |
US8073886B2 (en) | 2009-02-20 | 2011-12-06 | Microsoft Corporation | Non-privileged access to data independent of filesystem implementation |
US8074038B2 (en) | 2009-05-12 | 2011-12-06 | Microsoft Corporation | Converting luns into files or files into luns in real time |
US9015198B2 (en) * | 2009-05-26 | 2015-04-21 | Pi-Coral, Inc. | Method and apparatus for large scale data storage |
US8238538B2 (en) | 2009-05-28 | 2012-08-07 | Comcast Cable Communications, Llc | Stateful home phone service |
US9973446B2 (en) | 2009-08-20 | 2018-05-15 | Oracle International Corporation | Remote shared server peripherals over an Ethernet network for resource virtualization |
US8495289B2 (en) * | 2010-02-24 | 2013-07-23 | Red Hat, Inc. | Automatically detecting discrepancies between storage subsystem alignments |
US8539124B1 (en) * | 2010-03-31 | 2013-09-17 | Emc Corporation | Storage integration plugin for virtual servers |
US8756338B1 (en) * | 2010-04-29 | 2014-06-17 | Netapp, Inc. | Storage server with embedded communication agent |
US8560825B2 (en) * | 2010-06-30 | 2013-10-15 | International Business Machines Corporation | Streaming virtual machine boot services over a network |
US8261003B2 (en) * | 2010-08-11 | 2012-09-04 | Lsi Corporation | Apparatus and methods for managing expanded capacity of virtual volumes in a storage system |
JP2012058912A (ja) * | 2010-09-07 | 2012-03-22 | Nec Corp | 論理ユニット番号管理装置及び論理ユニット番号管理方法並びにそのプログラム |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US9331963B2 (en) | 2010-09-24 | 2016-05-03 | Oracle International Corporation | Wireless host I/O using virtualized I/O controllers |
CN101986655A (zh) * | 2010-10-21 | 2011-03-16 | 浪潮(北京)电子信息产业有限公司 | 存储网络及该存储网络的数据读写方法 |
US8458145B2 (en) * | 2011-01-20 | 2013-06-04 | Infinidat Ltd. | System and method of storage optimization |
US9092337B2 (en) | 2011-01-31 | 2015-07-28 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for managing eviction of data |
WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
US9606747B2 (en) | 2011-05-04 | 2017-03-28 | International Business Machines Corporation | Importing pre-existing data of a prior storage solution into a storage pool for use with a new storage solution |
US8838931B1 (en) * | 2012-03-30 | 2014-09-16 | Emc Corporation | Techniques for automated discovery and performing storage optimizations on a component external to a data storage system |
US8996800B2 (en) | 2011-07-07 | 2015-03-31 | Atlantis Computing, Inc. | Deduplication of virtual machine files in a virtualized desktop environment |
US9152404B2 (en) | 2011-07-13 | 2015-10-06 | Z124 | Remote device filter |
US20130268559A1 (en) | 2011-07-13 | 2013-10-10 | Z124 | Virtual file system remote search |
US8909891B2 (en) * | 2011-07-21 | 2014-12-09 | International Business Machines Corporation | Virtual logical volume for overflow storage of special data sets |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US20130268703A1 (en) * | 2011-09-27 | 2013-10-10 | Z124 | Rules based hierarchical data virtualization |
CN102567217B (zh) * | 2012-01-04 | 2014-12-24 | 北京航空航天大学 | 一种面向mips平台的内存虚拟化方法 |
US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9158568B2 (en) | 2012-01-30 | 2015-10-13 | Hewlett-Packard Development Company, L.P. | Input/output operations at a virtual block device of a storage server |
US9239776B2 (en) * | 2012-02-09 | 2016-01-19 | Vmware, Inc. | Systems and methods to simulate storage |
US9946559B1 (en) * | 2012-02-13 | 2018-04-17 | Veritas Technologies Llc | Techniques for managing virtual machine backups |
US9098325B2 (en) | 2012-02-28 | 2015-08-04 | Hewlett-Packard Development Company, L.P. | Persistent volume at an offset of a virtual block device of a storage server |
US10817202B2 (en) | 2012-05-29 | 2020-10-27 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
US10831727B2 (en) | 2012-05-29 | 2020-11-10 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
US10831728B2 (en) | 2012-05-29 | 2020-11-10 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
US8856484B2 (en) * | 2012-08-14 | 2014-10-07 | Infinidat Ltd. | Mass storage system and methods of controlling resources thereof |
US9116623B2 (en) * | 2012-08-14 | 2015-08-25 | International Business Machines Corporation | Optimizing storage system behavior in virtualized cloud computing environments by tagging input/output operation data to indicate storage policy |
US9083550B2 (en) | 2012-10-29 | 2015-07-14 | Oracle International Corporation | Network virtualization over infiniband |
US9454670B2 (en) | 2012-12-03 | 2016-09-27 | International Business Machines Corporation | Hybrid file systems |
US20140164581A1 (en) * | 2012-12-10 | 2014-06-12 | Transparent Io, Inc. | Dispersed Storage System with Firewall |
US9280359B2 (en) * | 2012-12-11 | 2016-03-08 | Cisco Technology, Inc. | System and method for selecting a least cost path for performing a network boot in a data center network environment |
US9912713B1 (en) | 2012-12-17 | 2018-03-06 | MiMedia LLC | Systems and methods for providing dynamically updated image sets for applications |
US9069472B2 (en) | 2012-12-21 | 2015-06-30 | Atlantis Computing, Inc. | Method for dispersing and collating I/O's from virtual machines for parallelization of I/O access and redundancy of storing virtual machine data |
US9277010B2 (en) | 2012-12-21 | 2016-03-01 | Atlantis Computing, Inc. | Systems and apparatuses for aggregating nodes to form an aggregated virtual storage for a virtualized desktop environment |
US9633216B2 (en) | 2012-12-27 | 2017-04-25 | Commvault Systems, Inc. | Application of information management policies based on operation with a geographic entity |
US10445229B1 (en) * | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9372865B2 (en) | 2013-02-12 | 2016-06-21 | Atlantis Computing, Inc. | Deduplication metadata access in deduplication file system |
US9471590B2 (en) | 2013-02-12 | 2016-10-18 | Atlantis Computing, Inc. | Method and apparatus for replicating virtual machine images using deduplication metadata |
US9250946B2 (en) | 2013-02-12 | 2016-02-02 | Atlantis Computing, Inc. | Efficient provisioning of cloned virtual machine images using deduplication metadata |
US9459968B2 (en) | 2013-03-11 | 2016-10-04 | Commvault Systems, Inc. | Single index to query multiple backup formats |
US9465521B1 (en) | 2013-03-13 | 2016-10-11 | MiMedia, Inc. | Event based media interface |
US9298758B1 (en) | 2013-03-13 | 2016-03-29 | MiMedia, Inc. | Systems and methods providing media-to-media connection |
US10257301B1 (en) | 2013-03-15 | 2019-04-09 | MiMedia, Inc. | Systems and methods providing a drive interface for content delivery |
US9183232B1 (en) | 2013-03-15 | 2015-11-10 | MiMedia, Inc. | Systems and methods for organizing content using content organization rules and robust content information |
US20140359612A1 (en) * | 2013-06-03 | 2014-12-04 | Microsoft Corporation | Sharing a Virtual Hard Disk Across Multiple Virtual Machines |
US9176890B2 (en) | 2013-06-07 | 2015-11-03 | Globalfoundries Inc. | Non-disruptive modification of a device mapper stack |
US10169121B2 (en) | 2014-02-27 | 2019-01-01 | Commvault Systems, Inc. | Work flow management for an information management system |
US9871889B1 (en) * | 2014-03-18 | 2018-01-16 | EMC IP Holing Company LLC | Techniques for automated capture of configuration data for simulation |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages 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 |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of 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 |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory 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 |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
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 |
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 |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US10001927B1 (en) * | 2014-09-30 | 2018-06-19 | EMC IP Holding Company LLC | Techniques for optimizing I/O operations |
US9389789B2 (en) | 2014-12-15 | 2016-07-12 | International Business Machines Corporation | Migration of executing applications and associated stored data |
JP6435842B2 (ja) | 2014-12-17 | 2018-12-12 | 富士通株式会社 | ストレージ制御装置及びストレージ制御プログラム |
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 |
JP6458146B2 (ja) * | 2015-07-08 | 2019-01-23 | 株式会社日立製作所 | 計算機及びメモリ領域管理方法 |
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 |
US10579275B2 (en) * | 2015-07-27 | 2020-03-03 | Hitachi, Ltd. | Storage system and storage control method |
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 |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US9965184B2 (en) | 2015-10-19 | 2018-05-08 | International Business Machines Corporation | Multiple storage subpools of a virtual storage pool in a multiple processor environment |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US10296250B2 (en) * | 2016-06-08 | 2019-05-21 | Intel Corporation | Method and apparatus for improving performance of sequential logging in a storage device |
EP3308316B1 (en) * | 2016-07-05 | 2020-09-02 | Viirii, LLC | Operating system independent, secure data storage subsystem |
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 |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
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 |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
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 |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US12039165B2 (en) | 2016-10-04 | 2024-07-16 | Pure Storage, Inc. | Utilizing allocation shares to improve parallelism in a zoned drive storage system |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
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 |
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 |
US10620835B2 (en) * | 2017-01-27 | 2020-04-14 | Wyse Technology L.L.C. | Attaching a windows file system to a remote non-windows disk stack |
US10979223B2 (en) | 2017-01-31 | 2021-04-13 | Pure Storage, Inc. | Separate encryption for a solid-state drive |
US10838821B2 (en) | 2017-02-08 | 2020-11-17 | Commvault Systems, Inc. | Migrating content and metadata from a backup system |
US10776329B2 (en) | 2017-03-28 | 2020-09-15 | Commvault Systems, Inc. | Migration of a database management system to cloud storage |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US10754829B2 (en) | 2017-04-04 | 2020-08-25 | Oracle International Corporation | Virtual configuration systems and methods |
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 |
US10524022B2 (en) * | 2017-05-02 | 2019-12-31 | Seagate Technology Llc | Data storage system with adaptive data path routing |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
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 |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
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 |
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 |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
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 |
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 |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US12079494B2 (en) | 2018-04-27 | 2024-09-03 | Pure Storage, Inc. | Optimizing storage system upgrades to preserve resources |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US20190362075A1 (en) * | 2018-05-22 | 2019-11-28 | Fortinet, Inc. | Preventing users from accessing infected files by using multiple file storage repositories and a secure data transfer agent logically interposed therebetween |
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 |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
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 |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
US11036856B2 (en) | 2018-09-16 | 2021-06-15 | Fortinet, Inc. | Natively mounting storage for inspection and sandboxing in the cloud |
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 |
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 |
US12087382B2 (en) | 2019-04-11 | 2024-09-10 | Pure Storage, Inc. | Adaptive threshold for bad flash memory blocks |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
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 |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
CN112748848A (zh) * | 2019-10-29 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、设备和计算机程序产品 |
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 |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
US10990537B1 (en) | 2020-01-07 | 2021-04-27 | International Business Machines Corporation | Logical to virtual and virtual to physical translation in storage class memory |
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 |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
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 |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11409608B2 (en) * | 2020-12-29 | 2022-08-09 | Advanced Micro Devices, Inc. | Providing host-based error detection capabilities in a remote execution device |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
US20240106892A1 (en) * | 2021-01-25 | 2024-03-28 | Volumez Technologies Ltd. | Remote Online Volume Cloning Method and 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 |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US11816363B2 (en) * | 2021-11-04 | 2023-11-14 | International Business Machines Corporation | File based virtual disk management |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
US11907551B2 (en) * | 2022-07-01 | 2024-02-20 | Dell Products, L.P. | Performance efficient and resilient creation of network attached storage objects |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1373871A (zh) * | 1999-08-23 | 2002-10-09 | 泰拉斯普林公司 | 可扩展的计算系统 |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5193184A (en) * | 1990-06-18 | 1993-03-09 | Storage Technology Corporation | Deleted data file space release system for a dynamically mapped virtual data storage subsystem |
US5829053A (en) * | 1996-05-10 | 1998-10-27 | Apple Computer, Inc. | Block storage memory management system and method utilizing independent partition managers and device drivers |
US6044367A (en) * | 1996-08-02 | 2000-03-28 | Hewlett-Packard Company | Distributed I/O store |
US6493811B1 (en) * | 1998-01-26 | 2002-12-10 | Computer Associated Think, Inc. | Intelligent controller accessed through addressable virtual space |
US6240416B1 (en) * | 1998-09-11 | 2001-05-29 | Ambeo, Inc. | Distributed metadata system and method |
US6311213B2 (en) * | 1998-10-27 | 2001-10-30 | International Business Machines Corporation | System and method for server-to-server data storage in a network environment |
US6434637B1 (en) * | 1998-12-31 | 2002-08-13 | Emc Corporation | Method and apparatus for balancing workloads among paths in a multi-path computer system based on the state of previous I/O operations |
US6347371B1 (en) * | 1999-01-25 | 2002-02-12 | Dell Usa, L.P. | System and method for initiating operation of a computer system |
US6370605B1 (en) * | 1999-03-04 | 2002-04-09 | Sun Microsystems, Inc. | Switch based scalable performance storage architecture |
US6467023B1 (en) * | 1999-03-23 | 2002-10-15 | Lsi Logic Corporation | Method for logical unit creation with immediate availability in a raid storage environment |
WO2001029647A1 (fr) * | 1999-10-22 | 2001-04-26 | Hitachi, Ltd. | Systeme de reseau de zone a memoire |
JP4651230B2 (ja) * | 2001-07-13 | 2011-03-16 | 株式会社日立製作所 | 記憶システム及び論理ユニットへのアクセス制御方法 |
US20020103889A1 (en) * | 2000-02-11 | 2002-08-01 | Thomas Markson | Virtual storage layer approach for dynamically associating computer storage with processing hosts |
US6658563B1 (en) * | 2000-05-18 | 2003-12-02 | International Business Machines Corporation | Virtual floppy diskette image within a primary partition in a hard disk drive and method for booting system with virtual diskette |
US6532527B2 (en) * | 2000-06-19 | 2003-03-11 | Storage Technology Corporation | Using current recovery mechanisms to implement dynamic mapping operations |
US6912537B2 (en) * | 2000-06-20 | 2005-06-28 | Storage Technology Corporation | Dynamically changeable virtual mapping scheme |
AU2002220108A1 (en) * | 2000-11-02 | 2002-05-15 | Pirus Networks | Switching system |
US6871245B2 (en) * | 2000-11-29 | 2005-03-22 | Radiant Data Corporation | File system translators and methods for implementing the same |
JP4187403B2 (ja) * | 2000-12-20 | 2008-11-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ記録システム、データ記録方法およびネットワークシステム |
JP4457185B2 (ja) * | 2001-02-13 | 2010-04-28 | ネットアップ,インコーポレイテッド | シリコンベースのストレージ仮想化サーバ |
US6606690B2 (en) * | 2001-02-20 | 2003-08-12 | Hewlett-Packard Development Company, L.P. | System and method for accessing a storage area network as network attached storage |
JP4105398B2 (ja) * | 2001-02-28 | 2008-06-25 | 株式会社日立製作所 | 情報処理システム |
US6779063B2 (en) * | 2001-04-09 | 2004-08-17 | Hitachi, Ltd. | Direct access storage system having plural interfaces which permit receipt of block and file I/O requests |
US20040015864A1 (en) * | 2001-06-05 | 2004-01-22 | Boucher Michael L. | Method and system for testing memory operations of computer program |
US6782401B2 (en) * | 2001-07-02 | 2004-08-24 | Sepaton, Inc. | Method and apparatus for implementing a reliable open file system |
US7548975B2 (en) * | 2002-01-09 | 2009-06-16 | Cisco Technology, Inc. | Methods and apparatus for implementing virtualization of storage within a storage area network through a virtual enclosure |
US7433948B2 (en) * | 2002-01-23 | 2008-10-07 | Cisco Technology, Inc. | Methods and apparatus for implementing virtualization of storage within a storage area network |
US6934799B2 (en) * | 2002-01-18 | 2005-08-23 | International Business Machines Corporation | Virtualization of iSCSI storage |
EP1345113A3 (en) * | 2002-03-13 | 2008-02-06 | Hitachi, Ltd. | Management server |
US6889309B1 (en) * | 2002-04-15 | 2005-05-03 | Emc Corporation | Method and apparatus for implementing an enterprise virtual storage system |
US6954852B2 (en) * | 2002-04-18 | 2005-10-11 | Ardence, Inc. | System for and method of network booting of an operating system to a client computer using hibernation |
US7188194B1 (en) * | 2002-04-22 | 2007-03-06 | Cisco Technology, Inc. | Session-based target/LUN mapping for a storage area network and associated method |
US6973587B1 (en) * | 2002-05-03 | 2005-12-06 | American Megatrends, Inc. | Systems and methods for out-of-band booting of a computer |
US7107385B2 (en) * | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
US7100089B1 (en) * | 2002-09-06 | 2006-08-29 | 3Pardata, Inc. | Determining differences between snapshots |
US7263593B2 (en) * | 2002-11-25 | 2007-08-28 | Hitachi, Ltd. | Virtualization controller and data transfer control method |
US7797392B2 (en) * | 2002-11-26 | 2010-09-14 | International Business Machines Corporation | System and method for efficiently supporting multiple native network protocol implementations in a single system |
US7020760B2 (en) * | 2002-12-16 | 2006-03-28 | International Business Machines Corporation | Hybrid logical block virtualization system for a storage area network |
US6816917B2 (en) * | 2003-01-15 | 2004-11-09 | Hewlett-Packard Development Company, L.P. | Storage system with LUN virtualization |
US7606239B2 (en) * | 2003-01-31 | 2009-10-20 | Brocade Communications Systems, Inc. | Method and apparatus for providing virtual ports with attached virtual devices in a storage area network |
US6990573B2 (en) * | 2003-02-05 | 2006-01-24 | Dell Products L.P. | System and method for sharing storage to boot multiple servers |
EP1678617A4 (en) * | 2003-10-08 | 2008-03-26 | Unisys Corp | COMPUTER SYSTEM PARAVIRTUALIZATION BY USING A HYPERVISOR IMPLEMENTED IN A PARTITION OF THE HOST SYSTEM |
US20050114595A1 (en) * | 2003-11-26 | 2005-05-26 | Veritas Operating Corporation | System and method for emulating operating system metadata to provide cross-platform access to storage volumes |
US7669032B2 (en) * | 2003-11-26 | 2010-02-23 | Symantec Operating Corporation | Host-based virtualization optimizations in storage environments employing off-host storage virtualization |
US20050125538A1 (en) * | 2003-12-03 | 2005-06-09 | Dell Products L.P. | Assigning logical storage units to host computers |
US8190714B2 (en) * | 2004-04-15 | 2012-05-29 | Raytheon Company | System and method for computer cluster virtualization using dynamic boot images and virtual disk |
-
2003
- 2003-11-26 US US10/722,614 patent/US20050114595A1/en not_active Abandoned
-
2004
- 2004-11-22 CN CNB2004800405835A patent/CN100552611C/zh active Active
- 2004-11-22 WO PCT/US2004/039306 patent/WO2005055043A1/en active Application Filing
- 2004-11-22 EP EP04811936A patent/EP1687706A1/en not_active Withdrawn
- 2004-11-22 JP JP2006541649A patent/JP4750040B2/ja active Active
-
2005
- 2005-06-20 US US11/156,636 patent/US20050228950A1/en not_active Abandoned
- 2005-06-20 US US11/156,635 patent/US7689803B2/en not_active Expired - Fee Related
- 2005-06-20 US US11/156,821 patent/US20050235132A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1373871A (zh) * | 1999-08-23 | 2002-10-09 | 泰拉斯普林公司 | 可扩展的计算系统 |
Non-Patent Citations (2)
Title |
---|
IBM Storage Tank TM. A Distributed Storage System. . 2002 |
IBM Storage Tank TM. A Distributed Storage System. . 2002 * |
Also Published As
Publication number | Publication date |
---|---|
JP4750040B2 (ja) | 2011-08-17 |
US7689803B2 (en) | 2010-03-30 |
CN1906569A (zh) | 2007-01-31 |
US20050114595A1 (en) | 2005-05-26 |
WO2005055043A1 (en) | 2005-06-16 |
US20050235132A1 (en) | 2005-10-20 |
EP1687706A1 (en) | 2006-08-09 |
US20050228950A1 (en) | 2005-10-13 |
US20050228937A1 (en) | 2005-10-13 |
JP2007516523A (ja) | 2007-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100552611C (zh) | 仿真操作系统元数据以提供对存储卷的跨平台访问的系统和方法 | |
US11163472B2 (en) | Method and system for managing storage system | |
AU2017387063B2 (en) | Data storage system with multiple durability levels | |
AU2017387062B2 (en) | Data storage system with redundant internal networks | |
US7424592B1 (en) | System and method for implementing volume sets in a storage system | |
CN101952814B (zh) | 用于在虚拟环境中实施虚拟存储池的方法和系统 | |
US8533164B2 (en) | Method and tool to overcome VIOS configuration validation and restoration failure due to DRC name mismatch | |
CN100524235C (zh) | 存储网络中的恢复操作 | |
EP1324184A2 (en) | System and method for managing a moveable media library with library partitions | |
US7987330B2 (en) | Apparatus for migrating data between heterogeneous data storage devices | |
EP2434403A1 (en) | Method and apparatus for performing volume replication using unified architecture | |
US11860791B2 (en) | Methods for managing input-output operations in zone translation layer architecture and devices thereof | |
JP2003263397A (ja) | 周辺機器仮想機能性オーバレイシステムを提供する方法 | |
US9690506B2 (en) | Virtual tape library | |
CN1682193A (zh) | 存储服务与系统 | |
CN101387989A (zh) | 构建基于分区管理的虚拟存储设备的计算机系统及方法 | |
US8788750B2 (en) | Managing resources in cluster storage systems | |
US11061604B2 (en) | Method and storage system architecture for accessing data by means of a compatible module | |
US8904141B2 (en) | Merging a storage cluster into another storage cluster | |
King | LUN Masking in a SAN | |
US20230236865A1 (en) | Locating Virtual Tape File Systems on a Virtual Tape Emulator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee |
Owner name: REVIVIO INC. Free format text: FORMER NAME: VERITAS SOFTWARE CORP. |
|
CP03 | Change of name, title or address |
Address after: American California Patentee after: Revivio Inc. Address before: American California Patentee before: Veritas Operating Corp. |