双主模型的lvs-dr高可用负载均衡集群

双主模型的lvs-dr高可用负载均衡集群

实验目的:使用keepalived实现lvs-dr模型双主高可用集群

实验环境:两台virtual server(实现lvs的双主)、两台real server(安装web service,用于负载均衡)、一台clietn用于验证结果

注意:为了不影响实验结果,在实验开始前先关闭iptablesselinux

操作步骤:

一、配置IP

1.配置A主机的IP

# ip addr add dev eth0 192.168.10.2/24

2.配置B主机的IP

# ip addr add dev eth0 192.168.10.23/24

3.配置C主机的IP,修改内核参数和回环的IP

# ip addr add dev eth0 192.168.10.3/24

# echo 1 > /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/all/arp_announce

# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

# ip addr add dev lo 192.168.10.200/32 label lo:0 broadcast 192.168.10.200

# ip addr add dev lo 192.168.10.201/32 label lo:1 broadcast 192.168.10.201

4.配置D主机的IP,修改内核参数和回环的IP

# ip addr add dev eth0 192.168.10.33/24

# echo 1 > /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/all/arp_announce

# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

# ip addr add dev lo 192.168.10.200/32 label lo:0 broadcast 192.168.10.200

# ip addr add dev lo 192.168.10.201/32 label lo:1 broadcast 192.168.10.201

二、配置web
service
CD主机做同样配置,默认主页的内容中的IP地址改为D主机的IP即可)

1.安装apache

# yum -y install httpd

2.创建默认主页

# vim /var/www/html/index.html

    <h1>R1:192.168.10.3</h1>

3.启动服务

# service httpd start

三、配置keepalived,实现双主高可用

1.安装keepalived

# yum -y install keepalived

2.编辑A主机的配置文件/etc/keepalived/keepalived.conf,作如下配置:

! Configuration File for keepalived

    global_defs {

    notification_email {

        root@localhost

    }

    notification_email_from keepalived@localhost

    smtp_server 127.0.0.1

    smtp_connect_timeout 30

    router_id centos6

    vrrp_mcast_group4 224.0.100.39

    }

    vrrp_instance lvs {

        state MASTER

        interface eth0

        virtual_router_id 14

        priority 100

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass MDQ41fTp

        }

        virtual_ipaddress {

            192.168.10.200/24 dev eth0

        }

    }

    vrrp_instance lvs2 {

        state BACKUP

        interface eth0    

        virtual_router_id 15

        priority 98

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass XYZ41fTp

        }

        virtual_ipaddress {

            192.168.10.201/24 dev eth0

        }

    }

    virtual_server 192.168.10.200 80 {

        delay_loop 6

        lb_algo rr

        lb_kind DR

        protocol TCP

        sorry_server 127.0.0.1 80

        real_server 192.168.10.3 80 {

        weight 1

        HTTP_GET {

            url {

                path /

                status_code 200

            }

            connect_timeout 1

            nb_get_retry 3

            delay_before_retry 1    

        }

    }

    real_server 192.168.10.33 80 {

        weight 1

        HTTP_GET {

            url {

                path /

                status_code 200

            }

                connect_timeout 1

                nb_get_retry 3

                delay_before_retry 1

            }

        }

    }

    virtual_server 192.168.10.201 80 {

        delay_loop 6

        lb_algo rr

        lb_kind DR

        protocol TCP

        sorry_server 127.0.0.1 80

        real_server 192.168.10.3 80 {

            weight 1

            HTTP_GET {

                url {

                    path /

                    status_code 200

                }

                connect_timeout 1

                nb_get_retry 3

                delay_before_retry 1

            }

    }

    real_server 192.168.10.33 80 {

        weight 1

        HTTP_GET {

            url {

                path /

                status_code 200

            }

                connect_timeout 1

                nb_get_retry 3

                delay_before_retry 1

            }

        }

   }

B主机也作同样配置,稍作修改即可,需要修改的地方如下:

    vrrp_instance lvs {

        state BACKUP

        priority 98

    }

    vrrp_instance lvs2 {

        state MASTER

        priority 100

    }

四、配置sorry_server(在两台RS都不能正常提供服务且有用户访问时,sorry主机可显示告知信息)sorry_server需要配置在virtual server(两台RS都做同样配置,默认主页中的IP地址改为本机的IP以示区分。)

1.安装apache

# yum -y install httpd

2.创建默认主页

# vim /var/www/html/index.html

<h1>sorry_server:192.168.10.2</h1>

3.启动服务

# service httpd start

五、模拟故障,验证结果(由于没有配置路由,因此client主机并不能访问,可在服务器网段中选择任意一台主机测试)

1.启动两台VSkeepalived服务

# service keepalived start

2.查看生成的lvs规则,如图有两组规则

# ipvsadm -ln

双主模型的lvs-dr高可用负载均衡集群

3.访问192.168.10.200,结果应是后端的RS轮询响应请求

双主模型的lvs-dr高可用负载均衡集群

4.访问192.168.10.201,结果应是后端的RS轮询响应请求

双主模型的lvs-dr高可用负载均衡集群

5.将后端RSweb服务关闭一台,此时访问192.168.10.200192.168.10.201,响应请求的将只是另一台web服务正常运行的RS

双主模型的lvs-dr高可用负载均衡集群

6.将后端RSweb服务都关闭,此时访问192.168.10.200192.168.10.201,响应请求的将只是各自的主server中定义的sorry_server

双主模型的lvs-dr高可用负载均衡集群

双主模型的lvs-dr高可用负载均衡集群

7.关闭一台VSkeepalived服务,此时访问192.168.10.200192.168.10.201,响应的请求的将只是另一台正常运行keepalived服务的VS

双主模型的lvs-dr高可用负载均衡集群

原创文章,作者:人字拖,如若转载,请注明出处:http://www.178linux.com/75455

(1)
人字拖人字拖
上一篇 2017-05-13 21:43
下一篇 2017-05-13 22:10

相关推荐

  • N23-第一周博客作业

    一、计算机组成 由五大基本部件【运算器 + 控制器 + 储存器 + 输入设备 + 输出设备】组成且遵循冯诺依曼体系,CPU包含运算器和控制器两大部件。 CPU: 核心部件:运算器、控制器 其他部件:寄存器、缓存、等等 存储器:内存,RAM(Random Access Memory)随机访问存储器。 Input(输入设备):下指令,提供数据等,如:硬盘、键盘、…

    Linux干货 2016-09-15
  • 进程和计划任务

    一、知识整理 1、网络客户端工具:lftp,ftp,lftget,wget 子命令:get,mget,ls,help等 wget [opt] …[url] -q 静默模式 -c 断点续传 -O 保存位置 –limit-rates=  指定传输速率 登录ftp之后:lcd 在本机切换目录;get下载单个文件 !ls 查看本机文…

    Linux干货 2016-09-13
  • 马哥教育网络班21期-第六周课程练习

    第六周作业 请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@qq tmp]# cp /etc/rc.d/rc.sysinit /tmp [root@qq&nbsp…

    Linux干货 2016-08-02
  • 优云软件老司机:如何让运维操作更轻松、高效

    讲师介绍 庞辉富 •广通软件技术总监 •拥有10多年IT运维管理软件研发经验 •致力于自动化运维解决方案的研究和推广 •主导研发的产品广泛应用于海关、公安、能源等多个行业 技术发展给运维带来的挑战 当前的IT建设在这些新技术的演进下,我们看到的是呈现“双态IT”特征。Gartner也提出双模IT理论,与现在谈的双态IT是异曲同工的,不再是一种单纯的形态,而是…

    系统运维 2017-01-09
  • Linux命令基础

    Linux命令基础

    2018-03-25
  • vfork 挂掉的一个问题

    在知乎上,有个人问了这样的一个问题——为什么vfork的子进程里用return,整个程序会挂掉,而且exit()不会?并给出了如下的代码,下面的代码一运行就挂掉了,但如果把子进程的return改成exit(0)就没事。 我受邀后本来不想回答这个问题的,因为这个问题明显就是RTFM的事,后来,发现这个问题放在那里好长时间,而挂在下面的几个答案又跑偏得比较严重,…

    Linux干货 2016-08-15