分类: WINDOWS
2009-03-30 12:11:38
Cluster Shared Volumes支持动态迁移的工作原理
动态迁移需要在故障转移中使用Windows Server 2008 R2的新功能Cluster Shared Volumes (CSV)。CSV可以使故障转移中的多个节点同时访问同一LUN。如下图所示的,从虚拟机的角度来说,每个虚拟机实际上都占用一个LUN,然而,针对每个虚拟机的VHD文件被保存在相同的CSV卷中:
因为CSV为集群中的节点提供了连续的文件命名空间,所有任何保存在CSV卷中的文件都有相同的名称和路径。CSV卷被作为目录和子目录保存在ClusterStorage根文件夹下,如下图所示:
CSV卷(卷1,卷2,卷3)被保存在Cluster Storage文件夹中。如果Cluster Storage文件夹存在于E盘的根文件夹下,每个CSV卷完全验证的路径应该是:
E:\ClusterStorage\Volume1\root
E:\ClusterStorage\Volume2\root
E:\ClusterStorage\Volume3\root
所有的集群节点都可以通过使用这些完全验证的路径共享卷。虽然CSV目前只应用于动态迁移中,但是CSV的好处还不止这些。例如,CSV可以使用一个NTFS而不是很多其他特有的格式轻松的完成架构配置,这就意味着管理员不需要重新定义SAN的格式来利用CSV。而且还意味着管理员可以更好地向用户展示一个数据库,而不是繁多的小型数据库。最后CSV不需要自己的config和管理工具。那些习惯了使用Windows Server 2008 R2工具的管理员可以继续使用相同的平台,只要配合R2中的CSV就可以了。
NTFS不是一个集群文件系统,因为它的目的是只访问一台,不支持同时并发访问多台。这通常不会有问题。在故障转移群集,对于服务/应用程序来说只有一个节点是主动的,LUN所包含的相关数据是被主动的节点所占有的。
如果服务/应用程序移动到另一个节点,那么原来的的物理磁盘资源将卸除,然后重新装在新的主动节点上。这意味着LUN在节点间失败会有几秒钟的停机时间。这移动LUN的几秒钟在虚拟化里是不能被接受的;想要在节点间移动虚拟机零停机时间,这意味着需要一种可以支持多个节点同时访问一个LUN上的VHD文件的方法 。如下图所示:
Server 2008 R2现在拥有了Cluster Shared Volumes (CSV)这个新功能,它可以使所有的集群节点共享可用存储中分配给Cluster Shared Volumes的磁盘。Cluster Shared Volumes显示为%systemroot%:\ClusterStorage文件夹的一个公共的子文件夹。每卷被命名为Volume(如:C:\ClusterStorage\Volume1和C:\ClusterStorage\Volume2)
一个虚拟机被放置在VolumeN文件夹中的自己的子文件夹中。CSV最大的特点就是所有的集群节点可以同时访问CSV中的内容。这意味着不同的节点需要进入一个VHD文件时没有任何的拖延时间。也就是说,每个虚拟机被放置在卷中自己的子文件夹中,所以不要再为每台虚拟机占用一个LUN来容错。下图所示CSV其中的一部分:一群两卷的ClusterStorage文件夹:
CSV集群中的一个节点作为卷的协调节点使用。它是唯一可以写NTFS的元数据到卷中的节点。这意味着所有试图写入数据到CSV的节点需要发送数据更新到卷的协调员节点。集群中所有的节点可以直接写正常块级的信息到卷中大多数都是依靠积极性的。实际执行CSV是通过CSVFilter.sys文件系统迷你筛选器驱动程序,它是负责拦截与目标卷失去联系的节点NTFS元数据请求和所有的I/O请求。如果节点不能与目标卷联系,它可以要求协调节点执行其所有的I/O。
CSV目前只作为支持Hyper-V使用。作为额外的优点, CSV解决了前面集群节点间转移,每个VHD文件必须在它自己的LUN上的问题。这是虚拟机独立的在每个节点间移动的必要条件。因为访问LUN是故障转移最小单元。你可以使集群中不同的节点同时的访问同一LUN上的多个VHD文件,不再需要一个虚拟机一个LUN。这减少了复杂性并且节省潜在浪费的空间。
利用了CSV,动态迁移的无停机迁移特点得以实现。当然,在这一过程中不是毫无条件的。以下是利用故障转移集群执行动态迁移的一些要求:
1、动态迁移可以被同一故障转移集群中的集群节点执行(虚拟机只能在集群节点间移动)
2、Hyper-V™ 必须运行在故障转移集群的集群节点间并且访问相同的共享存储
3、被动态迁移所移动的虚拟机的VHD文件必须存储在相同的共享存储上
CSV提高了集群节点间的容错能力
因为有了CSV架构,集群节点连接性的容错能力有所加强,这对运行在集群中的虚拟机有直接影响。CSV架构采用了一种被称为动态I/O重新定向(Dynamic I/O Redirection)的机制,其中I/O可以基于可用的连接性被重新到备援集群中,如下图所示:
可以被重新定向的第一种故障类型就是集群节点之间共享存储的集群节点连接性故障,通常出现在SAN中。如下图所示,如果在节点2上的SAN连接出现故障,I/O操作通过网络被重新定向到节点1上。然后节点1运行向SAN的I/O操作。这让你可以将运行在节点2上的虚拟机实时迁移到节点1上。
CSV的I/O连接性容错
第二个能够被重新定向的故障类型就是集群节点的网络连接性故障。如下图所示,节点1和节点2之间的主网络连接发生故障。节点2通过冗余网络连接自动将网络传输到节点1,并有节点1运行网络I/O操作。
CSV的网络容错
第三个可以被重新定向的故障类型就是整个集群节点故障。如下图所示,节点1拥有整个卷,该卷被运行在节点2上的虚拟机所使用。当节点1发生故障,对卷的所有权就被变更到节点2,这不会对运行在节点2上的虚拟机服务带来任何影响。
以上就是关于Cluster Shared Volumes特性功能的一些介绍,不难看出,它将为企业虚拟化的应用添加上缤纷的一笔。
转载自: