Jusene's Blog

heartbeat v1 扩展

字数统计: 1.2k阅读时长: 6 min
2017/05/13 Share

HA Cluster工作模型

  • A/P:两节点集群,active,passive:工作于主备模型
    HA Service通常只有一个,HA Resource可能有多个
  • A/A:两节点集群,active/active,工作于双主模型
  • N-M:N个节点,M个服务,活动节点为M,备用节点为N-M
  • N-N:N个节点,N个服务,节点宕机,服务N-1中的其中一个节点迁移

    partitioned cluster

出现分区集群的时候,我们会进行投票系统投票选举那边的集群可以继续对外提供服务,而without quorum的集群将要进行怎么样处理,我们也是可以对其进行配置的,常见的处理方式有:

  • stopped:停止
  • ignore:忽略
  • freeze:冻结
  • suicide:自杀

资源的倾向性

资源的分配在一个高可用的集群中是有CRM进行管理的,而不同的CRM进行管理资源的方式也是不同的:

  • rgmanager:通过迁移域(failover domain)的方式进行管理,每个迁移域有相应的节点优先级(node priority)
  • pacemaker:
    • 资源黏性:运行于某个节点的倾向性
    • 资源约束:
  • – 位置约束:资源对于运行某个节点的倾向性
  • – 排列约束:资源运行于一处的倾向性
  • – 顺序约束:启动的先后顺序
    a->b->c 启动
    c->b->a 关闭

heartbeat v1扩展

前面我们完成了对于一个网站服务,我们可以通过迁移服务和ip来完成一个web服务的迁移,但是如果针对一个真正可用性的网站服务来说程序目录所在的文件系统,甚至数据库及数据库数据目录都是需要进行故障迁移的,然后这里我们简单演示下文件系统怎么进行迁移,对于数据库的迁移也可以参考httpd的迁移。

我们需要先布置一套共享文件系统,这里使用nfs文件系统:

1
~]# yum install -y nfs-utils
2
~]# mkdir /data
3
~]# chown -R apache.apache /data 
4
~]# vim /etc/export
5
/data 10.211.55.0/24(rw,no_root_squash)
6
~]# service nfs start

node1

1
~]# yum install -y showmount
2
~]# mkdir /data
3
~]# showmount -e 10.211.55.39
4
Export list for 10.211.55.39:
5
/data 10.211.55.0/24
6
~]# vim  /etc/ha.d/haresources
7
node1 10.211.55.24/24/eth0/10.211.55.255 Filesystem::10.211.55.39:/data::/data::nfs httpd
8
~]# service heartbeat restart
9
~]# mount
10
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
11
proc on /proc type proc (rw)
12
sysfs on /sys type sysfs (rw)
13
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
14
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
15
/dev/sda1 on /boot type ext4 (rw)
16
/dev/mapper/VolGroup-lv_home on /home type ext4 (rw)
17
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
18
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
19
10.211.55.39:/data on /data type nfs (rw,vers=4,addr=10.211.55.39,clientaddr=10.211.55.45)
20
21
~]# scp /etc/ha.d/haresources node2:/etc/ha.d/
22
~]# ssh node2 'service heartbeat restart'
23
24
测试:
25
~]# cd /usr/lib64
26
~]# ./hb_standby       #手动迁移

node2

1
~]# mount
2
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
3
proc on /proc type proc (rw)
4
sysfs on /sys type sysfs (rw)
5
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
6
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
7
/dev/sda1 on /boot type ext4 (rw)
8
/dev/mapper/VolGroup-lv_home on /home type ext4 (rw)
9
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
10
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
11
10.211.55.39:/data on /data type nfs (rw,vers=4,addr=10.211.55.39,clientaddr=10.211.55.46)
12
~]# ifconfig
13
eth0      Link encap:Ethernet  HWaddr 00:1C:42:E2:B9:94  
14
          inet addr:10.211.55.46  Bcast:10.211.55.255  Mask:255.255.255.0
15
          inet6 addr: fdb2:2c26:f4e4:0:21c:42ff:fee2:b994/64 Scope:Global
16
          inet6 addr: fe80::21c:42ff:fee2:b994/64 Scope:Link
17
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
18
          RX packets:1477092 errors:0 dropped:0 overruns:0 frame:0
19
          TX packets:940506 errors:0 dropped:0 overruns:0 carrier:0
20
          collisions:0 txqueuelen:1000 
21
          RX bytes:309576127 (295.2 MiB)  TX bytes:139032529 (132.5 MiB)
22
23
eth0:0    Link encap:Ethernet  HWaddr 00:1C:42:E2:B9:94  
24
          inet addr:10.211.55.24  Bcast:10.211.55.255  Mask:255.255.255.0
25
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
26
~]# netstat  -ntlp
27
Active Internet connections (only servers)
28
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
29
tcp        0      0 0.0.0.0:48978               0.0.0.0:*                   LISTEN      -                   
30
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      5961/sshd           
31
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1414/master         
32
tcp        0      0 :::80                       :::*                        LISTEN      15910/httpd         
33
tcp        0      0 :::22                       :::*                        LISTEN      5961/sshd           
34
tcp        0      0 :::33495                    :::*                        LISTEN      -                   
35
tcp        0      0 ::1:25                      :::*                        LISTEN      1414/master

上述我们就实现了一个httpd程序完整的资源迁移过程,httpd的运行资源有监听的ip,文件系统的程序文件,httpd程序。

CATALOG
  1. 1. HA Cluster工作模型
  2. 2. partitioned cluster
  3. 3. 资源的倾向性
  4. 4. heartbeat v1扩展