2.4.2 同步及异步存储虚拟化
同步虚拟化属于基于网络的带内虚拟化部署方式,此时,数据及控制消息使用相同的路径,由一个集中的虚拟存储管理器负责所有的I/O及元数据路由。虚拟引擎通常为一个单独的网络设备,不过也可以将该设备作为特殊的模块嵌入到FC交换机中,或直接运行在服务器上。所有I/O都需要经过虚拟设备,这样会对能够利用的SAN拓扑有所限制,有可能产生瓶颈。利用缓存最大化虚拟引擎性能可以解决这一瓶颈问题。IBM SAN卷控制器(SAN Volume Controller,SVC)是基于网络的带内设备的样例。
图2-10给出了一个同步虚拟化的样例。在这个样例中,所有服务器端口都划分到虚拟设备的虚拟目标端口T区域,所有的存储端口均划分到虚拟设备的虚拟发起端口I1。所有来自主机(发起者I)的数据及控制帧都将送往虚拟目标T,并在虚拟目标终止。SCSI CDB(命令描述块)以及LUN都将被重新映射,发起者(例如I1)作为虚拟设备代理将发给物理目标T1一个新帧。
图 2-10 同步虚拟化
异步虚拟化方法属于基于网络的带外虚拟化部署,可以将I/O操作分成如下3个阶段:
1)服务器拦截下I/O请求块。
2)服务器要求元数据管理器确定数据的物理位置。
3)服务器存储或重新检索那些直接经过SAN的数据。
FC SAN上的元数据以带内方式进行传输,以太网链路上的元数据以带外方式传输。在SAN中,每个使用虚拟存储的服务器都必须使用特定接口或安装的代理与元数据管理器进行通信,完成从逻辑的数据访问到物理访问的转换,因此推荐使用带外以太网链路,因为它能够避免SAN中由于IP元数据传输产生的拥塞。
图2-11向我们揭示了异步虚拟化的原理,此时每一个服务器上都运行了一个虚拟化主机代理,负责拦截I/O请求块,并将元数据(CDB以及LUN)发送给带外LAN上的虚拟(元)管理器。虚拟管理器将对CDB以及LUN进行重映射,并将它们返回给服务器。服务器将修改后的帧发送到存储目标端口,所有之后的数据及响应帧都可以在发起者(I)以及目标端口(T)之间直接移动。
图 2-11 异步虚拟化
两种部署方式拥有各自的优缺点:
·同步虚拟化。
·优点:带内部署复杂性较低,因为它使用单点管理模式,整体结构更简单,也不需要主机代理。
·缺点:同步虚拟化增加了每一帧的时延,因为所有的帧都先被终止,然后再被设备重映射,最后才被转发到目标地点。所有的网络传输都经过设备,将增加潜在的单点故障以及性能瓶颈,借助集群解决方案以及大容量缓存解决这些问题,只是执行虚拟操作的集群虚拟化设备又会因元数据库同步产生新的一致性问题。
·异步虚拟化。
·优点:异步虚拟化的主要优势在于低时延。
·缺点:异步虚拟化属于带外操作,要求主机能够拦截控制帧,此外,虚拟(元数据)管理器有可能形成单点故障。
对基于网络的虚拟化而言,到底应选用哪一种部署方案:是带内部署还是带外部署?是否存在一种体系结构能够结合二者的优势,却又可以避免同步虚拟的瓶颈,也不需要异步虚拟中的主机代理呢?基于智能交换机的分离路径架构有可能是一种最佳方案。换句话说,也就是使用基于交换机的混合(分离路径)方法,控制路径采用效率更高的带外部署,而数据路径采用带内部署,这种方案从本质上避免性能瓶颈,也不需要使用主机代理。
在分离路径体系架构中,元数据管理器通常为一个控制路径处理器(Control Path Processor,CCP),嵌入在智能交换机中的特定刀片上,或者位于某个外部带外控制器(设备)上。CPP支持FAIS,负责设备恢复、卷配置(例如,管理LBA元数据、将主机映射到存储LUN上)以及I/O错误或意外处理。这些操作不要求CCP处在界内,也不要求CPP位于数据路径上。当卷信息(主机到存储的映射)确定后,将被委托给数据路径控制器(Data Path Controller,DPC)。DPC包含了高性能的I/O处理ASIC,也驻留在特定刀片上,负责复制等带内操作。当接收到来自CPP的卷信息后,DPC将独立开始工作,完成从虚拟到物理的I/O转换,并且将数据转发到正确的目的地。例如,MDS 9000系列上的Cisco存储设备服务模块(Storage Services Module,SSM)能够支持分离路径架构。SSM支持FAIS,允许集成第三方虚拟引擎(例如EMC Invista)将虚拟化控制数据转移给MDS交换机。