红帽集群套件(RedHat Cluter Suite, RHCS)是一套综合的软件组件,可以通过在部署时采用不同的配置,以满足你对高可用性,负载均衡,可扩展性,文件共享和节约成本的需要。

它提供有如下两种不同类型的集群:

  • 1、高可用性:应用/服务故障切换-通过创建n个节点的服务器集群来实现关键应用和服务的故障切换
  • 2、负载均衡:IP 负载均衡-对一群服务器上收到的 IP 网络请求进行负载均衡

集群:

1.节点(node) 
运行集群进程的一个独立主机,称为节点,节点是HA的核心组成部分,每个节点上运行着操作系统和集群软件服务,在集群中,节点有主次之分,分别称为主节点 和备用/备份节点,每个节点拥有唯一的主机名,并且拥有属于自己的一组资源,例如,磁盘、文件系统、网络地址和应用服务等。主节点上一般运行着一个或多个 应用服务。而备用节点一般处于监控状态

2.资源(resource) 
资源是一个节点可以控制的实体,并且当节点发生故障时,这些资源能够被其它节点接管

3.事件(event) 
也就是集群中可能发生的事情,例如节点系统故障、网络连通故障、网卡故障、应用程序故障等。这些事件都会导致节点的资源发生转移,HA的测试也是基于这些事件来进行的。

4.动作(action) 
事件发生时HA的响应方式,动作是由shell脚步控制的,例如,当某个节点发生故障后,备份节点将通过事先设定好的执行脚本进行服务的关闭或启动。进而接管故障节点的资源

实验环境:

物理主机:172.25.26.250

 server1:172.25.26.2  

 server2:172.25.26.3

1、server1和server2配置yum源

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

[rhel-source]

name=Red Hat Enterprise Linux $releasever - $basearch - Source

baseurl=http://172.25.26.250/source6.5

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[HighAvailability]

name=Red Hat Enterprise Linux HighAvailability

baseurl=http://172.25.26.250/source6.5/HighAvailability

gpgcheck=0

[LoadBalancer]

name=Red Hat Enterprise Linux LoadBalancer

baseurl=http://172.25.26.250/source6.5/LoadBalancer

gpgcheck=0

[ResilientStorage]

name=Red Hat Enterprise Linux ResilientStorage

baseurl=http://172.25.26.250/source6.5/ResilientStorage

gpgcheck=0

[ScalableFileSystem]

name=Red Hat Enterprise Linux ScalableFileSystem

baseurl=http://172.25.26.250/source6.5/ScalableFileSystem

gpgcheck=0

2.server1和server2都安装ricci,设置密码并启动

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

[root@server1 ~]# passwd ricci

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

[root@server1 ~]#  chkconfig ricci on

3.在server1上安装luci,并启动

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

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

[root@server1 ~]# chkconfig luci on

  1. 界面登陆设置,用户为server1的root用户及其密码

https://172.25.26.2:8084

按图标进行创建,passwd是server1和server2中ricci密码设置中,server1和server4会重新启动

二.安装fence系统

物理主机:172.25.26.250

1.安装

[root@foundation26 ~]# yum install fence-* -y

[root@foundation26 ~]# fence_virtd -c

[root@foundation26 ~]# mkdir /etc/cluster

生成随机密钥文件,重启服务

[root@foundation26 cluster]# systemctl   restart    fence_virtd

[root@foundation26 cluster]# dd if=/dev/urandom of=/etc/cluster/fency_xvm.key bs=128 count=1

把密钥文件传递给server1和server2

[root@foundation26 cluster]# scp /etc/cluster/fency_xvm.key root@172.25.26.2:/etc/cluster/

[root@foundation26 cluster]# scp /etc/cluster/fency_xvm.key root@172.25.26.3:/etc/cluster/

2.创建fence设备

打开浏览器,选择Fence Devices 中Add

选择server1,点击Add Fence Method 为fence1

选择server2,点击Add Fence Method 为fence2

选择 Fence1 中 Add Fence Instance

添加Domain为虚拟机的uuid

fence2同样的方法添加

测试:

Server1:

[root@server1 ~]#fence_node   server2

[root@server1 ~]#clustat

三.在搭建好的集群上添加Nginx服务

1.server1和server2上都部署好 nginx

[root@server1 ~]#  ls

[root@server1 ~]#tar  zxf   nginx-1.14.0.tar.gz

[root@server1 ~]ls

[root@server1 ~]#cd  nginx-1.14.0

cd   src

cd     core

vim   nginx.h

cd    /root/nginx-1.14.0

cd   auto

cd    cc

vim   gcc

 ./configure   --prefx=/usr/local/nginx     --with-http_ssl_module    --with-http_stub_status_module   --with-threads  --with-file-aio

yum install   -y  gcc

yum   install -y  pcre-devel

yum install    openssl-devel   -y

make

make   install

cd   /usr/local

ln -s  /usr/local/nginx/conf/nginx.conf       /sbin

nginx   -t

lscpu

vim   /etc/security/limits.conf  

vim     /usr/local/nginx/conf/nginx.conf

useradd -M  -d   /usr/local/nginx

id   nginx

nginx

nginx   -s   reload

nginx     -s     stop

nginx  

scp    -r    /usr/local/nginx/        root@172.25.26.3:/usr/local

Server2:

[root@server2 ~]ln  -s  /usr/local/nginx/sbin/nginx     /sbin

[root@server2 ~]nginx   -t

[root@server2 ~]useradd   -M  -d   /usr/local/nginx     nginx

[root@server2 ~]id   nginx

2.配置 Luci web 端

(1)选 择Failover Domains,如图,填写Name(nginxfail),如图选择,前面打勾的三个分别是结点失效之后可以跳到另一个结点、只服务运行指定的结点、当结点失效之跳到另一个结点之后,原先的结点恢复之后,不会跳回原先的结点。下面的Member打勾,是指服务运行server1和server2结点,后 面的Priority值越小,优先级越高,选择Create

(2)选择Resourcs,点击Add,选择添加IPAddress如图,添加的172.25.26.100必须是未被占用的ip,24是子网掩码的位数,5指的是等待时间为5秒。选择Submit

  1. 以相同的方法添加Script,nginx是服务的名字,/etc/init.d/nginx是服务启动脚本的路径,选择Submit

:将nginx的脚本放置到/etc/init.d/nginx下,脚本为自己编写,用户启动nginx

Vim /etc/init.d/nginx

#!/bin/bash

[ -f /etc/init.d/functions ] && . /etc/init.d/functions

pidfile=/application/nginx/logs/nginx.pid

Start_Nginx(){

  if [ -f $pidfile ];then

    echo "Nginx is running"

  else

    /usr/local/nginx/sbin/nginx &>/dev/null

    action "Nginx is Started" /bin/true

  fi

}

Stop_Nginx(){

    if [ -f $pidfile ];then

    /usr/local/nginx/sbin/nginx -s stop &>/dev/null

    action "Nginx is Stopped" /bin/true

  else

    echo "Nginx is already Stopped"

  fi

}

Reload_Nginx(){

  if [ -f $pidfile ];then

    /usr/local/nginx/sbin/nginx -s reload &>/dev/null

    action "Nginx is Reloaded" /bin/true

  else

    echo "Can't open $pidfile ,no such file or directory"

  fi

}

case $1 in

  start)

    Start_Nginx

    RETVAL=$?

    ;;

  stop)

    Stop_Nginx

    RETVAL=$?

    ;;

  restart)

    Stop_Nginx

    sleep 3

    Start_Nginx

    RETVAL=$?

    ;;

  reload)

    Reload_Nginx

    RETVAL=$?

    ;;

  *)

    echo "USAGE: $0 {start|stop|reload|restart}"

    exit 1

esac

exit $RETVAL

3)选择Service Groups,点击Add如图,nginx是服务的名字,下面两个勾指分别的是自动开启服务、运行 ,选择Add Resource,将全局资源IP Address 和Script加入

选择:Add   Resource选择172.25.26.100

选择Add  Resource   选择script

选择Submit,完成,nginx服务组running

3.测试

clustat    ,将server1的webib服务转移到server2上

clustat   查看状态

clusvcadm -r nginx -m server4  将nginx组转移到server4上

clusvcadm -e nginx   重新激活nginx组

clusvcadm -d nginx   停止nginx组

/etc/cluster/cluster.conf     所有的配置都在里面,删了就没了

RHCS套件+Nginx实现高可用负载均衡相关推荐

  1. Keepalived+Nginx实现高可用负载均衡集群

    转载自 https://www.cnblogs.com/mrlapulga/p/6857294.html 一 环境介绍 1.操作系统 CentOS Linux release 7.2.1511 (Co ...

  2. Rhcs套件+nginx实现高可用(HA)以及Fence机制的添加

    一.配置nginx ps:server1和server4配置相同 server2和server3都安装httpd并打开,并在默认发布文件中加以区分 1.配置server1和server4 具体步骤请点 ...

  3. consul-template + nginx部署高可用负载均衡

    一.目标 1.Nginx实现负载均衡 2.consul-template动态维护Nginx里面的server 3.consul-template监控Consul集群 4.每个服务配置Consul做服务 ...

  4. Keepalived+nginx实现高可用负载均衡

    图1基本逻辑图 图2 为IP地址分配. 主要用途 IP Haproxy+ningx_master 192.168.236.143 Haproxy+nginx_backup 192.168.236.19 ...

  5. 基于linux下的 Pacemaker+Haproxy高可用负载均衡架构

    corosync + pacemaker + crmsh 高可用集群 corosync提供集群的信息层(messaging layer)的功能,传递心跳信息和集群事务信息,多台机器之间通过组播的方式监 ...

  6. Linux高可用负载均衡 集群理解

    高可用集群HA的实现方式Heartbeat 当然还有其它如Keeplive 负载均衡群集LB的实现方式. (1).硬件LB(比较出名的)F5;BIG-IP系列.Citri;公司的 NetScaler系 ...

  7. RHCS套件实现高可用负载均衡集群(三)——共享存储

    注:此博文在博文"RHCS套件实现高可用负载均衡集群(二)"的基础上完成 实验开始前设置实验环境 target端配置--server3 [root@server3 ~]# yum ...

  8. RHCS套件实现高可用负载均衡集群(二)——Fence设备

    注:此博文在博文"套件实现高可用负载均衡集群(一)"的基础上完成 环境: 物理机:172.25.54.250,作为fence server1:172.25.54.1 , serve ...

  9. RHCS套件的高可用负载均衡和本地数据存储

    一  高可用负载均衡 1. 在server1和server4端安装nginx,并建立用户nginx,在/etc/secuirty/limit.conf中设定限制,usr/local/nginx/con ...

最新文章

  1. Linux在线求助 man page
  2. 怎么用feign远程调用别人的接口_spring cloud-openFeign声明式远程调用
  3. go语言 数组 map整体json
  4. 中文版putty后门事件的曝光过程及我们所受到的报复
  5. 用户账号系统(python)
  6. mysql添加字段自动记录加入时间、更新时间
  7. 阿里取消周报!但普通数据人的周报、月报焦虑,谁来拯救?
  8. android开发用logcat跟踪错误
  9. DNF怎么查看服务器状态,dnf显示服务器读取中进不去怎么办 dnf显示服务器读取中进不去解决方法...
  10. 主题与颜色--Dcat-Admin框架实战(十)
  11. CryptoJS加密
  12. 十大管理之项目进度管理知识点
  13. 小米平板2可以装鸿蒙系统,搞定LOL?Win10版小米平板2游戏性能实测
  14. 使用Selenium爬取淘宝商品
  15. 倪光南华为鸿蒙,倪光南谈华为鸿蒙:国产鸿蒙操作系统需要生态支持
  16. 从招式与内功谈起——设计模式概述(一)
  17. Typora配置smms图床
  18. 音乐格式怎么转换,音频格式转换的方法
  19. eplan支持mysql_EPLAN软件平台系统和电脑要求
  20. linkerd服务网格调研笔记

热门文章

  1. windows主机中的文件无法拖拽到虚拟机的Ubuntu系统中(即使安装了vmtools)
  2. 如何修改mysql占用的端口号_修改mysql端口号(mysql的端口号)
  3. android内存问题详解--重要
  4. Pycharm 2017.3 最新的激活码
  5. 搜索词与关键词报告区别
  6. 北京筑龙出席《中国招标》30周年座谈会暨理事年会并进行分享
  7. Google Chart API学习(二)
  8. javascript 实现 QQshow
  9. 基于手持技术的中学化学实验教学研究
  10. abcd ab cd 2c语言,整数趣题(求具有abcd = (ab + cd)^2性质的四位数)