lvs2

高可用集群+调度器

server1:
yum install -y ldirectord-3.9.5-3.1.x86_64.rpm 可以对后端rs状态进行健康检查
ipvsadm -C 刷掉之前的策略,利用集群资源中的脚本来实现调度
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/ 将ld文件加入到目录下

vim /etc/ha.d/ldirectord.cf ld的配置文件

virtual=172.25.31.100:80              ##定义lvs服务及其使用的vip和port
        real=172.25.31.2:80 gate        ##定义realserver,也为80端口
        real=172.25.31.3:80 gate
        fallback=127.0.0.1:80 gate  ##如果调度rs失败,回切到本机做响应
        service=http    ##使用http服务 
        scheduler=rr    ##调度算法为轮询
        #persistent=600  ##持久连接超长时间
        #netmask=255.255.255.255
        protocol=tcp    ##虚拟服务用到的协议
        checktype=negotiate    ##检查类型,协商
        checkport=80           ##健康检查的端口
        request="index.html"    ##检查rs用到的页面内容
#       receive="Test Page"
#       virtualhost=www.x.y.z

/etc/init.d/ldirectord start 开启ld服务
ipvsadm -l 查看ipvs表
/etc/init.d/httpd stop 将本机httpd停止
ip addr del 172.25.31.100/24 dev eth0 删除之前的vip

vim haresources 修改资源文件,加入lvs的健康检查

server1  IPaddr::172.25.31.100/24/eth0 httpd  ldirectord  ##资源组(vip ld httpd)

scp haresources ldirectord.cf 172.25.31.4:/etc/ha.d/ 将资源组传给server4
/etc/init.d/heartbeat start 开启heartbeat
ipvsadm -l 查看是否接管了资源

server4
yum install -y ldirectord-3.9.5-3.1.x86_64.rpm 下载ld,可以对后端rs状态进行健康检查
ll /etc/ha.d/ 查看资源组文件
/etc/init.d/heartbeat start 开启heartbeat
ipvsadm -l 查看ipvs表,查看资源的接管状态

测试:server2和server3的调度,和ld对rs的健康检查
server2: /etc/init.d/httpd stop 模拟后端rs故障
server3: /etc/init.d/httpd start

curl 172.25.31.100
server3-www.westos.org
curl 172.25.31.100
server3-www.westos.org

server2: /etc/init.d/httpd start 模拟后端rs恢复

curl 172.25.31.100
server2-www.westos.org
curl 172.25.31.100
server3-www.westos.org

测试: 资源的接管
server1: /etc/init.d/heartbeat stop 停止心跳
[kiosk@foundation31 Desktop]$ arp -an|grep 100 过滤100的主机arp缓存
? (172.25.31.100) at 52:54:00:b6:e0:73 [ether] on br0
[kiosk@foundation31 Desktop]$ arp -an|grep 100
? (172.25.31.100) at 52:54:00:2f:b1:55 [ether] on br0 server4已经接管到资源,可通过ip addr查看mac地址判断

keepalived

Keepalived – LVS管理软件
实现lvs+keepalived的高可用和负载均衡

server1(master):
/etc/init.d/heartbeat stop 停止heartbeat
chkconfig heartbeat off 开机不启动heartbeat

tar zxf keepalived-1.3.5.tar.gz 解压缩包
yum install gcc -y 安装编译环境需要的依赖包
yum install openssl-devel -y

cd keepalived-1.3.5
./configure –prefix=/usr/local/keepalived –with-init=SYSV 指定安装目录,和运行级别
make && make install 编译执行安装
cd /usr/local/
scp -r keepalived/ server4:/usr/local/ 将下载好的keepalived目录传给server4
ln -s /usr/local/keepalived/sbin/keepalived /sbin/ 将keepalived主程序加入到环境变量
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ keepalived启动脚本变量引用文件
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ keepalived启动脚本,放到/etc/init.d/目录下就可以使用命令调用
chmod +x keepalived 加权限使脚本生效

cd /etc/keepalived/
vim keepalived.conf 配置在主负载均衡服务器上配置

global_defs {
   notification_email { ##指定keepalived在发生事情的时候,发送邮件告知
    root@localhost      ##指定为本地用户
   }
   notification_email_from keepalived@server1    ##指定发件人
   smtp_server 127.0.0.1   ##发送email的smtp地址
   smtp_connect_timeout 30  ##超时时间
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER     ##指定当前节点为主节点
    interface eth0   ##绑定虚拟IP的网络接口
    virtual_router_id 82 ##VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组
    priority 100##主节点的优先级(1-254之间),备用节点必须比主节点优先级低
    advert_int 1
    authentication {   #设置验证信息,两个节点必须一致
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {  #指定虚拟IP, 两个节点设置必须一样
    172.25.31.100    
    }
}

virtual_server 172.25.31.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR   ##DR模式
#   persistence_timeout 50
    protocol TCP

    real_server 172.25.31.2 80 {  #配置realaserver 
        weight 1
    TCP_CHECK { #监控配置
        connect_time 3
        nb_get_retry 3
        delay_before_retry 3    

}
    }
    real_server 172.25.31.3 80 {
        weight 1
        TCP_CHECK {
                connect_time 3
                nb_get_retry 3
                delay_before_retry 3
}
}
}

/etc/init.d/keepalived start 启动keepalived服务
ip addr 查看vip是否在本机
tail -f /var/log/messages 监听日志,查看状态
scp keepalived.conf 172.25.31.4:/etc/keepalived/ 将主配置文件同步到server4备机上
ipvsadm -l 查看ipvs表,查看资源的接管状态
iptables -L 查看防火墙策略
iptables -F 由于版本问题,需刷掉自动生成的策略

server4(backup):
/etc/init.d/heartbeat stop 停止heartbeat
chkconfig heartbeat off 开机不启动heartbeat

ln -s /usr/local/keepalived/sbin/keepalived /sbin/ 同server1做软连接
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cd /usr/local/keepalived/etc/rc.d/init.d/
chmod +x keepalived 加权限使脚本生效

vim etc/keepalived/keepalived.conf BACKUP服务器配置

! Configuration File for keepalived

global_defs {
   notification_email {
    root@localhost
   }
   notification_email_from keepalived@server4  ##指定keepalived在发生事情的时候,发送邮件告知
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP   ##修改为BACKUP
    interface eth0
    virtual_router_id 82
    priority 50    ##优先级需低于master
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
    172.25.31.100    
    }
}

virtual_server 172.25.31.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
#   persistence_timeout 50
    protocol TCP

    real_server 172.25.31.2 80 {
        weight 1
    TCP_CHECK {
        connect_time 3
        nb_get_retry 3
        delay_before_retry 3    

}
    }
    real_server 172.25.31.3 80 {
        weight 1
        TCP_CHECK {
                connect_time 3
                nb_get_retry 3
                delay_before_retry 3
}
}
}

/etc/init.d/keepalived start 启动keepalived
ipvsadm -l 查看lvs状态

server2/3(RealServer):
/etc/init.d/httpd restart 将rs的httpd服务开启

测试:实现负载均衡

[root@foundation31 Desktop]# curl 172.25.31.100    ##发送http请求  
server2-www.westos.org
[root@foundation31 Desktop]# curl 172.25.31.100    ##发送http请求  
server3-www.westos.org
[root@foundation31 Desktop]# curl 172.25.31.100    ##发送http请求  
server2-www.westos.org

停server1(Master)服务器的keepalived服务,查看server4(BAKCUP)服务器是否能正常接管服务

 [root@server1 keepalived]# ipvsadm -Ln   ##查看master的lvs状态
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@server4 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:b6:e0:73 brd ff:ff:ff:ff:ff:ff
    inet 172.25.31.4/24 brd 172.25.31.255 scope global eth0
    inet 172.25.31.100/32 scope global eth0
    inet6 fe80::5054:ff:feb6:e073/64 scope link 
       valid_lft forever preferred_lft forever
[root@server4 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.31.100:80 rr
  -> 172.25.31.2:80               Route   1      0          0         
  -> 172.25.31.3:80               Route   1      0          0         

测试: 资源接管后的负载均衡

[root@foundation31 Desktop]# curl 172.25.31.100    
server2-www.westos.org
[root@foundation31 Desktop]# curl 172.25.31.100    
server3-www.westos.org
[root@foundation31 Desktop]# curl 172.25.31.100   
server2-www.westos.org
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值