设为首页 收藏本站
查看: 907|回复: 0

[经验分享] LVS+keepalived高可用负载均衡集群部署(二)

[复制链接]

尚未签到

发表于 2018-12-31 11:38:26 | 显示全部楼层 |阅读模式
l  系统环境: RHEL7  
l  硬件环境:虚拟机
l  项目描述:为解决网站访问压力大的问题,需要搭建高可用、负载均衡的 web集群。
l  架构说明:整个服务架构采用功能分离的方式部署。后端采用2台mysql 数据库,实现主从结构以及读写分离。中间LAMP网站服务器共有2台, 前端 2台LVS服务器通过keepalived实现高可用负载均衡。  
l  关键技术:keepalived 、lvs DR模式 、mysql主从 、maxscale 读写 分离
l  项目拓扑图:

  




  

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
注:所有系统 环境 禁用selinux和防火墙
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  理论疏理:
  (1).LBLoad Balancing):负载均衡集群
  负载均衡集群中有一个分发器或者叫调度器,我们将其称之为Director,它处在多台服务器的上面,分发器根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来响应客户端发送的请求。
  (2).HAHigh Availability 高可用集群
  高可用集群是服务的可用性比较高,当我们某台服务器死机后不会造成我们的服务不可用。其工作模式则是将一个具有故障的服务转交给一个正常工作的服务器,从而达到服务不会中断。一般来说我们集群中工作在前端(分发器)的服务器都会对我们的后端服务器做一个健康检查,如果发现我们服务器当机就不会对其在做转发。
  LVSlinux虚拟服务器) 是章文嵩在国防科技大学就读博士期间创建的
  LVS集群组成:前端负载均衡层                   ——由一台或多台负载调度器构成
  中间服务器群组层                     ——由一组实际运行应用服务的服务器组成
  低端:属数据共享存储层        ——提供共享存储空间的存储区域
  LVS术语:
  Director Server 调度服务器
  Real Server 真实服务器
  VIP 虚拟ip地址
  RIP 真实ip地址
  DIP 调度器连接节点服务器的ip地址
  LVS工作模式:
  *NAT模式
  TUN模式
  *DR 模式
  LVS调度算法:
  轮询         (RR)
  加权轮询        (WRR)
  最少连接        (LC)
  加权最少连接        (WLC)
  ***************************************************************************************************
  ***************************************************************************************************
  
  在这里,我们将配置2LAMP网站服务器
  (Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。)




l  步骤一:部署192.168.4.33与192.168.4.44的LAMP网站服务器

l  [root@web_33 ~]# yum -y install mariadb-server php httpd mariadb php-mysql
l  启动服务:
  [root@web_33 ~]# systemctl start httpd
  [root@web_33 ~]# systemctl enable httpd  ——》设置开机自启
  [root@web_33 ~]# systemctl start mariadb
  [root@web_33 ~]# systemctl enable mariadb ——》设置开机自启
  
l  设置数据库管理员本机登陆密码
  [root@web_33 ~]# mysqladmin -hlocalhost -uroot password "123456"
  
l  创建数据库(库.表),授权连接用户,测试验证PHP能否连接本机的数据库服务器
  [root@web_33 ~]# mysql -uroot -p123456
  MariaDB [(none)]> create database lampdb;
  MariaDB [lampdb]> create table lampdb.aaa(id int);
  MariaDB [lampdb]> insert into lampdb.aaa values(31),(32);
  MariaDB [lampdb]> grant all on lampdb.* to harry@'localhost' identified by "123456";
  
  [root@web_33 ~]# vim /var/www/html/test.php

  [root@web_33 ~]# elinks --dump http://192.168.4.33/test.php  #证明LAMP部署成功
           ok
  
  备注:mysql_connect() 函数打开非持久的mysql连接
l  192.168.4.44部署lamp步骤同上
l  步骤二:部署192.168.4.88192.168.4.99lvs服务器,,,,分发器模式是LVS/DR
Keepalived高可用故障切换转移原理
  Keepalived高可用服务对之间的故障切换转移,是通过 VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)来实现的。

l  [root@lvs_88 ~]# yum -y install keepalived
  修改配置文件
  [root@lvs_88 ~]# rpm -qc keepalived
  /etc/keepalived/keepalived.conf
  /etc/sysconfig/keepalived
  
  [root@lvs_88 ~]# vim /etc/keepalived/keepalived.conf
  …… ……
   15 vrrp_instance VI_1 {
   16     state MASTER   ————》 声明(定义)是主LVS分发器
   17     interface eth0
   18     virtual_router_id 51
   19     priority 150   ————》优先级高于备用的LVS分发器
   20     advert_int 1
   21     authentication {
   22         auth_type PASS
   23         auth_pass 1111
   24     }
   25     virtual_ipaddress {
   26         192.168.4.253    ——》虚拟vip地址
   27     }
   28 }
   29
   30 virtual_server 192.168.4.253 80 {
   31     delay_loop 6
   32     lb_algo rr   ——————》rr轮询调度算法
   33     lb_kind DR   ——————》DR模式
   34     nat_mask 255.255.255.0
   35    #persistence_timeout 50
   36     protocol TCP
   37     connect_timeout 3
   38     nb_get_retry 3
   39     delay_before_retry 3
   40
   41     real_server 192.168.4.33 80 {   ——》真实web服务器
   42         weight 1
   43 }
   44     real_server 192.168.4.44 80 {
   45         weight 1
   46 }
   47 }
  启动服务,并设置开机自启
  [root@lvs_88 ~]#  systemctl start keepalived  ——》启动服务
  [root@lvs_88 ~]#  systemctl enable keepalived  ————》设置开机自启

l  [root@lvs_99 ~]# yum -y install keepalived
  修改配置文件
  [root@lvs_99 ~]# rpm -qc keepalived
  /etc/keepalived/keepalived.conf
  /etc/sysconfig/keepalived
  [root@lvs_99 ~]# vim /etc/keepalived/keepalived.conf
  15 vrrp_instance VI_1 {
  16     state BACKUP    ————》声明是备用的LVS分发器
  17     interface eth0
  18     virtual_router_id 51
  19     priority 100   ————》优先级低于主分发器
  20     advert_int 1
  21     authentication {
  22         auth_type PASS
  23         auth_pass 1111
  24     }
  25     virtual_ipaddress {   ——》虚拟vip地址
  26         192.168.4.253
  27     }
  28 }
  29
  30 virtual_server 192.168.4.253 80 {
  31     delay_loop 6
  32     lb_algo rr    ——————》rr轮询调度算法
  33     lb_kind DR    ——————》DR模式
  34     nat_mask 255.255.255.0
  35    #persistence_timeout 50
  36     protocol TCP
  37     connect_timeout 3
  38     nb_get_retry 3
  39     delay_before_retry 3
  40
  41
  42     real_server 192.168.4.33 80 {
  43         weight 1
  44         }
  45     real_server 192.168.4.44 80 {
  46         weight 1
  47         }
  48 }
  启动服务,并设置开机自启
  [root@lvs_99 ~]# systemctl start keepalived  ——》启动服务
  [root@lvs_99 ~]# systemctl enable keepalived ——————》设置开机自启

l  步骤三:配置网站服务器
  192.168.4.33
  [root@web_33 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
  [root@web_33 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  [root@web_33 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  [root@web_33 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  [root@web_33 ~]# ifconfig lo:1 192.168.4.253/32
  [root@web_33 ~]# echo "web33" > /var/www/html/test.html
  
  192.168.4.44
  [root@web_44 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
  [root@web_44 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  [root@web_44 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  [root@web_44 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  [root@web_44 ~]# ifconfig lo:1 192.168.4.253/32
  [root@web_44 ~]# echo "web44" > /var/www/html/test.html
  
  以上的配置除了test.htmlwai外都是临时的,若想要永久的,就需要在/etc/rc.local 内写入。
  [root@web_33 ~]#  vim /etc/rc.local
  [root@web_44 ~]#  vim /etc/rc.local

l  步骤四:测试
  客户端:192.168.4.254
  [root@room8pc205 桌面]# elinks -dump http://192.168.4.253/test.html
  web33
  [root@room8pc205 桌面]# elinks -dump http://192.168.4.253/test.html
  web44
  [root@room8pc205 桌面]# elinks -dump http://192.168.4.253/test.html
  web33
  [root@room8pc205 桌面]# elinks -dump http://192.168.4.253/test.html
  web44
  
  确认是轮询,访问网站的请求平均的分发给主机33和44
  192.168.4.88
  [root@lvs_88 ~]# systemctl stop keepalived
  客户端192.168.4.254:
  [root@room8pc205 桌面]# elinks -dump http://192.168.4.253/test.html
     web33
  [root@room8pc205 桌面]# elinks -dump http://192.168.4.253/test.html
     web44
  [root@room8pc205 桌面]# elinks -dump http://192.168.4.253/test.html
     web33
  [root@room8pc205 桌面]# elinks -dump http://192.168.4.253/test.html
     web44
  
  
  192.168.4.99
  [root@lvs_99 ~]#  systemctl stop keepalived
  客户端192.168.4.254:
  [root@room8pc205 桌面]# elinks -dump http://192.168.4.253/test.html
  ELinks: 没有到主机的路由
  
  访问无反馈,确认集群正确,具备主LVS分发器,和备用LVS分发器
  未完待续。。。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657926-1-1.html 上篇帖子: 实验:基于keepalived实现两台realserver服务器中的nginx和php 下篇帖子: keepalived双主模型高可用+lvs
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表