roger2001c 发表于 2018-12-31 11:38:26

LVS+keepalived高可用负载均衡集群部署(二)

l系统环境: RHEL7
l硬件环境:虚拟机
l项目描述:为解决网站访问压力大的问题,需要搭建高可用、负载均衡的 web集群。
l架构说明:整个服务架构采用功能分离的方式部署。后端采用2台mysql 数据库,实现主从结构以及读写分离。中间LAMP网站服务器共有2台, 前端 2台LVS服务器通过keepalived实现高可用负载均衡。
l关键技术:keepalived 、lvs DR模式 、mysql主从 、maxscale 读写 分离
l项目拓扑图:
http://s1.运维网.com/images/20180303/1520054654313990.png
  




  

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
注:所有系统 环境 禁用selinux和防火墙
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  理论疏理:
  (1).LB(Load Balancing):负载均衡集群
  负载均衡集群中有一个分发器或者叫调度器,我们将其称之为Director,它处在多台服务器的上面,分发器根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来响应客户端发送的请求。
  (2).HA(High Availability) 高可用集群
  高可用集群是服务的可用性比较高,当我们某台服务器死机后不会造成我们的服务不可用。其工作模式则是将一个具有故障的服务转交给一个正常工作的服务器,从而达到服务不会中断。一般来说我们集群中工作在前端(分发器)的服务器都会对我们的后端服务器做一个健康检查,如果发现我们服务器当机就不会对其在做转发。
  LVS(linux虚拟服务器) 是章文嵩在国防科技大学就读博士期间创建的
  LVS集群组成:前端负载均衡层                   ——由一台或多台负载调度器构成
  中间服务器群组层                     ——由一组实际运行应用服务的服务器组成
低端:属数据共享存储层      ——提供共享存储空间的存储区域
  LVS术语:
  Director Server 调度服务器
  Real Server 真实服务器
  VIP 虚拟ip地址
  RIP 真实ip地址
  DIP 调度器连接节点服务器的ip地址
  LVS工作模式:
  *NAT模式
  TUN模式
  *DR 模式
  LVS调度算法:
  轮询         (RR)
  加权轮询      (WRR)
  最少连接      (LC)
  加权最少连接      (WLC)
  ***************************************************************************************************
  ***************************************************************************************************
  
  在这里,我们将配置2台LAMP网站服务器
  (Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。)
http://s1.运维网.com/images/20180303/1520054743665144.png
http://s1.运维网.com/images/20180303/1520054750426771.png
http://s1.运维网.com/images/20180303/1520054755897921.png
http://s1.运维网.com/images/20180303/1520054762891757.png
l步骤一:部署192.168.4.33与192.168.4.44的LAMP网站服务器
http://s1.运维网.com/images/20180303/1520054771821010.png
l# yum -y install mariadb-server php httpd mariadb php-mysql
l启动服务:
  # systemctl start httpd
  # systemctl enable httpd——》设置开机自启
  # systemctl start mariadb
  # systemctl enable mariadb ——》设置开机自启
  
l设置数据库管理员本机登陆密码
  # mysqladmin -hlocalhost -uroot password "123456"
  
l创建数据库(库.表),授权连接用户,测试验证PHP能否连接本机的数据库服务器
  # mysql -uroot -p123456
  MariaDB [(none)]> create database lampdb;
  MariaDB > create table lampdb.aaa(id int);
  MariaDB > insert into lampdb.aaa values(31),(32);
  MariaDB > grant all on lampdb.* to harry@'localhost' identified by "123456";
  
  # vim /var/www/html/test.php

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

l# yum -y install keepalived
  修改配置文件
  # rpm -qc keepalived
  /etc/keepalived/keepalived.conf
  /etc/sysconfig/keepalived
  
  # 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 }
  启动服务,并设置开机自启
  #systemctl start keepalived——》启动服务
  #systemctl enable keepalived————》设置开机自启
http://s1.运维网.com/images/20180303/1520054896799386.png
l# yum -y install keepalived
  修改配置文件
  # rpm -qc keepalived
  /etc/keepalived/keepalived.conf
  /etc/sysconfig/keepalived
  # 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 }
  启动服务,并设置开机自启
  # systemctl start keepalived——》启动服务
  # systemctl enable keepalived ——————》设置开机自启
http://s1.运维网.com/images/20180303/1520054992859393.png
l步骤三:配置网站服务器
  192.168.4.33
  # echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
  # echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  # ifconfig lo:1 192.168.4.253/32
  # echo "web33" > /var/www/html/test.html
  
  192.168.4.44
  # echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
  # echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  # ifconfig lo:1 192.168.4.253/32
  # echo "web44" > /var/www/html/test.html
  
  以上的配置除了test.htmlwai外都是临时的,若想要永久的,就需要在/etc/rc.local 内写入。
  #vim /etc/rc.local
  #vim /etc/rc.local

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



页: [1]
查看完整版本: LVS+keepalived高可用负载均衡集群部署(二)