HA

实验环境

server1  172.25.23.1 ricci ( 集群配置 )  客户端

server2  172.25.23.2 ricci              客户端

server3  172.25.23.3 luci ( 管理集群 ) 服务端

注意 iptables selinux 关掉

       三台机器全部加上解析

 Rhel6.5

###############################################

安装软件

1.配置yumserver1 server2 server3 

[root@server1 ~]# cat /etc/yum.repos.d/rhel-source.repo

[Server]

name=localserver

baseurl=http://172.25.23.23/rhel

gpgcheck=0

 

[HighAvailability]------ 高可用

name=localserver

baseurl=http://172.25.23.23/rhel/HighAvailability

gpgcheck=0

 

[LoadBalancer]------ 负载均衡

name=localserver

baseurl=http://172.25.23.23/rhel/LoadBalancer

gpgcheck=0

 

[ResilientStorage]------ 存储

name=localserver

baseurl=http://172.25.23.23/rhel/ResilientStorage

gpgcheck=0

 

[ScalableFileSystem]------ 大型文件系统

name=localserver

baseurl=http://172.25.23.23/rhel/ScalableFileSystem

gpgcheck=0

 

[root@server1 ~]# yum repolist  ----- 列出可用的包

--> 可查看到有3819可用

 

2.安装软件

server1 server2 

[root@server1 ~]# yum list ricci

[root@server1 ~]# yum install ricci -y

[root@server1 ~]# chkconfig ricci on

[root@server1 ~]# id ricci

[root@server1 ~]# echo westos | passwd --stdin ricci

[root@server1 ~]# /etc/init.d/ricci start

 

server3

[root@server3 ~]# yum install luci -y

[root@server3 ~]# /etc/init.d/luci start

 

二创建集群

1.在浏览器中打开  https://172.25.23.3:8084

HA 集群配置_第1张图片 

  密码为172.25.23.3的密码

 2.创建集群

HA 集群配置_第2张图片

集群名字不可超过15个字符其他选项如图所示

3.创建成功后会生成相应的配置文件/etc/cluster/cluster.conf

HA 集群配置_第3张图片 

 

创建fense

1.fence_xvm.key   

在物理机(物理机中有虚拟机管理器物理机控制虚拟机可以让虚拟机强制断电有force off , shutdown ...)

[root@foundation23 ~]# yum search fence

[root@foundation23 ~]# yum install fence-virtd-libvirt.x86_64 -y

[root@foundation23 ~]# yum install fence-virtd.x86_64 -y

[root@foundation23 ~]# yum install fence-virtd-multicast.x86_64 -y

[root@foundation23 ~]# systemctl start fence_virtd

[root@foundation23 ~]# netstat -antlpe | grep fence_virtd 

# 查不到因为fence_virtdudp通信

[root@foundation23 ~]# netstat -anulpe | grep fence_virtd

# 可看到端口是1229

[root@foundation23 ~]# fence_virtd -c (主要修改br0)

Module search path [/usr/lib64/fence-virt] ...

Listener module [multicast]...

Multicast IP Address [225.0.0.12]...

Multicast IP Port [1229]...

Interface [br0] 

Key File [/etc/cluster/fence_xvm.key]

Backend module [libvirt]

Replace /etc/fence_virt.conf with the above [y/N]? y

 

[root@foundation23 ~]# mkdir -p /etc/cluster

[root@foundation23~]# dd if=/dev/urandom of=fence_xvm.key bs=128 count=1

# fence_xvm.key是截取的不是自动生成

[root@foundation23 ~]# scp fence_xvm.key [email protected]:/etc/cluster/

[root@foundation23 ~]# scp fence_xvm.key [email protected]:/etc/cluster/

[root@foundation23 ~]# systemctl restart fence_virtd.service

2.浏览器中打开图形界面https://172.25.23.3:8084

(1) Fence Devices -> Add -> Fence virt (Multicast Mode) -> Name=vmfence

   Fence类型虚拟型fence

HA 集群配置_第4张图片 

 (2) 做映射

HA 集群配置_第5张图片 

 

HA 集群配置_第6张图片 

Domain 可以是base1也可以是base1UUIDUUID唯一性最好

(3) server2同上

 

3.测试

[root@server1 ~]# clustat

[root@server1 ~]# fence_node server2.example.com  

# 杀死server2即断电重启

[root@server1 ~]# clustat  

# server2启动之后恢复正常再次加入到集群中 

 

四添加http服务

1.server1 server2

[root@server1 ~]# yum install httpd -y

2.server3的图形界面

(1) 添加Failover Domains 

HA 集群配置_第7张图片 

Restricted:是否在失败转移域成员中启用服务故障切换限制

No failback:主节点故障备节点会自动接管相关业务当主节点恢复正常不恢复到主节点

(2) 添加Resources

    HA 集群配置_第8张图片

 

  IP设为未使用 (未被占用) IP ,VIP

HA 集群配置_第9张图片 

(3) 添加Service Groups

  HA 集群配置_第10张图片

  Add Resource 先加IP再加httpd  ( 加的顺序就是启动的顺序 )

3.测试 访问 172.25.23.100

(1) 会先访问server1 (优先级高 ) server1的服务挂掉之后 自动访问 server2 , 并且系统会将server1httpd 重启server1再次加入集群

 

 

HA 集群配置_第11张图片 

/etc/init.d/httpd stop

HA 集群配置_第12张图片 

   

Server1的服务挂掉可以是 /etc/init.d/httpd stop,  /etc/init.d/network stop ......

 

(2)

[root@server1 ~]# clusvcadm -r apache -m server2.example.com

httpd服务转移到server2

(3)

server1 echo c > /proc/sysrq-trigger   ------ 使内核崩掉

server1 崩掉后fence机制force重启

 

 

 

五存储分离 部署iscsci

server3 中 建立存储分离的服务端

server 1 , server2 中为存储分离的客户端

1.server3

(1) 先新建一个新的磁盘 

HA 集群配置_第13张图片添加后会多出来一个vda

(2) 新的磁盘创建分区

[root@server3 ~]# fdisk /dev/vda

  ....

[root@server3 ~]# partx -d /dev/vda

[root@server3 ~]# partx -a /dev/vda

(3) 分享出新的分区

[root@server3 ~]# yum install scsi-target-utils.x86_64 -y

[root@server3 ~]# vim /etc/tgt/targets.conf

  ....

    backing-store /dev/vda1

    initiator-address 172.25.23.1

    initiator-address 172.25.23.2

  

....

[root@server3 ~]# /etc/init.d/tgtd start

[root@server3 ~]# tgt-admin -s  查看是否配置好

HA 集群配置_第14张图片 

2. server1 server2连接共享设备

[root@server1 ~]# yum install iscsi-* -y

[root@server1 ~]# iscsiadm -m discovery -t st -p 172.25.23.3

wKioL1fVIubA8ZdTAABLBNpqL6E434.png 

[root@server1 ~]# iscsiadm -m node -l

# server2同时进行

[root@server1 ~]# fdisk -l

[root@server1 ~]# fdisk /dev/sdb

.... ( 注意修改标签为8e )

[root@server1 ~]# cat /proc/partitions

[root@server1 ~]# partprobe

[root@server1 ~]# pvcreate /dev/sdb1

[root@server1 ~]# vgcreate clustervg /dev/sdb1

[root@server1 ~]# lvcreate -L 2G -n data1 clustervg

[root@server1 ~]# mkfs.ext4 /dev/clustervg/data1

3.将新建的加入到集群中 (先将服务disabled 并且注意先后顺序)

[root@server1 ~]# clusvcadm -d apache

访问https://172.25.23.3:8084

-> 添加resources

HA 集群配置_第15张图片 

-> 修改Service Groups

先加IP Addr Filesystem 最后httpd (scripts)

4.测试

(1) [root@server1 ~]# echo hello > /var/www/html/index.html

(2) 访问172.25.23.100 显示的界面一直是hello。若server1挂掉server2接管 仍为原先的访问界面hello

5.若建立的集群是关于mysql 服务的则挂载点是mysql的存储目录

cat /etc/my.cnf 查看mysql 的存储目录

   [mysqld]

  datadir=/var/lib/mysql

   socket=/var/lib/mysql/mysql.sock

   user=mysql

   ...

在挂载前先将mysql里面的文件备份一份

gfs2 文件系统

分布式集群管理同时挂载时 可支持同时读写 拉神扩容

1.停止服务将集群中的Filesystem删除

[root@server1 ~]# clusvcadm -d apache

Service Groups中将Filesystem remove

2.创建gfs2的文件系统

[root@server1 ~]# mkfs.gfs2 -p lock_dlm -t cluster_wj:mygfs2 -j 3 /dev/clustervg/data1

-j 指定日志的份数一般为节点数量+1

-p锁协议名

-t 集群名

[root@server1 ~]# gfs2_tool sb /dev/clustervg/data1 all

HA 集群配置_第16张图片 

[root@server1 ~]# mount /dev/clustervg/data1 /mnt

[root@server2 ~]# mount /dev/clustervg/data1 /mnt

# /mnt里面修改数据两边会同步

[root@server1 ~]# gfs2_tool journals /dev/clustervg/data1

wKioL1fVIueyD6wdAABX2f2dtcY370.png 

[root@server1 ~]# df -h

wKiom1fVIu3CnTTPAAArNDZ_En8136.png 

[root@server1 ~]# blkid

[root@server1 ~]# vim /etc/fstab

wKioL1fVIu2CYo1uAAApY4a5A94712.png 

注意若是mysql服务则在挂载后需要

 chown mysql.mysql /var/lib/mysql/

[root@server1 ~]# clustat

[root@server1 ~]# clusvcadm -e mysql

3.扩展gfs2的容量

[root@server1 ~]# lvextend -L +2G /dev/clustervg/data1

# 有可能容量不够可以减小扩展的容量 

HA 集群配置_第17张图片 

[root@server1 ~]# gfs2_grow /dev/clustervg/data1

# 同步

HA 集群配置_第18张图片 

 

4.增加日志数量

[root@server1 ~]# gfs2_jadd -j 3 /dev/clustervg/data1

wKiom1fVIvCxWa4MAABUHkP2e-0797.png 

 

七集群的删除

1.停止相关服务

 clusvcadm  -d httpd #停止服务

2.如果有挂载还要先卸载相应的挂载

umount /mnt编辑/etc/fstab的挂载项

3.删除

HA 集群配置_第19张图片 

(1)如上选中全部节点点击Leave Cluster出现如下界面

HA 集群配置_第20张图片 

(2)然后选中节点点击Delete进行删除

delete主要完成两部分

A.删除主配置文件  /etc/cluster/cluster.conf

B.关闭相应的启动项   cman ramanager clvmd  modclusterd

查看所有的相关服务是否全部停止没停的手动停止

HA 集群配置_第21张图片 

只有modclusterd需要手动进行关闭以及停止开机自启动项

4.存储的退出

Ricci节点的主机都需要退出

[root@server1 ~]# iscsiadm -m node -u

[root@server1 ~]# iscsiadm -m node -o delete

[root@server1 ~]# fdisk -l

[root@server1 ~]# /etc/init.d/ricci stop

[root@server1 ~]# chkconfig ricci off