CN1906569A - 仿真操作系统元数据以提供对存储卷的跨平台访问的系统和方法 - Google Patents

仿真操作系统元数据以提供对存储卷的跨平台访问的系统和方法 Download PDF

Info

Publication number
CN1906569A
CN1906569A CNA2004800405835A CN200480040583A CN1906569A CN 1906569 A CN1906569 A CN 1906569A CN A2004800405835 A CNA2004800405835 A CN A2004800405835A CN 200480040583 A CN200480040583 A CN 200480040583A CN 1906569 A CN1906569 A CN 1906569A
Authority
CN
China
Prior art keywords
logical volume
storage device
virtual
host
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004800405835A
Other languages
English (en)
Other versions
CN100552611C (zh
Inventor
罗纳尔德·S.·卡尔
欧莱格·吉塞莱弗
艾里克斯·米罗斯克尼切科
阿尔加亚·孔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Revivio Inc
Original Assignee
Veritas Operating Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Veritas Operating Corp filed Critical Veritas Operating Corp
Publication of CN1906569A publication Critical patent/CN1906569A/zh
Application granted granted Critical
Publication of CN100552611C publication Critical patent/CN100552611C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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 (36)

1、一种系统:包括
第一主机;和
无主机式虚拟器;
其中所述无主机式虚拟器被配置成:
为第一虚拟存储装置产生第一操作系统元数据;
使所述第一操作系统元数据可被所述第一主机访问;
其中所述第一主机包括存储软件栈,所述存储软件栈包括第一层;
其中所述第一层被配置成使用所述第一操作系统元数据,检测作为第一可寻址存储装置的第一虚拟存储装置的存在。
2、按照权利要求1所述的系统,其中所述无主机式虚拟器还被配置成响应在所述第一主机中使用的特定操作系统的要求,定制操作系统元数据。
3、按照权利要求2所述的系统,其中所述第一主机被配置成将特定操作系统的要求提供给所述无主机式虚拟器。
4、按照权利要求1所述的系统,还包括存储装置,其中所述第一可寻址存储装置是所述存储装置的一个分区。
5、按照权利要求1所述的系统,还包括一个或多个物理存储装置,其中所述存储软件栈包括第二层,其中所述无主机式虚拟器还被配置成:
将一个或多个物理存储装置内的存储空间聚合成一个逻辑卷;
将所述逻辑卷映射到第一虚拟存储装置的地址空间;
向所述存储软件栈的第二层提供逻辑卷的逻辑卷元数据;
其中所述存储软件栈的第二层被配置成使用逻辑卷元数据来访问所述逻辑卷,以便进行I/O操作。
6、按照权利要求1所述的系统,其中所述第一虚拟存储装置是虚拟逻辑单元(LUN)。
7、按照权利要求1所述的系统,其中所述无主机式虚拟器包括虚拟化交换机。
8、按照权利要求1所述的系统,其中所述无主机式虚拟器包括虚拟化设备。
9、按照权利要求1所述的系统,其中所述第一虚拟存储装置未被映射到物理存储空间。
10、按照权利要求9所述的系统,还包括两个或更多的物理存储装置,其中所述无主机式虚拟器还被配置成将两个或者更多的物理存储装置中的每个物理存储装置动态地映射到所述第一虚拟存储装置内的相应地址范围。
11、按照权利要求9所述的系统,还包括物理存储装置和第二主机,其中所述无主机式虚拟器还被配置成:
为第二虚拟存储装置产生第二操作系统元数据,其中所述第二虚拟存储装置未被映射到物理存储空间;和
使所述第二操作系统元数据可被所述第二主机访问;
其中所述第二主机包括第二存储软件栈,所述第二存储软件栈包括第一层;
其中所述第二存储软件栈的第一层被配置成使用第二操作系统元数据,检测作为第二可寻址存储装置的第二虚拟存储装置的存在;
其中所述无主机式虚拟器还被配置成:
将所述物理存储装置的第一物理地址范围动态地映射到所述第一虚拟存储装置内的第一虚拟地址范围;
将所述物理存储装置的第二物理地址范围动态地映射到所述第二虚拟存储装置内的第二虚拟地址范围;和
阻止所述第一主机对所述第二物理地址范围的访问。
12、按照权利要求9所述的系统,还包括第一物理存储装置,其中所述存储软件栈包括第二层,其中所述无主机式虚拟器还被配置成:
将所述第一物理存储装置内的第一范围的物理存储空间聚合成第一逻辑卷;
将所述第一虚拟存储装置内的第一范围的虚拟存储空间动态地映射到所述第一逻辑卷;和
将所述第一逻辑卷的第一逻辑卷元数据提供给所述存储软件栈的第二层;
其中所述存储软件栈的第二层被配置成使用所述第一逻辑卷元数据来访问所述第一逻辑卷,以便进行I/O操作。
13、按照权利要求12所述的系统,其中所述无主机式虚拟器还被配置成:
将所述第一物理存储装置内的第二范围的物理存储空间聚合成第二逻辑卷;
将所述第一虚拟存储装置内的第二范围的虚拟存储空间动态地映射到所述第二逻辑卷;和
将所述第二逻辑卷的另外的逻辑卷元数据提供给所述存储软件栈的第二层;
其中所述存储软件栈的第二层被配置成使用所述另外的逻辑卷元数据来访问所述第二逻辑卷,以便进行I/O操作。
14、按照权利要求12所述的系统,还包括第二主机,其中所述无主机式虚拟器还被配置成:
为第二虚拟存储装置产生第二操作系统元数据,其中所述第二虚拟存储装置未被映射到物理存储空间;
使所述第二操作系统元数据可被所述第二主机访问;
将所述第一物理存储装置内的第二范围的物理存储空间聚合成第二逻辑卷;和
将所述第二逻辑卷的第二逻辑卷元数据提供给所述第二主机;
其中所述第二主机包括第二存储软件栈,所述第二存储软件栈包括第一层和第二层,其中
所述第二软件栈的第一层被配置成使用所述第二操作系统元数据,检测作为第二可寻址存储装置的所述第二虚拟存储装置的存在,和
其中所述第二软件栈的第二层被配置成使用所述第二逻辑卷元数据来访问所述第二逻辑卷,以便进行I/O操作。
15、按照权利要求14所述的系统,其中所述无主机式虚拟器还被配置成防止所述第二主机对所述第一逻辑卷进行I/O操作。
16、按照权利要求14所述的系统,其中所述第一主机可通过第一存储网络访问所述第一可寻址存储装置,所述第二主机可通过第二存储网络访问所述第二可寻址存储装置。
17、按照权利要求12所述的系统,还包括第二主机和第二物理存储装置,其中所述无主机式虚拟器还被配置成:
为第二虚拟存储装置产生第二操作系统元数据,其中所述第二虚拟存储装置未被映射到物理存储空间;
使所述第二操作系统元数据可被所述第二主机访问;
将所述第二物理存储装置内的第二范围的物理存储空间聚合成第二逻辑卷;
将所述第一虚拟存储装置内的第二范围的虚拟存储空间动态地映射到所述第二逻辑卷;和
将所述第二逻辑卷的第二逻辑卷元数据提供给所述第二主机;
其中所述第二主机包括第二存储软件栈,所述第二存储软件栈包括第一层和第二层,其中
所述第二软件栈的第一层被配置成使用第二操作系统元数据,检测作为第二可寻址存储装置的所述第二虚拟存储装置的存在,和
其中所述第二软件栈的第二层被配置成使用所述第二逻辑卷元数据来访问所述第二逻辑卷,以便进行I/O操作;
其中所述第一主机可通过第一存储网络访问所述第一可寻址存储装置,所述第二主机可通过第二存储网络访问所述第二可寻址存储装置,所述无主机式虚拟器可通过第三存储网络访问所述第一物理存储装置,所述无主机式虚拟器可通过第四存储网络访问所述第二物理存储装置。
18、按照权利要求17所述的系统,其中所述第一、第二、第三和第四存储网络均包括可独立配置的光纤通道架构。
19、按照权利要求1所述的系统,其中所述存储软件栈包括第二层,还包括第一和第二物理存储装置,其中所述无主机式虚拟器还被配置成:
将所述第一物理存储装置内的第一范围的存储空间和所述第二物理存储装置内的第二范围的存储空间聚合成单个逻辑卷;和
将所述单个逻辑卷的逻辑卷元数据提供给所述存储软件栈的第二层;
其中所述存储软件栈的第二层被配置成使用所述逻辑卷元数据来访问所述单个逻辑卷,以便进行I/O操作。
20、一种可为存储装置产生操作系统元数据的虚拟器,其中所述操作系统元数据仿真宿流在特定操作系统下的存储卷。
21、一种方法,包括:
为第一虚拟存储装置产生第一操作系统元数据;
使所述第一虚拟存储装置的第一操作系统元数据可被第一主机访问;
在所述第一主机的存储软件栈的第一层中使用第一操作系统元数据,检测作为第一可寻址存储装置的所述第一虚拟存储装置的存在。
22、按照权利要求21所述的方法,还包括:
响应在所述第一主机使用的特定操作系统的要求,定制操作系统元数据。
23、按照权利要求21所述的方法,其中所述第一虚拟存储装置未被映射到物理存储空间。
24、按照权利要求23所述的方法,还包括:
将第一和第二物理存储装置动态地映射到第一虚拟存储装置内的相应地址范围。
25、按照权利要求23所述的方法,还包括:
将所述第一物理存储装置内的第一范围的物理存储空间聚合成第一逻辑卷;
将所述第一虚拟存储装置内的第一范围的虚拟存储空间动态地映射到所述第一逻辑卷;
将所述第一逻辑卷的第一逻辑卷元数据提供给所述存储软件栈的第二层;和
从所述存储软件栈的第二层使用第一逻辑卷元数据来访问所述第一逻辑卷,以便进行I/O操作。
26、按照权利要求25所述的方法,还包括:
将所述第一物理存储装置内的第二范围的物理存储空间聚合成第二逻辑卷;
将所述第一虚拟存储装置内的第二范围的虚拟存储空间动态地映射到所述第二逻辑卷;
将所述第二逻辑卷的另外的逻辑卷元数据提供给所述存储软件栈的第二层;和
在所述存储软件栈的第二层使用所述另外的逻辑卷元数据来访问第二逻辑卷,以便进行I/O操作。
27、按照权利要求25所述的方法,还包括:
为第二虚拟存储装置产生第二操作系统元数据,其中所述第二虚拟存储装置未被映射到物理存储空间;
使所述第二操作系统元数据可被第二主机访问;
在所述第二主机的存储软件栈的第一层中使用所述第二操作系统元数据,检测作为第二可寻址存储装置的所述第二虚拟存储装置的存在,
将所述第一物理存储装置内的第二范围的物理存储空间聚合成第二逻辑卷;
将所述第二虚拟存储装置内的第二范围的虚拟存储空间动态地映射到所述第二逻辑卷;
将所述第二逻辑卷的第二逻辑卷元数据提供给在所述第二主机的存储软件栈的第二层;和
从在所述第二主机上的存储软件栈的第二层使用所述第二逻辑卷元数据来访问所述第二逻辑卷,以便进行I/O操作。
28、按照权利要求27所述的方法,还包括:
阻止所述第二主机对所述第一逻辑卷进行I/O操作。
29、按照权利要求25所述的方法,还包括:
为第二虚拟存储装置产生第二操作系统元数据,其中所述第二虚拟存储装置未被映射到物理存储空间;
使所述第二操作系统元数据可被第二主机访问;
在所述第二主机的存储软件栈的第一层中使用第二操作系统元数据,检测作为第二可寻址存储装置的所述第二虚拟存储装置的存在,
在无主机式虚拟器中,将第二物理存储装置内的第二范围的物理存储空间聚合成第二逻辑卷;
将所述第二虚拟存储装置内的第二范围的虚拟存储空间动态地映射到所述第二逻辑卷;
将所述第二逻辑卷的第二逻辑卷元数据提供给在所述第二主机中的存储软件栈的第二层;和
从在所述第二主机中的存储软件栈的第二层,使用所述第二逻辑卷元数据来访问第二逻辑卷,以便进行I/O操作;
其中第一范围的物理存储空间被无主机式虚拟器聚合成第一逻辑卷;和
其中所述第一主机可通过第一存储网络访问所述第一可寻址存储装置,所述第二主机可通过第二存储网络访问所述第二可寻址存储装置,无主机式虚拟器可通过第三存储网络访问所述第一物理存储装置,所述无主机式虚拟器可通过第四存储网络访问所述第二物理存储装置。
30、按照权利要求29所述的方法,其中所述第一、第二、第三和第四存储网络均包括可独立配置的光纤通道架构。
31、按照权利要求23所述的方法,还包括:
将第一物理存储装置内的第一范围的存储空间和第二物理存储装置内的第二范围的存储空间聚合成单个逻辑卷;
将所述虚拟存储装置内的一段虚拟存储空间动态地映射到第二逻辑卷;
将所述单个逻辑卷的逻辑卷元数据提供给所述存储软件栈的第二层;和
从所述存储软件栈的第二层使用所述逻辑卷元数据来访问所述单个逻辑卷,以便进行I/O操作。
32、一种包括程序指令的计算机可访问介质,其中所述指令可被执行,从而:
为第一虚拟存储装置产生第一操作系统元数据;
使所述第一虚拟存储装置的第一操作系统元数据可被第一主机访问;
在所述第一主机的存储软件栈的第一层中使用所述第一操作系统元数据,检测作为第一可寻址存储装置的所述第一虚拟存储装置的存在。
33、按照权利要求32所述的计算机可访问介质,其中所述指令还可被执行,从而:
响应在所述第一主机使用的特定操作系统的要求,定制操作系统元数据。
34、按照权利要求32所述的计算机可访问介质,其中所述第一虚拟存储装置未被映射到物理存储空间。
35、按照权利要求34所述的计算机可访问介质,其中所述指令还可被执行,从而:
将第一和第二物理存储装置映射到所述第一虚拟存储装置内的相应地址范围。
36、按照权利要求34所述的计算机可访问介质,其中所述指令还可被执行,从而:
将第一物理存储装置内的第一范围的物理存储空间聚合成第一逻辑卷;
将所述第一虚拟存储装置内的第一范围的虚拟存储空间动态地映射到所述第一逻辑卷;
将所述第一逻辑卷的第一逻辑卷元数据提供给存储软件栈的第二层;和
从所述存储软件栈的第二层使用所述第一逻辑卷元数据来访问所述第一逻辑卷,以便进行I/O操作。
CNB2004800405835A 2003-11-26 2004-11-22 仿真操作系统元数据以提供对存储卷的跨平台访问的系统和方法 Active CN100552611C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/722,614 2003-11-26
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

Publications (2)

Publication Number Publication Date
CN1906569A true CN1906569A (zh) 2007-01-31
CN100552611C 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986655A (zh) * 2010-10-21 2011-03-16 浪潮(北京)电子信息产业有限公司 存储网络及该存储网络的数据读写方法
CN105683896A (zh) * 2013-06-03 2016-06-15 微软技术许可有限责任公司 跨多个虚拟机共享虚拟硬盘
CN107710160A (zh) * 2015-07-08 2018-02-16 株式会社日立制作所 计算机和存储区域管理方法

Families Citing this family (303)

* Cited by examiner, † Cited by third party
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
WO2005114374A2 (en) * 2004-05-21 2005-12-01 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
US8543542B2 (en) * 2005-02-07 2013-09-24 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
US8918366B2 (en) * 2005-02-07 2014-12-23 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
US7778976B2 (en) * 2005-02-07 2010-08-17 Mimosa, Inc. Multi-dimensional surrogates for data management
US8271436B2 (en) * 2005-02-07 2012-09-18 Mimosa Systems, Inc. Retro-fitting synthetic full copies of data
US8161318B2 (en) * 2005-02-07 2012-04-17 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US8812433B2 (en) * 2005-02-07 2014-08-19 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US7657780B2 (en) * 2005-02-07 2010-02-02 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US8799206B2 (en) * 2005-02-07 2014-08-05 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US8275749B2 (en) * 2005-02-07 2012-09-25 Mimosa Systems, Inc. Enterprise server version migration through identity preservation
US7870416B2 (en) * 2005-02-07 2011-01-11 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US7917475B2 (en) * 2005-02-07 2011-03-29 Mimosa Systems, Inc. Enterprise server version migration through identity preservation
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
US8433770B2 (en) * 2005-07-29 2013-04-30 Broadcom Corporation Combined local and network storage interface
US20070038749A1 (en) * 2005-07-29 2007-02-15 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 株式会社日立製作所 複合型情報プラットフォーム装置とその情報処理装置構成方法
EP1816563B1 (en) * 2006-01-26 2016-04-27 Infortrend Technology, Inc. Method of managing data snapshot images in a storage system
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
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
US7904681B1 (en) * 2006-06-30 2011-03-08 Emc Corporation Methods and systems for migrating data with minimal disruption
US7536503B1 (en) * 2006-06-30 2009-05-19 Emc Corporation Methods and systems for preserving disk geometry when migrating existing data volumes
US7610483B2 (en) * 2006-07-25 2009-10-27 Nvidia Corporation System and method to accelerate identification of hardware platform classes
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
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
US20080140724A1 (en) 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
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
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
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
WO2008126202A1 (ja) * 2007-03-23 2008-10-23 Fujitsu Limited ストレージシステムの負荷分散プログラム、ストレージシステムの負荷分散方法、及びストレージ管理装置
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
US8635429B1 (en) 2007-06-29 2014-01-21 Symantec Corporation Method and apparatus for mapping virtual drives
US7568051B1 (en) * 2007-06-29 2009-07-28 Emc Corporation Flexible UCB
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
US20110170452A1 (en) * 2007-12-07 2011-07-14 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
DE112008003788T5 (de) * 2008-03-27 2011-02-24 Hewlett-Packard Co. Intellectual Property Administration, Fort Collins Raid-Array-Zugriff durch ein das Raid-Array nicht kennendes Betriebssystem
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
US8516190B1 (en) * 2008-09-26 2013-08-20 Nvidia Corporation Reporting logical sector alignment for ATA mass storage devices
US8055842B1 (en) 2008-09-26 2011-11-08 Nvidia Corporation Using raid with large sector size 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
US9331963B2 (en) 2010-09-24 2016-05-03 Oracle International Corporation Wireless host I/O using virtualized I/O controllers
US8458145B2 (en) * 2011-01-20 2013-06-04 Infinidat Ltd. System and method of storage optimization
US8966184B2 (en) 2011-01-31 2015-02-24 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
US8732401B2 (en) 2011-07-07 2014-05-20 Atlantis Computing, Inc. Method and apparatus for cache replacement using a catalog
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
US10831728B2 (en) 2012-05-29 2020-11-10 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
US10817202B2 (en) 2012-05-29 2020-10-27 International Business Machines Corporation Application-controlled sub-LUN level data migration
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
US8856484B2 (en) * 2012-08-14 2014-10-07 Infinidat Ltd. Mass storage system and methods of controlling resources thereof
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
US9471590B2 (en) 2013-02-12 2016-10-18 Atlantis Computing, Inc. Method and apparatus for replicating virtual machine images using deduplication metadata
US9372865B2 (en) 2013-02-12 2016-06-21 Atlantis Computing, Inc. Deduplication metadata access in deduplication file system
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
US9176890B2 (en) 2013-06-07 2015-11-03 Globalfoundries Inc. Non-disruptive modification of a device mapper stack
US9798596B2 (en) 2014-02-27 2017-10-24 Commvault Systems, Inc. Automatic alert escalation 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
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
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
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of 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
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
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
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
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
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
JP6461347B2 (ja) * 2015-07-27 2019-01-30 株式会社日立製作所 ストレージシステム、及び、記憶制御方法
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
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
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
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
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
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
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
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
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
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
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
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
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
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
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
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
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
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
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
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
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
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
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
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
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
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
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
WO2022157785A1 (en) 2021-01-25 2022-07-28 Volumez Technologies Ltd. Method and system for orchestrating remote block device connection between servers
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
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
US11907551B2 (en) * 2022-07-01 2024-02-20 Dell Products, L.P. Performance efficient and resilient creation of network attached storage objects

Family Cites Families (47)

* Cited by examiner, † Cited by third party
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
US6779016B1 (en) * 1999-08-23 2004-08-17 Terraspring, Inc. Extensible computing system
EP1229435A4 (en) * 1999-10-22 2008-08-06 Hitachi Ltd MEMORY ZONE NETWORK SYSTEM
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
WO2002037224A2 (en) * 2000-11-02 2002-05-10 Pirus Networks Load balanced storage 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 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記録システム、データ記録方法およびネットワークシステム
AU2002306495A1 (en) * 2001-02-13 2002-08-28 Candera, Inc. Storage virtualization and storage management to provide higher level storage services
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
US7433948B2 (en) * 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
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
US6934799B2 (en) * 2002-01-18 2005-08-23 International Business Machines Corporation Virtualization of iSCSI storage
US6954839B2 (en) * 2002-03-13 2005-10-11 Hitachi, Ltd. Computer system
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
US7669032B2 (en) * 2003-11-26 2010-02-23 Symantec Operating Corporation Host-based virtualization optimizations in storage environments employing off-host storage virtualization
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
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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986655A (zh) * 2010-10-21 2011-03-16 浪潮(北京)电子信息产业有限公司 存储网络及该存储网络的数据读写方法
CN105683896A (zh) * 2013-06-03 2016-06-15 微软技术许可有限责任公司 跨多个虚拟机共享虚拟硬盘
CN107710160A (zh) * 2015-07-08 2018-02-16 株式会社日立制作所 计算机和存储区域管理方法
CN107710160B (zh) * 2015-07-08 2021-06-22 株式会社日立制作所 计算机和存储区域管理方法

Also Published As

Publication number Publication date
CN100552611C (zh) 2009-10-21
US20050235132A1 (en) 2005-10-20
US20050228937A1 (en) 2005-10-13
US7689803B2 (en) 2010-03-30
US20050114595A1 (en) 2005-05-26
JP4750040B2 (ja) 2011-08-17
EP1687706A1 (en) 2006-08-09
US20050228950A1 (en) 2005-10-13
JP2007516523A (ja) 2007-06-21
WO2005055043A1 (en) 2005-06-16

Similar Documents

Publication Publication Date Title
CN100552611C (zh) 仿真操作系统元数据以提供对存储卷的跨平台访问的系统和方法
US11163472B2 (en) Method and system for managing storage system
US9807052B2 (en) Consistent binding of shared storage across clustered servers
Tantisiriroj et al. On the duality of data-intensive file system design: reconciling HDFS and PVFS
US9563469B2 (en) System and method for storage and deployment of virtual machines in a virtual server environment
US6216202B1 (en) Method and apparatus for managing virtual storage devices in a storage system
US9286007B1 (en) Unified datapath architecture
US20160055054A1 (en) Data Reconstruction in Distributed Data Storage System with Key-Based Addressing
US9253014B2 (en) Computer system and application program execution environment migration method
US11860791B2 (en) Methods for managing input-output operations in zone translation layer architecture and devices thereof
KR20150052036A (ko) 소프트웨어 정의 네트워크 연결 저장 시스템 및 방법
US8566636B2 (en) Application recovery in a file system
US11144396B1 (en) Raid reliability with a provisional spare disk
US20230195382A1 (en) Scalable Solid-State Storage System and Methods Thereof
US20200233602A1 (en) Storage reclamation for distributed storage systems
US20220382468A1 (en) Adding single disks to an array by relocating raid members
CN1744051A (zh) 基于包结构的数据恢复技术
KR101679303B1 (ko) 비대칭 분산 파일 시스템 및 그 데이터 처리 방법
CN1564517A (zh) 内存-网络内存-磁盘高速可靠存储系统及其读写方法
US8904141B2 (en) Merging a storage cluster into another storage cluster
US20190087111A1 (en) Common logical block addressing translation layer for a storage array
US11144221B1 (en) Efficient resilience in a metadata paging array for in-flight user data
TW201816624A (zh) 解決分散式雲端運算平台於虛擬化下衝突的獨立資源分派系統及雲端服務系統
JP2009223879A (ja) ネットワーク記憶デバイスおよびデータ読み取り書き込み制御方法
Teigland The pool driver: A volume driver for sans

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.