lvs高可用
下面说的是lvs高可用集群一、高可用集群
1、负载均衡
负载均衡的三种会话保持:session sticky、session replication、session server。
三种共享存储:NAS、SAN、DS。
在lvs-nat中,调度器放在路由和核心层之间;
在lvs-dr中,调度器连接分布层、接入层。
隔离(fence)设备:电源交换机
2、VRRP协议 -----------实现高可用集群,实现浮动路由,故障倒换
keepalived --------------高可用lvs集群的实现方式,可用于后端服务器检查
corosync + pacemaker --------实现高可用集群
master选择:优先级相同,比较IP地址,IP地址大的为master。
(1)、vrrp协议基础
虚拟路由器:虚拟路由器接口
VRID:虚拟路由器标识符。功能:描述路由器的分组情况、确定该分组的MAC地址。
master:虚拟IP的拥有者,能够完成数据转发的路由器
backup:检测master路由器状态
VIP:虚拟路由器的IP地址,拥有VIP的就是master
VMAC:虚拟MAC地址
优先级:选举master的参数,范围:0-255,越大优先级越高。
优先级 0:放弃选举master
优先级 255:虚拟IP地址的拥有者的优先级
抢占式:设备恢复后,要抢占原来的master主动权。
非抢占式:设备恢复后,不抢占master主动权,选择做备份。
(2)、vrrp协议工作模式、认证方式
VRRP的工作模式:单实例、多实例。
单实例:master/backup
多实例:一个实例上是master,在另一个实例上是backup。--------------负载分担
VRRP的认证方式:无认证、简单字符认证、md5认证。
二、keepalived
1、keepalived基础:
keepalived:----------------VRRP协议在Linux中的软件实现
keepalived目的是,实现高可用的ipvs服务,简称ka。
keepalived功能:
1).可为VIP地址的节点,自动生成ipvs规则;
2).可为RS进行健康状态检查;
3).可以调用脚本;
keepalived的组件:控制板、内存管理、I/O复用器、核心组件。
核心组件:
checker:第二核心
VRRP stack:第一核心
smtp:状态转换信息发送到邮箱
watch dog:看门狗,匹配checker和VRRP stack
ipvs wrapper:内核与用户空间交互
netlink reflactor:内核与用户空间交互
高可用前提:
1).节点间,时间同步
2).节点间,通过主机名互相通信
3).节点间,关闭防火墙、设置规则
4).各节点间,root用户基于ssh的秘钥认证互相通信
2、keepalived配置文件
instance:实例
# ntpdate IP -------------对主机进行系统时间与网络同步
# vi /ect/ntp.conf
(1)、keepalived的程序环境:
主配置文件:/etc/keepalived/keepalived.conf
主程序文件:/usr/sbin/keepalived
Unit File:keepalived.server
(2)、主配置文件:/etc/keepalived/keepalived.conf
包括以下两段:
GLOBAL CONFIGURATION
VRRPD CONFIGURATION
LVS CONFIGURATION
1)------------------GLOBAL CONFIGURATION--------------------------
Global definitions
global_defs
{
notification_email
{
root@localhost ---------接收方邮件地址
}
notification_email_from keepalived@localhost -----------发送方邮件地址
smtp_server 127.0.0.1 -------邮件服务器地址
router_id drct1---------设置路由器ID,区分不同组
vrrp_mcast_group4 224.100.100.18 -------------IPv4组播地址
}
2)------------------------VRRPD CONFIGURATION---------------------------------
VRRP synchronization group(s)
VRRP instance(s)
vrrp_instance inside_network { ----------定义实例
state MASTER ------------指定vrrp状态
interface eno16777736 --------------与vrrp协议绑定的端口
virtual_router_id 51 ----------------虚拟路由IP,确定组
priority 100---------------节点优先级
advert_int 1------------vrrp通告的时间间隔
authentication {
auth_type PASS----------密码验证方式
auth_pass Hudlnej7 ----------设置密码
}
virtual_ipaddress {
172.16.72.101/32 brd 172.16.72.101 dev eno16777736 label eno16777736:0 -------虚拟IP地址
}
nopreempt ----------非抢占模式
preempt_delay 300 -------------抢占开始前时间
notify_master | ------------状态改变时的触发参数
notify_backup |
notify_fault |
}
3)--------------------------LVS CONFIGURATION--------------------------------
Virtual server group(s)
Virtual server(s)
Virtual server vip vport|fwmark{
delay_loop--------------服务轮询间隔
lb_algo rr|wrr|lc|wlc|lblc|sh|dh -------------lvs调度算法
lb_kind NAT|DR|TUN ------------lvs服务类型
persistence_timeout------------------持久连接超时时间
protocol TCP ------------服务协议
sorry_server -----------所有RS不可用时,的错误提示
real_server { -------------添加RS
weight-------------RS权重
notify_up | -------------RS状态
notify_down |
HTTP_GET|SSL_GET {
url {
path------------后端健康检查的URL
digest ------------检测md5是否发生变化
status_code------------据状态码校验RS可靠性
}
nb_get_retry------------重试次数
delay_before_retry-------------重试前的延时
connect_ip----------检测RS的哪一个IP地址
connect_port ---------------检测的第二个端口
bindto-------------健康检测源IP地址
bind_port------------健康检测源端口
connect_timeout------------超时时长
}
TCP_CHECK {
connect_ip//向当前的RS的哪个IP地址发起健康状态检测请求;
connect_port //向当前的RS的那二个PORT发起健康状态检测请求;
bindto//发出健康检测时的源IP地址;
bind_port//发出健康检测时的源端口;
connect_timeout//连接超时时长;
}
}
3、keepalived调用外部辅助脚本(2步)
(1)、vrrp_instance【之前】
vrrp_script SCRIPT_NAME {
script ""
interval-----------间隔
weight -
}
(2)、vrrp_instance【之中】
track_script {
SCRIPT_NAME
}
页:
[1]