高可用
来源:互联网 发布:mysql 表空间 编辑:程序博客网 时间:2024/04/28 19:23
1 一个网卡 可以虚拟多个网口
2 mac地址和ip地址
修改参数目的是为了隐藏vip
影响速度的一个主要原因就是io,解决io上线,io瓶颈。
所以要对io进行分流,于是对相应进行分流,(因为一般来说请求的数据量非常少,相应的的数据量是非常)
centos 查看io占用情况 yum install -y sysstat
iostat -x 1 10
查看实时流量
/usr/iftop/sbin/iftop
LVS 组成部分:
1 ipvs (可以修改linux内核,发布人是linux内核开发工程师)
2 ipvsAdmin(它仅做管理)
它也像nginx一样是软件的负载均衡器,但它是基于底层协议的,nginx是基于应用协议层的
调度方法:
静态调度方法:
wrr(测试时用,不管后台服务器状态如何)
动态调度方法:
根据后台服务状态改变而改变
wlc 加权 最少连接 (LVS默认调度算法)
LVS 转发原理
1 服务器
前端服务器(转发服务器)directorserver
后端服务器 realserver
2 ip
CIP (客户端ip地址)
DIP (转发服务器地址)
VIP (虚拟服务器的地址)是一个外网ip,负责接收客户端请求,
RIP (后台服务器的地址)是内网ip
这里要注意两点
1 虚拟服务器修改目标mac地址
2 虚拟服务器给后端服务添加一个隐藏的vip
3 后端服务器要虚拟一个路由器,用来把vip带给客户端(路由器可以打包数据把响应时的源地址改成vip)
操作步骤
1 先给前端服务器绑定vip,模拟外网 ifconfig eth0:1 192.168.174.100/24
2 在后端服务器上隐藏VIP(不接收,不广播),修改内核来隐藏
先设置隐藏 echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
设置好隐藏后再设置 vip
ifconfig lo:1 192.168.174.100 netmask 255.255.255.255 (错误的,禁止对外广播) broadcast 192.168.174.100
(广播地址也是它自己)
3 后端服务器添加路由(更改响应数据的数据包,响应的源ip)
route -n(多了一个路由)
验证:
1 在两台realserver上执行下操作
service httpd start
vi /var/www/html/index.html
<h2>realserver1111111111</h2>
2 在前端服务器上安装,管理业务程序
yum -y install ipvsadm
ipvsadm是lvs里用来管理集群的
添加一个集群服务
ipvsadm -A -t 192.168.174.100:80 -s wrr
地址要写vip地址
添加realserver,(realserver的端口要一样)
ipvsadm -a -t 192.168.174.100:80 -r 192.168.174.27:80 -g -w 1
ipvsadm -a -t 192.168.174.100:80 -r 192.168.174.28:80 -g -w 1
查看
ipvsadm -ln
ifconfig + ip + down (up)
记得关防火墙
keep-alived
主要做高可用,但它也对lvs做健康检查,如果realserver down掉它会将它从集群中删除
keep-alive 在开发之初就是对lvs高可用同时对它做健康检查的,但是发展到现在,keep-alive
可以对所有服务器做高可用,但是健康检查只对lvs可用。
它的实现原理就是 ip飘移
注意它的缺点是:keep-alived默认情况下只检测它自己,其它服务器上的keep-alived服务有没有挂。
yum -y install keepalived
vi /etc/keepalived/keepalived.conf
注意修改 1 keepalived.conf state MASTER# BACKUP 主 和 从
2 priority 80#优先级 主的优先级要高
ipvsadm -ln
你会发现使用keepalived 就不需要手动去绑定 vip了
你只要把 keepalived 跑起来就可以了,因为它配置文件里已经配置了vip,
它实际上早已经准备好lvs了
chkconfig iptables off 防火墙不自动启动
keepalived 对nginx的高可用 (相互接管)
对nginx的高可用也是通过vip的飘移来完成的
写一个脚本(判断当前服务器上nginx是否down掉,如果down掉,就杀掉keepalived进程,
因为keepalived只检验keepalived服务本身)
查看service keepalived status,状态
netstat -nptl
0 0.0.0.0:80 表示80没有绑定任何ip
把LVS + keep-alived 修改为 nginx + keep-alived需要做以下几个方面
1 把 用于LVS + keep-alived的keepalived.conf 里的virtual_server全部删掉
virtual_server 192.168.174.100 80 {
delay_loop 6
lb_algo wlc
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
server{
}
}
2 卸载 yum remove ipvsadm
3 新增一个
vrrp_script check_nginx {
script "/home/check_nginx.sh"
interval 2
weight 2
}
track_script {
check_nginx
}
2 mac地址和ip地址
修改参数目的是为了隐藏vip
影响速度的一个主要原因就是io,解决io上线,io瓶颈。
所以要对io进行分流,于是对相应进行分流,(因为一般来说请求的数据量非常少,相应的的数据量是非常)
centos 查看io占用情况 yum install -y sysstat
iostat -x 1 10
查看实时流量
/usr/iftop/sbin/iftop
LVS 组成部分:
1 ipvs (可以修改linux内核,发布人是linux内核开发工程师)
2 ipvsAdmin(它仅做管理)
它也像nginx一样是软件的负载均衡器,但它是基于底层协议的,nginx是基于应用协议层的
调度方法:
静态调度方法:
wrr(测试时用,不管后台服务器状态如何)
动态调度方法:
根据后台服务状态改变而改变
wlc 加权 最少连接 (LVS默认调度算法)
LVS 转发原理
1 服务器
前端服务器(转发服务器)directorserver
后端服务器 realserver
2 ip
CIP (客户端ip地址)
DIP (转发服务器地址)
VIP (虚拟服务器的地址)是一个外网ip,负责接收客户端请求,
RIP (后台服务器的地址)是内网ip
这里要注意两点
1 虚拟服务器修改目标mac地址
2 虚拟服务器给后端服务添加一个隐藏的vip
3 后端服务器要虚拟一个路由器,用来把vip带给客户端(路由器可以打包数据把响应时的源地址改成vip)
操作步骤
1 先给前端服务器绑定vip,模拟外网 ifconfig eth0:1 192.168.174.100/24
2 在后端服务器上隐藏VIP(不接收,不广播),修改内核来隐藏
先设置隐藏 echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
设置好隐藏后再设置 vip
ifconfig lo:1 192.168.174.100 netmask 255.255.255.255 (错误的,禁止对外广播) broadcast 192.168.174.100
(广播地址也是它自己)
3 后端服务器添加路由(更改响应数据的数据包,响应的源ip)
route -n(多了一个路由)
验证:
1 在两台realserver上执行下操作
service httpd start
vi /var/www/html/index.html
<h2>realserver1111111111</h2>
2 在前端服务器上安装,管理业务程序
yum -y install ipvsadm
ipvsadm是lvs里用来管理集群的
添加一个集群服务
ipvsadm -A -t 192.168.174.100:80 -s wrr
地址要写vip地址
添加realserver,(realserver的端口要一样)
ipvsadm -a -t 192.168.174.100:80 -r 192.168.174.27:80 -g -w 1
ipvsadm -a -t 192.168.174.100:80 -r 192.168.174.28:80 -g -w 1
查看
ipvsadm -ln
ifconfig + ip + down (up)
记得关防火墙
keep-alived
主要做高可用,但它也对lvs做健康检查,如果realserver down掉它会将它从集群中删除
keep-alive 在开发之初就是对lvs高可用同时对它做健康检查的,但是发展到现在,keep-alive
可以对所有服务器做高可用,但是健康检查只对lvs可用。
它的实现原理就是 ip飘移
注意它的缺点是:keep-alived默认情况下只检测它自己,其它服务器上的keep-alived服务有没有挂。
yum -y install keepalived
vi /etc/keepalived/keepalived.conf
注意修改 1 keepalived.conf state MASTER# BACKUP 主 和 从
2 priority 80#优先级 主的优先级要高
ipvsadm -ln
你会发现使用keepalived 就不需要手动去绑定 vip了
你只要把 keepalived 跑起来就可以了,因为它配置文件里已经配置了vip,
它实际上早已经准备好lvs了
chkconfig iptables off 防火墙不自动启动
keepalived 对nginx的高可用 (相互接管)
对nginx的高可用也是通过vip的飘移来完成的
写一个脚本(判断当前服务器上nginx是否down掉,如果down掉,就杀掉keepalived进程,
因为keepalived只检验keepalived服务本身)
查看service keepalived status,状态
netstat -nptl
0 0.0.0.0:80 表示80没有绑定任何ip
把LVS + keep-alived 修改为 nginx + keep-alived需要做以下几个方面
1 把 用于LVS + keep-alived的keepalived.conf 里的virtual_server全部删掉
virtual_server 192.168.174.100 80 {
delay_loop 6
lb_algo wlc
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
server{
}
}
2 卸载 yum remove ipvsadm
3 新增一个
vrrp_script check_nginx {
script "/home/check_nginx.sh"
interval 2
weight 2
}
track_script {
check_nginx
}
0 0
- 高可用
- 高可用
- 高并发高可用
- 高可用,高并
- 高可用高性能系统
- 高可用高性能系统
- 高并发与高可用
- 高可用与高并发
- F5高可用解决方案
- postgresql高可用方案
- 高可用集群 HA
- 云中的高可用
- 高可用 Mysql 笔记
- Mysql高可用方案
- LINUX+HA高可用
- lvs + keepalived 高可用
- Mysql高可用集群
- 高可用方案repcached
- #怎样在Matlab中画柠檬
- 这是一篇资源博客
- 类似最集合中最大子序列 hdu 2668
- PriorityQueue
- HDOJ 2094 产生冠军
- 高可用
- C++ 类成员函数继承(virtual、非virtual)
- 无符号整型赋值陷阱
- android开发带下划线的多行文本框
- 大数据工程师要学习的内容
- Eclipse常用快捷键
- Leetcode 115. Distinct Subsequences
- MT法测速之定量分析
- 84. Largest Rectangle in Histogram