2.3.4 ESX服务器存储网络概略
如果读者能坚持读到此处,在继续之前应该给自己一些鼓励,现在你已经完成ESX服务器网络化的第一步,接下来该着手解决ESX服务器存储网络化的基础问题了。这部分内容对应图2-2中的“互联点B和C”部分,也就是连接服务器模块与存储模块(直接连接或通过光纤连接)的部分。
说明:互联点C通常不会采用光纤通道,服务器模块通过互联点A连接完成NAS和FCoE接入才会使用的技术。
ESX服务器存储组件
ESX服务器存储操作主要由以下5个存储组件完成:
·虚拟机器监视器(Virtual Machine Monitor,VMM):VMM(或虚拟机监视程序)包含的层,能够在VM内模仿小型计算机系统接口(Small Computer System Interface,SCSI)设备。VMM提供了一个抽象层,能够隐藏并管理物理存储子系统之间差异。对每个VM内的应用及用户OS而言,存储就是一个SCSI磁盘,只不过该磁盘是连接到虚拟BusLogic或者是LSILogic SCSI主机总线适配器(Host Bus Adapter,HBA)上。
说明:VM使用BusLogic或LSILogic SCSI驱动,BusLogic意味着系统采用的是Mylex BusLogic BT-958,BT-958属于SCSI-3协议,支持Ultra SCSI(Fast-40)传输速率为每秒40MB。驱动模拟支持“SCSI自动配置”功能,例如,SCAM允许使用ID序号自动配置SCSI设备,因而不需要人工分配ID。
·虚拟SCSI层:虚拟SCSI层的首要任务是管理SCSI命令并负责VMM与虚拟存储系统之间的连接,这些虚拟存储系统既可以是虚拟机器文件系统(Virtual Machine File System,VMFS),也可能是网络文件系统(Network File System,NFS)。所有来自VM的SCSI命令必须经过虚拟SCSI层,这一层还负责管理I/O放弃和重置操作。在这一层,通过VMFS、NFS或原始设备映射(Raw Device Mapping,RDM),虚拟SCSI层将来自VM的I/O或SCSI命令传送到更低层。RDM支持两种模式:pass-through和nonpass-through。在pass-thruogh模式下,所有SCSI命令都能通过虚拟SCSI层,而不会受到阻拦。有关RDM的详细内容请参考本章后面的“裸设备映射”的相关内容。
·虚拟机器文件系统(Virtual Machine File System,VMFS):VMFS属于集群文件系统,能够协调共享存储支持多个ESX主机同时读写同一存储。VMFS支持磁盘分布式锁机制,能够确保同一个VM在同一时刻不会被多个服务器启动。在简单配置方案中,VM的磁盘将被看成VMFS中的文件。更多VMFS的内容请参考本章后面的“虚拟机器文件系统”的相关内容。
·SCSI中层:SCSI中层的主要作用是管理ESX服务器主机上的物理HBA,维护请求队列以及处理SCSI错误。此外,该层还包括自动重复扫描登录,可以发现逻辑单元号(Logical Unit Number,LUN)到ESX服务器主机间的映射变更。它同时还负责处理路径管理,包括自动路径选择、路径重叠、故障切换以及恢复到某个指定卷。
·虚拟SCSI HBA:在ESX服务器环境中,每个VM最多能够使用4个SCSI HBA,而虚拟SCSI HBA能够支持VM对逻辑SCSI设备的访问,对VM而言,虚拟SCSI HBA等同于一个物理HBA。
虚拟数据存储的概念
VM内的虚拟SCSI磁盘均由虚拟数据存储提供,这些虚拟数据存储源自物理存储系统。一个虚拟数据存储类似一个虚拟存储池,能够为VM内的虚拟磁盘提供存储空间,也能存储相应的VM定义。
虚拟磁盘(vmdk)是一个驻留在虚拟数据存储中由ESX管理的文件,虚拟数据存储属于VMFS卷,是实现基于块的存储(类似光纤通道SAN以及iSCSI)的基础,也是NAS存储(基于NFS的卷)的挂载点。VMFS卷通常由单个LUN组成,不过它也能跨越多个LUN。虚拟数据存储可以是如下任意一种文件格式:
·虚拟机器文件系统(Virtual Machine File System,VMFS):ESX服务器会在本地SCSI磁盘(DAS)、iSCSI卷或光纤通道卷上部署该类型的文件系统,为每个VM创建一个目录,在大多数虚拟数据存储中,都推荐使用VMFS。
·裸设备映射(Raw Device Mapping,RDM):RDM支持VM把RDM当做代理来直接访问裸设备。一个RDM可以被理解成是一条VMFS卷到RDM卷的象征链路。
·网络文件系统(Network File System,NFS):ESX服务器能够使用NFS服务器(NAS设备)上一个指定的NFS卷,ESX服务器将挂载该NFS卷,并为每个VM创建一个目录。
总的来说,虚拟数据存储仅仅是一个VMFS卷或者一个NFS挂载目录。一个VMFS卷能够跨越多个物理存储子系统以便实现扩展。虚拟数据存储提供了一个简单的模型,无须将VM暴露在各式各样复杂的物理存储技术中,就能为每个VM分配存储空间。这些技术包括:
·FC SAN:由于FC SAN能够支持VMFS、RDM以及HA集群,因此是一种应用最广泛的部署选择。FC SAN还支持VMotion及ESX引导。
·iSCSI SAN:基于硬件的iSCSI SAN支持的功能类似FC SAN,如果使用了基于软件的iSCSI,则不能够支持从iSCSI SAN进行引导。
·NAS:这一种部署将使用NFS协议,基于NFS的存储不支持RDM、HA集群以及VMFS。按理说,通过NFS,比借助基于块的存储,更容易进行瘦管理、存储动态扩展/收缩,以及克隆,不过两者差别不大。
说明:DAS是一种合法部署,但由于它不提供共享,因此很少使用。
图2-8展示了一个ESX服务器存储体系结构,该结构中使用了VMFS卷和挂载NFS卷。每一个VM都被以一组文件形式存放在它自己的虚拟数据存储目录中。一个单独的VMFS卷能够包含一个或多个更小的卷,这些卷来自FC SAN磁盘或iSCSI SAN磁盘集群。新产生的卷可以被加在任意一个物理存储、子系统或随着存储子系统一起被扩展的ESX服务器能获悉的LUN中,并且将因为vCenter服务器向ESX服务器发送重新扫描的请求而被发现。
图 2-8 ESX服务器存储的体系结构
说明:在某种程度上,ESX服务器实现了基于主机(或服务器)的存储虚拟化,因为VMFS卷能够支持FC和iSCSI SAN的块级别虚拟化。
虚拟机器文件系统
VMFS存储了VM文件,包括磁盘映像、快照等,它属于聚簇文件系统,通过存储共享以支持多个物理服务器同时读写同一存储空间,同时对单独的VM上锁以预防发生冲突。VMFS提供了到磁盘的分布式锁机制以保证同一VM不会在同一时间被多个服务器占用。如果某个物理服务器发生故障,该服务器对VM加上的磁盘锁将被释放,以便其他物理服务器能够重新启动该VM。
通过将多个VMFS卷绑在一起,能够对VMFS卷进行逻辑扩展(例如,无损规模增长)。ESX服务器3.x以及vSphere 4.x支持VMFS版本3(VMFS3),它能够在文件系统中引入一种目录结构,更早一些的ESX服务器版本不支持对VMFS3卷的读写操作。自ESX 3以及VMFS3版本起,VM配置文件默认存放在VMFS分区中。一个VMFS卷能够扩展到32个物理存储扩展(每个VMFS卷可拥有32个扩展卷),包括SAN卷及本地存储,这一功能特性能够满足VM对创建存储资源卷的灵活性及资源池的需求。
对VMFS进行优化是为了实现存储和访问大容量文件,由于使用了大尺寸块,VM磁盘性能与本地SCSI磁盘相差无几。VMFS磁盘越大,元数据存储所需的空间比例就越低,VMFS磁盘还能利用自有逻辑自动检测到LUN的变化。VMFS还能够支持诸如分布式日志、冲突一致性VM I/O路径以及机器状态快照等功能,从而能够实现对VM、物理服务器以及存储子系统的快速根本原因分析及恢复。
裸设备映射
VM使用裸设备时可以采用两种映射模式:
·虚拟模式:该模式下系统隐藏了被映射磁盘的实际物理特征,因此用户OS感觉被映射的磁盘像一个逻辑卷,或者虚拟文件系统。文件上锁可以对并发更新时数据进行隔离从而能够保护数据,写操作复制可以启动快照,由于虚拟模式支持虚拟磁盘文件的一致性行为,因而具备了存储硬件之间的可移动性。
·物理模式:该模式类似传递模式(pass-through),VMM绕过I/O虚拟化层(虚拟SCSI层),将所有I/O命令直接送给存储设备。所有底层存储设备的物理特性都将暴露给用户OS。该模式适用于用户在VM中使用了SAN感知设备的情况。不过,付出的代价就是VM以及物理节点RDM不能被复制,或者生成某个模板,也不能在有磁盘复制操作时进行迁移。该模式下系统不会提供锁机制来实现数据保护。
RDM为VM直接访问物理存储子系统(采用FC或iSCSI)上的卷提供了一定的灵活性,它在VMFS卷与裸卷之间提供了一个象征性的连接,VM配置中引用了RDM文件(非裸卷),包括了管理和重定向物理存储设备访问的元数据信息。
如图2-9所示,当一个卷对外开放后,VMFS完成了RDM文件到正确的物理存储设备的映射,以及卷访问之前必要的访问检查以及锁控制,因此,接下来无须通过RDM文件就可以对裸卷直接进行读写操作。
图 2-9 裸设备映射
RDM支持对物理存储设备的直接访问,同时又保留了VMFS中虚拟磁盘的优势,RDM一般适合于用户OS上的HA集群或基于SAN的备份这类应用。