博文目录
一、什么是故障转移群集?
二、故障转移群集的要求
三、故障检测
四、部署故障转移群集cluster

一、什么是故障转移群集?

1、故障转移群集概述

随着Internet应用的深入,许多公司越来越依赖在线服务创造价值。这些重要的在线服务一般具有很严格的应用要求,单台服务器是无法满足如此苛刻的要求的,只能使用群集技术来实现。

Windows操作系统提供了一种全新的技术解决方案,它集成在Windows server操作系统中,被称为故障转移群集。故障转移群集主要是指一组独立的计算机,群集服务器(节点)通过网络和软件连接可协同工作,以增强应用程序和服务的可用性。故障转移群集包含一个连接到所有节点的存储设备,即共享存储设备。共享存储设备用于存储群集的公用数据和仲裁数据。双节点故障转移群集如下图:
server 2016部署故障转移群集cluster
为了保证共享存储设备上数据的完整性,故障转移群集内一次只有一个节点拥有共享存储设备的所有权。只有当该节点故障或者人为转移所有权时,才会由下一个节点拥有共享存储设备的所有权。这就决定了故障转移群集和网络负载平衡群集在功能上的不同,即故障转移群集内一般只有一个节点为用户提供服务(活跃状态),其余节点处于备份状态。当主动节点因为故障宕机时,会由下一个节点接替它继续为用户提供服务,而网络负载平衡群集内的节点可以同时为用户提供服务。

2、故障转移群集的特点

  • 故障转移群集可通过资源故障转移而为应用程序提供高可用性的服务。它侧重于保持客户端对应用程序和系统服务的访问。

  • 故障转移群集最多可以支持64个节点和8000个虚拟机。

  • 可以利用本地或Microsoft Azure云见证作为仲裁。

  • 故障转移群集需要使用共享存储设备。

二、故障转移群集的要求

故障转移群集必须满足硬件、软件和网络基础机构的默认要求,并且需要一个具有适当域权限的管理账户。

1、硬件要求

  • 服务器:建议使用一组包含相同或配置相似的计算机,并且要求与Windows server 2016兼容。

  • 网络适配器和电缆(用于网络通信):与故障转移群集解决方案中的其他组件一样,网络硬件也要求和Windows server 2016兼容,如使用iSCSI,则必须将网络配置专用于网络通信或iSCSI,而不能同时用于两者。

  • 用于存储的设备控制器或相应适配器。

  • 共享存储设备:必须与Windows server 2016兼容,并且至少应包含两个独立卷。一个卷将用于见证磁盘,另一个卷将包含群集角色所需的文件。共享存储设备若是本机磁盘,则不能设置为动态卷,只能使用基本磁盘,并且建议使用NTFS文件系统。

2、网络基础结构和账户要求

  • 网络设置:建议使用相同的适配器,并且在适配器上使用相同的通信设置。另外,还要比较网络适配器与它所连接的交换机之间的设置,以确保设置不发生冲突。

  • IP地址:如果群集的专用网络没有用路由到其他设备,则尽量确保每个此类专用网络都使用唯一的子网,不要为用于不同目的的网络指定相同的网段。

  • DNS:群集中的服务器必须使用DNS来进行名称解析,可以使用DNS动态更新协议。

  • 域角色:建议群集中的所有服务器处于相同的active directory域中。此处建议所有的群集服务器都是成员服务器,DC不要配置成群集节点。

  • 用于管理群集的账户:首次创建群集或向群集中添加服务器时,必须使用对该群集中所有服务器具有管理员权限的账户登录到域。

三、故障检测

故障检测和防范时故障转移群集提供的关键优点。当群集中的节点或应用程序失败时,故障转移群集可以通过重新启动失败的应用程序或将故障系统的工作分散给幸存的群集节点来做出响应。故障转移群集故障检测和防范包括双向故障转移、应用程序故障转移、并行恢复及自动故障恢复。

群集服务九二一检测各个资源或节点的故障,并动态地将应用程序、数据和文件资源转移到群集中可用的正常服务器上,然后重新启动它们。因此,数据库、文件共享和应用程序等资源可以对用户和客户端应用程序保持高度可用性。

故障转移群集主要是通过心跳线、仲裁检测群集故障。

1、心跳线

群集的各个节点相互间会定期使用专用的群集网络交换设备发送消息(默认每隔5秒相互发送一次),因为只要群集节点还在工作,就会不停地、周期性地发送信息给群集内的其余节点,所有这些消息被称为心跳信息,用于传送心跳信息的专用网络被称为心跳线。通过心跳通信,每个节点可以检查其他节点及其应用程序的可用性。
如果某个备份节点发生了故障,则会在给定的时间内允许它以几种方式中的任何一种证明它仍处于正常运行中,并且可以同其他正常的节点通信。如果它无法证明,则此时会将它移除群集。
如果活跃节点发生故障,在指定的周期内(默认为两个周期,即10秒)备份节点没有接收到心跳信息,则将进行故障转移,由备用节点接管群集,对外提供服务。

2、仲裁

故障转移群集时否可以正常工作时由群集成员投票决定的,默认情况下,每个群集节点都可以投一票,另外,仲裁见证可以投额外的一票(仲裁见证可以是磁盘或文件共享资源)。只有投票超过半数,群集才能正常工作。

  • 多数节点(无见证),仅群集节点具有投票权。适合群集节点数为奇数的情况。

  • 带见证的多数节点(磁盘或文件共享),除群集节点具有投票权外,仲裁见证也有一票。适合群集节点数为偶数的情况。

  • 无多数(仅磁盘见证),没有群集节点具有投票权,仅磁盘见证有一票。通常不建议使用此模型,容易发生单点故障。

四、部署故障转移群集cluster

本案例以一个双节点的故障转移群集为例,明确区分开三个用途不同的网络:VM2网卡传输心跳信息、VM3连接存储服务器、VM4对外服务

1、案例环境描述:

四台Windows server 2016

一台Windows 7

一台server 2016部署域控制器(我是是事先部署好的域控制器)网卡我设置的VM4对外服务。

第二台部署群集节点1(cluster01),需要三块网卡,VM2(private)用于传输心跳信息,VM3(SAN)用于连接存储服务器,VM4(public)对外服务。加入域环境。

第三台部署群集节点2(cluster02),也需要三块网卡,VM2(private)用于传输心跳信息,VM3(SAN)用于连接存储服务器,VM4(public)对外服务。加入域环境。

第四台部署存储服务(SAN),一块网卡,VM3,要保证和cluster01、cluster02的VM3网络互通。加入域环境。

Windows 7充当客户端,一块VM4网络,保证和前四台网络互通,加入域。

2、开始部署:

AD_DNS配置如下:

网卡调成对外服务的VM4网卡
server 2016部署故障转移群集cluster

登录域
server 2016部署故障转移群集cluster

修改IP地址、DNS及关闭防火墙
server 2016部署故障转移群集cluster

新建一个组织单位,创建两个用户,一会后面用于验证故障转移群集
server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

用户创建完成
server 2016部署故障转移群集cluster

cluster01配置如下:

添加三块网卡
server 2016部署故障转移群集cluster

先证明三块网卡的名字,然后配置IP地址,private是传输心跳,SAN连接存储服务,public对外服务
server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

修改完成将其加入域
server 2016部署故障转移群集cluster

加入成功,重启计算机
server 2016部署故障转移群集cluster

本地管理员登录域
server 2016部署故障转移群集cluster

Cluster02配置如下:

添加三块网卡
server 2016部署故障转移群集cluster

搞清楚三块网卡开始配置IP地址
server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

配置完成之后将其加入域,我就省略了几步图片,不明白可以参照cluster01是怎么加入域的
server 2016部署故障转移群集cluster

本地管理员登录域
server 2016部署故障转移群集cluster

SAN配置如下:

添加连接存储的网卡,也就是VM3
server 2016部署故障转移群集cluster

配置IP地址
server 2016部署故障转移群集cluster

安装存储服务
server 2016部署故障转移群集cluster

默认下一步
server 2016部署故障转移群集cluster

确认无误后开始安装
server 2016部署故障转移群集cluster

安装完成
server 2016部署故障转移群集cluster

配置存储服务
server 2016部署故障转移群集cluster

创建虚拟磁盘位置
server 2016部署故障转移群集cluster

指定一个虚拟磁盘名字
server 2016部署故障转移群集cluster

设置虚拟磁盘大小
server 2016部署故障转移群集cluster

指定一个目标名称
server 2016部署故障转移群集cluster

指定访问服务器,我用IP地址指定,指定完成后其他IP地址就访问不到,后面也就不需要开启CHAP验证了
server 2016部署故障转移群集cluster
server 2016部署故障转移群集cluster

前面也可以不指定IP地址,这一步开启验证也可以的,根据需求自行配置
server 2016部署故障转移群集cluster

确认无误开始创建
server 2016部署故障转移群集cluster

创建完成
server 2016部署故障转移群集cluster

紧接着创建第二块虚拟硬盘
server 2016部署故障转移群集cluster
server 2016部署故障转移群集cluster
server 2016部署故障转移群集cluster
server 2016部署故障转移群集cluster
server 2016部署故障转移群集cluster
server 2016部署故障转移群集cluster
server 2016部署故障转移群集cluster

两块虚拟硬盘创建完成后,你会发现他俩是未连接的
server 2016部署故障转移群集cluster

cluster01连接存储服务器:

接下来开始连接,Cluster01服务器上打开Windows管理工具
server 2016部署故障转移群集cluster

单击是
server 2016部署故障转移群集cluster

输入存储服务器的IP地址连接即可
server 2016部署故障转移群集cluster

打开cluster01的计算机管理器,此时会发现有两块脱机的硬盘,我们将他联机初始化,然后创建简单卷,设置Q盘为心跳盘,S盘为数据库盘
server 2016部署故障转移群集cluster

新建简单卷
server 2016部署故障转移群集cluster

新建Q盘
server 2016部署故障转移群集cluster

默认下一步
server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

第二块硬盘创建S盘,作为数据库盘,操作是一样的我就不截图了。

两块硬盘配置完成后打开此电脑会发现多了两块磁盘
server 2016部署故障转移群集cluster

Cluster02连接存储服务器:

Cluster02连接存储服务器和cluster01操作步骤是一样的,而且盘符必须是一致的,按照cluster01配置就可以了

连接存储服务器成功后,打开磁盘管理会发现和cluster01的盘符不一致,我们需要手动更改盘符
server 2016部署故障转移群集cluster

第一块硬盘更改盘符为Q盘
server 2016部署故障转移群集cluster

更改第二块硬盘盘符
server 2016部署故障转移群集cluster

更改为S盘
server 2016部署故障转移群集cluster

cluster01开始安装文件服务器故障转移群集:

添加文件服务器
server 2016部署故障转移群集cluster

添加故障转移群集
server 2016部署故障转移群集cluster

确认无误开始安装
server 2016部署故障转移群集cluster

安装完成
server 2016部署故障转移群集cluster
cluster02也是安装此步骤安装就可以了,安装完成之后就什么也不需要配置了,在cluster01上配置即可

cluster01先配置故障转移群集,然后再配置文件服务器
server 2016部署故障转移群集cluster

创建新群集
server 2016部署故障转移群集cluster

输入服务器名称dc3.benet.com然后添加(计算机名加域名)
server 2016部署故障转移群集cluster

默认下一步
server 2016部署故障转移群集cluster
server 2016部署故障转移群集cluster
server 2016部署故障转移群集cluster
server 2016部署故障转移群集cluster

正常在工作环境的话还需要安装驱动,我是模拟环境就不需要了,注意检测有没有报错,警告是不影响的
server 2016部署故障转移群集cluster

输入群集名称和群集IP地址
server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

继续添加第二个节点
server 2016部署故障转移群集cluster

输入第二个节点的计算机名加域名,我的是dc4.benet.com,基本和第一个节点配置一样,相同步骤我就省略咯
server 2016部署故障转移群集cluster

完成验证配置
server 2016部署故障转移群集cluster
server 2016部署故障转移群集cluster

完成之后点击此电脑会发现共享磁盘在cluster01上,cluster01为活跃节点,而cluster02为备份节点,而且在AD服务器上查看DNS正向查询区域benet.com下多了一台cluster主机,
server 2016部署故障转移群集cluster

配置仲裁见证磁盘
server 2016部署故障转移群集cluster

选择仲裁见证
server 2016部署故障转移群集cluster

配置为磁盘见证
server 2016部署故障转移群集cluster

选择S盘为见证存储卷
server 2016部署故障转移群集cluster

配置完成
server 2016部署故障转移群集cluster

开始配置文件服务器
server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

选择文件服务器
server 2016部署故障转移群集cluster

默认下一步
server 2016部署故障转移群集cluster

创建一个客户端访问的名字和公共IP地址
server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

添加共享
server 2016部署故障转移群集cluster

快速共享
server 2016部署故障转移群集cluster

添加共享位置
server 2016部署故障转移群集cluster

创建共享名称
server 2016部署故障转移群集cluster

默认下一步
server 2016部署故障转移群集cluster

用户添加权限,也就是在AD上创建的那两个用户
server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

bob设置只读权限
server 2016部署故障转移群集cluster

tom设置读取和写入权限
server 2016部署故障转移群集cluster

共享添加权限
server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

配置完成把everyone删除然后应用确定即可
server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

客户端配置如下:

server 2016部署故障转移群集cluster

设置IP地址
server 2016部署故障转移群集cluster

客户端加入域
server 2016部署故障转移群集cluster

本地管理员登录域
server 2016部署故障转移群集cluster

将tom和bob添加到administrator组里,禁用administrator用户,切换bob登录验证
server 2016部署故障转移群集cluster

server 2016部署故障转移群集cluster

Tom登录,
server 2016部署故障转移群集cluster

访问共享文件
server 2016部署故障转移群集cluster

此时可以看出tom有读取和写入权限,可以下载也可以上传
server 2016部署故障转移群集cluster

切换Bob登录
server 2016部署故障转移群集cluster

访问共享文件
server 2016部署故障转移群集cluster

会发现bob只能读取而不能写入
server 2016部署故障转移群集cluster

模拟cluster01故障,活跃节点自动切换到cluster02服务器上,验证能保证用户正常访问
server 2016部署故障转移群集cluster

关机之后去cluster02上查看此电脑会发现群集自动切换过来,cmd里敲ipconfig也会发现两个群集的IP地址自动切换过来,备份节点成为了活跃节点,切换时间只需要5s
server 2016部署故障转移群集cluster

不影响客户端访问,而且也看不出来cluster出了故障
server 2016部署故障转移群集cluster

—————— 本文至此结束,感谢阅读 ——————