CN103765371A - 导出作为存储对象的逻辑卷的数据存储系统 - Google Patents

导出作为存储对象的逻辑卷的数据存储系统 Download PDF

Info

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
Application number
CN201280041463.1A
Other languages
English (en)
Other versions
CN103765371B (zh
Inventor
S·阿查亚
R·布哈特
S·B·瓦哈尼
I·索科林斯基
C-C·施
K·德塞
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.)
Weirui LLC
Original Assignee
VMware LLC
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 VMware LLC filed Critical VMware LLC
Publication of CN103765371A publication Critical patent/CN103765371A/zh
Application granted granted Critical
Publication of CN103765371B publication Critical patent/CN103765371B/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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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]
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

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公司分发的
Figure BDA0000469444860000211
产品。如所示,系统管理器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协议的存储系统。
CN201280041463.1A 2011-08-26 2012-08-20 导出作为存储对象的逻辑卷的数据存储系统 Active CN103765371B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US9032993B2 (en) 2012-06-14 2015-05-19 Honeywell International Inc. Handle mechanism for an HVAC damper actuator
US10119721B2 (en) 2012-06-14 2018-11-06 Honeywell International Inc. Standoff for use with an insulated HVAC duct
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
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
US9524300B2 (en) 2013-03-14 2016-12-20 Microsoft Technology Licensing, Llc Heterogenic volume generation and use system
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
JP2016512906A (ja) * 2013-03-15 2016-05-09 ブラケット コンピューティング インコーポレイテッドBracket Computing, Inc. データを柔軟に配置するための多層記憶管理
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
US9568207B2 (en) 2013-12-18 2017-02-14 Honeywell International Inc. HVAC actuator with removable wire blocking tab
US9732980B2 (en) 2013-12-18 2017-08-15 Honeywell International Inc. HVAC actuator with range adjustment
US9423143B2 (en) 2013-12-18 2016-08-23 Honeywell International Inc. HVAC actuator with light indicator
US9623523B2 (en) 2013-12-18 2017-04-18 Honeywell International Inc. HVAC actuator with taping flange
US10941960B2 (en) 2013-12-18 2021-03-09 Ademco Inc. HVAC actuator with position 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
US10846001B2 (en) 2017-11-08 2020-11-24 Robin Systems, Inc. Allocating storage requirements in a distributed storage system
US10782887B2 (en) 2017-11-08 2020-09-22 Robin Systems, Inc. Window-based prority tagging of IOPs in a distributed storage system
JP7006265B2 (ja) * 2017-12-28 2022-01-24 富士通株式会社 情報処理装置,制御プログラムおよび情報処理方法
US11582168B2 (en) 2018-01-11 2023-02-14 Robin Systems, Inc. Fenced clone applications
US10896102B2 (en) 2018-01-11 2021-01-19 Robin Systems, Inc. Implementing secure communication in a distributed computing system
US11392363B2 (en) 2018-01-11 2022-07-19 Robin Systems, Inc. Implementing application entrypoints with containers of a bundled application
US10642697B2 (en) 2018-01-11 2020-05-05 Robin Systems, Inc. Implementing containers for a stateful application in a distributed computing system
US11099937B2 (en) 2018-01-11 2021-08-24 Robin Systems, Inc. Implementing clone snapshots in a distributed storage system
US11748203B2 (en) 2018-01-11 2023-09-05 Robin Systems, Inc. Multi-role application orchestration in a distributed storage 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
US10642694B2 (en) * 2018-01-12 2020-05-05 Robin Systems, Inc. Monitoring containers 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
US10846137B2 (en) 2018-01-12 2020-11-24 Robin Systems, Inc. Dynamic adjustment of application resources in a distributed computing system
US11074001B2 (en) 2018-04-09 2021-07-27 Red Hat, Inc. Managing virtual-machine image cloning
US11023328B2 (en) 2018-07-30 2021-06-01 Robin Systems, Inc. Redo log for append only storage scheme
US10976938B2 (en) 2018-07-30 2021-04-13 Robin Systems, Inc. Block map cache
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 中国电信股份有限公司 网络模型动态扩展方法和系统、计算机可读存储介质
US11036439B2 (en) 2018-10-22 2021-06-15 Robin Systems, Inc. Automated management of bundled applications
US10908848B2 (en) 2018-10-22 2021-02-02 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001080013A1 (en) 2000-04-18 2001-10-25 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 株式会社日立製作所 情報処理システム、情報処理方法、及び管理装置
US8713267B2 (en) * 2009-01-23 2014-04-29 Lsi Corporation Method and system for dynamic storage tiering using allocate-on-write snapshots
CN102272742B (zh) 2009-01-29 2015-08-05 Lsi公司 为卷提供动态存储分级的在线数据放置的写时分配快照机制
WO2010095176A1 (en) 2009-02-20 2010-08-26 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
US8595191B2 (en) 2009-12-31 2013-11-26 Commvault Systems, Inc. Systems and methods for performing data management operations using snapshots
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
JP5444464B2 (ja) * 2010-01-14 2014-03-19 株式会社日立製作所 ストレージシステム
US8543778B2 (en) * 2010-01-28 2013-09-24 Hitachi, Ltd. Management system and methods of storage system comprising pool configured of actual area groups of different performances
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
US8782354B2 (en) 2011-06-07 2014-07-15 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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US20130054932A1 (en) 2013-02-28
JP2014529803A (ja) 2014-11-13
US8775773B2 (en) 2014-07-08
US8959312B2 (en) 2015-02-17
WO2013032765A1 (en) 2013-03-07
EP2715511A1 (en) 2014-04-09
AU2016201198B2 (en) 2017-06-29
JP2016212904A (ja) 2016-12-15
EP2715511B1 (en) 2023-02-22
US20140244929A1 (en) 2014-08-28
AU2016201198A1 (en) 2016-03-17
AU2012300507A1 (en) 2014-01-30
CN103765371B (zh) 2017-06-09
JP6199452B2 (ja) 2017-09-20

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
CN113821298A (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