数据存储系统中的存储驱动器虚拟化的制作方法
【专利摘要】在一个实施例中,一种方法包括:在与多个服务器通信的物理驱动器中定义多个虚拟驱动器;将虚拟化参数分配给所述虚拟驱动器中的每一个;以及将所述虚拟化参数传送到位于所述物理驱动器处并且可操作来在所述物理驱动器上配置所述虚拟驱动器的驱动器管理器。还公开了一种装置。
【专利说明】数据存储系统中的存储驱动器虚拟化
【技术领域】
[0001]本公开一般地涉及计算机系统,并且更特别地涉及计算机存储虚拟化。
【背景技术】
[0002]诸如服务器的计算机系统中的存储驱动器的容量通常利用不足。驱动器制造商趋于维持驱动器的平均销售价格,同时通过使用技术进步来增加容量。因此,减少系统成本通常不是实用的,即使存储命令不随着提供的容量增加而增加。在一些应用中,跨越多个服务器共享驱动器是有益的。在常规系统中,存储控制器被用来实现卷管理并且从共享的驱动器划分出卷。
【专利附图】
【附图说明】
[0003]图1图示了其中可以实现本文中所描述的实施例的系统的示例。
[0004]图2描绘了在实现本文中所描述的实施例时有用的网络设备的示例。
[0005]图3是图1的网络中的驱动器的简图。
[0006]图4是图示了依照一个实施例的用于存储驱动器虚拟化的处理的概述的流程图。
[0007]对应的附图标记在全部附图的若干视图中指示对应的部分。
【具体实施方式】[0008]概述
[0009]在一个实施例中,一种方法一般地包括:在与多个服务器通信的物理驱动器中定义多个虚拟驱动器;将虚拟化参数分配给所述虚拟驱动器中的每一个;以及将所述虚拟化参数传送到位于所述物理驱动器处并且可操作来在所述物理驱动器上配置所述虚拟驱动器的驱动器管理器。
[0010]在另一实施例中,一种装置一般地包括处理器,所述处理器用于:在物理驱动器中定义多个虚拟驱动器;将虚拟化参数分配给所述虚拟驱动器中的每一个;以及将所述虚拟化参数传送到位于所述物理驱动器处并且可操作来在所述物理驱动器上配置所述虚拟驱动器的驱动器管理器。该装置进一步包括用于存储虚拟化参数的存储器。
[0011]在又一个实施例中,一种系统一般地包括:虚拟化管理器,其用于在物理驱动器中定义多个虚拟驱动器并且将虚拟化参数分配给所述虚拟驱动器中的每一个;以及驱动器管理器,其位于所述物理驱动器处并且可操作来接收所述虚拟化参数并且在所述物理驱动器上配置所述虚拟驱动器。
[0012]示例实施例
[0013]以下描述被呈现以使得本领域的普通技术人员能够实现并且使用实施例。特定实施例和应用的描述仅作为示例被提供,并且各种修改对本领域的技术人员来说将容易地显而易见。本文中所描述的一般原理可以在不偏离实施例的范围的情况下适用于其它应用。因此,实施例不限于所示出的那些,而是将符合与本文中所描述的原理和特征一致的最广泛的范围。出于清楚的目的,与在涉及实施例的【技术领域】中已知的技术材料相关的细节未被详细地描述。
[0014]在网络环境中,多个服务器可以访问一组驱动器。在其中驱动器未被服务器充分利用的情况下,跨越多个服务器共享驱动器是有用的。常规的系统使用在位于服务器与驱动器之间的集中式控制器处实现的卷管理,以从附接的物理驱动器中得到更高容量的逻辑驱动器。在另一示例中,驱动器可以通过将给定驱动器硬分配给给定刀片服务器的分区结构被附接到多个服务器。在这个常规的架构中,驱动器的数目必须等于或超过附接的服务器的数目,即使这导致将比被需要的更多的驱动器容量分配给服务器。
[0015]本文中所描述的实施例虚拟化驱动器以在驱动器级别上逻辑地分割它。驱动器级别上的驱动容量的虚拟化允许每个物理驱动器看起来像多个驱动器,使得系统能够被用比在常规系统中所需要的更少的驱动器来配置。如在下面详细地描述的,存储驱动器被虚拟化使得其能够被多个设备(例如,服务器)共享。这使得能够实现使用无状态交换结构(例如,SAS (串行附接的SCSI (小型计算机系统接口))扩展器、FC (光纤通道)-SAS桥)、以太网交换机的低成本解决方案,以创建能够支持大量的服务器的一组驱动器,提供成本效率。显著的成本节约可以通过消除对于集中式存储控制器的需要来提供。物理驱动器级别上的存储设备分割允许系统配置从服务器的数目解耦驱动器的数目,并且使得给定集合的物理驱动器能够被呈现为更大数目的逻辑驱动器,两者都出于冗余和成本目的。
[0016]现参考附图,并且首先参考图1,其中可以实现本文中所描述的实施例的系统的示例被示出。为了简单化,仅小数目的节点被示出。系统包括通过网络14与多个存储设备12通信的多个设备(例如,服务器(主机)S1、S2、S3) 10。存储设备12可以是例如包括多个物理驱动器(D1、D2)的JBOD (简单磁盘捆绑)。存在与任何数目的驱动器(Dn) 12通信的任何数目的服务器(Sn) 10。不存在对于服务器10与驱动器12之间的一一对应关系或对于驱动器的数目超过服务器的数目的需要。可能存在例如比驱动器12更多的服务器10、比服务器更多的驱动器、或者相同数目的服务器和驱动器。如在下面所描述的,写操作被直接对驱动器12执行,而不用集中式控制器和相关联的高速缓存器以及卷管理。
[0017]服务器10可以为刀片服务器、机架服务器、虚拟服务器或配置成执行服务器或服务操作的任何其它类型的网络设备或物理或逻辑部件(例如,虚拟机、虚拟桌面)。在一个示例中,多个刀片服务器10被一起收容在机箱中。服务器10可以例如在数据中心网络中操作,并且可以被配置成作为任何数目的虚拟机的主机。
[0018]驱动器12可以是例如包括硬盘驱动器(HDD)、固态驱动器(SSD)、混合驱动器、RAM(随机存取存储器)、或任何其它适合的存储介质的FC (光纤通道)驱动器或SAS (串行附接的SCSI (小型计算机系统接口)驱动器。存储设备12可以例如是用于刀片服务器的直接附接的储存设备。在一个实施例中,服务器10经由运行SCSI的存储协议来与驱动器12进行通信。服务器10和驱动器12可以例如使用SAS、FC、SATA (串行高级技术附件)、以太网、或其它适合的协议通信。
[0019]网络14可以包括任何数目的节点,包括例如SAS扩展器、SAS交换机、FC-SAS电桥、或其它网络部件。SAS扩展器辅助多个起始器设备(服务器10)与多个目标设备(设备12)之间的数据转移。网络14可以包括或者被耦合到一个或多个网络(例如,局域网、公共交换网、虚拟局域网、虚拟专用网、城域网、广域网、存储区域网、企业网、因特网、内联网或任何其它网络)。
[0020]如在下面详细地描述的,驱动器12在SAS (或其它接口 /协议)级别上被逻辑地分割成虚拟驱动器,使得每个物理驱动器能够被多个服务器10共享。这允许系统解耦驱动器12的数目和服务器10的数目,并且使得给定集合的物理驱动器能够被呈现为更大数目的逻辑驱动器。驱动器12可以每个都具有相同数目的虚拟驱动器或者一个或多个驱动器可以具有不同数目的虚拟驱动器。任何数目的逻辑分区可以被用于数据的冗余存储。例如,RAID (独立磁盘冗余阵列)可以通过位于服务器10中RAID的功能被跨越逻辑设备地使用,而不是常规的卷管理。
[0021]虚拟化管理器(管理实体)16逻辑地分割驱动器12并且将虚拟化参数分配给虚拟驱动器。例如,虚拟化管理器16可以位于服务器10 (虚拟服务器)(例如,在图1中的服务器S3处的虚框中所示出的)中的一个处、分布于服务器中的两个或更多个上、或位于独立网络设备(例如,服务器、设备)处(图1中所示出的)。虚拟化管理器16与位于物理存储驱动器12中的每一个处的驱动器管理器18进行通信。如图1中所示出,驱动器管理器18可以被实现为驱动器12上或在驱动器与网络14之间的接口处的逻辑分区。例如,驱动器管理器18可以在被配置用于附接到物理驱动器12并且包括用于连接到网络14的一个或多个端口的适配器中实现。因此,如本文中所使用的‘位于物理驱动器处的驱动器管理器’可以指的是在物理驱动器12处的驱动器管理器18、耦合到物理驱动器、或以其它方式插入在虚拟化管理器16与物理驱动器中的一个之间并且与物理驱动器相关联。
[0022]应当理解的是图1中所示出的系统仅是一个示例,并且本文中所描述的实施例可以使用不同的拓扑和设备来实现,而不偏离实施例的范围。
[0023]可以被用来实现本文中所描述的实施例的网络设备20 (例如,结合虚拟化管理器16或作为虚拟化管理器操作的其它网络设备的服务器10)的示例在图2中被示出。在一个实施例中,网络设备20是可以被以硬件、软件或其任何组合来实现的可编程的机器。设备20包括一个或多个处理器22、存储器24、以及网络接口 26。存储器24可以为易失性存储器或非易失性存储设备,其存储用于供处理器22执行和使用的各种应用、模块、以及数据。例如,存储器24可以包括用于虚拟驱动器的虚拟化参数28。
[0024]逻辑可以被编码在一个或多个有形的计算机可读介质中以用于供处理器22执行。例如,处理器22可以执行在诸如存储器24的计算机可读介质中存储的代码。计算机可读介质可以例如是电子(例如,RAM (随机存取存储器)、ROM (只读存储器)、EPROM (可擦可编程只读存储器))、磁、光(例如,CD、DVD )、电磁、半导体技术、或任何其它适合的介质。
[0025]网络接口 26可以包括用于接收数据或将数据发送到其它设备的一个或多个接口(线卡、端口)。接口 26可以包括例如以太网、SAS、或用于连接到计算机或网络的光纤通道接口。
[0026]应当理解的是图2中所示出并且在上面所描述的网络设备仅是示例,并且可以使用具有不同部件和配置的网络设备而不偏离实施例的范围。
[0027]图3示意性地图示了虚拟化的驱动器12的示例。在一个实施例中,驱动器的逻辑地址空间被划分成η个逻辑单元号(LUN) 32。逻辑单元号被用来标识由SCSI或其它协议寻址的逻辑单元。如在下面所描述的,LUN被用来标识磁盘驱动器12上的分区并且可以被称为虚拟LUN (VLUN)。标识符(例如全球通用名称(WffN))与LUN32中的每一个相关联。每个驱动器12都可以具有由厂商所分配的WffN (例如,厂商标识符和厂商规定的序列号)。本文中所描述的虚拟化系统将附加的WffN (虚拟WffN)分配给与逻辑分区相关联的每个虚拟LUN。默认地,物理驱动器12将具有带有由厂商所定义的WffN的单个LUN (B卩,非虚拟化的驱动器)。
[0028]在图3中所示出的示例中,驱动器12被分割成n=5个LUN32,其中虚拟驱动器每个被分配不同的WWN。在这个示例中,LUN32中的一个被标识为管理LUN。管理LUN可以被用作驱动器管理器18 (图1)。如在上面所描述的,驱动器管理器18还可以在驱动器的外部被配置。
[0029]管理LUN (驱动器管理器18)被用来定义驱动器LUN定义(例如,针对每个LUN的尺寸和WffN)。针对虚拟驱动器中的每一个的WffN和LUN尺寸(虚拟化参数)被虚拟化管理器16分配(图1)。虚拟化管理器与驱动器管理器之间的管理协议可以基于任何数目的熟知的管理协议。SAS管理协议的扩展可以被用于虚拟化管理器16与驱动器管理器18之间的通信。在一个实施例中,SCSI模式页面被用来实现LUN和WffN定义和分配。驱动器12被优选地用双端口来配置。适配器可以被用来将单端口驱动器转换成双端口驱动器。双附接驱动器用双端口上的公共WWN来输出虚拟驱动器中的每一个。
[0030]图4是图示了依照一个实施例的用于存储驱动器虚拟化的处理的概述的流程图。在步骤40处,虚拟化管理器16将一个或多个物理驱动器12分割成多个虚拟驱动器(η个逻辑单元32 (图1和3))。虚拟化管理器16针对虚拟驱动器中的每一个分配虚拟化参数(步骤42)。如在上面所描述的,每个虚拟驱动器都被分配WWN。驱动器管理器18针对每个物理驱动器12被标识并且被用来定义(配置)由在物理驱动器处的虚拟化管理器16所分配的虚拟化参数(例如,LUN尺寸、WWN、访问属性)。在一个示例中,LUN中的一个(例如,LUNO)可以被定义为管理LUN/驱动器管理器(图3)。虚拟化管理器16与位于物理驱动器12中的每一个处的驱动器管理器18进行通信以定义虚拟化参数(步骤44)。驱动器12输出虚拟驱动器中的每一个以供附接的服务器10使用。
[0031]虚拟化管理器16可以根据需要动态地更新在物理驱动器12中的一个或多个处的虚拟驱动器的数目或尺寸。更新可以被周期性地或在事件发生(例如,服务器10的数目的改变、驱动器12的数目的改变、存储要求的增加或减少)时执行。
[0032]应当理解的是,图4中所图示的并且在上面描述的处理仅是示例,并且步骤可以被修改、添加或组合,而不偏离实施例的范围。
[0033]尽管已经依照所示出的实施例对方法和装置进行了描述,但是本领域的普通技术人员将容易地认识到能够存在在不偏离实施例的范围的情况下做出的变化。因此,意图是在上面描述中包含和在附图中所示出的所有主题应该被解释为说明性的而不是限制性的。
【权利要求】
1.一种方法,包括: 在与多个服务器通信的物理驱动器中定义多个虚拟驱动器; 将虚拟化参数分配给所述虚拟驱动器中的每一个;以及 将所述虚拟化参数传送到位于所述物理驱动器处并且可操作来在所述物理驱动器上配置所述虚拟驱动器的驱动器管理器。
2.根据权利要求1所述的方法,其中定义多个虚拟驱动器包括将物理驱动器逻辑地址空间分割成多个逻辑单元号。
3.根据权利要求2所述的方法,其中所述逻辑单元号的一个包括所述驱动器管理器。
4.根据权利要求1所述的方法,其中定义多个虚拟驱动器包括在多个物理驱动器处定义多个虚拟驱动器。
5.根据权利要求4所述的方法,其中所述物理驱动器的数目小于服务器的数目。
6.根据权利要求1所述的方法,其中分配所述虚拟化参数包括通过所述多个服务器中的一个作为虚拟化管理器来分配所述虚拟化参数。
7.根据权利要求1所述的方法,其中分配所述虚拟化参数包括将全球通用名称、尺寸以及访问属性分配给所述虚拟驱动器中的每一个。
8.根据权利要求1所述的方法,其中传送所述虚拟化参数包括使用SCSI(小型计算机系统接口)协议。
9.根据权利要求1所述·的方法,其中所述物理驱动器包括包含所述驱动器管理器的适配器。
10.一种装置,包括: 处理器,用于在物理驱动器中定义多个虚拟驱动器,将虚拟化参数分配给所述虚拟驱动器中的每一个,以及将所述虚拟化参数传送到位于所述物理驱动器处并且可操作来在所述物理驱动器上配置所述虚拟驱动器的驱动器管理器;以及 存储器,用于存储所述虚拟化参数。
11.根据权利要求10所述的装置,其中定义多个虚拟驱动器包括将物理驱动器逻辑地址空间分割成多个逻辑单元号。
12.根据权利要求11所述的装置,其中所述逻辑单元号中的一个包括所述驱动器管理器。
13.根据权利要求10所述的装置,其中定义多个虚拟驱动器包括在多个物理驱动器处定义多个虚拟驱动器。
14.根据权利要求13所述的装置,其中所述物理驱动器的数目小于与所述物理驱动器通信的服务器的数目。
15.根据权利要求10所述的装置,其中所述装置被配置用于在与所述物理驱动器通信的多个服务器中的一个处操作。
16.根据权利要求10所述的装置,其中分配所述虚拟化参数包括将全球通用名称、尺寸以及访问属性分配给所述虚拟驱动器中的每一个。
17.根据权利要求10所述的装置,其中传送所述虚拟化参数包括使用SCSI(小型计算机系统接口)协议。
18.根据权利要求10所述的装置,其中所述物理驱动器包括包含所述驱动器管理器的适配器。
19.一种系统,包括: 虚拟化管理器,用于在物理驱动器中定义多个虚拟驱动器并且将虚拟化参数分配给所述虚拟驱动器中的每一个;以及 驱动器管理器,位于所述物理驱动器处并且可操作来从所述虚拟化管理器接收所述虚拟化参数并且在所述物理驱动器上配置所述虚拟驱动器。
20.根据权利要求19所述的系统,其中所述物理驱动器被配置用于与多个服务器通信,所述服务器可操作用于直接对所述物理驱动器执行写操作而无需插入在所述服务器与物理驱动器之间的存 储控制器。
【文档编号】G06F3/06GK103827805SQ201280046174
【公开日】2014年5月28日 申请日期:2012年9月13日 优先权日:2011年9月22日
【发明者】萨提亚·尼什塔拉, 露咔·卡菲罗 申请人:思科技术公司