配置用于输入/输出操作的对象存储系统的制作方法与工艺

文档序号:12040872阅读:355来源:国知局
配置用于输入/输出操作的对象存储系统的制作方法与工艺
配置用于输入/输出操作的对象存储系统

背景技术:
随着计算机系统伸缩至企业级,特别是在支持大规模数据中心的背景中,下层数据存储系统经常运用存储区域网络(SAN)或者网络附接存储(NAS)。如在常规上适当理解的那样,SAN或者NAS提供诸多技术能力和操作益处,这些技术能力和操作益处基本上包括数据存储设备的虚拟化、具有透明的容错故障恢复和故障保护控制的物理设备的冗余性、在地理上分布和复制的存储以及从以客户端为中心的计算机系统管理解耦合的集中式监督和存储配置管理。在架构上,在SAN存储系统中的存储设备(例如,盘阵列等)通常连接到网络交换机(例如,光纤信道交换机等),这些网络交换机然后连接到服务器或者“主机”,这些服务器或者“主机”需要访问存储设备中的数据。在SAN中的服务器、交换机和存储设备通常使用小型计算机系统接口(SCSI)协议来通信,该SCSI协议在盘数据块级跨越网络传送数据。对照而言,NAS设备通常是如下设备,该设备内部包含一个或者多个存储设备并且通过网络协议、比如以太网连接到主机(或者居间交换机)。除了包含存储设备之外,NAS设备也已经根据基于网络的文件系统、比如网络文件系统(NFS)或者公共因特网文件系统(CIFS)预先格式化它的存储设备。这样,如与向主机暴露盘(称为LUN并且以下进一步具体描述)——这些盘然后需要根据主机利用的文件系统来格式化、然后装配——的SAN比对,NAS设备的基于网络的文件系统(该系统需要由主机的操作系统支持)使NAS设备向主机的操作系统表现为文件服务器,该文件服务器然后装配或者映射NAS设备例如为操作系统可访问的网络驱动。应当认识,随着存储系统销售商不断创新和发布新产品,在SAN与NAS存储系统之间的清晰差别继续减弱而实际存储系统实现方式经常表现二者的特性、在相同系统中赋予文件级协议(NAS)和块级协议(SAN)二者。例如,在备选NAS架构中,NAS“首领”或者“网关”设备联网到主机而不是传统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)33的依次阵列。存储系统管理器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个不同盘。此外,在这一规模的存储设备和拓扑管理已知有困难。因此,开发比如在通过这里引用而结合的、标题为“ProvidingMultipleConcurrentAccesstoaFileSystem”的美国专利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按照需求访问虚拟卷。根据本发明的一个实施例的一种用于在存储系统中处理输入-输出命令(IO)的方法包括以下步骤:在存储系统接收IO,IO包括第一标识符和第二标识符,其中第一标识符用来将IO引向存储系统;从IO获取第二标识符并且将第二标识符转译成逻辑存储卷标识符;并且对与逻辑存储卷标识符对应的逻辑存储卷引用的存储位置执行IO。根据本发明的一个实施例的一种用于预备存储系统以执行IO的方法包括以下步骤:接收对于预备逻辑存储卷的请求;选择在存储系统中配置的协议端点,用于逻辑存储卷的IO将通过协议端点来接收;并且生成将在用于逻辑存储卷的IO中包括的标识符并且向发出请求的计算机系统返回标识符。根据本发明的一个实施例的一种用于预备存储系统以执行在主机计算机上运行的虚拟机发出的IO的方法包括以下步骤:接收对于预备用于虚拟机的元数据逻辑存储卷的请求;选择在存储系统中配置的协议端点,用于元数据逻辑存储卷的IO将通过协议端点来接收;通过协议端点接收读取IO并且返回读取的数据,读取的数据包括用于数据逻辑存储卷的标识符;接收对于预备用于虚拟机的数据逻辑存储卷的请求;并且对于每个数据逻辑存储卷,选择在存储系统中配置的协议端点,用于逻辑存储卷的IO将通过协议端点来接收。本发明的各实施例还包括一种存储指令的非瞬态计算机可读存储介质,这些指令在由计算机系统执行时使计算机系统执行以上阐述的方法之一。附图说明图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,并且每个vvol向计算机系统100暴露为在这一文件系统内的文件对象。此外,如以下将进一步具体描述的那样,在计算机系统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的纺锤体盘区(spindleextent)。一般而言,每个存储容器具有固定物理大小并且与DSU的具体盘区相关联。在图3中所示示例中,分布式存储系统管理器135具有对容器数据库316的访问,该容器数据库316为每个存储容器存储其容器ID、物理布局信息和一些元数据。容器数据库316由容器管理器308管理和更新,该容器管理器308在一个实施例中是分布式存储系统管理器135的部件。容器ID是在创建存储容器时向存储容器给定通用唯一标识符。物理布局信息由与给定的存储容器相关联并且存储为<系统ID,DSUID,盘区编号>有序列表的DSU141的纺锤体盘区构成。元数据分节可以包含一些公共和一些存储系统销售商专属元数据。例如,元数据分节可以包含被允许访问存储容器的计算机系统或者应用或者用户的ID。作为另一示例,元数据分节包含分配位图,该分配位图用于表示已经向现有vvol分配存储容器的哪些<系统ID,DSUID,盘区编号>盘区并且哪些盘区自由。在一个实施例中,存储系统管理员可以创建用于不同业务单元的分离存储容器,从而不从相同存储容器调配不同业务单元的vvol。可以应用其它用于隔离vvol的策略。例如,存储系统管理员可以采用将从不同存储容器调配云服务的不同客户的vvol这样的策略。vvol也可以根据它们的所需服务水平来分组并且从存储容器来调配。此外,存储系统管理员可以创建、删除和另外管理存储容器、比如定义可以创建的存储容器数目并且设置可以每存储容器设置的最大物理大小。同样在图3的示例中,分布式存储系统管理器135已经调配(代表请求计算机系统100)各来自不同存储容器的多个vvol。一般而言,vvol可以具有固定物理大小或者可以被瘦(thinly)调配,并且每个vvol具有vvolID,该vvolID是在创建vvol时向vvol给定的通用唯一标识符。对于每个vvol,vvol数据库314为每个vvol存储其vvolID、其中创建vvol的存储容器的容器ID和在该存储容器内的包括vvol的地址空间的<偏移,长度>值有序列表。vvol数据库314由卷管理器306管理和更新,该卷管理器在一个实施例中是分布式存储系统管理器135的部件。在一个实施例中,vvol数据库314也存储关于vvol的少量元数据。这一元数据在vvol数据库314中被存储为关键字-值对的集合并且可以在vvol的存在期间的任何时间经由带外路径由计算机系统100更新和查询。存储的关键字-值对落入三个类别。第一类别是:熟知的值——某些值的定义(并且因此它们的值的解释)公开地可用。一个示例是与虚拟卷类型(例如,在虚拟机实施例中,vvol是否包含VM的元数据或者VM的数据)对应的关键字。另一示例是AppID,该AppID是在vvol中存储数据的应用的ID。第二类别是:计算机系统专属关键字——计算机系统或者其管理模块存储某些关键字和值为虚拟卷的元数据。第三类别是:存储系统销售商专属关键字——这些允许存储系统销售商存储与虚拟卷的元数据相关联的某些关键字。存储系统销售商将这一关键字-值存储用于它的元数据的一个原因是所有这些关键字经由用于vvol的带外信道容易可用于存储系统销售商插件和其它扩展。用于关键字-值对的存储操作是虚拟卷创建和其它过程的一部分,因此存储操作应当合理地快。存储系统也被配置用于基于与在具体关键字上提供的值的确切匹配来实现虚拟卷的搜索。IO管理器304是维护连接数据库312的软件模块(在某些实施例中也为分布式存储系统管理器135的部件),该连接数据库312存储在PE与vvol之间的当前有效IO连接路径。在图3中所示示例中,示出七个当前有效IO会话。每个有效会话具有相关联的PEID、次级标识符(SLLID)、vvolID和参考计数(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中包含的PEID和SLLID以便确定IO被期望用于的vvol。通过访问连接数据库314,IO管理器304继而能够获取与解析的PEID和SLLID相关联的vvolID。在图3和后续附图中,为了简化而示出PEID为PE_A、PE_B等。在一个实施例中,实际PEID是PE的WWN。此外,SLLID被示为S0001、S0002等。实际SLLID由分布式存储系统管理器135生成为在与连接数据库312中的给定的PEID相关联的SLLID之中的任何唯一数。在具有vvolID的虚拟卷的逻辑地址空间与DSU141的物理位置之间的映射由卷管理器306使用vvol数据库314并且由容器管理器308使用容器数据库316来执行。一旦已经获得DSU141的物理位置,数据访问层310(在一个实施例中,也为分布式存储系统管理器135的部件)在这些物理位置上执行IO。在图2B的存储系统群集中,IO通过PE接收,并且每个这样的IO包括IO已经被发到的NFS句柄(或者相似文件系统句柄)。在一个实施例中,用于这样的系统的连接数据库312包含存储系统的NFS接口的IP地址为PEID并且文件系统路径为SLLID。基于vvol在文件系统145中的位置生成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的自由纺锤体盘区以满足在步骤411设置的物理容量。如以上指出的那样,在任何一个存储系统的自由空间不足以满足物理容量的情况下,分布式存储系统管理器135可以从多个存储系统分配DSU141的纺锤体区段。在已经分配分区之后,分布式存储系统管理器135(例如,经由容器管理器308)用唯一容器ID、<系统编号、DSUID、盘区编号>有序列表和被允许访问存储容器的计算机系统的上下文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的示例包括熟知的商用操作系统、比如MicrosoftWindows、Linux等中的任何操作系统。根据这里描述的实施例,每个应用512具有与之相关联的一个或者多个vvol并且向操作系统508按照应用512向操作系统508中的“创建设备”调用创建的vvol的块设备实例发出IO。在块设备数据库533中维护在块设备名称与vvolID之间的关联。来自应用5121-512N的IO由文件系统驱动器510接收,并将其转换成块IO并且向虚拟卷设备驱动器532提供块IO。在另一方面,来自应用5121的IO被示出用于绕过文件系统驱动器510并且被直接提供给虚拟卷设备驱动器532,这表示应用5121以在通过这里引用将全部内容结合、标题为“ProvidingAccesstoaRawDataStorageUnitinaComputerSystem”的美国专利7,155,558中描述的方式直接访问其块设备作为原始存储设备、例如作为数据库盘、日志盘、备份存档和内容贮存库。在虚拟卷设备驱动器532接收块IO时,它访问块设备数据库533以引用在IO中指定的块设备名称与PEID(PELUN的WWN)和SLLID之间的映射,该PEID和SLLID定义通向与块设备名称相关联的vvol的IO连接路径。在这里所示示例中,块设备名称archive对应于为应用5121创建的块设备实例vvol12,并且块设备名称foo、dbase和log分别对应于为应用5122-512N中的一个或者多个应用创建的块设备实例vvol1、vvol16和vvol17。在块设备数据库533中存储的其它信息包括用于每个块设备的活跃位值,该活跃位值指示块设备是否活跃,并且包括CIF(在飞行中的命令)值。活跃位“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)中指定的SCSILUN数据字段中编码vvol信息,该数据字段是8字节结构。在前2个字节中编码常规地用于LUNID的PEID,并且利用剩余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将块设备名称映射到PEID(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,该硬件平台包括CPU551、存储器552、NIC553和HBA554并且支持虚拟机执行空间570,可以在该虚拟机执行空间570内并行实例化和执行多个虚拟机(VM)5711-571N。在一个或者多个实施例中,使用加利福尼亚州帕罗奥图市的VMware公司分发的VMware产品来实施管理程序560和虚拟机571。每个虚拟机571实施虚拟硬件平台573,该虚拟硬件平台573支持安装能够执行应用579的客户操作系统(OS)572。客户OS572的示例包括熟知的商用操作系统、比如MicrosoftWindows、Linux等中的任何操作系统。在每个实例中,客户OS572包括本机文件系统层(在图5C中未示出)、例如NTFS或者ext3FS类型的文件系统层。这些文件系统层与虚拟硬件平台573对接以从客户OS572的观点来看访问数据存储装置HBA,该数据存储装置HBA在现实中是虚拟硬件平台573实施的虚拟HBA574,该虚拟HBA提供盘存储支持的表现(在现实中为虚拟盘或者虚拟盘575A-575X)以实现执行客户OS572。在某些实施例中,虚拟盘575A-575X可以表现为从客户OS572的观点来看支持用于连接到虚拟机的SCSI标准或者本领域普通技术人员已知的包括IDE、ATA和ATAPI的任何其它适当硬件连接接口标准。虽然,从客户OS572的观点来看,这样的客户OS572发起的用于实施与文件系统有关的数据传送和控制操作的文件系统调用表现为向虚拟盘575A-575X寻路由用于最终执行,但是在现实中,通过虚拟HBA574处理和传递这样的调用至附属的虚拟机监视器(VMM)5611-561N,这些虚拟机监视器(VMM)实施为了与管理程序560协调操作而需要的虚拟系统支持。具体而言,HBA仿真器562在功能上使数据传送和控制操作能够由管理程序560正确处置,该管理程序560通过其各种层向连接到存储系统130的HBA554最终传递这样的操作。根据这里描述的实施例,每个VM571具有与之关联的一个或者多个vvol并且向管理程序560按照VM571向管理程序560中的“创建设备”调用来创建的vvol的块设备实例发出IO。在块设备数据库580中维护在块设备名称与vvolID之间的关联。来自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中指定的块设备名称与PEID和SLLID之间的映射,该PEID和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在飞行中、即,被发出、但是尚未完成的指示。在这里所示示例中,块设备foo活跃并且具有一些在飞行中的命令。除了执行以上描述的映射之外,虚拟卷设备驱动器565还向数据访问层566发出原始块级IO。数据访问层566包括设备访问层567和用于HBA554的设备驱动器568,该设备访问层将命令排队和调度策略应用于原始块级IO,并且该设备驱动器在符合协议的格式中格式化原始块级IO并且向HBA554发送它们用于经由带内路径向PE转发。在其中使用SCSI协议的实施例中,在如在SAM-5(SCSI架构模型-5)中指定的SCSILUN数据字段中编码vvol信息,该数据字段是8字节结构。在前2个字节中编码常规地用于LUNID的PEID,并且利用剩余6个字节(的一部分)在SCSI第二级LUNID中编码vvol信息、具体为SLLID。如图5C中进一步所示,数据访问层566也包括以与错误处置单元542相同的方式工作的错误处置单元569。图5D是图5C的计算机系统的框图,该计算机系统已经被配置用于与图2B的存储系统群集而不是图2A的存储系统群集对接。在这一实施例中,数据访问层566包括NFS客户端585和用于NIC553的设备驱动器586。NFS客户端585将块设备名称映射到PEID(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,该虚线连接计算机系统的数据访问层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是用于使用认证相关API向图2A或者图2B的存储系统群集认证计算机系统的方法步骤的流程图。在计算机系统通过向存储系统发送它的安全套接字层(SSL)证书来请求认证时发起这些方法步骤。在步骤710,存储系统向请求认证的计算机系统发出用于认证证书的提示(例如,用户名和口令)。在步骤712接收认证证书时,存储系统在步骤714比较它们与存储的证书。如果提供正确证书,则存储系统在关键字存储库(步骤716)中存储认证的计算机系统的SSL证书。如果提供不正确证书,则存储系统忽略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生成唯一vvolID。然后在步骤812,存储系统管理器扫描容器数据库316的元数据分节中的分配位图以确定选择的存储容器的自由分区。存储系统管理器分配选择的存储容器的足以适应请求的vvol大小的自由分区并且更新存储容器的在容器数据库316的元数据分节中的分配位图。存储系统管理器也用新vvol条目更新vvol数据库314。新vvol条目包括在步骤810生成的vvol条目、新分配的存储容器盘区有序列表和新vvol的表达为关键字-值对的元数据。然后,在步骤814,存储系统管理器向计算机系统103发送vvolID。在步骤816计算机系统103关联vvolID与请求创建vvol的应用。在一个实施例中,为每个应用维护一个或者多个vvol描述符文件,并且向为请求创建vvol的应用维护的vvol描述符文件中写入vvolID。如图2A和图2B中所示,并非所有vvol连接到PE。未连接到PE的vvol未知对应应用发出的IO,因为未向vvol建立IO会话。在可以向发出IO之前,vvol经历绑定过程,作为该绑定过程的结果,vvol将被绑定到特定PE。一旦vvol绑定到PE,可以向vvol发出IO直至从PE解绑vvol。在一个实施例中,计算机系统130使用绑定虚拟卷API经由带外路径602向存储系统发出绑定请求。绑定请求标识待绑定的vvol(使用vvolID),并且作为响应,存储系统将vvol绑定到计算机系统103经由带内路径连接到的PE。图9A是用于计算机系统经由带内路径发现它连接到的PE的方法步骤的流程图。使用标准SCSI命令REPORT_LUNS经由带内路径发现在基于SCSI协议的存储设备中配置的PE。使用API经由带外路径发现在基于NFS协议的存储设备中配置的PE。计算机系统为每个连接的存储系统执行图9A的方法步骤。在步骤910,计算机系统确定连接的存储系统是否基于SCSI协议或者基于NFS协议。如果存储系统基于SCSI协议,则计算机系统向存储系统带内发出SCSI命令REPORT_LUNS(步骤912)。然后在步骤913,计算机系统检查来自存储系统的响应、具体为与返回的PEID中的每个PEID关联的PE位以在与PE有关的LUN与常规数据LUN之间区分。如果存储系统基于NFS协议,则计算机系统从插件622向管理接口(例如,管理接口624、625或者626)带外发出API调用以获得可用PE的ID(步骤914)。在跟随步骤913和914的步骤916,计算机系统存储由存储系统返回的与PE有关的LUN的PEID或者管理接口返回的PEID用于在绑定过程期间使用。应当认识,基于SCSI协议的存储设备返回的PEID各自包括WWN,并且基于NFS协议的存储设备返回的PEID各自包括IP地址和装配点。图9B是用于存储系统管理器131或者存储系统管理器132或者分布式存储系统管理器135(下文称为“存储系统管理器”)发现给定的计算机系统103经由带内路径连接到的PE的方法步骤的流程图。存储系统管理器发现这样的PE使存储系统能够响应于来自请求计算机系统的绑定请求向计算机系统返回计算机系统可以被实际连接到其上的有效PEID。在步骤950,存储系统管理器经由管理接口和插件622向计算机系统103发出带外“Discovery_Topology(发现_拓扑)”API调用。计算机系统103返回它的系统ID和它经由图9A的流程图发现的所有PEID的列表。在一个实施例中,存储系统管理器通过经由管理接口和插件612向管理服务器610发出“Discovery_Topology”API调用来执行步骤950。在这样的实施例中,存储系统将接收响应,该响应包含多个计算机系统ID和关联PEID,一个计算机系统ID和关联PEID用于关联服务器610管理的每个相应计算机系统103。然后,在步骤952,存储系统管理器处理来自步骤950的结果。例如存储系统管理器清除未在它的当前控制之下的所有PEID的列表。例如,存储系统管理器135在发出Discovery_Topology调用时接收的某些PEID可以对应于连接到相同计算机系统的另一存储系统。相似地,某些接收的PEID可以对应于自从被存储系统管理员删除起的更老的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的vvolID。然后在步骤1004,计算机系统1003通过带外路径602向计算机系统发出对于绑定vvol的请求。存储系统管理器接收在步骤1006经由管理接口(例如,管理接口624、625或者626)接收对于绑定vvol的请求、然后执行步骤1008,该步骤包括选择vvol将被绑定到的PE、生成用于选择的PE的SLLID和生成数并且更新连接数据库312(例如,经由IO管理器304)。根据连通进行选择vvol将被绑定到的PE、即仅具有与计算机系统103的现有带内连接的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)以包括从存储系统返回的PEID、SLLID(以及可选地返回的NFS句柄)和生成数。具体而言,可以向块设备数据库533(或者580)添加从存储系统返回的PEID、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连接路径的PEID和SLLID,先前已经通过该IO连接路径绑定vvol。然而建议处理解绑请求。存储系统管理器自由立即或者在延迟之后从PE解绑vvol。通过更新连接数据库312以递减包含PEID和SLLID的条目的参考计数来处理解绑请求。如果将参考计数递减至零,则可以删除条目。在这一情况下应当注意,vvol继续存在、但是不再可用于使用给定的PEID和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是根据一个实施例的用于向虚拟卷发出IP的方法步骤的流程图。图11A是用于从应用向原始块设备直接发出IP的方法步骤1100的流程图,并且图11B是用于从应用通过文件系统驱动器发出IP的方法步骤1120的流程图。方法1100在步骤1102开始,其中应用、比如图5A至图5B中所示应用512或者图5C至图5D中所示VM571向原始块设备发出IO。在步骤1104,虚拟卷设备驱动器532或者565根据应用发出的IO生成原始块级IO。在步骤1106,原始块设备的名称由虚拟卷设备驱动器532或者565转译成PEID和SLLID(并且在运用图2B的存储设备的实施例中也由NFS客户端545或者585转译成NFS句柄)。在步骤1108,数据访问层540或者566执行将PEID和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以确定与PEID和提取的SLLID对应的vvolID。在步骤1214b,IO管理器304从解析的IO提取NFS并且使用PEID和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,计算机系统从存储系统管理器接收新PEID和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的虚拟盘中的每个相应虚拟盘。用于虚拟盘的盘描述符文件包含涉及虚拟盘的信息、比如它的vvolID、它的大小、是否瘦调配虚拟盘和为虚拟盘创建的一个或者多个快照的标识等。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的vvolID。在步骤1514,管理服务器610向主控VM的计算机系统注册回元数据vvol的vvolID。在步骤1516,主机计算机发起用于用以上结合图10描述的方式将元数据vvol绑定到PE的方法,存储系统管理器在步骤1518按照该方法将元数据vvol绑定到PE并且向主机计算机返回PEID和SLLID。在步骤1522,主机计算机使用向主机计算机的操作系统中的“创建设备”调用来创建元数据vvol的块设备实例。然后在步骤1524,主机计算机在块设备上创建文件系统(例如VMFS),响应于这一点返回文件系统ID(FSID)。主机计算机在步骤1526装配具有返回的FSID的文件系统并且向与这一文件系统关联的命名空间中存储VM的元数据。元数据的示例包括VM日志文件、盘描述符文件和VM交换文件,每个盘描述符文件用于VM的虚拟盘中的每个相应虚拟盘。在步骤1528,主机计算机发起用于用以上结合图8描述的方式为VM的虚拟盘中的每个虚拟盘创建vvol(每个这样的vvol这里称为“数据vvol”)的方法,存储系统管理器在步骤1530按照该方法创建数据vvol并且向主机计算机返回数据vvol的vvolID。在步骤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的元数据文件、具体为盘描述符文件并且获得数据vvolID。数据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向存储系统发送扩展vvolAPI调用,其中扩展vvolAPI调用可以包括数据vvol的ID和数据vvol的新大小。如果使VM通电,则主机计算机在步骤1715接收VM的待扩展的虚拟盘的数据vvol的ID。应当从图16A的方法认识,可以从与VM的虚拟盘关联的盘描述符文件获得这一ID。然后,在步骤1716,主机计算机在步骤1716向存储系统发送扩展vvolAPI调用,其中扩展vvolAPI调用包括数据vvol的ID和数据vvol的新大小。扩展vvolAPI调用造成在存储系统中更新vvol数据库和容器数据库(例如,图3的vvol数据库314和容器数据库316)以反映vvol的增加的地址空间。在接收扩展vvolAPI调用已经完成的确认时,主机计算机在步骤1718用新大小更新用于VM的虚拟盘的盘描述符文件。然后在步骤1720,主机计算机确定是否使VM通电。如果不是,则主机计算机在步骤1722拆卸文件系统并且向存储系统发送对于解绑元数据vvol的请求。在另一方面,如果使VM通电,则该方法终止。用于将VM的当前绑定到PE的vvol从源存储容器移向目的地存储容器——其中源存储容器和目的地存储容器二者在相同存储系统管理器的范围内——的方法在步骤1810开始,其中接收源和目的地存储容器的容器ID(分别为SC1和SC2)以及待移动的vvol的vvolID。然后,在步骤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日并且标题为“OffloadingStorageOperationstoStorageHardware”的第12/129,323号美国专利申请中描述的数据移动技术。图19是用于从模板VM克隆VM的在主机计算机和存储系统中执行的方法步骤的流程图。这一方法在步骤1908开始,其中主机计算机向存储系统发送对于为新VM创建元数据vvol的请求。在1910,存储系统根据以上结合图8描述的方法为新VM创建元数据并且向主机计算机返回新元数据vvolID。然后在步骤1914,对于属于模板的所有数据vvolID从主机计算机经由带外路径601向存储系统发出克隆vvolAPI调用。在步骤1918,存储系统检查以查看模板VM和新VM的数据vvol是否兼容。应当认识,如果克隆在不同制造商的存储系统中创建的存储容器之间出现,则数据vvol不可能兼容。如果有兼容性,则执行步骤1919。在步骤1919,存储系统管理器通过生成新数据vvolID、更新容器数据库316中的分配位图并且向vvol数据库314添加新vvol条目来创建新数据vvol并且向新VM的数据vvol复制在模板VM的数据vvol中存储的内容。在步骤1920,存储系统管理器向主机计算机返回新数据vvolID。接收新数据vvolID向主机计算机提供数据vvol克隆完成而无错误的确认。然后在步骤1925,主机计算机向新VM的元数据vvol发出IO以用新生成的数据vvolID更新元数据文件、具体为盘描述符文件。存储系统在步骤1926执行主机计算机向存储系统发出的IO,作为这一点的结果,用新生成的数据vvolID更新新VM的盘描述符文件。如果存储系统管理器在步骤1918确定模板VM和新VM的数据vvol不兼容,则向主机计算机返回错误消息。在接收这一错误消息时,主机计算机在步骤1921向存储系统发出创建vvolAPI调用以创建新数据vvol。在步骤1922,存储系统管理器通过生成新数据vvolID、更新容器数据库316中的分配位图并且向vvol数据库314添加新vvol条目来创建新数据vvol并且向主机计算机返回新数据vvolID。在步骤1923,主机计算机根据在通过这里引用将全部内容结合于、提交于2009年1月21日并且标题为“DataMoverforComputerSystem”的第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返回元数据vvolID。在步骤2020,管理服务器610向主机计算机系统注册回元数据vvol的vvolID。在步骤2022,主机计算机向存储系统发出对于元数据vvolID的请求,响应于该请求,存储系统在步骤2023分别返回IP地址和目录路径作为PEID和SLLID。在步骤2024,主机计算机在指定的IP地址和目录路径装配目录并且在装配的目录中存储元数据文件。在使用NFS的实施例中,NFS客户端545或者585可以将给定的IP地址和目录路径分解成NFS句柄以便向这样的目录发出NFS请求。在步骤2026,主机计算机发起用于用以上结合图8描述的方式为VM的虚拟盘中的每个虚拟盘创建数据vvol的方法,存储系统管理器在步骤2030按照该方法创建数据vvol并且向主机计算机返回数据vvol的vvolID。在步骤2032,主机计算机在用于虚拟盘的盘描述符文件中存储数据vvol的ID。该方法以在已经对于VM的所有虚拟盘创建数据vvol之后解绑元数据vvol(未示出)作为结束。如以上结合图8描述的那样,在从存储容器创建新vvol并且未为新vvol显式地指定存储能力简档时,新vvol将继承与存储容器关联的存储能力简档。可以从若干不同简档之一选择与存储容器关联的存储能力建档。例如,如图21中所示,不同简档包括生产(prod)简档2101、开发(dev)简档2102和测试简档2103(这里通常为“简档2100”)。应当认识,可以定义许多其它简档。如图所示,特定建档的每个简档条目为固定类型或者可变类型并且具有名称和与它关联的一个或者多个值。固定类型的简档条目具有固定数目的可选择项目。例如可以将简档条目“复制”设置成真或者假。对照而言,可变类型的简档条目无预定义选择。取而代之,为可变类型的简档条目设置默认值和值范围,并且用户可以选择在范围内的任何值。如果未指定值,则使用默认值。在图21中所示示例简档2100中,可变类型的简档条目具有被逗号分离的三个数。第一个数是指定的范围的更低端,并且第二个数是指定的范围的更高端。第三个数是默认值。因此,将复制vvol,该vvol继承在生产简档2101中定义id存储能力简档(复制·值=真),并且可以在范围0.1到24小时中定义用于复制的恢复时间目标(RTO),默认为1小时。此外,对于这一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执行的方法步骤的流程图。在一个实施例中,运用快照跟踪数据结构以根据在给定的存储能力简档中的快照定义调度快照。在达到用于快照的调度的时间时,存储系统管理器在步骤2310从快照跟踪数据结构获取vvolID。然后,在步骤2312,存储系统管理器生成用于快照的唯一vvolID。存储系统管理器在步骤2315运用母vvol(即具有从快照跟踪数据结构获取的vvolID的vvol)的存储能力简档作为快照vvol的存储能力简档。应当注意,由于这是存储系统驱动的自动化简档驱动的快照过程,所以用户未获得用于指定激昂在快照vvol的存储能力简档中使用的定制值。在步骤2318,存储系统管理器通过更新容器数据库316中的分配位图并且向vvol数据库314添加用于快照vvol的新vvol条目在母vvol的存储容器内创建快照vvol。然后,在步骤2320,存储系统管理器通过调度用于生成用于母vvol的下一快照的时间来更新快照跟踪数据结构。应当认识,存储系统管理器必须对于所有如下vvol并行维护快照跟踪数据结构并且执行图23的方法步骤,这些vvol的存储能力简档规定调度的快照。在用以上描述的方式创建快照之后,更新在vvol数据库314中存储的关键字-值对以指示快照vvol为类型=快照。也在其中为快照维护生成数——每当拍摄或者设置快照时递减生成数或者设置成等于日期+时间——的实施例中,存储生成数为关键字-值对。也在快照vvol条目中存储快照vvol的母vvolID为关键字-值对。因此,主机计算机可以向vvol数据库314查询与特定vvolID对应的快照。也有可能让主机计算机向vvol数据库发出对于与特定vvolID和特定生成数对应的快照的查询。这里描述的各种实施例可以运用各种由计算机实施的操作,这些操作涉及到在计算机系统中存储的数据。例如这些操作通常、但是未必可能需要物理操纵物理数量,这些数量可以采用电或者磁信号的形式,其中能够存储、传送、组合、比较或者另外操纵它们或者它们的表示。另外,经常在术语、比如产生、标识、确定或者比较中引用这样的操纵。这里描述的任何形成一个或者多个实施例的部分的操作可以是有用机器操作。此外,一个或者多个实施例也涉及一种用于执行这些操作的设备或者装置。该装置可以被特别地构造用于具体所需目的,或者它可以是通用计算机,该通用计算机由在计算机中存储的计算机程序有选择地激活或者配置。具体而言,各种通用机器可以与根据这里的教导编写的计算机程序使用,或者构造更专门化的装置以执行所需操作可以更方便。可以用包括手持设备、微处理器系统、基于微处理器或者可编程的客户电子装置、小型计算机、大型机计算机等的其它计算机系统配置实现这里描述的各种实施例。可以实施一个或者多个实施例为一个或者多个计算机程序或者为在一个或者多个计算机可读介质中体现的一个或者多个计算机程序模块。术语计算机可读介质是指可以存储数据的任何数据存储设备,该数据随后可以向计算机系统输入。计算机可读介质可以基于用于以使计算机程序能够被计算机读取的方式体现计算机程序的任何现有或者以后开发的技术。计算机可读介质的示例包括硬驱动、网络附接存储装置(NAS)、只读存储器、随机存取存储器(例如闪存设备)、CD(紧致盘)、CD-ROM、CD-R或者CD-RW、DVD(数字万用盘)、磁带以及其它光学和非光学数据存储设备。也可以通过网络耦合的计算机系统分发计算机可读介质,从而以分布式方式存储和执行计算机可读代码。虽然为了理解清楚而已经用一些细节描述一个或者多个实施例,但是将清楚可以在权利要求的范围内进行某些改变和修改。例如运用SCSI作为用于SAN设备的协议,并且使用NFS作为用于NAS设备的协议。可以使用SCSI协议的任何备选、光纤信道,并且可以使用NFS协议的任何备选、比如CIFS(公共因特网文件系统)协议。因而,描述的实施例将视为示例而非限制,并且权利要求的范围将不限于这里给定的细节而是可以在权利要求的范围和等效含义内被修改。在权利要求中,单元和/或步骤除非在权利要求中陈述则未意味着任何特定操作顺序。此外,尽管描述的可视化方法已经主要假设虚拟机呈现与特定硬件系统一致的接口,但是可以结合未与任何特定硬件系统直接对应的虚拟化使用描述的方法。根据各种实施例的可视化系统都被设想,实施这些实施例为主控的实施例、非主控的实施例或者为往往模糊在二者之间的区分的实施例。另外,可以全部或者部分在硬件中实施各种可视化操作。例如硬件实现方式可以将查找表用于修改存储访问请求以使非盘数据安全。许多变化、修改、添加和改进无论可视化程度如何都是可能的。可视化软件因此可以包括执行可视化功能的主机、控制台或者客户操作系统的部件。可以提供多个实例用于这里描述为单个实例的部件、操作或者结构。最后,在各种部件、操作和数据存储库之间的边界有些任意,并且在具体示例配置的上下文中举例说明具体操作。其它功能分配被设想并且可以落入这里描述的实施例的范围内。一般而言,可以实施在示例配置中呈现为分离部件的结构和功能为组合的结构或者部件。类似地,可以实施呈现为单个部件的结构和功能为分离部件。这些和其它变化、修改、添加和改进可以落入所附权利要求的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1