故障转移群集是一个很实用的功能,而windows在2016版本开始,终于支持不用域做故障转移群集.

在群集中,我们可以设定一个"群集IP"

而客户端只需要根据这个"群集IP"就能连接当前群集的主服务器.而不必关心群集服务器之间的替换.

而更棒的是,它是"去中心"的,它没有一个中心主机,我们都知道"有中心"的集群,如果"中心"出了问题,那么整个集群都无法运行了.

而故障转移群集,通常是无中心,或者多中心的(多台设备当中心,只要剩下一个,就没事).

演示环境

1. 通用配置

Key

Value

系统版本

Win2016

集群IP

10.22.20.201

网段

10.22.20.0

网关

10.22.20.1

2. 设备配置

设备编号

IP地址

域名

1

10.22.20.10

d1.net

2

10.22.20.11

d2.net

3

10.22.20.12

d3.net

安装功能

1. 在这个界面点击"添加角色和功能"

windows 故障转移 mysql windows 故障转移群集主备切换_服务器

2. 在弹出的窗口跳到"服务器角色"页,选"DNS"服务,如果已经有了就不用选,按下一步.

windows 故障转移 mysql windows 故障转移群集主备切换_windows 故障转移 mysql_02

3. 在"功能"页选"故障转移群集",并一路继续,直到安装完成.

windows 故障转移 mysql windows 故障转移群集主备切换_IP_03

配置DNS

我这里是建议每台设备单独配置DNS的,因为我要去中心化,如果只有一台设备配置了DNS,而那台设备如果垮了,就整个垮了.

1. 点这里进DNS管理器

windows 故障转移 mysql windows 故障转移群集主备切换_windows 故障转移 mysql_04

2. 新建区域

windows 故障转移 mysql windows 故障转移群集主备切换_IP_05

 

接下来依次:选择主区域,下一步,名称输入"net",后面一路默认即可

完成:

windows 故障转移 mysql windows 故障转移群集主备切换_windows 故障转移 mysql_06

3. 添加所有设备的DNS信息

windows 故障转移 mysql windows 故障转移群集主备切换_windows 故障转移 mysql_07

 

依次添加所有设备,按照最上面的表添加

windows 故障转移 mysql windows 故障转移群集主备切换_windows 故障转移 mysql_08

 

windows 故障转移 mysql windows 故障转移群集主备切换_windows 故障转移 mysql_09

4. 修改本机的DNS服务器ip指向自己

windows 故障转移 mysql windows 故障转移群集主备切换_服务器_10

配置计算机名称

  1. 打开计算机属性
  2. 在"计算机名"页,点"更改"
  3. 在"计算机名"编辑框输入域名前缀,参考最上面的表,我第一台应该填"d1"
  4. 点击"其它"
  5. 在"dns后缀"编辑框输入"net"
  6. 一路点确认回去,并重启...

windows 故障转移 mysql windows 故障转移群集主备切换_windows 故障转移 mysql_11

上面我们配置了一台设备,接着根据那个配置,配置其它设备.这里我配置了三台设备:

windows 故障转移 mysql windows 故障转移群集主备切换_DNS_12

创建故障转移群集,并添加设备.

之前的操作都是每台服务器都要做的,而这个操作,只需要任选一台去做即可,我这里选d1

1. 在这打开"故障转移群集管理器"

windows 故障转移 mysql windows 故障转移群集主备切换_服务器_13

2. 点创建群集

windows 故障转移 mysql windows 故障转移群集主备切换_windows 故障转移 mysql_14

3. 输入三个服务器域名,点"添加"

windows 故障转移 mysql windows 故障转移群集主备切换_DNS_15

 

等待验证结束后,点下一步即可

4. 跳过验证

然后会有个验证,这个验证可以跳过.当然你也可以验证试试...

windows 故障转移 mysql windows 故障转移群集主备切换_IP_16

5.配置群集名称和IP

IP在第一章的表格里提到过

windows 故障转移 mysql windows 故障转移群集主备切换_DNS_17

 

后面一路点下一步与确认即可.

让其它设备连接到群集管理器

注意:这个连接并不是一定要连的,就算不连接,该设备也是群集管理器的一份子,连接上去只是为了"做管理员",可以去管理这个群集

1. 在其它设备打开"故障转移群集管理器",点"连接到群集"

windows 故障转移 mysql windows 故障转移群集主备切换_windows 故障转移 mysql_18

2. 查找此服务器的群集

windows 故障转移 mysql windows 故障转移群集主备切换_服务器_19

3. 连接成功

windows 故障转移 mysql windows 故障转移群集主备切换_DNS_20

配置完成&测试

1. 完成配置

以上的操作结束后可以在群集管理器里看到一个集群,以及三个节点,节点的颜色是绿的表示群集当前三个节点都在稳定运行着

windows 故障转移 mysql windows 故障转移群集主备切换_服务器_21

 

其中一台设备会绑定群集的IP,作为对外的IP.外部设备只需要访问这个IP即可访问服务

如果这台对外的机器突然崩溃了,则群集会自动触发故障转移,将这个IP转移到另一台机器

windows 故障转移 mysql windows 故障转移群集主备切换_DNS_22

2. 关机测试转移

咱把主机关了,测试一下

windows 故障转移 mysql windows 故障转移群集主备切换_IP_23

3. 在其它机器查看

windows 故障转移 mysql windows 故障转移群集主备切换_DNS_24

 

windows 故障转移 mysql windows 故障转移群集主备切换_windows 故障转移 mysql_25

 

可以发现,这里显示该设备已经故障,并且IP也被切换了过来

4. 验证下"去中心"效果

如你所见,我的群集是在d1上创建的,那么把d1关了会怎样呢?

这里把d1关了,把最开始关闭的d3再次打开.

windows 故障转移 mysql windows 故障转移群集主备切换_windows 故障转移 mysql_26

5. 结果

windows 故障转移 mysql windows 故障转移群集主备切换_windows 故障转移 mysql_27

 

就算群集是d1创建的,d1关了也毫不影响整个集群的连接,它不是"中心"

就算d3一开始有ip,后来ip被转移了,d3重新打开也没有直接重新获得ip,可见它也不是"中心"