linux 改路由表 宕机,网管宕机,服务停止?别担心,解决方案来了
本文以LVS + keepalived 实现基于keepalived的LVS的高可用
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR); 十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。
Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现
简单介绍keepalived:keepalived是实现高可用的一种轻量级的技术手段,主要用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生。之所以说keepalived是轻量级的,是相对于corosync + ldirectord来说的。keepalived也可以实现高可用集群,而且配置起来比corosync + ldirectord简单方便很多,keepalived与corosync的工作机制相差很多。corosync + ldirectord实现的功能虽然强大,但配置起来比较麻烦,而keepalived功能虽然简单,但配置起来比较容易。也就是说keepalived可实现corosync + ldirectord实现的功能,只不过前者没有后者功能强大而已
这里有一个网上图片,以便可以详细的了解工作流程
大致规划:
web-real server1 172.16.14.3 node1.magedu.com
web-real server2 172.16.14.4 node2.magedu.com
LVS-DR vip 172.16.14.1
LVS-DR-master 172.16.14.5 node1.magedu.com
LVS-DR-salve 172.16.14.6 node2.magedu.com
首先需要下载keepalived-1.2.7-5.el5.i386.rpm
一、准备两台real server,安装httpd服务(172.16.14.3 node1.magedu.com)
172.16.14.4 node2.magedu.com)
# yum -y install httpd
# echo "node1.magedu.com" > /var/www/html/index.html
# setenforce 0 关闭selinux
# service httpd start 启动服务
进行测试
在real server2上安装http服务(172.16.14.4 node2.magedu.com)
# yum -y install httpd
# echo "node2.magedu.com" > /var/www/html/index.html
# setenforce 0 关闭selinux
# service httpd start
进行测试
现在real server的http服务就准备好啦。
二、安装keepalived服务(172.16.14.5 node1.magedu.com)
# yum -y --nogpgcheck localinstall keepalived-1.2.7-5.el5.i386.rpm
# yum -y install ipvsadm
修改配置文件
# vim /etc/keepalived/keepalived.conf进行配置keepalived
# cd /etc/keepalived/
# cp keepalived.conf keepalived.conf.bak #做备份,出错时,还可以恢复
# vim keepalived
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost #管理员邮箱
}
notification_email_from keepalived@localhost #发件人邮箱
smtp_server 127.0.0.1 #邮箱地址
smtp_connect_timeout 30 #邮箱连接超时时间
router_id LVS_DEVEL #router_id是从LVS_DEVEL直接获取
}
vrrp_instance VI_1 { #虚拟路由
state MASTER #状态
interface eth0 #虚拟路由工作于哪个接口
virtual_router_id 55 #vid
priority 101 #优先级,要高于被节点,减去2后,低于被节点
advert_int 1 #认证
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
172.16.14.1/16 dev eth0 label eth0:0
} #虚拟地址
virtual_server 172.16.14.1 80 { #虚拟服务的地址,及监听端口
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.0.0 #子网掩码
persistence_timeout 50
protocol TCP
real_server 172.16.14.3 80 {
weight 1
HTTP_GET { #进行健康检查的方法
url {
path / #获取主页面
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 172.16.14.3 80 {
weight 1
HTTP_GET { #进行健康检查的方法
url {
path / #获取主页面
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
复制keepalived.conf配置文件到从节点上# scp keepalived.conf node2:/etc/keepalived/
在从节点上,修改其配置文件(172.16.14.6 node2.magedu.com)
# cd /etc/keepalived/
# vim keepalived.conf
修改如下行
state BACKUP
priority 100
重启keepalived服务,并查看ipvsadm规则,看是否成功(因为安装keepalived服务,会自动在服务上生成ipvs规则,基于LVS,达到ip地址的高可用)(172.16.14.5 172.16.14.6)
# service keepalived restart
查看规则
手动模拟 resal server1宕机,再进行查看ipvs规则
ipvs规则里就只剩下了node2(172.16.14.4)了
1.模拟real server 都宕机时,服务器出现错误页面
在keepalived服务器上安装http服务器,安装提示错误的页面(172.16.14.5 node1.magedu.com
172.16.14.6 node2.magedu.com)
# yum -y install httpd
# echo "error" > /var/www/html/index.html
# setenforce 0 关闭selinux
# scp /var/www/html/index.html node2:/var/www/html/index.html
# service httpd start
编译配配置文件/etc/keepalived/keepalived.conf(172.16.14.5 172.16.14.6)
在rea_server前面加上一行:
sorry_server 127.0.0.1 80
# service keepalived restart
停止real server上的http服务,查看172.16.14.1会出现怎么样的页面
2.自写检测脚本,完成维护模式切换
使用维护模式,模拟节点1宕机
vrrp_script chk_schedown {
script "[ -e /etc/keepalived/down ] && exit 1 || exit 0"
interval 1
weight -5
fall 2
rise 1
}
在 virtual_ipaddress {
172.16.14.1/16 dev eth0 label eth0:0
}
添加如下行:
track_script{
chk_schedown
}
重启keepalived服务,查看节点1(172.16.14.5)的ip地址
手动编辑down文件,重启服务,模拟主节点宕机# cd /etc/keepalived
# touch down
查看ip地址.eth0:0就运行于从节点啦
linux 改路由表 宕机,网管宕机,服务停止?别担心,解决方案来了相关推荐
- 前置机 网闸 摆渡机 跳板机 堡垒机
前言 前置机.网闸和摆渡机都是为了内网安全,尤其是银行.券商.电信运营商等的内网核心后台系统的安全,而使用的技术手段.跳板机和堡垒机则是为了运维人员远程访问控制系统而搭建的机器. 一.前置机 1. 作 ...
- CentOS Linux SELinux 安全上下文错误引起的宕机故障
(首发:学习日记 CentOS Linux SELinux 安全上下文错误引起的宕机故障 – 学习日记 ) 在某些情况下,我们会用一些外部的文件复制替换系统中原有的文件,如文件损坏,或者安装了错误版本 ...
- 利用两台虚拟机搭建Nginx高可用集群、宕机测试、宕机恢复
这里写目录标题 一.准备阶段: 二.安装阶段: 1.安装pcre及其依赖 2.安装ngnix 3.安装keepalived 三.配置阶段: 四.启动阶段: 1.集群测试 2. 宕机测试 一.准备阶段: ...
- Facebook史上最严重宕机,全网宕机近七小时,到底是怎么回事?
Facebook史上最严重宕机,全网宕机近七小时,高管赴推特道歉.近7个小时时间,全都挂了Facebook全网宕机,连内网都废了.Twitter成为了最大赢家.对一家互联网巨头来说,这样的状况实在太尴 ...
- 网站服务器宕机怎么办,服务器宕机了该怎么办?
原标题:服务器宕机了该怎么办? 导读 如果Web服务器已经虚拟化,试着ping物理服务器自己的真实IP.这样可以帮助你进一步隔离问题.如果完全无法ping同服务器,而且也已经确定完全检查了网络连接,那 ...
- 如何设计不宕机的 Redis 高可用服务?
随着业务的不断发展和扩张我们需要更加稳定和高效的 Redis 服务,这是业务发展的必然趋势也是个人能力进阶的最高境界,我们需要一个高可用的 Redis 服务,来支撑和保证业务的正常运行. 我们本文的面 ...
- Linux虚拟机上不去网解决办法
Linux虚拟机上不去网解决办法 1.检查物理网卡是否有网 2.检查虚拟机使用的网络模式 2.1.检查使用的是哪种网络模式 (桥接orNAT) 2.2.检查对应的虚拟网卡是否开启 如果禁用了,请开启. ...
- Android/Linux设备有线无线 双网共存(同时上内、外网)
目录 Shell脚本实现嵌入式Android/Linux有线和无线网卡双网共存 一.网络环境及问题再现 二.命令行方式实现双网共存 实现结果: 三.Shell脚本自动实现双网共存(根据网络环境动态配置 ...
- Linux下使用Speedtest测试网速教程
Linux下使用Speedtest测试网速教程 文章目录: 一.通过Speedtest官网直接测试网络速度 二.通过下载源码,在命令行中测试网速 1.下载安装 2.Speedtest的参数使用: 有时 ...
最新文章
- Gson把对象转成json格式的字符串
- 1.3 字符串拼接(连接)
- php java 共享session_PHP 实现多服务器共享 SESSION 数据
- 魅族android 版本 6.0下载,flyme6.0内测版
- 编译并使用boost库(win7+boost1.60+vs2013)
- MedMNIST:上海交大发布医学影像领域的MNIST(附下载)
- 用matlab绘制P三曲线,知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画三维曲线...
- java循环 排序 查找
- spark学习-33-Spark的RPC通信源码分析
- 微课|中学生可以这样学Python(例9.1):Excel导入SQLite(2)
- linux 路由跟踪命令_云计算网络知识学习-linux网络基础
- 学习 SpringCloud 五大组件后的总结 一
- Scrapy爬取小说简单逻辑
- react-countup 电子表数字样式 定时滚动 大屏需要 炫酷
- 日常工作中,软件测试人员如何避免“背锅”
- mysql密码认证插件_关于mysql:无法加载身份验证插件’caching_sha2_password’
- 自动生成企业画像(标签)
- AppStore内收费软件和游戏破解方法--证实可行
- Android SELinux开发入门指南之如何增加Java Binder Service权限
- 炉石传说 古墓惊魂 灾祸领主 英雄技能