虚拟化和LUN:为VM配置存储存储与灾备

2013-08-27    来源:TechTarget中国    编辑:郭文超
在虚拟化环境中,存储资源经由虚拟化管理程序进行抽象的,而不是仅仅拆分成LUN(逻辑单元号)。LUN仍然存在,但通常是作为单个大型存储池,存储池中的虚拟存储会分配到单独的客

  在物理环境中对存储进行分配,需要存储系统管理员根据各个服务器的性能和可用性需求,匹配LUN存储分区。

  但是,随着服务器虚拟化的到来,一切都改变了。

  取而代之的是,在虚拟化环境中,存储资源经由虚拟化管理程序进行抽象的,而不是仅仅拆分成LUN(逻辑单元号)。LUN仍然存在,但通常是作为单个大型存储池,存储池中的虚拟存储会分配到单独的客户端。

  池化处理意味着需要存储和虚拟化管理员进行额外规划和设计,以确保存储资源能够及时和高效的提供服务。

  管理程序仿真存储设备

  在虚拟化服务器环境中,对物理存储进行抽象,形成通用SCSI设备,呈现给客户端。

  使用VMWare时,这些起初是并行SCSI设备的Buslogic和LSIlogic仿真,后来还包括更快的SAS版本。Hyper-V通过使用类似的IDE驱动向客户端提供存储,并对非启动盘支持使用SCSI设备。尽管下层存储使用了管理程序,但主机看到的仍是一个仿真IDE、SCSI或SAS设备连接到一个控制器上。

  设备仿真意味着一个虚拟机的物理数据可以在存储系统内部迁移,而对主机没有影响,但这样存在一定的局限性。首先,在单个磁盘卷容量大小上有限制;其次仿真设备只支持标准SCSI命令。
对于需要访问阵列控制设备的服务器来说,这是一个问题。在这种情况下,磁盘可以直连而不通过仿真。在VMware环境中,这些设备被称作RDM——原始设备映射。Hyper-V的最新版提供一个新特性,即允许光纤通道设备不通过设备仿真直接连接到客户机。

  虚拟磁盘——VMDK和VHD

  管理程序把虚拟磁盘驱动器存成文件,并对每个客户卷有一个文件。对于vSphere,这类文件即为VMDS(虚拟机磁盘),而对Hyper-V来说是存成VHD——虚拟硬盘。
在vSphere内部,一个VMDK可以存储在NFS共享或者格式化成VMware文件系统——VMFS的块设备(光纤通道或iSCSI)上。

  单个VMDK大小限制为2TB - 512B ,这就意味着所有客户卷都存在着2TB的限制。当一个客户卷需要超过2TB的空间时,存储就需要通过多逻辑卷的方式进行呈现。

  对于Hyper-V来说,VHD格式的大小限制也是2TB。Microsoft最近推出的新格式VHDX,同时也是Windows Server 2012的一部分,允许单个虚拟磁盘容量扩展到64TB。

  用来保存虚拟磁盘的存储可以是块设备或NAS设备。VMware支持iSCSI、光纤通道、FCoE和NFS。Hyper-V支持光纤通道,iSCSI和SMB,后者过去的时候一般称作CIFS。

  使用的存储类型对于客户来说是透明的,这是因为多路径的存在。多路径在管理程序层进行了实现,支持对物理存储的多个冗余路径进行访问。

  匹配VM和存储

  Hyper-V和vSphere把虚拟机存储到较大的“容器”中。

  Hyper-V使用本地NTFS卷或者SMB/CIFS文件系统。vSphere使用NFS共享或者格式化成VMFS的LUN,即通常所说的数据存储(datastore)。

  在vSphere 5之前的版本中,一个VMFS datastore的块大小范围是从1MB到8MB,同时代表了VMFS容量大小的限制。最大支持到2TB的VMFS datastore需要设置块大小为8MB,这样会导致对虚拟客户分配空间的增量最小为8MB。VMFS 5(与vSphere 5一同发布)提供一致的1MB增量,跟datastore的块大小无关。对于Hyper-V来说,块增量为2MB,与底层NTFS文件系统具体格式无关。

  在两个管理程序平台上,用来存储虚拟机的容器代表着物理存储对管理程序的表现形式,意味着某个容器上的所有的虚拟客户有相同级别的性能和可用性。因此vSphere的datastore和Hyper-V的卷都应当按照虚拟机类型进行分组。举例来说,产品vs.测试/开发客户或者用以提供高性能的存储(如层次1或者SSD)。

  物理存储的网络情况及网络对性能的影响,是需要进行考虑的。举例来说,在光纤通道的环境中,通过分派光纤通道HBA卡(主机总线适配器)到高性能的存储上是可以获得好处的。这样可以降低混合环境中低性能虚拟机竞争的影响。

  精简配置

  vSphere和Hyper-V都提供自动精简配置的虚拟机。也就是说,根据虚拟机的增长需求分配而不是创建时在物理上预留出虚拟机的整个空间。vSphere对于“预分配”客户卷有两种格式;zeroedthick(清零预分配)——使用该格式存储空间在创建时保留,在主机向保留的物理存储中某个块写数据时,进行清零或删除的操作;eagerzeroedthick(立即清零预分配)——使用该格式,预留的存储空间在创建时即进行清零。这两种格式提供了性能和安全性两者间的权衡,因为zeroedthick会导致旧数据仍存在于VMFS上。Hyper-V为“预分配”提供了预分配的VHD或者动态扩增的VHD。

  就像传统环境中使用精简配置那样,在虚拟环境下使用该技术也有积极和消极的一面。在管理程序之中的精简配置意味着更多的虚拟机容身于磁盘之中,当未来增长的需求超过虚拟机自动分配的大小时,精简配置尤其重要。当然按需扩张的缺点在于单个虚拟客户的存储分散开来。

  随着datastore或者卷上各个客户端空间扩张,当任何特定的虚拟机请求下一个块时,会无预测的分配1MB或2MB大小的块。这会导致单个客户端的存储布局随机和碎片化。在虚拟化桌面环境中尤其常见,如当许多虚拟桌面同时启动时,大量随机I/O产生性能问题。

  使用精简配置带来的一个显而易见的问题就是是否在管理程序和存储两端均实现精简配置技术。没有什么理由不在这两处都进行精简配置;唯一的建议是确保报告和监视及时可靠,以管理不断增长的数据。

1
3