lvs

notify_down "/sbin/ipvsadm -d -u 10.11.194.221:53 -r 10.11.194.222:53"
notify_up "/sbin/ipvsadm -a -u 10.11.194.221:53 -r 10.11.194.222:53 -g -w 100"

 [root@localhost lvs]# ipvsadm -d -t 10.0.0.111:80 -r 10.0.0.223:80

[root@localhost lvs]# ipvsadm -a -t 10.0.0.111:80 -r 10.0.0.223:80 -g -w 3

http://www.sxt.cn/u/324/blog/3188

集群脑裂split-brain 

ac压力测试

lvs脚本

DRBD:可以看做是一种网络RAID(镜像RAID1),实现方式:通过网络来镜像整个设备,允许用户在远程机器上建立一个本地块设备的实时镜像,与心跳连接结合使用。DRBD负责接收数据,把数据写到本地磁盘,然后发送个另一个主机,另一个主机再将数据存到主机的磁盘中。每次只允许对一个节点进行读写访问

LVS要达到的目标:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务集群,

Hearbeat:提供了所有HA软件所需要的基本功能,比如:心跳检测和资源接管、检测群集中的系统服务、在群集中的节点间转移共享IP地址的所有者等等

keepalived  配合LVS实现两个功能:1、检测各个服务节点的状态,对故障服务节点进行剔除,对恢复正常的节点重新加入集群 2、VRRP功能:就是HA cluster用功能,keepalived主机出现故障就转移到备机继续提供服务

Keepalived双机热备实现故障时发送邮件通知

Linux 高可用(HA)集群之Keepalived详解

LVS+Keepalived实现负载均衡

LVS ARP广播产生的问题和处理方式

sysctl命令详解 

ipvsadm命令参考

[root@localhost ~]# sysctl -w net.ipv4.conf.eth0.arp_announce=2

[root@localhost ~]# sysctl -w net.ipv4.conf.all.arp_announce=2

[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore

[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo  ""  > /var/www/html/index.html

实测

环境:三台centos7

调度器10.0.0.222 (VIP:10.0.0.111 )

两个realserver 10.0.0.223   10.0.0.224

yum 安装httpd

[root@localhost ~]# yum update --exclude=kernel*

[root@localhost ~]# yum install httpd httpd-devel -y

关闭 selinux和iptables  :/etc/selinux/conf   和iptabales -F

[root@localhost ~]# vi /var/www/html/index.html   #输入测试内容  两台realserver分别写入 111 10.0.0.222 和 222 10.0.0.223

[root@localhost ~]# service httpd restart          #windowsIE浏览器输入ip就能访问到index.html的内容

虚拟机克隆两个realservers  注意克隆后网卡的mac地址变化 配置文件不变

 [root@localhost ~]# yum install ipvsadm  #注意网络和DNS配置  static需要手动设置dns

ipaddr

gateway

netmask

dns1

 

 

[root@localhost lvs]# cat DR.sh
#!/bin/bash

###调度器运行脚本
#---------------mini-rc.lvs_dr-director------------------------
#set ip_forward OFF for lvs-dr director (1 on, 0 off)
#(there is no forwarding in the conventional sense for LVS-DR)
cat /proc/sys/net/ipv4/ip_forward
echo "0" >/proc/sys/net/ipv4/ip_forward

#director is not gw for realservers: leave icmp redirects on
#echo 'setting icmp redirects (1 on, 0 off) '
#echo "1" >/proc/sys/net/ipv4/conf/all/send_redirects
#cat /proc/sys/net/ipv4/conf/all/send_redirects
#echo "1" >/proc/sys/net/ipv4/conf/default/send_redirects
#cat /proc/sys/net/ipv4/conf/default/send_redirects
#echo "1" >/proc/sys/net/ipv4/conf/eth0/send_redirects
#cat /proc/sys/net/ipv4/conf/eth0/send_redirects

#setup DIP
ETH=eno16777736  ###网卡名称 主要为了centos7网卡名称不是eth0设计
DIP=10.0.0.222  
VIP=10.0.0.111
RS1=10.0.0.223
RS2=10.0.0.224

iptables -F

#service httpd start    #测试的时候要启用
/sbin/ifconfig $ETH $DIP/8
#add ethernet device and routing for VIP 10.0.0.111
/sbin/ifconfig $ETH:0 $VIP broadcast $VIP netmask 255.255.255.255   #如果有keepalived就不需要这两步  keepalived设置配置文件后会自动添加
/sbin/route add -host $VIP dev $ETH:0
#listing ifconfig info for VIP 10.0.0.111
/sbin/ifconfig $ETH:0

#listing routing info for VIP 192.168.1.111
/bin/netstat -rn

#setup_ipvsadm_table
#clear ipvsadm table
/sbin/ipvsadm -C
#installing LVS services with ipvsadm
#add telnet to VIP with round robin scheduling
/sbin/ipvsadm -A -t $VIP:80 -s rr

#forward telnet to realserver using direct routing with weight 1
/sbin/ipvsadm -a -t $VIP:80 -r $RS1:80 -g -w 1

#forward telnet to realserver using direct routing with weight 1
/sbin/ipvsadm -a -t $VIP:80 -r $RS2:80 -g -w 1

#displaying ipvsadm settings
/sbin/ipvsadm

#not installing a default gw for LVS_TYPE vs-dr
#---------------mini-rc.lvs_dr-director------------------------

 

[root@RS1 ~]# cat rs.sh
#!/bin/bash

###真实机运行脚本
#----------mini-rc.lvs_dr-realserver------------------
#setup IP
ETH=eno16777736
VIP=10.0.0.111
RS=10.0.0.223  #不同realservers不同ip 其他脚本设置一样 就这不一样
DF=10.0.0.1

iptables -F
/sbin/ifconfig $ETH $RS/8
#installing default gw 192.168.1.1 for vs-dr
/sbin/route add default gw $DF
#showing routing table
/bin/netstat -rn

#set_realserver_ip_forwarding to OFF (1 on, 0 off).
echo "0" >/proc/sys/net/ipv4/ip_forward


#install_realserver_vip
/sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
#ifconfig output
/sbin/ifconfig lo:0
#installing route for VIP 192.168.1.11 on device lo:0
/sbin/route add -host $VIP dev lo:0
#listing routing info for VIP 192.168.1.11
/bin/netstat -rn

#hiding interface lo:0, will not arp
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
cat /proc/sys/net/ipv4/conf/all/arp_ignore
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
cat /proc/sys/net/ipv4/conf/lo/arp_announce

#----------mini-rc.lvs_dr-realserver------------------

 

 ipvsadm -L    #查看lvs运行状态

tail -f /vat/log/messages  #日志查看启动日志     tail -f  可以实时打印新产生的日志 一有新日志就会打印

 

 

注意点: 一定要关闭iptables  否则访问会出现无法到主机路由之类的

 

[root@DR-MASTER ~]# cat /etc/keepalived/keepalived.conf 
global_defs {
   notification_email {
     dba.gao@gmail.com    
     ixdba@163.com
   }
   notification_email_from Keepalived@localhost         #设置邮件的发送地址。
   smtp_server 192.168.200.1    #设置smtp server地址。
   smtp_connect_timeout 30      #设置连接smtp服务器超时时间。
   router_id  LVS_MASTER    #运行Keepalived服务器的一个标识。发邮件时显示在邮件标题中的信息
}
#vrrp实例定义部分
vrrp_instance VI_1 {
state MASTER  # 备机 这里改为BACKUP
    interface eth0
    virtual_router_id 51
priority 100 # 备机 这里改为99
 advert_int 1 authentication { auth_type PASS auth_pass 1111 #设置验证与BACKUP必须使用相同的密码才能正常通信。 } virtual_ipaddress { #设设置多个虚拟IP地址,每行一个。 192.168.1.9 } } #虚拟服务器定义部分 virtual_server 192.168.1.9 80 { delay_loop 6 #设置健康检查时间,单位是秒。 lb_algo rr #设置负载调度算法,这里设置为rr,即轮询算法。 lb_kind DR #设置LVS实现负载均衡的机制,可以有NAT、TUN和DR三个模式可选。 persistence_timeout 50 protocol TCP #指定转发协议类型,有tcp和udp两种。 real_server 192.168.1.7 80 { #erver的真实IP地址和端口,ip与端口之间用空格隔开。 weight 3 TCP_CHECK { #realserve的状态检测设置部分,单位是秒 connect_timeout 10 #10秒无响应超时 nb_get_retry 3 #重试次数 delay_before_retry 3 #重试间隔 } } real_server 192.168.1.8 80 { #配置服务节点2 weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }

 

posted on 2015-04-12 17:23  寒星12345678999  阅读(261)  评论(0编辑  收藏  举报