CN103765371A - 导出作为存储对象的逻辑卷的数据存储*** - Google Patents
导出作为存储对象的逻辑卷的数据存储*** Download PDFInfo
- Publication number
- CN103765371A CN103765371A CN201280041463.1A CN201280041463A CN103765371A CN 103765371 A CN103765371 A CN 103765371A CN 201280041463 A CN201280041463 A CN 201280041463A CN 103765371 A CN103765371 A CN 103765371A
- Authority
- CN
- China
- Prior art keywords
- storage
- vvol
- storage system
- logical storage
- logical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 452
- 238000013500 data storage Methods 0.000 title abstract description 10
- 238000000034 method Methods 0.000 claims description 151
- 238000013507 mapping Methods 0.000 claims description 13
- 238000007726 management method Methods 0.000 description 144
- 238000010586 diagram Methods 0.000 description 64
- 230000008569 process Effects 0.000 description 47
- 230000027455 binding Effects 0.000 description 42
- 238000009739 binding Methods 0.000 description 42
- 230000004044 response Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000005055 memory storage Effects 0.000 description 5
- 239000000835 fiber Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000006116 polymerization reaction Methods 0.000 description 3
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 2
- 208000036829 Device dislocation Diseases 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 240000004859 Gamochaeta purpurea Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
存储***导出被供应为存储对象的逻辑存储卷。连接的计算机***通过在存储***中配置的用于协议流量的逻辑端点、使用比如SCSI和NFS的标准协议按照需求访问这些存储对象。从具有地址空间的逻辑存储容器创建逻辑存储卷,该地址空间映射到物理数据存储单元的存储位置。这样创建的逻辑存储卷中的每个逻辑存储卷具有地址空间,该地址空间映射到逻辑存储容器的地址空间。逻辑存储容器可以跨越多于一个存储***,并且可以用适当安全设置从相同逻辑存储容器供应不同客户的逻辑存储卷。
Description
背景技术
随着计算机***缩放至企业级,特别是在支持大规模数据中心的情境中,下层数据存储***经常运用存储区域网络(SAN)或者网络附着存储装置(NAS)。如在常规上被良好理解的那样,SAN或者NAS提供诸多技术能力和操作益处,这些技术能力和操作益处基础地包括数据存储设备的虚拟化、具有透明的容许故障的故障恢复和故障保护控制的物理设备的冗余性、在地理上分布和复制的存储装置以及从以客户端为中心的计算机***管理去耦合的集中式监督和存储配置管理。
在架构上,在SAN存储***中的存储设备(例如,盘阵列等)通常连接到网络交换机(例如,光纤信道交换机等),这些网络交换机然后连接到服务器或者“主机”,这些服务器或者“主机”需要访问存储设备中的数据。在SAN中的服务器、交换机和存储设备通常使用小型计算机***接口(SCSI)协议来通信,该SCSI协议在盘数据块级跨越网络传送数据。对照而言,NAS设备通常是如下设备,该设备内部包含一个或者多个存储设备并且通过网络协议(比如以太网)连接到主机(或者居间交换机)。除了包含存储设备之外,NAS设备也已经根据基于网络的文件***(比如网络文件***(NFS)或者公共因特网文件***(CIFS))预先格式化它的存储设备。这样,如与向主机暴露盘(被称为LUN并且以下进一步具体描述)——这些盘然后需要根据由主机利用的文件***来格式化并且然后装配——的SAN比对,NAS设备的基于网络的文件***(该***需要由主机的操作***支持)使NAS设备向主机的操作***表现为文件服务器,该文件服务器然后可以装配或者映射NAS设备例如作为操作***可访问的网络驱动。应当认识到,随着存储***销售商不断创新和发布新产品,在SAN与NAS存储***之间的清晰差别继续减弱,而实际存储***实现方式经常展现二者的特性、在相同***中提供文件级协议(NAS)和块级协议(SAN)二者。例如,在备选NAS架构中,NAS“首领(head)”或者“网关”设备联网到主机而不是传统NAS设备。这样的NAS网关设备未本身包含存储驱动,而是使外部存储设备能够连接到NAS网关设备(例如,经由光纤信道接口等)。被主机以相似方式感知为传统NAS设备的这样的NAS网关设备提供一种用于显著增加基于NAS的存储架构的容量(例如,在更传统上由SAN支持的存储容量级)而又保持文件级存储访问的简单性的能力。
SCSI和其他基于块协议的存储设备(比如图1A中所示的存储***30)利用代表一个或者多个编程的存储处理器的存储***管理器31以聚合存储设备中的存储单元或者驱动并且将它们呈现为各自具有唯一可标识编号的一个或者多个LUN(逻辑单元编号)34。LUN34通过网络20(例如,光纤信道等)由一个或者多个计算机***10通过物理主机总线适配器(HBA)11来访问。在计算机***10内和在HBA11以上,通过从低级设备驱动器层12开始并且在操作***专属文件***层15中结束的一系列软件层有特点地实施存储访问抽象化。实现对LUN34的基本访问的设备驱动器层12通常专属于由存储***使用的通信协议(例如,SCSI等)。可以在设备驱动器层12以上实施数据访问层13以支持通过HBA11以及其他数据访问控制和管理功能可见的LUN34的多路径合并。通常在数据访问层13与常规操作***文件***层15之间实施的逻辑卷管理器14支持通过HBA11可访问的LUN34的面向卷的虚拟化和管理。可以在逻辑卷管理器14的控制之下将多个LUN34作为卷一起聚集和管理以用于向文件***层15呈现并且由文件***层15用作逻辑设备。
存储***管理器31实施在存储***30中驻留的、在图1A中被称为纺锤体(spindle)32的通常基于盘驱动的物理存储单元的虚拟化。从逻辑观点来看,这些纺锤体32中的每个纺锤体可以被视为固定大小的盘区(extent)的依次阵列。存储***管理器31通过向连接的计算机***(比如计算机***10)暴露连续逻辑存储空间(该逻辑存储空间被划分成被称为LUN34的虚拟SCSI设备的集合)来抽象化掉使读取和写入操作以盘驱动的实际纺锤体和盘区的地址为目标的复杂性。每个LUN借助存在这样的LUN以及向计算机***10呈现这样的LUN来代表被指派用于由计算机***10使用的某个容量。存储***管理器31维护元数据,该元数据包括用于每个这样的LUN到盘区的有序列表的映射,其中每个这样的盘区可以被标识为纺锤体-盘区对<纺锤体#,盘区#>并且因此可以位于各种纺锤体32中的任何纺锤体中。
图1B是通过网络21(例如,以太网)经由网络接口卡(NIC)11’连接到一个或者多个计算机***10的基于NAS或者文件级的常规存储***40的框图。存储***40包括代表一个或者多个编程的存储处理器的存储***管理器41。存储***管理器41在存储***40中驻留的、在图1B中称为纺锤体42的通常基于盘驱动的物理存储单元上面实施文件***45。从逻辑观点来看,这些纺锤体中的每个纺锤体可以被视为固定大小的盘区43的依次阵列。文件***45通过向连接的计算机***(比如计算机***10)暴露包括目录和文件(这些目录和文件可以被组织成文件***级卷44(下文称为“FS卷”),这些FS卷通过它们的相应装配点来访问)的名称空间来抽象化掉使读取和写入操作以盘驱动的实际纺锤体和盘区的地址为目标的复杂性。
即使有以上描述的存储***中的进步,仍然已经广泛地认识到它们未充分可伸缩以满足虚拟化的计算机***的特定需要。例如,服务器机器群集可以服务于多达10,000个虚拟机(VM),每个VM使用数目为多个的“虚拟盘”和数目为多个的“快照”,每个虚拟盘和快照可以例如被存储为特定LUN或者FS卷上的文件。即使按比例缩减的估计为每VM有2个虚拟盘和2个快照,如果VM直接连接到物理盘(即每物理盘有1个虚拟盘或者快照),这仍然总计为存储***支持60,000个不同盘。此外,在这一规模的存储设备和拓扑管理已知有困难。作为结果,开发了比如在这里通过引用而结合的、名称为“Providing Multiple Concurrent Access to a File System”的美国专利7,849,098中描述的数据存储库这一概念,在这些数据存储库中,将VM复用到物理存储实体(例如,基于LUN的VMFS群集文件***或者FS卷)的更小集合上。
在运用LUN或者FS卷的常规存储***中,来自多个VM的工作量通常由单个LUN或者单个FS卷服务。作为结果,来自一个VM工作量的资源需求将影响在相同LUN或者FS卷上向另一VM工作量提供的服务水平。用于存储的效率测量(比如延时和每秒输入/输出操作(IO)或者IOPS)因此取决于在给定的LUN或者FS卷中的工作量的数目变化并且不能被保障。因而,不能在每VM基础上执行用于运用LUN或者FS卷的存储***的存储策略,并且不能在每VM基础上给予服务水平协定(SLA)保障。此外,在LUN或者FS卷的粒度而不是在VM的虚拟盘的粒度提供由存储***销售商提供的数据服务(比如快照、复制、加密和去重复)。作为结果,可以使用由存储***销售商提供的数据服务来为整个LUN或者整个FS卷创建快照,但是不能从其中存储虚拟盘的LUN或者文件***分离地创建用于VM的单个虚拟盘的快照。
发明内容
一个或者多个实施例涉及一种存储***,该存储***被配置用于隔离在其中运行的工作量,从而使得可以每工作量地提供SLA保障并且可以每工作量地提供存储***的数据服务,而无需存储***的彻底重新设计。在存储用于多个虚拟机的虚拟盘的存储***中,可以在每虚拟盘基础上提供SLA保障,并且可以在每虚拟盘基础上提供存储***的数据服务。
根据本发明的一个实施例,存储***从这里被称为“存储容器”的逻辑存储容量指派之中导出在每工作量基础上被供应为存储对象的、这里被称为“虚拟卷”的逻辑存储卷。对于VM,可以对于VM的虚拟盘和快照中的每个虚拟盘和快照创建虚拟卷。在一个实施例中,由连接的计算机***通过在存储***中配置的被称为“协议端点”的用于协议流量的逻辑端点、使用标准协议(比如SCSI和NFS)按照需求访问虚拟卷。
根据本发明的一个实施例的一种从包括物理数据存储单元(DSU)的存储***创建逻辑存储卷的方法包括以下步骤:创建具有地址空间的逻辑存储容器,该地址空间映射到DSU的存储位置;以及创建多个逻辑存储卷,每个逻辑存储卷具有地址空间,该地址空间映射到逻辑存储容器的地址空间,并且每个逻辑存储卷是IO被引向的存储对象。
根据本发明的一个实施例的一种存储***群集包括:第一存储***和第二存储***,每个存储***具有物理DSU集合;以及分布式存储***管理器,被配置用于创建逻辑存储容器,逻辑存储容器映射到第一存储***和第二存储***二者的DSU的存储位置,并且从逻辑存储容器创建多个逻辑存储卷。
本发明的实施例还包括一种存储指令的非瞬态计算机可读存储介质,这些指令在由计算机***执行时使计算机***执行以上阐述的方法之一。
附图说明
图1A是通过网络连接到一个或者多个计算机***的基于块协议的常规存储设备的框图。
图1B是通过网络连接到一个或者多个计算机***的常规NAS设备的框图。
图2A是根据本发明的一个实施例的实施虚拟卷的基于块协议的存储***群集的框图。
图2B是根据本发明的一个实施例的实施虚拟卷的基于NAS的存储***群集的框图。
图3是根据本发明的一个实施例的图2A或者图2B的存储***群集的用于管理虚拟卷的部件的框图。
图4是用于创建存储容器的方法步骤的流程图。
图5A是在基于SAN的存储***上主控的被配置用于实施虚拟卷的计算机***的一个实施例的框图。
图5B是在基于NAS的存储***上主控的被配置用于虚拟卷的图5A的计算机***的框图。
图5C是在基于SAN的存储***上主控的被配置用于实施虚拟卷的计算机***的另一实施例的框图。
图5D是在基于NAS的存储***上主控的被配置用于虚拟卷的图5C的计算机***的框图。
图6是图示根据本发明的一个实施例的用来管理虚拟卷的部件和通信路径的计算机环境的简化框图。
图7是用于向图2A或者图2B的存储***群集认证计算机***的方法步骤的流程图。
图8是根据一个实施例的用于创建虚拟卷的方法步骤的流程图。
图9A是用于发现可用于计算机***的协议端点的方法步骤的流程图。
图9B是用于存储***发现计算机***经由带内路径连接到的协议端点的方法步骤的流程图。
图10是根据一个实施例的用于发出和执行虚拟卷绑定请求的方法步骤的流程图。
图11A和图11B是根据一个实施例的用于向虚拟卷发出IO的方法步骤的流程图。
图12是根据一个实施例的用于在存储***执行IO的方法步骤的流程图。
图13是根据一个实施例的用于发出和执行虚拟卷重新绑定请求的方法步骤的流程图。
图14是虚拟卷的生命周期的概念图。
图15是根据一个实施例的使用图2A的存储***的用于供应VM的方法步骤的流程图。
图16A是用于使VM通电的方法步骤的流程图。
图16B是用于使VM断电的方法步骤的流程图。
图17是用于扩展VM的vvol的大小的方法步骤的流程图。
图18是用于在存储容器之间移动VM的vvol的方法步骤的流程图。
图19是用于从模板VM克隆VM的方法步骤的流程图。
图20是根据另一实施例的用于供应VM的方法步骤的流程图。
图21图示采样存储能力简档和用于创建存储容器的方法,该方法包括简档选择步骤。
图22是图示用于创建vvol以及定义用于vvol的存储能力简档的方法步骤的流程图。
图23是图示用于创建快照的方法步骤的流程图。
具体实施方式
图2A和图2B是根据本发明的实施例的实施“虚拟卷”的存储***群集的框图。存储***群集包括一个或者多个存储***,例如,存储***1301和1302,这些存储***可以是盘阵列,每个存储***具有多个数据存储单元(DSU),在图中标注这些DSU之一为141,并且存储***群集包括存储***管理器131和132,这些存储***管理器控制存储***130的各种操作以实现这里描述的本发明的实施例。在一个实施例中,两个或者更多存储***130可以实施分布式存储***管理器135,该分布式存储***管理器135控制存储***群集的操作如同它们是单个逻辑存储***一样。分布式存储***管理器135的操作域可以跨越在相同数据中心中或者跨越多个数据中心安装的存储***。例如,在一个这样的实施例中,分布式存储***管理器135可以包括存储***管理器131,存储***管理器131在与用作“从属”管理器的存储***管理器132通信时用作“主控”管理器,但是应当认识到,可以实施用于实施分布式存储***管理器的多种备选方法。DSU代表物理存储单元,例如,基于盘或者闪存的存储单元,比如旋转盘或者固态盘。根据实施例,存储***群集创建并且向连接的计算机***(比如计算机***1001和1002)暴露如这里进一步具体描述的“虚拟卷”(vvol)。在计算机***100中运行的应用(例如,VM等,这些VM访问它们的虚拟盘)使用标准协议(比如在图2A的实施例中为SCSI和在图2B的实施例中为NFS)、通过在存储***130中被配置的、被称为“协议端点”(PE)的用于SCSI或者NFS协议流量的逻辑端点按需访问vvol。从计算机***100到存储***130的用于与应用有关的数据操作的通信路径这里被称为“带内”路径。在计算机***100的主机总线适配器(HBA)与在存储***130中配置的PE之间以及在计算机***100的网络接口卡(NIC)与在存储***130中配置的PE之间的通信路径是带内路径的示例。从计算机***100到存储***130的不是在带内并且通常用来执行管理操作的通信路径这里被称为“带外”路径。在图6中从带内路径分离地图示带外路径的示例,比如在计算机***100与存储***130之间的以太网网络连接。为了简化,计算机***100被示出为直接连接到存储***130。然而,应当理解,它们可以通过多个路径和交换机中的一个或者多个交换机连接到存储***130。
分布式存储***管理器135或者单个存储***管理器131或者132可以从代表物理DSU的逻辑聚合的逻辑“存储容器”创建vvol(例如,在计算机***100请求时等)。一般而言,存储容器可以跨越多于一个存储***,并且许多存储容器可以由单个存储***管理器或者分布式存储***管理器创建。相似地,单个存储***可以包含许多存储容器。在图2A和图2B中,由分布式存储***管理器135创建的存储容器142A被示出为跨越存储***1301和存储***1302,而存储容器142B和存储容器142C被示出为包含于单个存储***内(即,分别为存储***1301和存储***1302)。应当认识到,由于存储容器可以跨越多个一个存储***,所以存储***管理员可以向它的客户供应超过任一存储***的存储容量的存储容量。还应当认识到,由于可以在单个存储***内创建多个存储容器,所以存储***管理员可以使用单个存储***来向多个客户供应存储装置。
在图2A的实施例中,从基于块的存储***供应每个vvol。在图2B的实施例中,基于NAS的存储***在DSU141上面实施文件***145,并且向计算机***100暴露每个vvol作为在这一文件***内的文件对象。此外,如以下将进一步具体描述的那样,在计算机***100上运行的应用通过PE访问用于IO的vvol。例如,如图2A和图2B中的虚线所示,vvol151和vvol152经由PE161可访问;vvol153和vvol155经由PE162可访问;vvol154经由PE163和PE164可访问;并且vvol156经由PE165可访问。应当认识到,来自多个存储容器的vvol(比如在存储容器142A中的vvol153和在存储容器142C中的vvol155)可以在任何给予的时间经由单个PE(比如PE162)可访问。还应当认识到,PE(比如PE166)可以在不存在经由它们可访问的任何vvol时存在。
在图2A的实施例中,存储***130使用已知的用于设立LUN的方法来将PE实施为特殊类型的LUN。如与LUN一样,存储***130向每个UE提供被称为WWN(世界范围名称)的唯一标识符。在一个实施例中,在创建PE时,存储***130未指定用于特殊LUN的大小,因为这里描述的PE不是实际数据容器。在一个这样的实施例中,存储***130可以指派零值或者很小的值作为与PE有关的LUN的大小,从而使得如以下进一步讨论的那样,管理员可以在请求存储***提供LUN(例如,传统数据LUN和与PE有关的LUN)的列表时快速标识PE。相似地,存储***130可以向PE指派大于255的LUN编号作为用于LUN的标识编号以用人类友好方式指示它们不是数据LUN。作为用于在PE与LUN之间区分的另一方式,可以向扩展的查询数据VPD页面(页面86h)添加PE位。在LUN是PE时将PE位设置成1,并且在它是普通数据LUN时设置成0。计算机***100可以通过发出SCSI命令REPORT_LUNS(报告_LUN)来经由带内路径发现PE并且通过检查指示的PE位来确定它们是否为根据这里描述的实施例的PE或者常规数据LUN。计算机***100可以可选地检查LUN大小和LUN编号性质以进一步确认LUN是否为PE或者常规LUN。应当认识到,以上描述的技术中的任何技术可以用来区分与PE有关的LUN与普通数据LUN。在一个实施例中,PE位技术是用来区分与PE有关的LUN与普通数据LUN的仅有技术。
在图2B的实施例中,使用已知的用于设立指向FS卷的装配点的方法在存储***130中创建PE。在图2B的实施例中创建的每个PE由也常规地被一起称为“装配点”的IP地址和文件***路径唯一标识。然而,不同于常规装配点,PE并不与FS卷关联。此外,不同于图2A的PE,图2B的PE除非虚拟卷绑定到给定的PE否则不可经由带内路径被计算机***100发现。因此,图2B的PE经由带外路径由存储***报告。
图3是根据一个实施例的图2A或者图2B的存储***群集的用于管理虚拟卷的部件的框图。部件包括在一个实施例中在存储***130中执行的存储***管理器131和132的软件模块或者在另一实施例中的分布式存储***管理器135的软件模块,即输入/输出(I/O)管理器304、卷管理器306、容器管理器308和数据访问层310。在这里的实施例的描述中,应当理解,由分布式存储***管理器135采取的任何动作可以取决于实施例由存储***管理器131或者存储***管理器132采取。
在图3的示例中,分布式存储***管理器135已经从DSU141创建了三个存储容器SC1、SC2和SC3,这些存储容器中的每个存储容器被示出为具有被标注为P1至Pn的纺锤体盘区。一般而言,每个存储容器具有固定物理大小并且与DSU的具体盘区关联。在图3中所示的示例中,分布式存储***管理器135具有对容器数据库316的访问,容器数据库316为每个存储容器存储它的容器ID、物理布局信息和一些元数据。容器数据库316由容器管理器308管理和更新,容器管理器308在一个实施例中是分布式存储***管理器135的部件。容器ID是在创建存储容器时向存储容器给予的通用唯一标识符。物理布局信息由与给予的存储容器关联并且被存储为<***ID,DSU ID,盘区编号>的有序列表的DSU141的纺锤体盘区构成。元数据分节可以包含一些公共和一些存储***销售商专属元数据。例如,元数据分节可以包含被许可访问存储容器的计算机***或者应用或者用户的ID。作为另一示例,元数据分节包含分配位图,该分配位图用于表示已经向现有vvol分配了存储***的哪些<***ID,DSU ID,盘区编号>盘区并且哪些盘区空闲。在一个实施例中,存储***管理员可以创建用于不同业务单元的分离存储容器,从而使得未从相同存储容器供应不同业务单元的vvol。可以应用其他用于隔离vvol的策略。例如,存储***管理员可以采用将从不同存储容器供应云服务的不同客户的vvol这样的策略。vvol也可以根据它们的所需服务水平被分组并且从存储容器被供应。此外,存储***管理员可以创建、删除和以其他方式管理存储容器,比如定义可以被创建的存储容器数目以及设置可以每存储容器设置的最大物理大小。
同样,在图3的示例中,分布式存储***管理器135已经供应了(代表请求计算机***100)各自来自不同存储容器的多个vvol。一般而言,vvol可以具有固定物理大小或者可以被瘦供应,并且每个vvol具有vvol ID,该vvol ID是在创建vvol时向vvol给予的通用唯一标识符。对于每个vvol,vvol数据库314为每个vvol存储它的vvol ID、其中创建vvol的存储容器的容器ID和在该存储容器内的包括vvol的地址空间的<偏移,长度>值的有序列表。vvol数据库314由卷管理器306管理和更新,卷管理器306在一个实施例中是分布式存储***管理器135的部件。在一个实施例中,vvol数据库314也存储关于vvol的少量元数据。这一元数据在vvol数据314中被存储为关键字-值对的集合,并且可以在vvol的存在期间的任何时间经由带外路径由计算机***100更新和查询。存储的关键字-值对落入三个类别中。第一类别是:熟知的关键字——某些关键字的定义(并且因此它们的值的解释)公开地可用。一个示例是与虚拟卷类型(例如,在虚拟机实施例中,vvol是否包含VM的元数据或者VM的数据)对应的关键字。另一示例是App ID,App ID是在vvol中存储数据的应用的ID。第二类别是:计算机***专属关键字——计算机***或者它的管理模块将某些关键字和值存储为虚拟卷的元数据。第三类别是:存储***销售商专属关键字——这些允许存储***销售商存储与虚拟卷的元数据关联的某些关键字。存储***销售商将这一关键字-值存储库用于它的元数据的一个原因是所有这些关键字经由用于vvol的带外信道容易地可用于存储***销售商插件和其他扩展。用于关键字-值对的存储操作是虚拟卷创建和其他过程的部分,并且因此存储操作应当合理地快。存储***也被配置用于基于与在具体关键字上提供的值的确切匹配来实现虚拟卷的搜索。
IO管理器304是维护连接数据库312的软件模块(也在某些实施例中为分布式存储***管理器135的部件),连接数据库312存储在PE与vvol之间的当前有效IO连接路径。在图3中所示的示例中,示出了七个当前有效IO会话。每个有效会话具有关联的PEID、次级标识符(SLLID)、vvol ID和参考计数(RefCnt),参考计数指示通过这一IO会话执行IO的不同应用的数目。由分布式存储***管理器135(例如,在由计算机***100请求时)在PE与vvol之间建立有效IO会话的过程这里被称为“绑定”过程。对于每个绑定,分布式存储***管理器135(例如,经由IO管理器304)向连接数据库312添加条目。由分布式存储***管理器135随后拆除IO会话的过程这里被称为“解绑定”过程。对于每个解绑定,分布式存储***管理器135(例如,经由IO管理器304)将IO会话的参考计数递减一。在IO会话的参考计数为零时,分布式存储***管理器135(例如,经由IO管理器304)可以从连接数据库312删除用于该IO连接路径的条目。如先前讨论的那样,在一个实施例中,计算机***100生成并且经由带外路径向分布式存储***管理器135传输绑定和解绑定请求。备选地,计算机***100可以通过使现有错误路径超负荷来生成并且经由带内路径传输解绑定请求。在一个实施例中,在参考计数从0改变成1或者相反时将生成数被改变成单调增加数或者随机生成的数。在另一实施例中,生成数是随机生成的数,并且从连接数据库312消除RefCnt列,并且对于每个绑定,即使在绑定请求是对已经绑定的vvol时,分布式存储***管理器135也(例如,经由IO管理器304)向连接数据库312添加条目。
在图2A的存储***群集中,IO管理器304使用连接数据库312来处理通过PE接收的来自计算机***100的IO请求(IO)。当在PE之一接收IO时,IO管理器304解析IO以标识在IO中包含的PE ID和SLLID以便确定IO被既定用于的vvol。通过访问连接数据库314,IO管理器304然后能够取回与解析的PE ID和SLLID关联的vvol ID。在图3和后续图中,为了简化而将PE ID示出为PE_A、PE_B等。在一个实施例中,实际PE ID是PE的WWN。此外,SLLID被示出为S0001、S0002等。实际SLLID由分布式存储***管理器135生成为在与连接数据库312中的给定的PE ID关联的SLLID之中的任何唯一数。在具有vvol ID的虚拟卷的逻辑地址空间与DSU141的物理位置之间的映射由卷管理器306使用vvol数据库314以及由容器管理器308使用容器数据库316来执行。一旦已经获得了DSU141的物理位置,数据访问层310(在一个实施例中也为分布式存储***管理器135的部件)就在这些物理位置上执行IO。
在图2B的存储***群集中,通过PE接收IO,并且每个这样的IO包括IO已经被发到的NFS句柄(或者相似的文件***句柄)。在一个实施例中,用于这样的***的连接数据库312包含存储***的NFS接口的IP地址为PE ID以及包括文件***路径为SLLID。基于vvol在文件***145中的vvol的位置生成SLLID。在vvol的逻辑地址空间与DSU141的物理位置之间的映射由卷管理器306使用vvol数据库314以及由容器管理器308使用容器数据库316来执行。一旦已经获得了DSU141的物理位置,数据访问层就在这些物理位置上执行IO。应当认识到,对于图2B的存储***,容器数据库312可以在用于给定的vvol的容器位置条目中包含文件:<偏移,长度>条目有序列表(即,vvol可以包括在文件***145中存储的多个文件段)。
在一个实施例中,在易失性存储器中维护连接数据库312,而在持久存储装置(比如DSU141)中维护vvol数据库314和容器数据库316。在其他实施例中,可以在持久存储装置中维护所有数据库312、314、316。
图4是用于创建存储容器的方法步骤410的流程图。在一个实施例中,这些步骤在存储管理员的控制之下由存储***管理器131、存储***管理器132或者分布式存储***管理器135执行。如以上指出的那样,存储容器代表物理DSU的逻辑聚合并且可以跨越来自多于一个存储***的物理DSU。在步骤411,存储管理员(经由分布式存储***管理器135等)设置存储容器的物理容量。在云或者数据中心内,这一物理容量可以例如代表由客户租赁的物理存储装置的量。由这里公开的存储容器提供的灵活性是不同客户的存储容器可以由存储管理员从相同存储***供应,并且用于单个客户的存储容器可以例如在任何一个存储设备的物理容量不足以满足客户请求的大小的情况下或者在比如vvol的物理存储覆盖区将自然地跨越多个存储***这样的复制的情况下从多个存储***被供应。在步骤412,存储管理员设置用于访问存储容器的权限级别。例如,在多租户数据中心中,客户仅可以访问已经向他或者她租赁的存储容器。在步骤413,分布式存储***管理器135生成用于存储容器的唯一标识符。然后,在步骤414,分布式存储***管理器135(例如,在一个实施例中经由容器管理器308)以充分数量向存储容器分配DSU141的空闲纺锤体盘区。如以上指出的那样,在任何一个存储***的自由空间不足以满足物理容量的情况下,分布式存储***管理器135可以从多个存储***分配DSU141的纺锤体盘区。在已经分配了分区之后,分布式存储***管理器135(例如,经由容器管理器308)用唯一容器ID、<***编号、DSU ID、盘区编号>的有序列表和被许可访问存储容器的计算机***的上下文ID更新容器数据库316。
根据这里描述的实施例,存储容量简档(例如,SLA或者服务质量(QoS))可以在每vvol基础上由分布式存储***管理器135(例如,代表请求计算机***100)配置。因此,有可能让具有不同存储能力简档的vvol是相同存储容器的部分。在一个实施例中,***管理员定义默认存储能力简档(或者多个可能存储能力简档),该(或者这些)存储能力简档在创建存储容器时用于新创建的vvol并且被存储于容器数据库316的元数据分节中。如果未对于在存储容器内创建的新vvol显式地指定存储能力简档,则新vvol将继承与存储容器关联的默认存储能力简档。
图5A是在图2A的存储***群集上主控的被配置用来实施虚拟卷的计算机***的实施例的框图。可以在包括一个或者多个中央处理单元(CPU)501、存储器502、一个或者多个网络接口卡(NIC)503和一个或者多个主机总线适配器(HBA)504的通常为服务器类的常规硬件平台500上构造计算机***101。HBA504使计算机***101能够通过在存储设备130中配置的PE向虚拟卷发出IO。如图5A中进一步所示,在硬件平台500上面安装操作***508,并且在操作***508上面执行多个应用5121-512N。操作***508的示例包括熟知的商用操作***(比如Microsoft Windows、Linux等)中的任何操作***。
根据这里描述的实施例,每个应用512具有与之关联的一个或者多个vvol并且向由操作***508按照由应用512向操作***508中的“创建设备”调用来创建的vvol的块设备实例发出IO。在块设备数据库533中维护在块设备名称与vvol ID之间的关联。来自应用5121-512N的IO由文件***驱动器510接收,文件***驱动器510将它们转换成块IO,并且向虚拟卷设备驱动器532提供块IO。在另一方面,来自应用5121的IO被示出为绕过文件***驱动器510并且被直接提供给虚拟卷设备驱动器532,这表示应用5121以在通过这里引用将全部内容结合、名称为“Providing Access to a Raw DataStorage Unit in a Computer System”的美国专利7,155,558中描述的方式直接访问它的块设备作为原始存储设备,例如,作为数据库盘、日志盘、备份存档和内容贮存库。在虚拟卷设备驱动器532接收块IO时,它访问块设备数据库533以引用在IO中指定的块设备名称与PE ID(PE LUN的WWN)和SLLID之间的映射,该PE ID和SLLID定义通向与块设备名称关联的vvol的IO连接路径。在这里所示的示例中,块设备名称archive对应于为应用5121创建的块设备实例vvol12,并且块设备名称foo、dbase和log分别对应于为应用5122-512N中的一个或者多个应用创建的块设备实例vvol1、vvol16和vvol17。在块设备数据库533中存储的其他信息包括用于每个块设备的活跃位值,该活跃位值指示块设备是否活跃,并且包括CIF(在飞行中的命令,commands-in-flight)值。活跃位“1”表示可以向块设备发出IO。活跃位“0”表示块设备不活跃并且不能向块设备发出IO。CIF值提供多少IO在飞行中(即,被发出但是尚未完成)的指示。在这里所示的示例中,块设备foo活跃并且具有一些在飞行中的命令。块设备archive不活跃并且将不会接受更加新的命令。然而,它等待2个在飞行中的命令完成。块设备dbase不活跃而无未完成的命令。最后,块设备log活跃,但是应用当前没有向设备的未决IO。虚拟卷设备驱动器532可以选择在任何时间从它的数据库533去除这样的设备。
除了执行以上描述的映射之外,虚拟卷设备驱动器532还向数据访问层540发出原始块级IO。数据访问层540包括设备访问层534和用于HBA504的设备驱动器536,设备访问层534将命令排队和调度策略应用于原始块级IO,并且设备驱动器536在符合协议的格式中格式化原始块级IO并且向HBA504发送它们以用于经由带内路径向PE转发。在其中使用SCSI协议的实施例中,在如在SAM-5(SCSI架构模型-5)中指定的SCSI LUN数据字段中编码vvol信息,该数据字段是8字节结构。在前2个字节中编码常规地用于LUN ID的PE ID,并且利用剩余6个字节(的一部分)在SCSI第二级LUNID中编码vvol信息,特别地为SLLID。
如图5A中进一步所示,数据访问层540也包括用于处置通过带内路径从存储***接收的IO错误的错误处置单元542。在一个实施例中,由I/O管理器304通过PE传播由错误处置单元542接收的IO错误。IO错误类的示例包括在计算机***101与PE之间的路径错误、PE错误和vvol错误。错误处置单元542将所有检测到的错误分类为前述类。在遇到通向PE的路径错误并且通向PE的另一路径存在时,数据访问层540沿着通向PE的不同路径传输IO。在IO错误是PE错误时,错误处置单元542更新块设备数据库533以指示用于通过PE发出IO的每个块设备的错误状况。在IO错误是vvol错误时,错误处置单元542更新块设备数据库533以指示用于与vvol关联的每个块设备的错误状况。错误处置单元542也可以发出报警或者***事件,从而使得将拒绝向具有错误状况的块设备的进一步IO。
图5B是图5A的计算机***的框图,该计算机***已经被配置用于与图2B的存储***群集而不是图2A的存储***群集对接。在这一实施例中,数据访问层540包括NFS客户端545和用于NIC503的设备驱动器546。NFS客户端545将块设备名称映射到PE ID(NAS存储***的IP地址)和SLLID,该SLLID是与块设备对应的NFS文件句柄。如图5B中所示在块设备数据库533中存储这一映射。应当注意,活跃和CIF列仍然存在,但是在图5B中所示的块设备数据库533中未被图示。如以下将描述的那样,NFS文件句柄在NAS存储***内唯一标识文件对象,并且可以在绑定过程期间被生成。备选地,响应于对于绑定vvol的请求,NAS存储***返回PEID和SLLID,并且使用普通带内机制(例如,查找或者readdirplus)的vvol的开放将给予NFS文件句柄。NFS客户端545也将从虚拟卷设备驱动器532接收的原始块级IO转译成基于NFS文件的IO。用于NIC503的设备驱动器546然后在符合协议的格式中格式化基于NFS文件的IO并且将它们与NFS句柄一起发送到NIC503以用于经由带内路径向PE之一转发。
图5C是被配置用于实施虚拟卷的计算机***的另一实施例的框图。在这一实施例中,向计算机***102配置这里被表示为管理程序560的虚拟化软件。在硬件平台550上面安装管理程序560,硬件平台550包括CPU551、存储器552、NIC553和HBA554并且支持虚拟机执行空间570,可以在虚拟机执行空间570内并行实例化和执行多个虚拟机(VM)5711-571N。在一个或者多个实施例中,使用由加利福尼亚州帕罗奥图市的VMware公司分发的VMware产品来实施管理程序560和虚拟机571。每个虚拟机571实施虚拟硬件平台573,虚拟硬件平台573支持安装能够执行应用579的客户操作***(OS)572。客户OS572的示例包括熟知的商用操作***(比如Microsoft Windows、Linux等)中的任何操作***。在每个实例中,客户OS572包括本机文件***层(在图5C中未示出),例如,NTFS或者ext3FS类型的文件***层。这些文件***层与虚拟硬件平台573对接以从客户OS572的观点来看访问数据存储装置HBA,数据存储装置HBA在现实中是由虚拟硬件平台573实施的虚拟HBA574,虚拟HBA574提供表现盘存储支持(在现实中为虚拟盘或者虚拟盘575A-575X)以实现执行客户OS572。在某些实施例中,虚拟盘575A-575X可以表现为从客户OS572的观点来看支持用于连接到虚拟机的SCSI标准或者本领域普通技术人员已知的包括IDE、ATA和ATAPI的任何其他适当硬件连接接口标准。虽然从客户OS572的观点来看,由这样的客户OS572发起的用于实施与文件***有关的数据传送和控制操作的文件***调用表现为向虚拟盘575A-575X寻路由以用于最终执行,但是在现实中,通过虚拟HBA574处理和传递这样的调用以调整虚拟机监视器(VMM)5611-561N,这些虚拟机监视器(VMM)5611-561N实施为了与管理程序560协调操作而需要的虚拟***支持。具体而言,HBA仿真器562在功能上使数据传送和控制操作能够由管理程序560正确处置,管理程序560通过它的各种层向连接到存储***130的HBA554最终传递这样的操作。
根据这里描述的实施例,每个VM571具有与之关联的一个或者多个vvol并且向由管理程序560按照由VM571向管理程序560中的“创建设备”调用来创建的vvol的块设备实例发出IO。在块设备数据库580中维护在块设备名称与vvol ID之间的关联。来自VM5712-571N的IO由SCSI虚拟化层563接收,SCSI虚拟化层563将它们转换成虚拟机文件***(VMFS)驱动器564理解的文件IO。VMFS驱动器的564然后将文件IO转换成块IO,并且向虚拟卷设备驱动器565提供块IO。在另一方面,来自VM5711的IO被示出为绕过VMFS驱动器564并且被直接提供给虚拟卷设备驱动器565,这表示VM5711以在美国专利7,155,558中描述的方式直接访问它的块设备作为原始存储设备,例如,作为数据库盘、日志盘、备份存档和内容贮存库。
在虚拟卷设备驱动器565接收块IO时,它访问块设备数据库580以引用在IO中指定的块设备名称与PE ID和SLLID之间的映射,PE ID和SLLID定义通向与块设备名称关联的vvol的IO会话。在这里所示的示例中,块设备名称dbase和log分别对应于为VM5711创建的块设备实例vvol1和vvol4,并且块设备名称vmdk2、vmdkn和snapn分别对应于为VM5712-571N中的一个或者多个VM创建的块设备实例vvol12、vvol16和vvol17。在块设备数据库580中存储的其他信息包括用于每个块设备的活跃位值,该活跃位值指示块设备是否活跃,并且包括CIF(在飞行中的命令)值。活跃位“1”表示可以向块设备发出IO。活跃位“0”表示块设备不活跃并且不能向块设备发出IO。CIF值提供多少IO在飞行中(即,被发出但是尚未完成)的指示。
除了执行以上描述的映射之外,虚拟卷设备驱动器565还向数据访问层566发出原始块级IO。数据访问层566包括设备访问层567和用于HBA554的设备驱动器568,设备访问层567将命令排队和调度策略应用于原始块级IO,并且设备驱动器568在符合协议的格式中格式化原始块级IO并且向HBA554发送它们以用于经由带内路径向PE转发。在其中使用SCSI协议的实施例中,在如在SAM-5(SCSI架构模型-5)中指定的SCSI LUN数据字段中编码vvol信息,SCSI LUN数据字段是8字节结构。在前2个字节中编码常规地用于LUN ID的PE ID,并且利用剩余6个字节(的一部分)在SCSI第二级LUN ID中编码vvol信息,特别地为SLLID。如图5C中进一步所示,数据访问层566也包括以与错误处置单元542相同的方式工作的错误处置单元569。
图5D是图5C的计算机***的框图,该计算机***已经被配置用于与图2B的存储***群集而不是图2A的存储***群集对接。在这一实施例中,数据访问层566包括NFS客户端585和用于NIC553的设备驱动器586。NFS客户端585将块设备名称映射到PE ID(IP地址)和与块设备对应的SLLID(NFS文件句柄)。如图5D中所示在块设备数据库580中存储这一映射。应当注意,活跃和CIF列仍然存在但是在图5D中所示的块设备数据库580中未被图示。如以下将描述的那样,NFS文件句柄在NAS内唯一标识文件对象,并且在一个实施例中在绑定过程期间被生成。NFS客户端585也将从虚拟卷设备驱动器565接收的原始块级IO转译成基于NFS文件的IO。用于NIC553的设备驱动器586然后在符合协议的格式中格式化基于NFS文件的IO并且将它们与NFS句柄一起发送到NIC553以用于经由带内路径向PE之一转发。
应当认识到,可以不同地引用用来描述图5A-图5D中的部件的各种术语、层和分类而未脱离它们的功能或者本发明的精神实质和范围。例如,VMM561可以被视为在VM571与管理程序560之间的分离的虚拟化部件(在这样的概念中可以本身被视为虚拟化“内核”部件),因为存在用于每个实例化的VM的分离的VMM。备选地,每个VMM561可以被视为它的对应虚拟机的部件,因为这样的VMM包括用于虚拟机的硬件仿真部件。在这样的备选概念中,例如,被描述为虚拟硬件平台573的概念层可以与VMM561合并和合并到VMM561中,从而使得从图5C和图5D去除虚拟主机总线适配器574(即,因为它的功能由主机总线适配器仿真器562实现)。
图6是图示根据本发明的一个实施例的用来管理vvol的部件和通信路径的计算机环境的简化框图。如先前描述的那样,用于IO协议流量的通信路径被称为带内路径并且在图6中被示出为虚线601,虚线601连接计算机***的数据访问层540(通过在计算机***中提供的HBA或者NIC)与在存储***130中配置的一个或者多个PE。用来管理vvol的通信路径是带外路径(如先前定义的那样,不是“在带内”的路径)并且在图6中被示出为实线602。根据这里描述的实施例,可以通过在管理服务器610中提供的插件612和/或在计算机***103中的每个计算机***中提供的插件622管理vvol,在图6中仅示出这些插件之一。在存储设备侧上,管理接口625由存储***管理器131配置,并且管理接口626由存储***管理器132配置。此外,管理接口624由分布式存储***管理器135配置。每个管理接口与插件612、622通信。为了有助于发出和处置管理命令,已经开发了特殊应用编程接口(API)。应当认识到,在一个实施例中,定制两个插件612、622以与来自特定存储***销售商的存储硬件通信。因此,管理服务器610和计算机***103将在与用于不同存储***销售商的存储硬件通信时运用不同插件。在另一实施例中,可以有与任何销售商的管理接***互的单个插件。这将需要将存储***管理器编程为熟知接口(例如,借助由计算机***和/或管理服务器发布)。
还向管理服务器610配置用于关联计算机***的***管理器611。在一个实施例中,计算机***执行虚拟机,并且***管理器611管理在计算机***中运行的虚拟机。管理虚拟机的***管理器611的一个示例是由VMware公司分发的产品。如所示,***管理器611与在计算机***103中运行的主机后台程序(daemon)(hostd)621通信(通过在管理服务器610和计算机***103二者的适当硬件接口)以从计算机***103接收资源使用报告并且对在计算机***103中运行的应用发起各种管理操作。
图7是用于向图2A或者图2B的存储***群集认证计算机***的方法步骤的流程图。在计算机***通过向存储***传输它的安全套接字层(SSL)证书来请求认证时发起这些方法步骤。在步骤710,存储***向请求认证的计算机***发出用于认证证书的提示(例如,用户名和口令)。当在步骤712接收认证证书时,存储***在步骤714比较它们与存储的证书。如果提供了正确证书,则存储***在关键字存储库中存储认证的计算机***的SSL证书(步骤716)。如果提供了不正确证书,则存储***忽略SSL证书并且返回适当错误消息(步骤718)。在被认证之后,计算机***可以调用API以通过SSL链路向存储***发出管理命令,并且在SSL证书中包括的唯一上下文ID由存储***用来实行某些策略,比如定义哪些计算机***可以访问哪些存储容器。在一些实施例中,可以在管理计算机***批准的权限时使用它们的上下文ID。例如,主机计算机可以被许可创建vvol,但是可以不被许可删除vvol或者vvol的快照,或者主机计算机可以被许可创建vvol的快照,但是可以不被许可克隆vvol。此外,权限可以根据登录到认证的计算机***的用户的用户级特权变化。
图8是用于使用创建虚拟卷API命令来创建虚拟卷的方法步骤的流程图。在一个实施例中,计算机***103在计算机***103在步骤802从它的应用之一接收对于创建具有某个大小和存储能力简档(比如最小IOPS和平均延时)的vvol的请求时经由带外路径602向存储***发出创建虚拟卷API命令。作为响应,计算机***103在步骤804(在计算机***103和请求应用被许可访问的并且具有充分空闲容量以适应请求的存储容器之中)选择存储容器并且经由插件622向存储***发出创建虚拟卷API命令。API命令包括vvol的存储容器ID、vvol大小和存储能力简档。在另一实施例中,API命令包括应用要求存储***与新创建的vvol一起存储的关键字-值对集合。在另一实施例中,管理服务器610经由带外路径602向存储***发出创建虚拟卷API命令(经由插件612)。
在步骤806,存储***管理器经由管理接口(例如,管理接口624、625或者626)接收对于生成vvol的请求并且访问选择的存储容器的在容器数据库316中的元数据分节以验证包括计算机***103和应用的请求上下文具有充分权限以在选择的存储容器中创建vvol。在一个实施例中,如果权限级别不充分,则向计算机***103返回错误消息。如果权限级别充分,则在步骤810生成唯一vvol ID。然后,在步骤812,存储***管理器扫描容器数据库316的元数据分节中的分配位图以确定选择的存储容器的空闲分区。存储***管理器分配选择的存储容器的足以适应请求的vvol大小的空闲分区并且更新存储容器的在容器数据库316的元数据分节中的分配位图。存储***管理器也用新vvol条目更新vvol数据库314。新vvol条目包括在步骤810生成的vvol ID、新分配的存储容器盘区的有序列表和新vvol的被表达为关键字-值对的元数据。然后,在步骤814,存储***管理器向计算机***103传输vvol ID。在步骤816,计算机***103关联vvol ID与请求创建vvol的应用。在一个实施例中,为每个应用维护一个或者多个vvol描述符文件,并且向为请求创建vvol的应用而维护的vvol描述符文件中写入vvol ID。
如图2A和图2B中所示,并非所有vvol连接到PE。未连接到PE的vvol不知道由对应应用发出的IO,因为未向vvol建立IO会话。在可以向vvol发出IO之前,vvol经历绑定过程,作为该绑定过程的结果,vvol将被绑定到特定PE。一旦vvol被绑定到PE,就可以向vvol发出IO直至从PE解绑定vvol。
在一个实施例中,由计算机***130使用绑定虚拟卷API经由带外路径602向存储***发出绑定请求。绑定请求标识待绑定的vvol(使用vvol ID),并且作为响应,存储***将vvol绑定到计算机***103经由带内路径连接到的PE。图9A是用于计算机***经由带内路径发现它连接到的PE的方法步骤的流程图。使用标准SCSI命令REPORT_LUNS经由带内路径发现在基于SCSI协议的存储设备中配置的PE。使用API经由带外路径发现在基于NFS协议的存储设备中配置的PE。由计算机***为每个连接的存储***执行图9A的方法步骤。
在步骤910,计算机***确定连接的存储***是否基于SCSI协议或者基于NFS协议。如果存储***基于SCSI协议,则由计算机***向存储***带内发出SCSI命令REPORT_LUNS(步骤912)。然后,在步骤913,计算机***检查来自存储***的响应,特别地为与返回的PE ID中的每个PE ID关联的PE位,以在与PE有关的LUN与常规数据LUN之间区分。如果存储***基于NFS协议,则由计算机***从插件622向管理接口(例如,管理接口624、625或者626)带外发出API调用以获得可用PE的ID(步骤914)。在跟随步骤913和步骤914的步骤916,计算机***存储由存储***返回的与PE有关的LUN的PE ID或者由管理接口返回的PE ID以用于在绑定过程期间使用。应当认识到,由基于SCSI协议的存储设备返回的PE ID各自包括WWN,并且由基于NFS协议的存储设备返回的PE ID各自包括IP地址和装配点。
图9B是用于存储***管理器131或者存储***管理器132或者分布式存储***管理器135(下文称为“存储***管理器”)发现给定的计算机***103经由带内路径连接到的PE的方法步骤的流程图。由存储***管理器发现这样的PE使存储***能够响应于来自请求计算机***的绑定请求向计算机***返回计算机***可以被实际连接到其上的有效PE ID。在步骤950,存储***管理器经由管理接口和插件622向计算机***103发出带外“Discovery_Topology(发现_拓扑)”API调用。计算机***103返回它的***ID和它经由图9A的流程图发现的所有PE ID的列表。在一个实施例中,存储***管理器通过经由管理接口和插件612向管理服务器610发出“Discovery_Topology”API调用来执行步骤950。在这样的实施例中,存储***将接收响应,该响应包含多个计算机***ID和关联的PEID,一个计算机***ID和关联的PE ID用于管理服务器610管理的每个相应计算机***103。然后,在步骤952,存储***管理器处理来自步骤950的结果。例如,存储***管理器清除未在它的当前控制之下的所有PE ID的列表。例如,由存储***管理器135在发出Discovery_Topology调用时接收的某些PE ID可以对应于连接到相同计算机***的另一存储***。相似地,某些接收的PE ID可以对应于自从被存储***管理员删除起的更旧PE,等等。在步骤954,存储***管理器高速缓存处理的结果以用于在后续绑定请求期间使用。在一个实施例中,存储***管理器周期性地运行图9B的步骤以用进行中的计算机***和网络拓扑改变更新它的高速缓存的结果。在另一实施例中,存储***管理器每当它接收新vvol创建请求时运行图9B的步骤。在又另一实施例中,存储***管理器在运行图7的认证步骤之后运行图9B的步骤。
图10是用于使用绑定虚拟卷API来发出和执行虚拟卷绑定请求的方法步骤的流程图。在一个实施例中,计算机***103在它的应用之一请求IO访问与尚未被绑定到PE的vvol关联的块设备时经由带外路径602向存储***发出绑定请求。在另一实施例中,管理服务器610结合某些VM管理操作发出绑定请求,这些VM管理操作包括VM通电和从一个存储容器向另一存储容器的vvol迁移。
继续以上描述的示例,在该示例中,应用请求IO访问与尚未被绑定到PE的vvol关联的块设备,计算机***103在步骤1002从块设备数据库533(或者580)确定vvol的vvol ID。然后,在步骤1004,计算机***103通过带外路径602向存储***发出对于绑定vvol的请求。
存储***管理器在步骤1006经由管理接口(例如,管理接口624、625或者626)接收对于绑定vvol的请求,并且然后执行步骤1008,步骤1008包括选择vvol将被绑定到的PE、生成用于选择的PE的SLLID和生成数以及更新连接数据库312(例如,经由IO管理器304)。根据连通(即,仅具有与计算机***103的现有带内连接的PE可用于选择)以及其他因素(比如通过可用PE的当前IO流量)进行选择vvol将被绑定到的PE。在一个实施例中,存储***根据图9B的方法从计算机***103向它发送的处理和高速缓存的PE列表选择。SLLID生成在运用图2A的存储***群集的实施例与运用图2B的存储***群集的实施例之间不同。在前一情况下,生成对于选择的PE唯一的SLLID。在后一情况下,生成通向与vvol对应的文件对象的文件路径作为SLLID。在已经对于选择的PE生成了SLLID和生成数之后,更新连接数据库312以包括与vvol的新生成的IO会话。然后,在步骤1010,向计算机***103返回选择的PE的ID、生成的SLLID和生成数。可选地,在运用图2B的存储***群集的实施例中,可以对于与vvol对应的文件对象生成并且与选择的PE的ID、生成的SLLID和生成数一起向计算机***103返回唯一NFS文件句柄。在步骤1012,计算机***103更新块设备数据库533(或者580)以包括从存储***返回的PE ID、SLLID(以及可选地,NFS句柄)和生成数。特别地,将向块设备数据库533(或者580)添加从存储***返回的PE ID、SLLID(以及可选地,NFS句柄)和生成数的每个集合作为新条目。应当认识到,生成数用来防范重放攻击。因此,在其中未考虑重放攻击的实施例中,未使用生成数。
在由希望向相同vvol发出IO的不同应用发起的向相同vvol的后续绑定请求时,存储***管理器可以将vvol绑定到相同或者不同PE。如果将vvol绑定到相同PE,则存储***管理器返回相同PE的ID和先前生成的SLLID,并且递增与数据库312结合存储的这一IO连接路径的参考计数。在另一方面,如果将vvol绑定到不同PE,则存储***管理器生成新SLLID并且返回不同PE的ID和新生成的SLLID并且向连接数据库312添加与vvol的这一新IO连接路径作为新条目。
可以使用解绑定虚拟卷API来发出虚拟卷解绑定请求。解绑定请求包括如下IO连接路径的PE ID和SLLID,先前已经通过该IO连接路径绑定了vvol。然而,建议处理解绑定请求。存储***管理器空闲以立即或者在延迟之后从PE解绑定vvol。通过更新连接数据库312以递减包含PE ID和SLLID的条目的参考计数来处理解绑定请求。如果将参考计数递减至零,则可以删除条目。在这一情况下,应当注意,vvol继续存在,但是不再可用于使用给定的PE ID和SLLID的IO。
在实施VM的虚拟盘的vvol的情况下,用于这一vvol的参考计数将至少为一。在使VM断电并且与之结合发出解绑定请求时,参考计数将被递减一。如果参考计数为零,则可以从连接数据库312去除vvol条目。一般而言,从连接数据库312去除条目是有益的,因为I/O管理器304管理更少数据并且也可以回收SLLID。这样的益处在由存储***存储的vvol总数大(例如,vvol在百万级),但是由应用活跃地访问的vvol总数小(例如,VM为数万个)时变得显著。此外,在vvol未被绑定到任何PE时,存储***在选择在DSU141中何处存储vvol时具有更大灵活性。例如,可以用非对称、分级DSU141实施存储***,其中一些DSU141提供更快数据访问并且其他DSU141提供更慢数据访问(例如,以节省存储成本)。在一个实现方式中,在vvol未被绑定到任何PE(这可以通过检查vvol的在连接数据库312中的条目的参考计数来确定)时,存储***可以向更慢和/或更廉价类型的物理存储装置迁移vvol。然后,一旦将vvol绑定到PE,则存储***可以向更快类型的物理存储装置迁移vvol。应当认识到,可以通过改变vvol数据库314中的组成给定的vvol的容器位置的有序列表的一个或者多个元素并且更新容器数据库316的元数据分节中的对应盘区分配位图来实现这样的迁移。
向PE绑定和解绑定vvol使存储***管理器能够确定vvol活性。存储***管理器可以利用这一信息以对非IO服务(消极)和IO服务(活跃)vvol执行存储***销售商专属优化。例如,存储***管理器可以被配置用于如果vvol在消极状态中保持超出特定阈值时间则将它从低延时(高成本)SSD重新定位到中延时(低成本)硬驱动。
图11A和11B是根据一个实施例的用于向虚拟卷发出IO的方法步骤的流程图。图11A是用于从应用向原始块设备直接发出IO的方法步骤1100的流程图并且图11B是用于从应用通过文件***驱动器发出IO的方法步骤1120的流程图。
方法1100在步骤1102开始,其中应用(比如图5A-图5B中所示的应用512或者图5C-图5D中所示的VM571向原始块设备发出IO。在步骤1104,虚拟卷设备驱动器532或者565根据由应用发出的IO生成原始块级IO。在步骤1106,原始块设备的名称由虚拟卷设备驱动器532或者565转译成PE ID和SLLID(并且在运用图2B的存储设备的实施例中也由NFS客户端545或者585转译成NFS句柄)。在步骤1108,数据访问层540或者566执行将PE ID和SLLID(并且在运用图2B的存储设备的实施例中也将NFS句柄)编码成原始块级IO。然后,在步骤1110,HBA/NIC发出原始块级IO。
对于非VM应用(比如图5A-图5B中所示的应用512),方法1120在步骤1121开始。在步骤1121,应用向在基于vvol的块设备上存储的文件发出IO。然后,在步骤1122,文件***驱动器(例如,文件***驱动器510)根据文件IO生成块级IO。在步骤1122之后,执行与步骤1106、1108和1110相同的步骤1126、1128和1130。
对于VM应用(比如图5C-图5D中所示的VM571),方法1120在步骤1123开始。在步骤1123,VM向它的虚拟盘发出IO。然后,在步骤1124,这一IO例如由SCSI虚拟化层563转译成文件IO。文件***驱动器(例如,VMFS驱动器564)然后在步骤1125根据文件IO生成块级IO。在步骤1125之后,执行与步骤1106、1108和1110相同的步骤1126、1128和1130。
图12是根据一个实施例的用于在存储***执行IO的方法步骤的流程图。在步骤1210,通过在存储***中配置的PE之一接收由计算机***发出的IO。IO管理器304在步骤1212解析IO。在步骤1212之后,如果存储***群集是图2A中所示类型,则由IO管理器304执行步骤1214a,并且如果存储***群集是图2B中所示类型,则由IO管理器304执行步骤1214b。在步骤1214a,IO管理器304从解析的IO提取SLLID并且访问连接数据库312以确定与PE ID和提取的SLLID对应的vvol ID。在步骤1214b,IO管理器304从解析的IO提取NFS句柄并且使用PE ID和NFS句柄作为SLLID来标识vvol。在步骤1214a和1214b之后执行步骤1216。在步骤1216,卷管理器306和容器管理器308分别访问vvol数据库314和容器数据库316以获得将对其执行IO的物理存储位置。然后,在步骤1218,数据访问层310对在步骤1216获得的物理存储位置执行IO。
在一些情形中,应用(应用512或者VM571)、管理服务器610和/或存储***管理器可以确定vvol到特定PE的绑定比如在PE由于太多绑定而变成超负荷时经历问题。作为解决这样的问题的方式,即使在IO命令被引向vvol之时,存储***管理器仍然可以将绑定的vvol重新绑定到不同PE。图13是根据一个实施例的用于使用重新绑定API来发出和执行vvol重新绑定请求的方法步骤1300的流程图。
如所示,方法1300在步骤1302开始,其中存储***管理器确定应当将vvol绑定到与vvol当前被绑定到的第一PE不同的第二PE。在步骤1304,存储***管理器经由带外路径向计算机***(例如,计算机***103)发出对于重新绑定vvol的请求,该计算机***运行向vvol发出IO的应用。在步骤1306,计算机***103从存储***管理器接收重新绑定请求,并且作为响应,发出对于将vvol绑定到新PE的请求。在步骤1308,存储***管理器接收重新绑定请求,并且作为响应,将vvol绑定到新PE。在步骤1310,存储***管理器如以上结合图10描述的那样向计算机***传输vvol现在也被绑定到的新PE的ID和用于访问vvol的SLLID。
在步骤1312,计算机***从存储***管理器接收新PE ID和SLLID。在块设备数据库533或者580中,初始地将新PE连接的活跃位设置成1,这意味着已经建立了经由新PE的用于vvol的新IO会话。计算机***也将第一PE连接的活跃位设置成0,这表示不能通过这一PE连接向vvol发出更多IO。应当认识到,不应在去激活时立即解绑定这一PE连接,因为可能有通过这一PE连接的向vvol的IO,这些IO可能在飞行中,即,被发出但是未完成。因此,在步骤1314,计算机***访问块设备数据库533或者580以查看是否已经完成了通过第一PE连接向vvol发出的所有“在飞行中的命令”(CIF),即,是否CIF=0。计算机***在执行步骤1318之前等待CIF变成零。同时,通过新PE发出向vvol的附加IO,因为已经将新PE连接的活跃位设置成1。在CIF达到零时,执行步骤1318,其中向存储***管理器发出对于解绑定第一PE连接的请求。然后,在步骤1320,存储***管理器从第一PE解绑定vvol。计算机***也在步骤1324通过新PE向vvol发出所有附加IO。
图14是根据一个实施例的虚拟卷的生命周期的概念图。图14中所示的所有命令(即,创建、快照、克隆、绑定、解绑定、扩展和删除)形成vvol管理命令集,并且通过以上结合图6描述的插件612、622可访问。如所示,在作为以下命令——创建vvol、快照vvol或者克隆vvol——中的任何命令的结果生成vvol时,生成的vvol在“消极”状态中保持,其中vvol未被绑定到特定PE,并且因此不能接收IO。此外,在vvol在消极状态中时执行以下命令——快照vvol、克隆vvol或者扩展vvol——中的任何命令时,原有vvol和新创建的vvol(如果有)在消极状态中保持。也如所示,当在消极状态中的vvol被绑定到PE时,vvol进入“活跃”状态。反言之,在从PE解绑定活跃vvol时,vvol进入消极状态,这假设vvol未被绑定到任何附加PE。当vvol在活跃状态中时执行以下命令——快照vvol、克隆vvol、扩展vvol或者重新绑定vvol——中的任何命令时,原有vvol在活跃状态中保持,并且新创建的vvol(如果有)在消极状态中保持。
如以上描述的那样,VM可以具有多个虚拟盘,并且为每个虚拟盘创建分离的vvol。VM也具有描述VM的配置的元数据文件。元数据文件包括VM配置文件、VM日志文件、盘描述符文件、VM交换文件等,每个盘描述符文件用于VM的虚拟盘中的每个相应虚拟盘。用于虚拟盘的盘描述符文件包含涉及虚拟盘的信息,比如它的vvol ID、它的大小、是否瘦供应虚拟盘和为虚拟盘创建的一个或者多个快照的标识等。VM交换文件提供存储***上的VM的交换空间。在一个实施例中,在vvol中存储这些VM配置文件,并且这一vvol这里被称为元数据vvol。
图15是根据一个实施例的用于供应VM的方法步骤的流程图。在这一实施例中,使用管理服务器610、主控VM的计算机***(例如,图5C中所示的计算机102(下文称为“主机计算机”))和图2A的存储***群集,特别地为存储***管理器131、132或者135。如所示,存储***管理器在步骤1502接收对于供应VM的请求。这可以是在使用与管理服务器610的适当用户接口的VM管理员向管理服务器610发出用于供应具有某个大小和存储能力简档的VM的命令时生成的请求。响应于该命令,在步骤1504,管理服务器610发起用于用以上结合图8描述的方式创建用于包含VM的元数据的vvol(下文称为“元数据vvol”)的方法,存储***管理器在步骤1508按照该方法创建元数据vvol并且向管理服务器610返回元数据vvol的vvol ID。在步骤1514,管理服务器610向主控VM的计算机***注册回元数据vvol的vvol ID。在步骤1516,主机计算机发起用于用以上结合图10描述的方式将元数据vvol绑定到PE的方法,存储***管理器在步骤1518按照该方法将元数据vvol绑定到PE并且向主机计算机返回PE ID和SLLID。
在步骤1522,主机计算机使用向主机计算机的操作***中的“创建设备”调用来创建元数据vvol的块设备实例。然后,在步骤1524,主机计算机在块设备上创建文件***(例如,VMFS),响应于这一点返回文件***ID(FSID)。主机计算机在步骤1526装配具有返回的FSID的文件***,并且向与这一文件***关联的名称空间中存储VM的元数据。元数据的示例包括VM日志文件、盘描述符文件和VM交换文件,每个盘描述符文件用于VM的虚拟盘中的每个相应虚拟盘。
在步骤1528,主机计算机发起用于用以上结合图8描述的方式为VM的虚拟盘中的每个虚拟盘创建vvol(每个这样的vvol这里被称为“数据vvol”)的方法,存储***管理器在步骤1530按照该方法创建数据vvol并且向主机计算机返回数据vvol的vvol ID。在步骤1532,主机计算机在用于虚拟盘的盘描述符文件中存储数据vvol的ID。该方法以在已经为VM的所有虚拟盘创建了数据vvol之后解绑定元数据vvol(未示出)作为结束。
图16A是用于在已经以结合图15描述的方式供应了VM之后使VM通电的方法步骤的流程图。图16B是在已经使VM通电之后使VM断电的方法步骤的流程图。这两种方法由用于VM的主机计算机执行。
当在步骤1608接收VM通电命令时,在步骤1610取回与VM对应的元数据vvol。然后,在步骤1612,元数据vvol经历如以上结合图10描述的绑定过程。在步骤1614在元数据vvol上装配文件***,从而使得可以在步骤1616读取用于数据vvol的元数据文件(特别地为盘描述符文件)并且获得数据vvol ID。数据vvol然后在步骤1618逐个经历如以上结合图10描述的绑定过程。
当在步骤1620接收VM断电命令时,在块设备数据库(例如,图5C的块设备数据库580)标记VM的数据vvol为不活跃,并且主机计算机等待与数据vvol中的每个vvol关联的CIF达到零(步骤1622)。在与每个数据vvol关联的CIF达到零时,主机计算机在步骤1624请求存储***解绑定该数据vvol。在与所有数据vvol关联的CIF达到零之后,在步骤1626在块设备数据库中标记元数据为不活跃。然后,在步骤1628,在与元数据vvol关联的CIF达到零时,主机计算机在步骤1630请求解绑定元数据vvol。
图17和图18是用于重新供应VM的方法步骤的流程图。在这里所示的示例中,图17是用于扩展VM的vvol(特别地为用于VM的虚拟盘的数据vvol)的大小的在主机计算机上执行的方法步骤的流程图,并且图18是用于在存储容器之间移动VM的vvol的在存储***中执行的方法步骤的流程图。
用于扩展用于VM的虚拟盘的数据vvol的大小的方法在步骤1708开始,其中主机计算机确定VM是否被通电。如果主机计算机在步骤1708确定VM未被通电,则主机计算机在步骤1710取回与VM对应的元数据vvol的ID。然后,由主机计算机在步骤1712发起用于元数据vvol的绑定过程。在绑定之后,在步骤1714,主机计算机在元数据vvol上装配文件***并且从用于虚拟盘的盘描述符文件取回与虚拟盘对应的数据vvol的ID,该盘描述符文件是在元数据vvol上装配的文件***中的文件。然后,在步骤1716,主机计算机在步骤1716向存储***发送扩展vvol API调用,其中扩展vvol API调用包括数据vvol的ID和数据vvol的新大小。
如果VM被通电,则主机计算机在步骤1715取回VM的待扩展的虚拟盘的数据vvol的ID。应当从图16A的方法认识到,可以从与VM的虚拟盘关联的盘描述符文件获得这一ID。然后,在步骤1716,主机计算机在步骤1716向存储***发送扩展vvol API调用,其中扩展vvol API调用包括数据vvol的ID和数据vvol的新大小。
扩展vvol API调用造成在存储***中更新vvol数据库和容器数据库(例如,图3的vvol数据库314和容器数据库316)以反映vvol的增加的地址空间。在接收扩展vvol API调用已经完成的确认时,主机计算机在步骤1718用新大小更新用于VM的虚拟盘的盘描述符文件。然后,在步骤1720,主机计算机确定VM是否被通电。如果不是,则主机计算机在步骤1722拆卸文件***并且向存储***发送对于解绑定元数据vvol的请求。在另一方面,如果VM被通电,则该方法终止。
用于将VM的当前绑定到PE的vvol从源存储容器移向目的地存储容器(其中源存储容器和目的地存储容器二者在相同存储***管理器的范围内)的方法在步骤1810开始,其中接收源和目的地存储容器的容器ID(分别为SC1和SC2)以及待移动的vvol的vvol ID。然后,在步骤1812,更新vvol数据库(例如,图3的vvol数据库314)和容器数据库(例如,图3的容器数据库316)的盘区分配位图如下。首先,存储***管理器从SC1的在容器数据库316中的条目去除在SC1中的vvol盘区,并且然后通过修改SC2的在容器数据库316中的条目来向SC2指派这些盘区。在一个实施例中,存储***可以通过向SC1指派新纺锤体盘区来补偿SC1中的(由于去除vvol存储盘区的)存储容量损失,并且通过从SC2去除一些未使用的纺锤体盘区来弥补SC2中的(由于添加vvol存储盘区的)存储容量增加。在步骤1814,存储***管理器确定当前绑定的PE是否能够最优地服务于向vvol的新位置的IO。在当前PE不能服务于向vvol的新位置的IO时的示例实例是如果存储管理员已经静态配置了存储***管理器以向来自不同客户并且因此来自不同存储容器的vvol指派不同PE。如果当前PE不能服务于向vvol的IO,则vvol在步骤1815经历以上结合图13描述的重新绑定过程(和对连接数据库(例如,图3的连接数据库312)的关联的改变)。在步骤1815之后,执行步骤1816,其中向主机计算机返回成功移动完成的确认。如果存储***管理器在步骤1814确定当前PE能够服务于向vvol的新位置的IO,则绕过步骤1815并且接着执行步骤1816。
当在不兼容存储容器之间(例如,在不同制造商的存储设备中创建的存储容器之间)移动vvol时,除了对容器数据库316、vvol数据库314和连接数据库312的改变之外还在存储容器之间执行数据移动。在一个实施例中,运用在通过这里引用将全部内容结合于此、提交于2008年5月29日并且名称为“Offloading StorageOperations to Storage Hardware”的第12/129,323号美国专利申请中描述的数据移动技术。
图19是用于从模板VM克隆VM的在主机计算机和存储***中执行的方法步骤的流程图。这一方法在步骤1908开始,其中主机计算机向存储***发送对于为新VM创建元数据vvol的请求。在1910,存储***根据以上结合图8描述的方法为新VM创建元数据并且向主机计算机返回新元数据vvol ID。然后,在步骤1914,对于属于模板VM的所有数据vvol ID从主机计算机经由带外路径601向存储***发出克隆vvol API调用。在步骤1918,存储***管理器检查以查看模板VM和新VM的数据vvol是否兼容。应当认识到,如果克隆在不同制造商的存储***中创建的存储容器之间出现,则数据vvol可能不兼容。如果存在兼容性,则执行步骤1919。在步骤1919,存储***管理器通过生成新数据vvol ID、更新容器数据库316中的分配位图并且向vvol数据库314添加新vvol条目来创建新数据vvol并且向新VM的数据vvol复制在模板VM的数据vvol中存储的内容。在步骤1920,存储***管理器向主机计算机返回新数据vvol ID。接收新数据vvol ID向主机计算机提供数据vvol克隆完成而无错误的确认。然后,在步骤1925,主机计算机向新VM的元数据vvol发出IO以用新生成的数据vvol ID更新元数据文件,特别地为盘描述符文件。由存储***在步骤1926执行由主机计算机向存储***发出的IO,作为这一点的结果,用新生成的数据vvol ID更新新VM的盘描述符文件。
如果存储***管理器在步骤1918确定模板VM和新VM的数据vvol不兼容,则向主机计算机返回错误消息。在接收这一错误消息时,主机计算机在步骤1921向存储***发出创建vvol API调用以创建新数据vvol。在步骤1922,存储***管理器通过生成新数据vvolID、更新容器数据库316中的分配位图并且向vvol数据库314添加新vvol条目来创建新数据vvol,并且向主机计算机返回新数据vvolID。在步骤1923,主机计算机根据在通过这里引用将全部内容结合于、提交于2009年1月21日并且名称为“Data Mover for ComputerSystem”的第12/356,694号美国专利申请中描述的技术执行数据移动(步骤1923)。在步骤1923之后,如以上描述的那样执行步骤1925和1926。
图20是根据另一实施例的用于供应VM的方法步骤的流程图。在这一实施例中,使用管理服务器610、主控VM的计算机***(例如,图5D中所示的计算机***102(下文称为“主机计算机”))和图2B的存储***群集(特别地为存储***管理器131或者存储***管理器132或者存储***管理器135)。如所示,在步骤2002接收对于供应VM的请求。这可以是在使用与管理服务器610的适当用户接口的VM管理员向管理服务器610发出用于供应具有某个大小和存储能力简档的VM的命令时生成的请求。响应于该命令,在步骤2004,管理服务器610发起用于用以上结合图8描述的方式创建用于包含VM的元数据的vvol(特别地为元数据vvol)的方法,存储***管理器在步骤2008按照该方法创建元数据vvol(该元数据vvol是在NAS设备中的文件),并且向管理服务器610返回元数据vvol ID。在步骤2020,管理服务器610向主机计算机注册回元数据vvol的vvol ID。在步骤2022,主机计算机向存储***发出对于元数据vvol ID的绑定请求,响应于该绑定请求,存储***在步骤2023分别返回IP地址和目录路径作为PE ID和SLLID。在步骤2024,主机计算机在指定的IP地址和目录路径装配目录,并且在装配的目录中存储元数据文件。在使用NFS的实施例中,NFS客户端545或者585可以将给定的IP地址和目录路径分解成NFS句柄以便向这样的目录发出NFS请求。
在步骤2026,主机计算机发起用于用以上结合图8描述的方式为VM的虚拟盘中的每个虚拟盘创建数据vvol的方法,存储***管理器在步骤2030按照该方法创建数据vvol并且向主机计算机返回数据vvol的vvol ID。在步骤2032,主机计算机在用于虚拟盘的盘描述符文件中存储数据vvol的ID。该方法以在已经对于VM的所有虚拟盘创建了数据vvol之后解绑定元数据vvol(未示出)作为结束。
如以上结合图8描述的那样,在从存储容器创建新vvol并且未为新vvol显式地指定存储能力简档时,新vvol将继承与存储容器关联的存储能力简档。可以从若干不同简档之一选择与存储容器关联的存储能力简档。例如,如图21中所示,不同简档包括生产(prod)简档2101、开发(dev)简档2102和测试简档2103(这里被统称为“简档2100”)。应当认识到,可以定义许多其他简档。如所示,特定简档的每个简档条目为固定类型或者可变类型,并且具有名称和与它关联的一个或者多个值。固定类型的简档条目具有固定数目的可选择项目。例如,可以将简档条目“复制”设置成真或者假。对照而言,可变类型的简档条目无预定义选择。作为替代,为可变类型的简档条目设置默认值和值范围,并且用户可以选择在范围内的任何值。如果未指定值,则使用默认值。在图21中所示的示例简档2100中,可变类型的简档条目具有被逗号分离的三个数。第一个数是指定的范围的更低端,并且第二个数是指定的范围的更高端。第三个数是默认值。因此,将复制vvol,该vvol继承在生产简档2101中定义的存储能力简档(复制.值=真),并且可以在范围0.1到24小时(默认为1小时)中定义用于复制的恢复时间目标(RTO)。此外,对于这一vvol(复制.值=真)允许快照。保持的快照数目在范围1至100中,默认为1,并且快照频率在范围每小时一次至每24小时一次中,默认为每小时一次。SnapInherit列指示在快照给定的vvol以创建作为衍生vvol的新vvol时是否应当向衍生vvol传播给定的简档属性(及其值)。在生产简档2101的示例中,可以用生成简档2101向给定的vvol的快照vvol传播仅前两个简档条目(复制和RTO)。快照vvol的所有其他属性的值将被设置成在简档中指定的默认值。换言之,这些其他属性在给定的vvol上的任何定制(例如,快照频率的非默认值)将由于它们的对应SnapInherit列为假而不会被向快照vvol传播。简档也包含其他列(比如CloneInherit(未示出))和ReplicaInherit(未示出),这两列控制分别向给定的vvol的克隆和复制传播哪些属性值。
在根据图4的方法创建存储容器时,可以设置可以对于从存储容器创建的vvol定义的存储能力简档的类型。图21中的流程图图示图4中所示的用于创建存储容器的方法,其中在步骤412与413之间***步骤2110。在步骤2110,存储管理员选择用于创建的存储容器的简档2100中的一个或者多个简档。例如,为一个客户创建的存储容器可以与生产简档2101和开发简档2102关联,从而使得为生产类型的vvol将如情况可以是的那样继承用默认值或者客户指定的值在生产简档2101中定义的存储能力简档,并且为开发类型的vvol将如情况可以是那样继承用默认值或者客户指定的值在开发简档2102中定义的存储能力简档。
图22是图示用于创建vvol并且定义用于vvol的存储能力简档的由存储***管理器131、132或者135执行的方法步骤的流程图。图22的方法步骤(特别地为方法步骤2210、2212、2218和2220)分别对应于图8中所示的步骤806、810、812和814。此外,图22的方法步骤包括步骤2214、2215和2216,这些步骤定义用于创建的vvol的存储能力简档。
在步骤2214,存储***管理器确定是否已经在对于创建vvol的请求中指定了将在存储能力简档中使用的值。如果它们不是,则存储***管理器在步骤2215运用与vvol的存储容器关联的存储能力简档作为vvol的具有默认值的存储能力简档。如果已经指定了将在存储能力简档中使用的值,则存储***管理器在步骤2216运用与vvol的存储容器关联的存储能力简档作为vvol的具有指定的值而不是默认值的存储能力简档。
在一个实施例中,在vvol数据库314中存储vvol的存储能力简档为关键字-值对。一旦已经定义了并且在vvol数据库314中存储了vvol的存储能力简档为关键字-值对,并且只要与复制和快照有关的属性和值如图21的示例简档中所示是这一简档的部分,存储***就能够执行用于vvol的复制和快照而无需由主机计算机发出的进一步指令。
图23是图示用于从母vvol创建快照的由存储***管理器131、132或者135执行的方法步骤的流程图。在一个实施例中,运用快照跟踪数据结构以根据在给定的vvol的存储能力简档中的快照定义调度快照。在达到用于快照的调度的时间时,存储***管理器在步骤2310从快照跟踪数据结构取回vvol ID。然后,在步骤2312,存储***管理器生成用于快照的唯一vvol ID。存储***管理器在步骤2315运用母vvol(即具有从快照跟踪数据结构取回的vvol ID的vvol)的存储能力简档作为快照vvol的存储能力简档。应当注意,由于这是由存储***驱动的自动化简档驱动的快照过程,所以用户未获得用于指定将在快照vvol的存储能力简档中使用的定制值的机会。在步骤2318,存储***管理器通过更新容器数据库316中的分配位图以及向vvol数据库314添加用于快照vvol的新vvol条目在母vvol的存储容器内创建快照vvol。然后,在步骤2320,存储***管理器通过调度用于生成用于母vvol的下一快照的时间来更新快照跟踪数据结构。应当认识到,存储***管理器必须对于所有如下vvol并行维护快照跟踪数据结构并且执行图23的方法步骤,这些vvol的存储能力简档规定调度的快照。
在用以上描述的方式创建快照之后,更新在vvol数据库314中存储的关键字-值对以指示快照vvol为类型=快照。同样,在其中为快照维护生成数(每当拍摄或者设置快照时递增生成数或者将其设置成等于日期+时间)的实施例中,存储生成数为关键字-值对。也在快照vvol条目中存储快照vvol的母vvol ID为关键字-值对。作为结果,主机计算机可以向vvol数据库314查询与特定vvol ID对应的快照。也有可能让主机计算机向vvol数据库发出对于与特定vvol ID和特定生成数对应的快照的查询。
这里描述的各种实施例可以运用各种由计算机实施的操作,这些操作涉及到在计算机***中存储的数据。例如,这些操作通常但是未必可以需要物理操纵物理数量,这些数量可以采用电或者磁信号的形式,其中能够存储、传送、组合、比较或者以其他方式操纵它们或者它们的表示。另外,经常在术语(比如产生、标识、确定或者比较)中引用这样的操纵。这里描述的任何形成一个或者多个实施例的部分的操作可以是有用的机器操作。此外,一个或者多个实施例也涉及一种用于执行这些操作的设备或者装置。该装置可以被特别地构造用于具体的所需目的,或者它可以是通用计算机,该通用计算机由在计算机中存储的计算机程序有选择地激活或者配置。特别地,各种通用机器可以与根据这里的教导编写的计算机程序一起被使用,或者构造更专门化的装置以执行所需操作可以更方便。
可以用包括手持设备、微处理器***、基于微处理器或者可编程的客户电子装置、小型计算机、大型机计算机等的其他计算机***配置实现这里描述的各种实施例。
可以将一个或者多个实施例实施为一个或者多个计算机程序或者为在一个或者多个计算机可读介质中体现的一个或者多个计算机程序模块。术语计算机可读介质是指可以存储数据的任何数据存储设备,该数据随后可以向计算机***输入。计算机可读介质可以基于用于以使计算机程序能够被计算机读取的方式体现计算机程序的任何现有或者以后开发的技术。计算机可读介质的示例包括硬驱动、网络附着存储装置(NAS)、只读存储器、随机存取存储器(例如,闪存设备)、CD(紧致盘)、CD-ROM、CD-R或者CD-RW、DVD(数字万用盘)、磁带以及其他光学和非光学数据存储设备。也可以通过耦合网络的计算机***分发计算机可读介质,从而使得以分布式方式存储和执行计算机可读代码。
虽然为了理解清楚而已经用一些细节描述一个或者多个实施例,但是将清楚的是,可以在权利要求的范围内进行某些改变和修改。例如,运用SCSI作为用于SAN设备的协议以及使用NFS作为用于NAS设备的协议。可以使用SCSI协议的任何备选(比如光纤信道),并且可以使用NFS协议的任何备选(比如CIFS(公共因特网文件***)协议)。因而,描述的实施例将被视为例示性而非限制性,并且权利要求的范围将不限于这里给出的细节,而是可以在权利要求的范围和等效含义内被修改。在权利要求中,单元和/或步骤除非在权利要求中明确声明否则并不意味着任何特定操作顺序。
此外,尽管描述的虚拟化方法已经主要假设虚拟机呈现与特定硬件***一致的接口,但是可以结合未与任何特定硬件***直接对应的虚拟化使用描述的方法。根据各种实施例的虚拟化***都被设想,这些实施例被实施为主控的实施例、非主控的实施例或者为往往模糊在二者之间的区分的实施例。另外,可以全部或者部分地在硬件中实施各种虚拟化操作。例如,硬件实现方式可以将查找表用于修改存储访问请求以使非盘数据安全。
许多变化、修改、添加和改进无论虚拟化程度如何都是可能的。虚拟化软件因此可以包括执行虚拟化功能的主机、控制台或者客户操作***的部件。可以提供多个实例以用于这里被描述为单个实例的部件、操作或者结构。最后,在各种部件、操作和数据存储库之间的边界有些任意,并且在具体例示性配置的上下文中例示特定操作。其他功能分配被设想并且可以落入这里描述的实施例的范围内。一般而言,在示例配置中被呈现为分离部件的结构和功能可以被实施为组合的结构或者部件。类似地,被呈现为单个部件的结构和功能可以被实施为分离部件。这些和其他变化、修改、添加和改进可以落入所附权利要求的范围内。
Claims (21)
1.一种从包括物理数据存储单元(DSU)的存储***创建逻辑存储卷的方法,所述方法包括:
创建具有地址空间的逻辑存储容器,所述地址空间映射到所述DSU的存储位置;以及
创建多个逻辑存储卷,每个逻辑存储卷具有地址空间,所述地址空间映射到所述逻辑存储容器的所述地址空间,并且每个逻辑存储卷是IO被引向的存储对象。
2.根据权利要求1所述的方法,其中所述逻辑存储卷的存储能力简档不相同。
3.根据权利要求1所述的方法,其中默认存储能力简档与所述存储容器关联,并且如果在创建逻辑存储卷期间未为所述逻辑存储卷定义定制存储能力简档,则所述逻辑存储卷的存储能力简档继承所述默认存储能力简档。
4.根据权利要求1所述的方法,其中所述逻辑存储容器跨越在物理上分离的存储***中容纳的、并且由所述存储***控制的DSU。
5.根据权利要求1所述的方法,还包括:
创建具有地址空间的第二逻辑存储容器,所述地址空间映射到所述DSU的存储位置;以及
设置权限级别,所述权限级别定义许可第一用户集合在所述第一存储容器中创建逻辑存储卷,并且许可与所述第一用户集合不同的第二用户集合在所述第二存储容器中创建逻辑存储卷。
6.根据权利要求1所述的方法,还包括:
维护第一数据结构,所述第一数据结构将所述存储容器的所述地址空间映射到所述DSU的存储位置;以及
维护第二数据结构,所述第二数据结构将所述逻辑存储卷中的每个逻辑存储卷的所述地址空间映射到所述逻辑存储容器的所述地址空间。
7.根据权利要求1所述的方法,还包括:
更新所述第一数据结构和所述第二数据结构,从而使得扩展所述逻辑存储卷之一的大小。
8.根据权利要求1所述的方法,还包括:
克隆所述逻辑存储卷之一,从而使得在相同逻辑存储容器内包含克隆的所述逻辑存储卷。
9.根据权利要求1所述的方法,还包括:
克隆所述逻辑存储卷之一,从而使得在不同逻辑存储容器内包含克隆的所述逻辑存储卷。
10.根据权利要求1所述的方法,还包括:
创建具有地址空间的第二逻辑存储容器,所述地址空间映射到所述DSU的存储位置;以及
将从所述第一逻辑存储容器创建的逻辑存储卷移向所述第二逻辑存储容器。
11.根据权利要求1所述的方法,还包括:
在所述存储***中配置协议端点。
12.根据权利要求11所述的方法,其中所述协议端点是LUN、并且由用于所述LUN的世界范围名称标识。
13.根据权利要求11所述的方法,其中所述协议端点是在所述存储***中配置的装配点,并且由所述存储***的IP地址和所述装配点标识。
14.根据权利要求1所述的方法,还包括:
在数据结构中维护用于所述逻辑存储卷中的每个逻辑存储卷的快照参数,所述数据结构由所述存储***维护;以及
根据所述快照参数对所述逻辑存储卷执行快照。
15.根据权利要求14所述的方法,其中所述快照参数包括快照频率和待保持的快照的数目。
16.一种存储***群集,包括:
第一存储***和第二存储***,每个存储***具有物理数据存储单元(DSU)集合;以及
分布式存储***管理器,被配置用于创建逻辑存储容器,所述逻辑存储容器映射到所述第一存储***和所述第二存储***二者的DSU的存储位置,并且从所述逻辑存储容器创建多个逻辑存储卷。
17.根据权利要求16所述的存储***群集,还包括:
第一数据结构,所述第一数据结构维护所述存储容器的地址空间到所述DSU的存储位置的映射;以及
第二数据结构,所述第二数据结构维护所述逻辑存储卷中的每个逻辑存储卷的地址空间到所述逻辑存储容器的所述地址空间的映射。
18.根据权利要求17所述的存储***群集,其中所述分布式存储***管理器在创建或者删除逻辑存储卷时更新所述第一数据结构和所述第二数据结构。
19.根据权利要求16所述的存储***群集,还包括被配置用于所述第一存储***和所述第二存储***中的每个存储***的至少一个协议端点。
20.根据权利要求16所述的存储***群集,其中所述第一存储***和所述第二存储***是基于SCSI协议的存储***。
21.根据权利要求16所述的存储***群集,其中所述第一存储***和所述第二存储***是基于NFS协议的存储***。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/219,358 | 2011-08-26 | ||
US13/219,358 US8775773B2 (en) | 2011-08-26 | 2011-08-26 | Object storage system |
PCT/US2012/051600 WO2013032765A1 (en) | 2011-08-26 | 2012-08-20 | Data storage system exporting logical volumes as storage objects |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103765371A true CN103765371A (zh) | 2014-04-30 |
CN103765371B CN103765371B (zh) | 2017-06-09 |
Family
ID=46970386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280041463.1A Active CN103765371B (zh) | 2011-08-26 | 2012-08-20 | 导出作为存储对象的逻辑卷的数据存储*** |
Country Status (6)
Country | Link |
---|---|
US (2) | US8775773B2 (zh) |
EP (1) | EP2715511B1 (zh) |
JP (2) | JP2014529803A (zh) |
CN (1) | CN103765371B (zh) |
AU (2) | AU2012300507A1 (zh) |
WO (1) | WO2013032765A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446275A (zh) * | 2016-10-21 | 2017-02-22 | 国云科技股份有限公司 | 一种支持文件***扩容的容器实现方法 |
CN107003935A (zh) * | 2014-11-20 | 2017-08-01 | 国际商业机器公司 | 优化数据库去重 |
CN107391318A (zh) * | 2017-09-18 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种容器数据持久化的方法、***及装置 |
CN107632783A (zh) * | 2017-09-14 | 2018-01-26 | 快云信息科技有限公司 | 将分布式存储***接入容器的方法、装置、可读存储介质 |
CN108038384A (zh) * | 2017-11-29 | 2018-05-15 | 北京京航计算通讯研究所 | 一种高安全的集群共享存储虚拟化方法 |
CN108984420A (zh) * | 2017-05-31 | 2018-12-11 | 希捷科技有限公司 | 管理非易失性存储器(nvm)中的多个名称空间 |
CN110008692A (zh) * | 2019-03-22 | 2019-07-12 | 联想(北京)有限公司 | 一种信息处理方法、装置与存储介质 |
CN111125642A (zh) * | 2018-10-31 | 2020-05-08 | 北京数聚鑫云信息技术有限公司 | 一种管理api的方法、装置、存储介质及计算机设备 |
CN113630450A (zh) * | 2021-07-26 | 2021-11-09 | 深圳市杉岩数据技术有限公司 | 分布式存储***的访问控制方法及分布式存储*** |
WO2023143033A1 (zh) * | 2022-01-30 | 2023-08-03 | 华为技术有限公司 | 一种访问存储节点的方法、装置及计算机设备 |
CN117389713A (zh) * | 2023-12-13 | 2024-01-12 | 苏州元脑智能科技有限公司 | 存储***应用业务数据迁移方法、装置、设备及介质 |
Families Citing this family (125)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9134922B2 (en) | 2009-03-12 | 2015-09-15 | Vmware, Inc. | System and method for allocating datastores for virtual machines |
US8595460B2 (en) | 2011-08-26 | 2013-11-26 | Vmware, Inc. | Configuring object storage system for input/output operations |
US8769174B2 (en) | 2011-08-29 | 2014-07-01 | Vmware, Inc. | Method of balancing workloads in object storage system |
US9285992B2 (en) * | 2011-12-16 | 2016-03-15 | Netapp, Inc. | System and method for optimally creating storage objects in a storage system |
US9158828B1 (en) * | 2011-12-19 | 2015-10-13 | Emc Corporation | Techniques using associated object properties |
US8645662B2 (en) * | 2011-12-23 | 2014-02-04 | Oracle International Corporation | Sub-lun auto-tiering |
US8887655B2 (en) | 2012-01-25 | 2014-11-18 | Honeywell International Inc. | Valve actuator with position indicator extension |
US10302207B2 (en) | 2012-06-14 | 2019-05-28 | Honeywell International Inc. | Spring loaded HVAC damper |
US9664409B2 (en) | 2012-06-14 | 2017-05-30 | Honeywell International Inc. | HVAC damper system |
US10119721B2 (en) | 2012-06-14 | 2018-11-06 | Honeywell International Inc. | Standoff for use with an insulated HVAC duct |
US9032993B2 (en) | 2012-06-14 | 2015-05-19 | Honeywell International Inc. | Handle mechanism for an HVAC damper actuator |
US9703482B2 (en) | 2012-06-29 | 2017-07-11 | Vmware, Inc. | Filter appliance for object-based storage system |
US9304873B2 (en) * | 2012-08-23 | 2016-04-05 | Vmware, Inc. | Recovery system and method for recreating a state of a datacenter |
US9274817B1 (en) * | 2012-12-31 | 2016-03-01 | Emc Corporation | Storage quality-of-service control in distributed virtual infrastructure |
US9372726B2 (en) | 2013-01-09 | 2016-06-21 | The Research Foundation For The State University Of New York | Gang migration of virtual machines using cluster-wide deduplication |
US9141626B2 (en) * | 2013-03-14 | 2015-09-22 | Microsoft Technology Licensing, Llc | Volume having tiers of different storage traits |
US9262313B2 (en) | 2013-03-14 | 2016-02-16 | Microsoft Technology Licensing, Llc | Provisioning in heterogenic volume of multiple tiers |
US9116904B2 (en) | 2013-03-14 | 2015-08-25 | Microsoft Technology Licensing, Llc | File system operation on multi-tiered volume |
US9524300B2 (en) | 2013-03-14 | 2016-12-20 | Microsoft Technology Licensing, Llc | Heterogenic volume generation and use system |
WO2014151126A1 (en) * | 2013-03-15 | 2014-09-25 | Bracket Computing, Inc. | Multi-layered storage administration for flexible placement of data |
US9335932B2 (en) * | 2013-03-15 | 2016-05-10 | Bracket Computing, Inc. | Storage unit selection for virtualized storage units |
US9292331B2 (en) * | 2013-03-15 | 2016-03-22 | Bracket Computing, Inc. | Expansion of services for a virtual data center guest |
CN103297441A (zh) * | 2013-06-25 | 2013-09-11 | 福建伊时代信息科技股份有限公司 | 访问控制方法和装置 |
US9400792B1 (en) * | 2013-06-27 | 2016-07-26 | Emc Corporation | File system inline fine grained tiering |
WO2015029133A1 (ja) | 2013-08-27 | 2015-03-05 | 株式会社日立製作所 | ストレージシステム及びストレージシステム管理方法 |
US9515951B2 (en) * | 2013-11-15 | 2016-12-06 | Microsoft Technology Licensing, Llc | Computing system architecture that facilitates forming of customized virtual disks |
US20150169609A1 (en) * | 2013-12-06 | 2015-06-18 | Zaius, Inc. | System and method for load balancing in a data storage system |
US10941960B2 (en) | 2013-12-18 | 2021-03-09 | Ademco Inc. | HVAC actuator with position indicator |
US9732980B2 (en) | 2013-12-18 | 2017-08-15 | Honeywell International Inc. | HVAC actuator with range adjustment |
US9623523B2 (en) | 2013-12-18 | 2017-04-18 | Honeywell International Inc. | HVAC actuator with taping flange |
US9568207B2 (en) | 2013-12-18 | 2017-02-14 | Honeywell International Inc. | HVAC actuator with removable wire blocking tab |
US9423143B2 (en) | 2013-12-18 | 2016-08-23 | Honeywell International Inc. | HVAC actuator with light indicator |
USD728071S1 (en) | 2013-12-27 | 2015-04-28 | Honeywell International Inc. | HVAC actuator |
US9823842B2 (en) | 2014-05-12 | 2017-11-21 | The Research Foundation For The State University Of New York | Gang migration of virtual machines using cluster-wide deduplication |
WO2015191023A1 (en) | 2014-06-09 | 2015-12-17 | Hitachi, Ltd. | Method and apparatus of subsidiary volume management |
US10303380B2 (en) * | 2014-06-10 | 2019-05-28 | International Business Machines Corporation | Extent-level reserve and release for a direct access storage device (DASD) volumes |
US9990161B2 (en) | 2014-12-17 | 2018-06-05 | Vmware, Inc. | Consistent replication of virtual computing instance data |
CN105893139B (zh) * | 2015-01-04 | 2020-09-04 | 伊姆西Ip控股有限责任公司 | 在云存储环境中用于向租户提供存储服务的方法和装置 |
US9853873B2 (en) | 2015-01-10 | 2017-12-26 | Cisco Technology, Inc. | Diagnosis and throughput measurement of fibre channel ports in a storage area network environment |
US9734016B2 (en) * | 2015-02-24 | 2017-08-15 | Red Hat Israel, Ltd. | Secure live virtual machine guest based snapshot recovery |
US9900250B2 (en) | 2015-03-26 | 2018-02-20 | Cisco Technology, Inc. | Scalable handling of BGP route information in VXLAN with EVPN control plane |
CN104834604B (zh) * | 2015-04-22 | 2018-02-16 | 上海微小卫星工程中心 | 一种io地址到io对象快速映射方法及*** |
US10222986B2 (en) | 2015-05-15 | 2019-03-05 | Cisco Technology, Inc. | Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system |
US11588783B2 (en) | 2015-06-10 | 2023-02-21 | Cisco Technology, Inc. | Techniques for implementing IPV6-based distributed storage space |
US10778765B2 (en) | 2015-07-15 | 2020-09-15 | Cisco Technology, Inc. | Bid/ask protocol in scale-out NVMe storage |
US9881040B2 (en) | 2015-08-20 | 2018-01-30 | Vmware, Inc. | Tracking data of virtual disk snapshots using tree data structures |
US9892075B2 (en) | 2015-12-10 | 2018-02-13 | Cisco Technology, Inc. | Policy driven storage in a microserver computing environment |
US10719403B2 (en) * | 2016-01-31 | 2020-07-21 | Netapp Inc. | Recovery support techniques for storage virtualization environments |
JP6620595B2 (ja) * | 2016-02-25 | 2019-12-18 | 富士通株式会社 | 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法 |
US10904358B2 (en) | 2016-02-29 | 2021-01-26 | Red Hat, Inc. | Quality of service in a distributed system |
CN107196982B (zh) * | 2016-03-14 | 2021-01-22 | 阿里巴巴集团控股有限公司 | 一种用户请求的处理方法和装置 |
US10498726B2 (en) * | 2016-03-22 | 2019-12-03 | International Business Machines Corporation | Container independent secure file system for security application containers |
US10140172B2 (en) | 2016-05-18 | 2018-11-27 | Cisco Technology, Inc. | Network-aware storage repairs |
US20170351639A1 (en) | 2016-06-06 | 2017-12-07 | Cisco Technology, Inc. | Remote memory access using memory mapped addressing among multiple compute nodes |
US10664169B2 (en) | 2016-06-24 | 2020-05-26 | Cisco Technology, Inc. | Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device |
US11563695B2 (en) | 2016-08-29 | 2023-01-24 | Cisco Technology, Inc. | Queue protection using a shared global memory reserve |
US11119870B2 (en) * | 2016-09-21 | 2021-09-14 | Nec Corporation | Calculator, cluster management system, method, and non-transitory computer readable medium |
US10545914B2 (en) | 2017-01-17 | 2020-01-28 | Cisco Technology, Inc. | Distributed object storage |
US10243823B1 (en) | 2017-02-24 | 2019-03-26 | Cisco Technology, Inc. | Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks |
US10713203B2 (en) | 2017-02-28 | 2020-07-14 | Cisco Technology, Inc. | Dynamic partition of PCIe disk arrays based on software configuration / policy distribution |
US10254991B2 (en) | 2017-03-06 | 2019-04-09 | Cisco Technology, Inc. | Storage area network based extended I/O metrics computation for deep insight into application performance |
CN108733312B (zh) * | 2017-04-17 | 2021-05-28 | 伊姆西Ip控股有限责任公司 | 存储管理方法和设备 |
US10303534B2 (en) | 2017-07-20 | 2019-05-28 | Cisco Technology, Inc. | System and method for self-healing of application centric infrastructure fabric memory |
US10983964B1 (en) * | 2017-07-31 | 2021-04-20 | EMC IP Holding Company LLC | Managing file system tailored for cluster deployment |
US10789017B1 (en) | 2017-07-31 | 2020-09-29 | EMC IP Holding Company LLC | File system provisioning and management with reduced storage communication |
US11947489B2 (en) | 2017-09-05 | 2024-04-02 | Robin Systems, Inc. | Creating snapshots of a storage volume in a distributed storage system |
US10579276B2 (en) | 2017-09-13 | 2020-03-03 | Robin Systems, Inc. | Storage scheme for a distributed storage system |
US10534549B2 (en) | 2017-09-19 | 2020-01-14 | Robin Systems, Inc. | Maintaining consistency among copies of a logical storage volume in a distributed storage system |
KR102406666B1 (ko) | 2017-09-20 | 2022-06-08 | 삼성전자주식회사 | 스냅샷 기능을 지원하는 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법 |
US10404596B2 (en) | 2017-10-03 | 2019-09-03 | Cisco Technology, Inc. | Dynamic route profile storage in a hardware trie routing table |
US10942666B2 (en) | 2017-10-13 | 2021-03-09 | Cisco Technology, Inc. | Using network device replication in distributed storage clusters |
US10782887B2 (en) | 2017-11-08 | 2020-09-22 | Robin Systems, Inc. | Window-based prority tagging of IOPs in a distributed storage system |
US10846001B2 (en) | 2017-11-08 | 2020-11-24 | Robin Systems, Inc. | Allocating storage requirements in a distributed storage system |
JP7006265B2 (ja) * | 2017-12-28 | 2022-01-24 | 富士通株式会社 | 情報処理装置,制御プログラムおよび情報処理方法 |
US11392363B2 (en) | 2018-01-11 | 2022-07-19 | Robin Systems, Inc. | Implementing application entrypoints with containers of a bundled application |
US10896102B2 (en) | 2018-01-11 | 2021-01-19 | Robin Systems, Inc. | Implementing secure communication in a distributed computing system |
US10628235B2 (en) | 2018-01-11 | 2020-04-21 | Robin Systems, Inc. | Accessing log files of a distributed computing system using a simulated file system |
US11099937B2 (en) | 2018-01-11 | 2021-08-24 | Robin Systems, Inc. | Implementing clone snapshots in a distributed storage system |
US10642697B2 (en) | 2018-01-11 | 2020-05-05 | Robin Systems, Inc. | Implementing containers for a stateful application in a distributed computing system |
US11582168B2 (en) | 2018-01-11 | 2023-02-14 | Robin Systems, Inc. | Fenced clone applications |
US11748203B2 (en) | 2018-01-11 | 2023-09-05 | Robin Systems, Inc. | Multi-role application orchestration in a distributed storage system |
US10846137B2 (en) | 2018-01-12 | 2020-11-24 | Robin Systems, Inc. | Dynamic adjustment of application resources in a distributed computing system |
US10845997B2 (en) | 2018-01-12 | 2020-11-24 | Robin Systems, Inc. | Job manager for deploying a bundled application |
US10579364B2 (en) | 2018-01-12 | 2020-03-03 | Robin Systems, Inc. | Upgrading bundled applications in a distributed computing system |
US10642694B2 (en) * | 2018-01-12 | 2020-05-05 | Robin Systems, Inc. | Monitoring containers in a distributed computing system |
US11074001B2 (en) | 2018-04-09 | 2021-07-27 | Red Hat, Inc. | Managing virtual-machine image cloning |
US10976938B2 (en) | 2018-07-30 | 2021-04-13 | Robin Systems, Inc. | Block map cache |
US11023328B2 (en) | 2018-07-30 | 2021-06-01 | Robin Systems, Inc. | Redo log for append only storage scheme |
US10599622B2 (en) | 2018-07-31 | 2020-03-24 | Robin Systems, Inc. | Implementing storage volumes over multiple tiers |
US10817380B2 (en) | 2018-07-31 | 2020-10-27 | Robin Systems, Inc. | Implementing affinity and anti-affinity constraints in a bundled application |
CN110875839B (zh) * | 2018-09-03 | 2022-04-19 | 中国电信股份有限公司 | 网络模型动态扩展方法和***、计算机可读存储介质 |
US10908848B2 (en) | 2018-10-22 | 2021-02-02 | Robin Systems, Inc. | Automated management of bundled applications |
US11036439B2 (en) | 2018-10-22 | 2021-06-15 | Robin Systems, Inc. | Automated management of bundled applications |
US10942821B1 (en) * | 2018-10-31 | 2021-03-09 | EMC IP Holding Company LLC | Method and apparatus for dynamic binding and unbinding thin logical storage volumes to snapshots of a file system |
US10620871B1 (en) | 2018-11-15 | 2020-04-14 | Robin Systems, Inc. | Storage scheme for a distributed storage system |
CN109582242B (zh) * | 2018-12-04 | 2022-05-06 | 北京和讯永源科技有限公司 | 级联存储阵列***的地址确定方法、装置、电子设备 |
US11086725B2 (en) | 2019-03-25 | 2021-08-10 | Robin Systems, Inc. | Orchestration of heterogeneous multi-role applications |
US11256434B2 (en) | 2019-04-17 | 2022-02-22 | Robin Systems, Inc. | Data de-duplication |
US10831387B1 (en) | 2019-05-02 | 2020-11-10 | Robin Systems, Inc. | Snapshot reservations in a distributed storage system |
US10877684B2 (en) | 2019-05-15 | 2020-12-29 | Robin Systems, Inc. | Changing a distributed storage volume from non-replicated to replicated |
US11237747B1 (en) | 2019-06-06 | 2022-02-01 | Amazon Technologies, Inc. | Arbitrary server metadata persistence for control plane static stability |
US11552861B2 (en) * | 2019-07-11 | 2023-01-10 | EMC IP Holding Company LLC | Efficient way to perform location SLO validation |
US11226847B2 (en) | 2019-08-29 | 2022-01-18 | Robin Systems, Inc. | Implementing an application manifest in a node-specific manner using an intent-based orchestrator |
US11249851B2 (en) | 2019-09-05 | 2022-02-15 | Robin Systems, Inc. | Creating snapshots of a storage volume in a distributed storage system |
US11520650B2 (en) | 2019-09-05 | 2022-12-06 | Robin Systems, Inc. | Performing root cause analysis in a multi-role application |
US11347684B2 (en) | 2019-10-04 | 2022-05-31 | Robin Systems, Inc. | Rolling back KUBERNETES applications including custom resources |
US11113158B2 (en) | 2019-10-04 | 2021-09-07 | Robin Systems, Inc. | Rolling back kubernetes applications |
US11467775B2 (en) | 2019-10-15 | 2022-10-11 | Hewlett Packard Enterprise Development Lp | Virtual persistent volumes for containerized applications |
US11403188B2 (en) | 2019-12-04 | 2022-08-02 | Robin Systems, Inc. | Operation-level consistency points and rollback |
US11449455B2 (en) * | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US11226758B2 (en) | 2020-03-13 | 2022-01-18 | EMC IP Holding Company LLC | Volume migration using cross-appliance asymmetric namespace access group |
US11687267B2 (en) | 2020-04-14 | 2023-06-27 | Hewlett Packard Enterprise Development Lp | Containerized application manifests and virtual persistent volumes |
US11108638B1 (en) | 2020-06-08 | 2021-08-31 | Robin Systems, Inc. | Health monitoring of automatically deployed and managed network pipelines |
US11528186B2 (en) | 2020-06-16 | 2022-12-13 | Robin Systems, Inc. | Automated initialization of bare metal servers |
US11693573B2 (en) | 2020-06-18 | 2023-07-04 | Hewlett Packard Enterprise Development Lp | Relaying storage operation requests to storage systems using underlying volume identifiers |
US11960773B2 (en) | 2020-07-31 | 2024-04-16 | Hewlett Packard Enterprise Development Lp | Modifying virtual persistent volumes based on analysis of performance metrics |
US11740980B2 (en) | 2020-09-22 | 2023-08-29 | Robin Systems, Inc. | Managing snapshot metadata following backup |
EP4127892A1 (en) | 2020-09-28 | 2023-02-08 | VMware, Inc. | Distributed storage services supported by a nic |
US11829793B2 (en) | 2020-09-28 | 2023-11-28 | Vmware, Inc. | Unified management of virtual machines and bare metal computers |
US11743188B2 (en) | 2020-10-01 | 2023-08-29 | Robin Systems, Inc. | Check-in monitoring for workflows |
US11456914B2 (en) | 2020-10-07 | 2022-09-27 | Robin Systems, Inc. | Implementing affinity and anti-affinity with KUBERNETES |
US11271895B1 (en) | 2020-10-07 | 2022-03-08 | Robin Systems, Inc. | Implementing advanced networking capabilities using helm charts |
US11750451B2 (en) | 2020-11-04 | 2023-09-05 | Robin Systems, Inc. | Batch manager for complex workflows |
US11556361B2 (en) | 2020-12-09 | 2023-01-17 | Robin Systems, Inc. | Monitoring and managing of complex multi-role applications |
US11706221B1 (en) * | 2021-05-25 | 2023-07-18 | Two Six Labs, LLC | Unidirectional atomic messaging |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060010341A1 (en) * | 2004-07-09 | 2006-01-12 | Shoji Kodama | Method and apparatus for disk array based I/O routing and multi-layered external storage linkage |
US20100185828A1 (en) * | 2004-09-29 | 2010-07-22 | Hitachi, Ltd. | Method for managing volume groups considering storage tiers |
US7827201B1 (en) * | 2007-04-27 | 2010-11-02 | Network Appliance, Inc. | Merging containers in a multi-container system |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2001246799A1 (en) | 2000-04-18 | 2001-10-30 | Storeage Networking Technologies | Storage virtualization in a storage area network |
US7769722B1 (en) | 2006-12-08 | 2010-08-03 | Emc Corporation | Replication and restoration of multiple data storage object types in a data network |
US7849098B1 (en) | 2004-02-06 | 2010-12-07 | Vmware, Inc. | Providing multiple concurrent access to a file system |
US7318134B1 (en) * | 2004-03-16 | 2008-01-08 | Emc Corporation | Continuous data backup using distributed journaling |
US7155558B1 (en) | 2004-07-21 | 2006-12-26 | Vmware, Inc. | Providing access to a raw data storage unit in a computer system |
JP4662548B2 (ja) | 2005-09-27 | 2011-03-30 | 株式会社日立製作所 | スナップショット管理装置及び方法並びにストレージシステム |
US7702870B2 (en) * | 2006-01-19 | 2010-04-20 | Network Appliance Inc. | Method and apparatus for defragmentation and for detection of relocated blocks |
JP2007219609A (ja) | 2006-02-14 | 2007-08-30 | Hitachi Ltd | スナップショット管理装置及び方法 |
JP4767773B2 (ja) * | 2006-06-29 | 2011-09-07 | 株式会社日立製作所 | コンピュータシステム及びコンピュータシステムの認証情報変更方法 |
US9084622B2 (en) * | 2006-08-02 | 2015-07-21 | Omnitek Partners Llc | Automated laser-treatment system with real-time integrated 3D vision system for laser debridement and the like |
US20080141041A1 (en) | 2006-12-08 | 2008-06-12 | Hitachi Global Storage Technologies Netherlands B.V. | Wireless encryption key integrated HDD |
US9189265B2 (en) | 2006-12-21 | 2015-11-17 | Vmware, Inc. | Storage architecture for virtual machines |
JP2009043055A (ja) * | 2007-08-09 | 2009-02-26 | Hitachi Ltd | 計算機システム、ストレージ装置及びデータ管理方法 |
JP2009151401A (ja) | 2007-12-19 | 2009-07-09 | Hitachi Ltd | 暗号機能を有するストレージ装置におけるボリューム管理方法 |
JP2008140413A (ja) * | 2008-01-09 | 2008-06-19 | Hitachi Ltd | 記憶装置システム |
US8370833B2 (en) | 2008-02-20 | 2013-02-05 | Hewlett-Packard Development Company, L.P. | Method and system for implementing a virtual storage pool in a virtual environment |
JP5111204B2 (ja) * | 2008-03-31 | 2013-01-09 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの管理方法 |
US20090300283A1 (en) * | 2008-05-29 | 2009-12-03 | Yutaka Kudo | Method and apparatus for dissolving hot spots in storage systems |
JP5107833B2 (ja) | 2008-08-29 | 2012-12-26 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの制御方法 |
JP2010092177A (ja) * | 2008-10-06 | 2010-04-22 | Hitachi Ltd | 情報処理装置、及びストレージシステムの運用方法 |
JP4727705B2 (ja) | 2008-10-31 | 2011-07-20 | 株式会社日立製作所 | 階層型ストレージシステム |
JP4705982B2 (ja) | 2008-12-11 | 2011-06-22 | 株式会社日立製作所 | 情報処理システム、情報処理方法、及び管理装置 |
KR101405729B1 (ko) * | 2009-01-23 | 2014-06-10 | 엘에스아이 코포레이션 | 동적 저장장치 계층화 방법 및 시스템 |
US9170756B2 (en) | 2009-01-29 | 2015-10-27 | Lsi Corporation | Method and system for dynamic storage tiering using allocate-on-write snapshots |
EP2399190B1 (en) | 2009-02-20 | 2018-06-06 | Hitachi, Ltd. | Storage system and method for operating storage system |
US8291159B2 (en) | 2009-03-12 | 2012-10-16 | Vmware, Inc. | Monitoring and updating mapping of physical storage allocation of virtual machine without changing identifier of the storage volume assigned to virtual machine |
US8151033B2 (en) | 2009-05-28 | 2012-04-03 | Red Hat, Inc. | Mechanism for virtual logical volume management |
US8706867B2 (en) | 2011-03-31 | 2014-04-22 | Commvault Systems, Inc. | Realtime streaming of multimedia content from secondary storage devices |
EP2302499A3 (en) * | 2009-09-11 | 2012-09-26 | Hitachi Ltd. | Computer system performing capacity vitualization based on thin provisioning technology in both storage system and server computer |
JP5540636B2 (ja) * | 2009-10-02 | 2014-07-02 | 日本電気株式会社 | ストレージシステム、ストレージ装置、ストレージ装置の記憶内容複製方法およびプログラム |
US20110258377A1 (en) | 2009-12-07 | 2011-10-20 | Hitachi, Ltd. | Disk array system and command processing method for disk array system |
AU2010339584B2 (en) | 2009-12-31 | 2014-06-26 | Commvault Systems, Inc. | Systems and methods for performing data management operations using snapshots |
WO2011086598A1 (en) * | 2010-01-14 | 2011-07-21 | Hitachi, Ltd. | Storage system |
WO2011092738A1 (ja) * | 2010-01-28 | 2011-08-04 | 株式会社日立製作所 | 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法 |
US8458413B2 (en) | 2010-10-27 | 2013-06-04 | International Business Machines Corporation | Supporting virtual input/output (I/O) server (VIOS) active memory sharing in a cluster environment |
WO2012168966A1 (en) | 2011-06-07 | 2012-12-13 | Hitachi, Ltd. | Storage apparatus and method of controlling storage apparatus |
US8595460B2 (en) | 2011-08-26 | 2013-11-26 | Vmware, Inc. | Configuring object storage system for input/output operations |
-
2011
- 2011-08-26 US US13/219,358 patent/US8775773B2/en active Active
-
2012
- 2012-08-20 WO PCT/US2012/051600 patent/WO2013032765A1/en active Application Filing
- 2012-08-20 EP EP12768927.1A patent/EP2715511B1/en active Active
- 2012-08-20 CN CN201280041463.1A patent/CN103765371B/zh active Active
- 2012-08-20 AU AU2012300507A patent/AU2012300507A1/en not_active Abandoned
- 2012-08-20 JP JP2014527223A patent/JP2014529803A/ja active Pending
-
2014
- 2014-05-08 US US14/273,420 patent/US8959312B2/en active Active
-
2016
- 2016-02-25 AU AU2016201198A patent/AU2016201198B2/en active Active
- 2016-08-01 JP JP2016151199A patent/JP6199452B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060010341A1 (en) * | 2004-07-09 | 2006-01-12 | Shoji Kodama | Method and apparatus for disk array based I/O routing and multi-layered external storage linkage |
US20100185828A1 (en) * | 2004-09-29 | 2010-07-22 | Hitachi, Ltd. | Method for managing volume groups considering storage tiers |
US7827201B1 (en) * | 2007-04-27 | 2010-11-02 | Network Appliance, Inc. | Merging containers in a multi-container system |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10754835B2 (en) | 2014-11-20 | 2020-08-25 | International Business Machines Corporation | High-efficiency deduplication module of a database-management system |
CN107003935A (zh) * | 2014-11-20 | 2017-08-01 | 国际商业机器公司 | 优化数据库去重 |
CN107003935B (zh) * | 2014-11-20 | 2020-11-24 | 国际商业机器公司 | 用于优化数据库去重的装置、方法和计算机介质 |
CN106446275A (zh) * | 2016-10-21 | 2017-02-22 | 国云科技股份有限公司 | 一种支持文件***扩容的容器实现方法 |
CN108984420A (zh) * | 2017-05-31 | 2018-12-11 | 希捷科技有限公司 | 管理非易失性存储器(nvm)中的多个名称空间 |
CN108984420B (zh) * | 2017-05-31 | 2023-07-07 | 希捷科技有限公司 | 管理非易失性存储器(nvm)中的多个名称空间 |
CN107632783A (zh) * | 2017-09-14 | 2018-01-26 | 快云信息科技有限公司 | 将分布式存储***接入容器的方法、装置、可读存储介质 |
CN107632783B (zh) * | 2017-09-14 | 2020-07-03 | 快云信息科技有限公司 | 将分布式存储***接入容器的方法、装置、可读存储介质 |
CN107391318A (zh) * | 2017-09-18 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种容器数据持久化的方法、***及装置 |
CN108038384A (zh) * | 2017-11-29 | 2018-05-15 | 北京京航计算通讯研究所 | 一种高安全的集群共享存储虚拟化方法 |
CN108038384B (zh) * | 2017-11-29 | 2021-06-18 | 北京京航计算通讯研究所 | 一种高安全的集群共享存储虚拟化方法 |
CN111125642A (zh) * | 2018-10-31 | 2020-05-08 | 北京数聚鑫云信息技术有限公司 | 一种管理api的方法、装置、存储介质及计算机设备 |
CN110008692B (zh) * | 2019-03-22 | 2021-08-17 | 联想(北京)有限公司 | 一种信息处理方法、装置与存储介质 |
CN110008692A (zh) * | 2019-03-22 | 2019-07-12 | 联想(北京)有限公司 | 一种信息处理方法、装置与存储介质 |
CN113630450A (zh) * | 2021-07-26 | 2021-11-09 | 深圳市杉岩数据技术有限公司 | 分布式存储***的访问控制方法及分布式存储*** |
CN113630450B (zh) * | 2021-07-26 | 2024-03-15 | 深圳市杉岩数据技术有限公司 | 分布式存储***的访问控制方法及分布式存储*** |
WO2023143033A1 (zh) * | 2022-01-30 | 2023-08-03 | 华为技术有限公司 | 一种访问存储节点的方法、装置及计算机设备 |
CN117389713A (zh) * | 2023-12-13 | 2024-01-12 | 苏州元脑智能科技有限公司 | 存储***应用业务数据迁移方法、装置、设备及介质 |
CN117389713B (zh) * | 2023-12-13 | 2024-02-23 | 苏州元脑智能科技有限公司 | 存储***应用业务数据迁移方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US8959312B2 (en) | 2015-02-17 |
JP2014529803A (ja) | 2014-11-13 |
JP6199452B2 (ja) | 2017-09-20 |
EP2715511B1 (en) | 2023-02-22 |
EP2715511A1 (en) | 2014-04-09 |
CN103765371B (zh) | 2017-06-09 |
US20130054932A1 (en) | 2013-02-28 |
US20140244929A1 (en) | 2014-08-28 |
AU2016201198B2 (en) | 2017-06-29 |
AU2012300507A1 (en) | 2014-01-30 |
WO2013032765A1 (en) | 2013-03-07 |
US8775773B2 (en) | 2014-07-08 |
AU2016201198A1 (en) | 2016-03-17 |
JP2016212904A (ja) | 2016-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103765371A (zh) | 导出作为存储对象的逻辑卷的数据存储*** | |
CN103765372B (zh) | 配置用于输入/输出操作的对象存储*** | |
CN106168884B (zh) | 访问对象存储***的计算机*** | |
CN103748545A (zh) | 数据存储***和数据存储控制方法 | |
US8650566B2 (en) | Virtual machine provisioning in object storage system | |
US20130055248A1 (en) | Method of balancing workloads in object storage system | |
CN113821298B (zh) | 使用底层卷标识符将存储操作请求中继到存储*** | |
CN105739930A (zh) | 一种存储架构及其初始化方法和数据存储方法及管理装置 | |
CN103765370B (zh) | 访问对象存储***的计算机*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: California, USA Patentee after: Weirui LLC Country or region after: U.S.A. Address before: California, USA Patentee before: VMWARE, Inc. Country or region before: U.S.A. |
|
CP03 | Change of name, title or address |