Windows server 2012 Hyper-V故障转移群集和终端用户相比,企业用户对于业务的连续性和可靠性更为在意。
相对而言,企业一般不会将追逐单一硬件的性能排在第一位。
如何衡量业务是否持续可用,一般使用"x 个9"这种方式来定义。
如我们常说的"3 个9",即表示年可用性为99.9%,也即意味着一年只能有76 个小时的系统停机时间。
对于单台物理服务器而言,这意味着该设备一年内不能出现硬件损坏的情况,否则更换配件和重新上架的时间过长,很容易导致可用性等级超出这个标准。
像"5 个9",甚至"6 个9"这种高可用性是如何实现的呢?可想而知,通过单台物理服务器来实现这种目标将是非常苛刻且成本高昂的。
常见的可用性与相应的可允许停机时间如表8-1 所示。
为了满足企业对业务持续可用的追求,降低年故障停机时间,系统、网络、存储各大厂商都引入了"群集"的概念。
"群集"的作用是通过多台硬件同时运行来实现的,当故障发生时,通过快速且自动化的切换故障服务器,从而实现业务的持续运行。
和传统的硬件故障或网络故障发生后,需要人为参与排障不同的是,群集技术是不需要人为参与的,可以做到全自动运行。
当故障发生时第一时间转移故障节点,从而极大限度的提升业务持续可用的能力。
Windows Server 2012 R2 作为新一代的Cloud OS,其Hyper-V 角色自然也拥有"群集" 的能力。
Windows 下的群集技术被称之为"故障转移群集",Hyper-V 角色的故障转移群集目的很明确:当群集内某一台Hyper-V 主机出现故障无法提供服务时,可由群集内的其他主机快速接管任务,继续为用户提供持续可用的服务。
在介绍微软私有云之前,必须对微软的故障转移群集有深入的了解,它属于微软私有云实现高可用性的核心技术。
1 故障转移群集简介1.1 故障转移群集功能故障转移群集(Failover Cluster)是Windows Server 下的群集技术的全称。
它指的是一组协同工作的独立服务器,通过物理链路和软件进行连接,以相应的技术手段来实现更好的服务可用性:当群集内某一台物理服务器出现故障时,另一台服务器开始接管故障服务器的服务(此转移的过程被称为故障转移过程)。
群集角色会主动监测群集内的主机工作是否正常,通过故障转移,最终用户所能感知到的停机时间将会非常短暂。
尽管群集多数是由两台以上的独立服务器组成,但在逻辑上,它们被认为是一个紧密的整体。
故障转移群集在Windows Server 下是一项覆盖面很广的技术,其不仅可以提升Hyper-V 的服务可用性,还可以将以下几个重要角色添加到故障转移群集中:∙DFS 命名空间服务器:命名空间是一个组织中文件共享的虚拟视图。
当用户查看命名空间时,共享看似驻留于单个硬盘中。
用户无需了解承载数据的服务器名称或文件共享,即可导航命名空间。
∙DHCP 服务器:DHCP 服务器自动提供客户端计算机和其他基于TCP/IP 并具有有效IP 地址的网络设备。
∙虚拟机:虚拟机是在物理计算机上运行的虚拟化的计算机系统。
多个虚拟机可运行在同一台计算机上。
关于虚拟机的故障转移群集也是本书的重点之一。
∙Hyper-V 副本代理:故障转移群集可以使用Hyper-V 副本代理加入具有Hyper-V 副本的虚拟机复制。
每个故障转移群集上只能配置一个Hyper-V 副本代理。
通过Hyper-V 副本代理,使得Hyper-V 副本可以在故障转移群集中使用。
∙文件服务器:文件服务器的群集可以为用户提供基于文件共享的高可用实例。
∙通用服务、脚本、应用程序:可以将本不是用于在故障转移群集中运行的服务、脚本、应用程序配置高可用性。
∙Exchange 服务器:在早期的Exchange 中,如Exchange2007,即采用的故障转移群集技术,最新的Exchange2010 和2013 所采用的DAG 技术则采用了故障转移群集组件提供的有限的一部分群集功能。
DAG 使用群集数据库、群集心跳(Clusterheartbeat)及文件共享见证(File Share Witness,FSW)功能∙SQL Server,SQL Server 是一套数据库系统,通过故障转移群集,可为SQL Server 带来高可用性,使用户免遭服务中断的影响。
1.2 什么是高可用性高可用性(High_Availability)简称HA,其不限制具体采用的技术,只要利用到了"未雨绸缪"的设计思想,均算是高可用性的一种。
如正常的系统备份、硬件级别的离线冷备份、硬件级别在线热备份、异地灾备、软件群集技术,这些均算是高可用性的范畴内。
唯一不同的是,由于所采用的技术不同,其所提供的可用性级别不同,出现故障时的转移时间不同。
1.3 故障转移群集优势故障转移群集的优点正如其名称一样,通过转移故障,为最终用户带来自动化的,中断时间相对较短的高可用性。
总的来说,故障转移群集可以实现以下几个目标:∙适应计划内的停机维护,通过故障转移群集,可以在设定的时间范围内对群集内的一部分服务器进行停机维护,同时可以保障业务的连贯性。
使用故障转移群集,可以在白天进行一些维护工作,而无需等到夜深人静时加班去做这些操作。
∙减少计划外的停机时间,故障转移群集通过自有的算法机制,自动接管意外停机服务器上的服务,减少由于硬件或软件的故障造成的停机,对业务连贯性的影响,维护整套系统的高可用性。
由此可以看出,故障转移群集是一种为提供更高可用性而存在的技术。
在Windows Server 2012 R2 中,故障转移群集支持最多64 个节点,而在Windows Server 2008 R2 中,仅仅支持16 个节点。
在数据中心越来越庞大的今天,16 个节点的限制显然是捉襟见肘的,要满足用户的需求,升级系统势在必行。
同时,在Windows Server 2012 R2 中,每个群集中的最大虚拟机数量也从Windows Server 2008 R2 中的1000 个提升到了8000 个。
1.4 故障转移群集的缺点故障转移群集可以为企业带来更高的可用性,相应的,为了搭建故障转移群集需要付出一部分代价方可实现。
∙相对较低的资源利用率,由于希望当故障发生时,可以有备用的服务器随时转移故障,接管服务,因此群集内的所有服务器不可能会满负荷运行,至少要预留一部分资源,以完成可能会发生的故障转移的操作。
∙增加响应时间,由于最终用户不是直接和目标服务器通信,而是由一套群集机制来负载和分流,因此对于维护故障转移群集本身,这需要消耗一部分系统资源去实现,相应的,会增加一些系统响应时间。
∙额外的成本,由于使用故障转移群集需要投入冗余的硬件成本和共享存储,因此在设备投资上会超越非高可用架构的设计规划。
∙相对较高的技术要求,由于使用了冗余的架构设计,因此需要IT 管理人员的知识面要更加广泛。
1.5 故障转移群集的网络要求故障转移群集要求网络存在冗余,一般实际部署中,单台物理服务器会使用两条网线,其中一条接入生产网络,另外一条作为心跳线(heart line),为群集之间互相验证存活的手段。
需要注意的是,心跳线在Windows Server 2012/2012 R2 中并不是必要条件。
故障转移群集建议的是网络链路的"最好"存在冗余,至于冗余的线路是承载生产网络还是单纯作为心跳使用,并没有严格要求。
如果希望业务能够很好的分层处理,在规划服务器虚拟化或微软私有云之初,就需要对故障转移群集的网络部分进行统筹设计。
任何方案都类似,当架构成型后,再做架构方面的变动,就会牵扯到很多环节,继而有可能影响业务的持续可用。
2 搭建共享存储服务器如果希望使用故障转移群集,则必须要为故障转移群集准备共享存储,共享存储可以使用直连存储、iSCSI 存储、光纤存储中的一种。
关于三种存储的优缺点,以及所采用的硬盘所带来的性能差异可参考本书前面的章节。
如果企业预算紧张或在测试环境中希望对群集的功能进行验证,则可以使用Windows Server 2012 R2 自带的角色功能来搭建"iSCSI 目标服务器"。
2.1iSCSI 目标服务器的优势作为Windows Server 2012 起自带的一项系统功能,"iSCSI 目标服务器"最大的优势是搭建简单,应用方便。
在Windows Server 2008 R2 时代,如果希望搭建虚拟化的共享存储,一般会采用"Openfiles"的类Linux 操作系统来实现,Openfiles 配置共享存储的操作步骤较多,设置选项也较为复杂,相比我们熟知的Windows Server 系统,其部署难度和管理难度都超出预期。
Windows Server 2012 R2 提供了简便快捷的"iSCSI 目标服务器",将部署和运维共享存储的难度进一步降低。
另一方面,Windows Server 2012 R2 中"iSCSI 目标服务器"所生成的存储格式为vhd 或vhdx,在Windows Server 2012/2012 R2 操作系统中,这种文件格式极易被编辑和拷贝、增减、维护。
这一点也是该功能的显著优势。
2.2 安装iSCSI 目标服务器角色为了使用"iSCSI 目标服务器"来模拟iSCSI 共享存储,首先需要为目标服务器添加"iSCSI 目标服务器"角色。
如果希望保证"iSCSI 目标服务器"的性能,建议最好在物理服务器上安装此角色。
如果为了验证功能,不考虑性能,则可以在虚拟化环境中搭建。
在继续进行下面的操作之前,需要简单理解三个概念:∙iSCSI 目标服务器:为其他计算机提供iSCSI 存储的服务器,角色性质类似于FTP/HTTP,以对外提供服务为主要特征。
∙iSCSI 发起程序:连接iSCSI 目标服务器的客户端信息,可以为IP 地址、MAC 地址、DNS 名称等。
∙iSCSI 目标:iSCSI 目标是iSCSI 发起程序的集合,一个iSCSI 目标可以包含多个并且不同种类的发起程序。
iSCSI 目标对应的主机可以是iSCSI 目标服务器,也可以是iSCSI 发起程序所在的主机。
第1 步,登录 这台计算机,本地登录或远程桌面登录均可。
依次点击打开"服务器管理器"→"仪表盘"→"添加角色和功能"。