lvs与HA整合
博客专区 > 小孩66 的博客 > 博客详情
lvs与HA整合
小孩66 发表于3年前
lvs与HA整合
  • 发表于 3年前
  • 阅读 43
  • 收藏 0
  • 点赞 0
  • 评论 1

server33和35当HA,server34和36当服务器,用户通过VIP访问两台HA-->调度器-->后端服务器,只有调度器轮寻调度,加权
lvs不知道后端应用服务器挂了,用户会一直访问后端挂了的服务器,所以后面要解决这个问题,但nginx会监控后端服务器状态,lvs就是

用户只能访问调度器上的vip,而不能访问服务器上的vip,服务器不对外相应外界的ip,调度器把服务器mac,LB 一直就是转换,arbtabs,屏蔽arp



(1)
############lvs
ngnix、haproxy和lvs都是可用来负载均衡,nginx和haproxy比较适合做网站,很灵活,haproxy并发量大,lvs适合做数据库之类的,因为他算法比较简单,主要应用在应用层上


系统环境:
server85和dekstop80作为HA,server234和desktop87作为服务器,主机dekstop来调度
yum源为dvd.repo,时间要同步,解析要做好,selinux和火墙刷掉

在server85上:
释放ip地址:
ip addr show   //发现之前测试的ip未被释放
/etc/init.d/heartbeat stop  
/etc/init.d/network restart  
ip addr show   //ip
已释放

在两台HA上:
yum install -y ipvsadm  //调度服务,在此之前保证heartbeat已经停掉
ipvsadm -l  //显示当前调度列表
ifconfig eth0:0 192.168.2.115 netmask 255.255.255.0 up   //添加虚拟ip:192.168.2.115,要保证虚拟ip是未占用的

ipvsadm -A -t 192.168.2.115:80 -s rr                        //A 添加,r 轮循 s 加权
ipvsadm -a -t 192.168.2.115:80 -r 192.168.2.87:80 -g        //g 直连 80端口是httpd服务端口
ipvsadm -a -t 192.168.2.115:80 -r 192.168.2.234:80 -g
ipvsadm -l     //
显示有server234和desktop87及192.168.2.115的httpd服务


在两台服务端:
yum install -y httpd
cd /var/www/html/
vim index.html    //
写入各自域名

ifconfig eth0:0 192.168.2.115 netmask 255.255.255.255 up  //四个255表示这个ip就他自己,只有他一个
yum install -y arptables_jf    //反arp服务,服务有点类似于火墙
arptables -A IN -d 192.168.2.115 -j DROP    //外部访问115这个vip时直接被忽略掉

arptables -A OUT -s 192.168.2.115 -j mangle --mangle-ip-s 192.168.2.87   //在desktop87上
arptables -A OUT -s 192.168.2.115 -j mangle --mangle-ip-s 192.168.2.234 //在server234上 内部服务器出去的时候用的是自己的真实ip地址,就是这两步当外部访问服务器时,外部知道的只是虚拟ip,访问的只是调度器,而调度器和服务器联通起来,用户和服务端不直接访问互通

/etc/init.d/arptables_jf save   //保存策略
/etc/init.d/httpd start          //开启httpd服务

浏览器:http://192.168.2.115/  //轮循显示234和87的网页发布目录内容,即他们各自的域名


在HA端:ipvsadm -l  //会显示轮循的次数
在服务端或调度的真机上:arp -a  //显示访问的所有ip地址,及网络接口,并且记录访问的ip地址对应的MAC地址,MAC地址有在调度器上被记录下来,当删除某个被记录的ip对应MAC时,再次访问后MAC地址又将被调度器所记录




(2)#############HA与lvs整合
调度器存在单点故障,因此要HA热备,

在HA端:
ifconfig eth0:0 down    //把vip暂时关闭
ipvsadm -C      //把arptables策略清除
lftp i:/pub/docs/heartbeat/rhel6> get ldirectord-3.9.2-1.2.x86_64.rpm
yum localinstall -y ldirectord-3.9.2-1.2.x86_64.rpm

在server86上:
rpm -ql ldirectord
cp /usr/share/doc/packages/ldirectord/ldirectord.cf /etc/ha.d/   //
把配置文件复制
vim /etc/init.d/ldirectord   //文件中说明主机读取配置文件位置在/etc/ha.d/ldirectord.cf ,所以有上一步复制
/etc/init.d/ldirectord status   //有依赖性问题未解决

yum install -y perl-IO-Socket-INET6
/etc/init.d/ldirectord status    //
显示正常,ldirectord是stop的

cd /etc/ha.d/
vim ldirectord.cf    //rr
表示算法为轮循调度
checkinterval=1  //每隔1秒检测
virtual=192.168.6.115:80            //vip
        real=192.168.2.87:80 gate   //
两个服务端
        real=192.168.2.234:80 gate
        fallback=127.0.0.1:80 gate  //
当所有的服务端都挂掉后,显示的界面是自己的发布目录,任何一个服务器再次激活后,1秒检测后立即回到服务器上

#       receive="Test Page"         //注释掉
#       virtualhost=www.x.y.z       //注释掉


vim haresources         //添加服务ldirectord
server86.example.com    IPaddr::192.168.2.115/24/eth0 httpd ldirectord

scp ldirectord.cf haresources 192.168.2.80:/etc/ha.d/   //把相同配置文件复制到另一个HA节点


在HA端:
/etc/init.d/heartbeat start   //只要启动心跳,集群负责把vip,httpd,ldirectord及arptables全部开启

ipvsadm -l
tail -f /var/log/messages   //
日志可以查看到相关服务的启动

浏览器:http://192.168.2.115/  //一直在轮循显示,当把一个HA端如desktop80的httpd服务down掉或把heartbeat停掉,ipvsadm -l显示服务已被另一个节点接管,调度列表只剩一台主机,当两个节点都down掉时,浏览器显示的是调度的主机的发布目录文件,调度列表里只剩本机。当任何一个节点恢复服务后,调度立马恢复正常;
没有进行上述步骤前,把HA任一节点down掉后,ipvsadm -l仍显示两个节点,调度仍在正常运行,这意味着用户会获取到错误的网页文件,因为lvs本身不能监控后台服务器状态。

把34down掉,调度列表里只有36,网页不再轮循,36也挂掉时,那就完了,这里没有failback
把其中服务down掉,vip发生改变,被接管,开启服务,不会回切,互为主备


(3)lvs图形化配置管理:  //就是(2)的图形化配置
在HA端:
/etc/init.d/heartbeat stop   //所有的服务都会被停掉
yum install -y piranha    //监控服务器状态软件
piranha-passwd     //设置为westos
/etc/init.d/piranha-gui start

浏览器:http://192.168.2.186:3636  用户名为piranha,密码就是刚刚设置的
westos
/etc/sysconfig/ha/lvs.cf   //网页图形化界面的配置文件


点击REDUNDANCY,enable,ip为192.168.2.186 ,第一项勾选,端口号不要改,ok
点击VIRTUAL SERVERS,edit,服务名www,vip 192.168.2.115,网卡eth0:0,选择第一个轮循,
ok
再点击REAL SERVER,add,name为
dekstop80.example.com,192.168.2.80,80,1
再点击REAL SERVER,add,name为
server234.example.com,192.168.2.234,80,1
MMONIT..ACCEPT ,把所有都点击up开启


scp lvs.cf 192.168.2.80:/etc/sysconfig/ha/

/etc/sysconfig/ha/lvs.cf   //
浏览器上的配置全部在这里
/etc/init.d/piranha-gui restart   //所有节点服务都开启
/etc/init.d/pulse restart  

浏览器:http://192.168.2.115/

(4)添加一个ftp服务

服务端:
yum install -y vsftpd
ifconfig eth0:1 192.168.2.53 netmask 255.255.255.255 up
arptables -A OUT -s 192.168.2.53 -j mangle --mangle-ip-s 192.168.2.87   //
在desktop87上
arptables -A OUT -s 192.168.2.53 -j mangle --mangle-ip-s 192.168.2.234  //在server234上
arptables -A IN -d 192.168.2.115 -j DROP


浏览器:
点击VIRTUAL SERVERS,add,服务名ftp,vip 192.168.2.53,网卡eth0:1,选择第一个轮循,300,ok
再点击REAL SERVER,add,name为
dekstop80.example.com,192.168.2.80,80,1
再点击REAL SERVER,add,name为
server234.example.com,192.168.2.234,80,1
MMONIT..ACCEPT ,这一项不管

全部激活

scp lvs.cf 192.168.2.80:/etc/sysconfig/ha/
/etc/init.d/vsftpd start
/etc/init.d/pulse restart

浏览器:ftp://192.168.2.53  //轮循,在负载均衡


























































































 

共有 人打赏支持
粉丝 3
博文 31
码字总数 37665
评论 (1)
lee_ypp
你是西部来源的学生吧?请问你是谁
×
小孩66
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: