7月3日任务

18.1 集群介绍
18.2 keepalived介绍
18.3/18.4/18.5 用keepalived配置高可用集群
扩展
heartbeat和keepalived比较http://blog.csdn.net/yunhua_lee/article/details/9788433 
DRBD工作原理和配置 http://502245466.blog.51cto.com/7559397/1298945
mysql+keepalived http://lizhenliang.blog.51cto.com/7876557/1362313

18.1 集群介绍

根据功能划分为两大类:高可用和负载均衡
高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务
实现高可用的开源软件有:heartbeat、keepalived
负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2
实现负载均衡的开源软件有LVS、keepalived、haproxy、nginx,商业的有F5、Netscaler

18.2 keepalived介绍

在这里我们使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验效果
keepalived通过VRRP(Virtual Router Redundancy Protocl)来实现高可用。
在这个协议里会将多台功能相同的路由器组成一个小组,这个小组里会有1个master角色和N(N>=1)个backup角色。
master会通过组播的形式向各个backup发送VRRP协议的数据包,当backup收不到master发来的VRRP数据包时,就会认为master宕机了。此时就需要根据各个backup的优先级来决定谁成为新的mater。
Keepalived要有三个模块,分别是core、check和vrrp。其中core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析,check模块负责健康检查,vrrp模块是来实现VRRP协议的。

18.3/18.4/18.5 用keepalived配置高可用集群

1、首先要准备2台机器,128和129,128作为master,129作为backup,在2台机器上分别都安装keepalived。

[root@jimmylinux- ~]# yum install -y keepalived

[root@jimmylinux- ~]# yum install -y keepalived

2、另外2台机器也要安装Nginx,其中128之前已经安装过Nginx,只需要在129机器上安装Nginx。

[root@jimmylinux- ~]# yum install -y nginx

3、修改master上面的 keepalived.conf 配置文件

先复制一个模板内容,然后把原来的keepalived.conf 配置文件内容清空,粘贴刚才复制的模板内容。

[root@jimmylinux- ~]# vim /etc/keepalived/keepalived.conf

[root@jimmylinux-001 ~]# > /etc/keepalived/keepalived.conf  快速清空原来的内容

把原来配置文件内容清空,添加以下内容。

global_defs {               全局定义参数
notification_email { 出现问题时,给指定邮箱发送邮件。
test@123.com
}
notification_email_from root@xxxx.com
smtp_server 127.0.0.1
smtp_connect_timeout
router_id LVS_DEVEL
} vrrp_script chk_nginx { 检测Nginx服务是否正常
script "/usr/local/sbin/check_ng.sh" 通过脚本文件检查服务是否正常,如果不正常需要启动起来。
interval 3 检测时间为3秒1次
} vrrp_instance VI_1 { 定义master相关的信息
state MASTER
interface ens33 定义使用哪个网卡发送广播
virtual_router_id 51 定义路由器ID是什么,这个地方主和从ID要定义一致。
priority 100 角色权重
advert_int
authentication { 定义认证相关的信息
auth_type PASS
auth_pass abcd1234>com
}
virtual_ipaddress {
192.168.52.100 虚拟IP
} track_script {
chk_nginx
} }

4、定义检查Nginx服务是否正常的一个脚本

[root@jimmylinux- ~]# vim /usr/local/sbin/check_ng.sh

脚本内容如下

#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "" ]; then
/etc/init.d/nginx start
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi

5、修改脚本权限,如果没有权限加载脚本,就没办法启动这个keepalived 服务。

[root@jimmylinux- ~]# less /var/log/messages  可以查看keepalived 日志

6、检查主上防火墙和selinux是否关闭,如果防火墙是开启状态,需要关闭掉。

[root@jimmylinux- ~]# systemctl stop firewalld  关闭防火墙

[root@jimmylinux- ~]# setenforce 

7、从上也需要关闭防火墙和selinux

[root@jimmylinux- ~]# systemctl stop firewalld  关闭防火墙

[root@jimmylinux- ~]# setenforce 

8、从上也需要修改配置文件

[root@jimmylinux- ~]# > /etc/keepalived/keepalived.conf  清空从上配置文件的内容

[root@jimmylinux- ~]# vim /etc/keepalived/keepalived.conf

重新添加以下内容

global_defs {
notification_email {
test@.com
}
notification_email_from root@xxxx.com
smtp_server 127.0.0.1
smtp_connect_timeout
router_id LVS_DEVEL
} vrrp_script chk_nginx {
script "/usr/local/sbin/check_ng.sh"
interval
} vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass abcd1234>com
}
virtual_ipaddress {
192.168.52.100
} track_script {
chk_nginx
} }

9、编辑129从上的监控脚本文件

[root@jimmylinux- ~]# vim /usr/local/sbin/check_ng.sh

#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "" ]; then
systemctl start nginx
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi

同样要修改下配置文件的权限

[root@jimmylinux- ~]# chmod  /usr/local/sbin/check_ng.sh

10、启动从上的keepalived 服务

[root@jimmylinux- ~]# systemctl start keepalived

[root@jimmylinux- ~]# ps aux |grep keepalived

11、验证高可用是否生效

1、单独访问master:192.168.52.128的nginx页面,显示:"This is HA master !"

2、单独访问backup:192.168.52.129的nginx页面,显示:This is HA backup !

3、访问VIP:192.168.52.100,默认是访问到master上,显示:This is master!

4、把master的keepalived关闭,模拟master宕机

[root@jimmylinux-001 ~]# systemctl stop keepalived

5、master宕机后,访问VIP:192.168.52.100,则backup接替了原来的master。成为新的master,显示:This is HA backup !

Linux集群介绍、keepalived介绍及配置高可用集群的更多相关文章

  1. Linux centosVMware 集群介绍、keepalived介绍、用keepalived配置高可用集群

    一.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat. ...

  2. 集群相关、用keepalived配置高可用集群

    1.集群相关 2.keepalived相关 3.用keepalived配置高可用集群 安装:yum install keepalived -y   高可用,主要是针对于服务器硬件或服务器上的应用服务而 ...

  3. (转)基于keepalived搭建MySQL的高可用集群

    基于keepalived搭建MySQL的高可用集群  原文:http://www.cnblogs.com/ivictor/p/5522383.html MySQL的高可用方案一般有如下几种: keep ...

  4. 集群介绍 keepalived介绍 用keepalived配置高可用集群

    集群介绍 • 根据功能划分为两大类:高可用和负载均衡 • 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 • 实现高可用的开源软件有:heartb ...

  5. Keepalived 配置高可用集群

    一.Keepalived 简介 (1) Keepalived 能实现高可用也能实现负载均衡,Keepalived 是通过 VRRP 协议 ( Virtual Router Redundancy Pro ...

  6. linux系统下对网站实施负载均衡+高可用集群需要考虑的几点

    随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧.在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案. 那么如何实 ...

  7. 配置高可用集群(实验) corosyne+pacemaker

    环境准备: 一准备三个虚拟机,把/etc/hosts/文件配置好                              192.168.43.9 node0                     ...

  8. 【葵花宝典】lvs+keepalived部署kubernetes(k8s)高可用集群

    一.部署环境 1.1 主机列表 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 lvs-keepal ...

  9. LVS+keepalived DR模式配置高可用负载均衡集群

    实验环境 LVS-Master 10.0.100.201 VIP:10.0.100.203 LVS-Slave       10.0.100.204 WEB1-Tomcat 10.0.2.29 gat ...

随机推荐

  1. SpringCloud之Hystrix-Dashboard监控,以及踩的坑...

    前言: 最近刚入职,公司使用了SpringCloud,之前有了解过SpringCloud,但是长时间不去搭建不去使用很容易就忘了,因此空闲时间重新复习一下SpringCloud.但是之前开的Sprin ...

  2. C++学习笔记1_ 指针.引用

    1.引用的本质struct typeA{ int &a;}struct typeB{ int *a;}int main(void){ cout<<sizeof(struct typ ...

  3. [2018-01-13] 安装Django的一些笔记

    安装django pip install Django = =1.10.2 下载源码,进入根目录执行 python setup.py install 确认是否已经安装成功 python -m djan ...

  4. 【暂时停更】Gungame更新下载平台

    v1.0: 这是本游戏的第一个版本, 制作于2019.4.12. 控制 : Player1: wsad为移动, r键开炮(有朝向限制) Player2: ikjl为移动, p键开炮(有朝向限制) 下载 ...

  5. JavaSE语法(中)

    6.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 是值传递.Java语言的方法调用支持参数的值传递.当一个对象实例作为一个 ...

  6. Flex简记

    display的flex属性的使用对象分为1.容器即包含有元素的元素,2.项目,即某一个元素.就容器而言,flex可以实现换行(flex-wrap),改变容器内元素的排列方向(flex-directi ...

  7. [考试反思]0927csp-s模拟测试53:沦陷

    很喜欢Yu-shi说过的一句话 在OI里,菜即是原罪 对啊. 都会.谁信呢? 没有分数,你说话算什么呢? 你就是菜,你就是不对,没有别的道理. 最没有用的,莫过于改题大神,这就是菜的借口. 但是其实这 ...

  8. NOIP模拟 21

    可爱的Dybala走了..(当然只是暂时) 又考了大众分.从rank5到rank17一个分. T1 折纸 秒切,爽啊 天皇偷看我代码,结束看见我A了还很惊讶,说我代码有锅 好沙雕哦 就跟个2b似的. ...

  9. Spring Boot2 系列教程(二十一)整合 MyBatis

    前面两篇文章和读者聊了 Spring Boot 中最简单的数据持久化方案 JdbcTemplate,JdbcTemplate 虽然简单,但是用的并不多,因为它没有 MyBatis 方便,在 Sprin ...

  10. CAS3.5.2 Server登录后返回用户信息详细解决方案

    单点登录(Single Sign-On, 简称SSO)是目前比较流行的服务于企业业务整合的解决方案之一,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.大家在使用时CA ...