RHCS套件实现高可用负载均衡集群(一)
一、RHCS
什么是RHCS
RHCS即 RedHat Cluster Suite ,中文意思即红帽集群套件。 红帽集群套件(RedHat Cluter Suite, RHCS)是一套综合的软件组件,可以通过在部署时采用不同的配置,以满足你的对高可用性,负载均衡,可扩展性,文件共享和节约成本的需要。
提供有如下两种不同类型的集群:
- 1.高可用性:应用/服务故障切换-通过创建n个节点的服务器集群来实现关键应用和服务的故障切换
- 2.负载均衡:IP 负载均衡-对一群服务器上收到的 IP 网络请求进行负载均衡
RHCS特点
- 最多支持128个节点(红帽企业Linux 3 和红帽企业Linux 4 支持 16 个节点
- 可同时为多个应用提供高可用性
- NFS/CIFS 故障切换:支持 Unix 和 Windows 环境下使用的高可用性文件。
- 完全共享的存储子系统:所有集群成员都可以访问同一个存储子系统
- 综合数据完整性:使用最新的 I/O 屏障(barrier)技术,如可编程的嵌入式和外部电源开关装置(power switches)
- 服务故障切换:红帽集群套件可以确保及时发现硬件停止运行或故障的发生并自动恢复系统,同时,它还可以通过监控应用来确保应用的正确运行并在其发生故障时进行自动重启
集群相关术语
- 节点(node):运行集群进程的一个独立主机,称为节点,节点是HA的核心组成部分,每个节点上运行着操作系统和集群软件服务,在集群中,节点有主次之分,分别称为主节点和备用/备份节点,每个节点拥有唯一的主机名,并且拥有属于自己的一组资源,例如,磁盘、文件系统、网络地址和应用服务等。主节点上一般运行着一个或多个应用服务。而备用节点一般处于监控状态。
- 资源(resource):资源是一个节点可以控制的实体,并且当节点发生故障时,这些资源能够被其它节点接管。
- 事件(event):也就是集群中可能发生的事情,例如节点系统故障、网络连通故障、网卡故障、应用程序故障等。这些事件都会导致节点的资源发生转移,HA的测试也是基于这些事件来进行的。
- 动作(action):事件发生时HA的响应方式,动作是由shell脚步控制的,例如,当某个节点发生故障后,备份节点将通过事先设定好的执行脚本进行服务的关闭或启动。进而接管故障节点的资源。
集群大致结构
二、搭建RHCS环境
基本环境搭建
操作系统:rhel6.5
准备五台主机:
物理机:172.25.54.250,作为fence, 暂时不用
server1:172.25.54.1, 下载ricci,luci(为了提供Conga配置用户界面),server1作为主节点
server2:172.25.54.2, 下载ricci,server2作为副节点
server3:172.25.54.3 后面作iscci共享存储,此时暂时用作RS进行负载均衡测试
server4:172.25.54.4 ,作为RS,负载均衡测试
注:
从红帽企业版 Linux 6.1 开始,您在任意节点中使用 ricci 推广更新的集群配置时要求输入密码。所以在前面两台主机安装完成ricci后需要修改ricci用户的密码,这个是后面节点设置的密码,并且要作时间同步;然后启动安装的服务
避免其他因素影响:关闭所有防火墙,禁用selinux
server1 和server2:配置高可用 yum 源
物理机添加本地解析
[root@foundation54 ~]# vim /etc/hosts
172.25.54.1 server1
172.25.54.2 server2
创建集群
- 浏览器访问
https://172.25.54.1:8084
在网页浏览器的地址栏中输入 cman 服务器的 URL
luci服务器的URL语法为https://172.25.54.1:luci_server_prot
luci_server_port 的默认值为 8084
首次访问时,需做以下操作:
[root@server1 ~]# clustat
Cluster Status for tutu1 @ Wed Aug 1 10:38:44 2018
Member Status: QuorateMember Name ID Status------ ---- ---- ------server1 1 Online, Localserver2 2 Online[root@server1 ~]#
脚本制作
[root@server1 ~]# vim /etc/init.d/nginx
[root@server1 ~]# cat /etc/init.d/nginx
#!/bin/bash
#
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];thenecho "nginx already running...."exit 1
fiecho -n $"Starting $prog: "daemon $nginxd -c ${nginx_config}RETVAL=$?echo[ $RETVAL = 0 ] && touch /var/lock/subsys/nginxreturn $RETVAL
}
# Stop nginx daemons functions.
stop() {echo -n $"Stopping $prog: "killproc $nginxdRETVAL=$?echo[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}
# reload nginx service functions.
reload() {echo -n $"Reloading $prog: "#kill -HUP `cat ${nginx_pid}`killproc $nginxd -HUPRETVAL=$?echo
}
# See how we were called.
case "$1" in
start)start;;
stop)stop;;
reload)reload;;
restart)stopstart;;
status)status $progRETVAL=$?;;*)echo $"Usage: $prog {start|stop|restart|reload|status|help}"exit 1
esac
exit $RETVAL
[root@server1 ~]# chmod a+x /etc/init.d/nginx //使脚本有执行权限
查看server1 和 server2 的 nginx 服务状态
[root@server1 ~]# /etc/init.d/nginx status
nginx is stopped
[root@server1 ~]# [root@server2 ~]# /etc/init.d/nginx status
nginx is stopped
[root@server2 ~]#
测试
[root@server1 ~]# cat /usr/local/nginx/html/test.html
<h1>www.westos.com server1</h1>
[root@server1 ~]#[root@server2 ~]# cat /usr/local/nginx/html/test.html
<h1>www.westos.com server2</h1>
[root@server2 ~]#
[root@server1 ~]# /etc/init.d/nginx stop
Stopping nginx: [ OK ]
[root@server1 ~]#
负载均衡——加入RS:server3, server4
- 添加物理机本地解析
[root@foundation54 ~]# vim /etc/hosts
172.25.54.100 www.westos.org bbs.westos.org westos.org
172.25.54.1 server1
172.25.54.2 server2
[root@foundation54 ~]#
修改 server1 和 server2 的nginx配置文件
// vim /usr/local/nginx/conf/nginx.conf 内容如下:2 user nginx nginx;3 worker_processes 1;4 worker_cpu_affinity 1;13 events {14 worker_connections 65535;15 }
// 下面添加的内容在 http { } 中19 upstream westos {20 #ip_hash;21 #server 172.25.54.2:80;22 server 172.25.54.3:80;23 server 172.25.54.4:80;24 server 127.0.0.1:80 backup;25 }
125 server {
126 listen 80;
127 server_name www.westos.org;
128
129 location / {
130 proxy_pass http://westos;
131 }
132 }
编辑 server3 和 server4 的网页发布内容
[root@server3 ~]# vim /var/www/html/index.html
[root@server3 ~]# cat /var/www/html/index.html
<h1>server3</h1>
[root@server3 ~]# [root@server4 ~]# vim /var/www/html/index.html
[root@server4 ~]# cat /var/www/html/index.html
<h1>server4</h1>
[root@server4 ~]#
测试
[root@server1 ~]# clustat
Cluster Status for tutu @ Thu Aug 2 12:58:56 2018
Member Status: QuorateMember Name ID Status------ ---- ---- ------server1 1 Online, Local, rgmanagerserver2 2 Online, rgmanagerService Name Owner (Last) State ------- ---- ----- ------ ----- service:nginx server1 started
[root@server1 ~]# /etc/init.d/nginx status
nginx (pid 30422 30420) is running...
[root@server1 ~]#[root@server2 ~]# /etc/init.d/nginx status
nginx is stopped
[root@server2 ~]#[root@server1 ~]# /etc/init.d/nginx stop
Stopping nginx: [ OK ]
[root@server1 ~]#[root@server2 ~]# clustat
Cluster Status for tutu @ Thu Aug 2 12:59:29 2018
Member Status: QuorateMember Name ID Status------ ---- ---- ------server1 1 Online, rgmanagerserver2 2 Online, Local, rgmanagerService Name Owner (Last) State ------- ---- ----- ------ ----- service:nginx server12 started
[root@foundation54 ~]# curl www.westos.org
<h1>server3</h1>
[root@foundation54 ~]# curl www.westos.org
<h1>server4</h1>
[root@foundation54 ~]# curl www.westos.org
<h1>server3</h1>
[root@foundation54 ~]# curl www.westos.org
<h1>server4</h1>
[root@foundation54 ~]# curl www.westos.org
<h1>server3</h1>
[root@foundation54 ~]#
RHCS套件实现高可用负载均衡集群(一)相关推荐
- RHCS套件实现高可用负载均衡集群(三)——共享存储
注:此博文在博文"RHCS套件实现高可用负载均衡集群(二)"的基础上完成 实验开始前设置实验环境 target端配置--server3 [root@server3 ~]# yum ...
- RHCS套件实现高可用负载均衡集群(二)——Fence设备
注:此博文在博文"套件实现高可用负载均衡集群(一)"的基础上完成 环境: 物理机:172.25.54.250,作为fence server1:172.25.54.1 , serve ...
- IPVS-DR+keepalived实现高可用负载均衡集群
IPVS-DR+keepalived高可用负载均衡集群方案前端的负载调度器采用双机热备方式,Keepalived主要用来监测RealServer的健康状态以及主负载均衡器和备份负载均衡器之间的故障转移 ...
- keepalive+nginx实现负载均衡高可用_超详细的LVS+keepalived+nginx实现高性能高可用负载均衡集群教程...
概述 前面已经介绍了前两部分内容,下面主要介绍在nginx服务器方面的配置和测试整个集群是否可用. 在realserver端配置VIP 1.两台nginx服务器都要执行下面脚本: #vi /etc/r ...
- Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群
一.前言 前两节分别介绍了 Linux 的高可用集群和负载均衡集群,也可以将这两者相结合,即 Keepalived+LVS 组成的高可用负载均衡集群,Keepalived 加入到 LVS 中的原因有以 ...
- Keepalived+Nginx实现高可用负载均衡集群
转载自 https://www.cnblogs.com/mrlapulga/p/6857294.html 一 环境介绍 1.操作系统 CentOS Linux release 7.2.1511 (Co ...
- RabbitMQ:使用Docker构建RabbitMQ高可用负载均衡集群
目录 一.构建RabbitMQ集群 1. 启动多个RabbitMQ节点 2. 加入集群 3. 配置镜像队列 二.HAProxy负载均衡 1. 安装HAProxy 2. 配置HAProxy 3. 启动 ...
- 汇总-13台虚拟机搭建一个高可用负载均衡集群架构
要求 用13台虚拟机搭建一个高可用负载均衡集群架构出来,并运行三个站点,具体需求如下. 设计你认为合理的架构,用visio把架构图画出来 搭建lnmp.tomcat+jdk环境 三个站点分别为:dis ...
- RHCS套件的高可用负载均衡和本地数据存储
一 高可用负载均衡 1. 在server1和server4端安装nginx,并建立用户nginx,在/etc/secuirty/limit.conf中设定限制,usr/local/nginx/con ...
最新文章
- php+mysql 注入基本过程
- 编写脚本隐藏托盘图标_【Electron-Playground系列】托盘篇
- Tensorflow Day18 Convolutional Autoencoder
- Java连接Mysql数据库警告:Establishing SSL connection without server's identity verification is not recommend
- 拳王虚拟项目公社:月入16000+的虚拟商品教程,虚拟项目全自动化的升级玩法拆解
- 我的博客文章快速索引
- 程序员宝典 c语言版,C语言宝典app下载
- 计算机键盘怎么换键,电脑键盘快捷键怎么更改
- 如何知道自己的手机注册了多少软件和网站?(亲测有效)
- 学计算机发朋友圈文案,2020开学发朋友圈文案句子精选100句
- 前端vue项目下载zip压缩包及附加
- mac os sierra卸载java_如何删除Install macOS High Sierra.app
- windows上配置深度学习(李沐-动手学深度学习)
- 文本分类——常用经典技术解析(jieba,word2vec,样本不平衡问题)
- 测试用例详解用例模板
- setheader是什么意思_XMLHTTP中setRequestHeader()简单分析
- [转载]你所不了解的DevOps
- 1688、淘宝、拼多多的商品类目包、上传类目包
- 40隐式构造函数和隐式转换,还有explicit关键词的确切含义【C++学习笔记】
- c语言sub函数是什么,C语言中的字符串截取函数