设为首页 收藏本站
查看: 1890|回复: 1

[经验分享] LVS+Keepalived 网站服务群集

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-16 09:20:46 | 显示全部楼层 |阅读模式
基本配置和访问方法。
在CentOS 6 系统中,需要先安装nfs-utils、rpcbind软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。
yum -y install nfs-utils rpcbind
chkconfig nfs on
chkconfig rpcbind on
设置共享目录
NFS的配置文件为/etc/exports,文件内容默认为空(无任何共享),在配置文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选项)”。例如,若要将文件夹/opt/wwwroot共享给192.168.100.0/24网段使用,允许读写操作,配置如下所示。
mkdir -p /opt/wwwroot
vi /etc/exports
添加下面一行
/opt/wwwroot 192.168.100.0/24(rw,sync,no_root_squash)
其中客户机地址可以是主机名、IP地址、网段地址、还可以使用*、?通配符;权限中的rw表示允许读写(ro为只读,)sync表示同步写入,no_root_squash表示当客户机以root身份访问时赋予本地root权限(默认是root_squash,将作为nfsnobody用户降权对待)
当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格分隔指定多个“客户机(权限选项)”即可。例如,将、/var/ftp/public目录共享给两个客户机,并分别给予只读、读写权限,配置如下
vi /etc/exports
/var/ftp/pub 192.168.100.10(ro) 192.168.100.20(rw)
启动NFS服务程序,手动加载NFS共享服务时,应先启动rpcbind,然后再启动nfs
service rpcbind start
service nfs start
netstat -anpt | grep rpcbind
showmount -e   //查看本机发布的NFS共享目录
在客户机中访问NFS共享资源
客户机中也需要安装rpcbind软件包,并启动rpcbind系统服务;另外,为了使用showmount查询工具,建议将nfs-utils软件包也一并安装。
yum -y install rpcbind nfs-utils
chkconfig rpcbind on
service rpcbind start
在客户机上使用“showmount -e NFS服务器地址”查看NFS服务器端共享了哪些目录
手动挂载NFS共享目录
例如,将NFS服务器共享的/opt/wwwroot目录挂载到本地/var/www/html方式如下
mount NFS服务器地址:/opt/wwwroot /var/www/html
为了测试实验结果,各web服务器采用不同网页,NFS共享存储服务就不再搭建了。实际上各web服务器的网站文档都存放在共享存储设备中。

2. 实验步骤:
1.  在主调度器上安装keepalived工具并编辑其配置文件
1)  在编译安装keepalived之前,必需先安装内核开发包kernel-devel,以及openssl-devel、popt-devel等支持库。还需要用到ipvsadm管理工具。
使用xshell远程管理并进行相关配置
[iyunv@zhang~]# yum -y install popt-devel kernel-devel openssl-devel
[iyunv@zhang~]# yum -y install ipvsadm
[iyunv@zhang~]# modprobe ip_vs   //加载ip_vs模块
[iyunv@zhang~]# service ipvsadm start   //开启ipvsadm服务
[iyunv@zhang~]# vi /etc/sysctl.conf    //编辑配置文件,打开路由转发功能
修改下面一行
net.ipv4.ip_forward= 1
[iyunv@zhang~]# sysctl -p    //重新加载刚才的配置文件,使其生效
编译安装keepalived
把keepalived软件包上传到主调度器
                 
wKioL1WkfxCwWbNwAAHakMQgHDY965.jpg
wKiom1WkfTuy4dPcAAO2BStG6UI894.jpg
            
注意:在哪个目录下执行rz操作文件就传送到哪个目录下
[iyunv@zhangopt]# tar xzvf keepalived-1.2.2.tar.gz   //解压keepalived软件包
[iyunv@zhangopt]# cd keepalived-1.2.2
[root@zhangkeepalived-1.2.2]# yum -y install gcc gcc-c++   //安装编译工具
[root@zhangkeepalived-1.2.2]# ./configure --prefix=/--with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/   //对keepalived的参数进行配置
[root@zhangkeepalived-1.2.2]# make && make install   //编译和安装keepalived服务
[root@zhangkeepalived-1.2.2]# chkconfig --add keepalived  //把keepalived添加到系统进行管理
[root@zhangkeepalived-1.2.2]# chkconfig keepalived on
配置主调度器
[root@zhangkeepalived-1.2.2]# vi /etc/keepalived/keepalived.conf
清空配置文件,插入以下文本
! Configuration File for keepalived
global_defs {
   notification_email {
   }
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_01    //主调度器名称
}            
vrrp_instance VI_1 {
    state MASTER   //主调度器的热备状态
    interface eth0
    virtual_router_id 51
    priority 110   //主调度器的优先级
    advert_int 1
    authentication {    //主、从热备认证信息
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {    //指定群集漂移地址
        192.168.100.188
    }
}
virtual_server 192.168.100.188 80 {    //虚拟服务器地址、端口
        delay_loop 6   //健康检查的间隔时间(秒)
        lb_algo rr    //轮询(rr)调度算法
        lb_kind DR    //直接路由(DR)群集工作模式
        persistence_timeout60    //连接保持时间(秒)
        protocol TCP    //应用服务采用的是TCP协议
real_server 192.168.100.110 80 {    //真实web节点地址、端口
        weight 1     //节点的权重
        TCP_CHECK {    //健康检查方式
        connect_port 80    //检查的目标端口
        connect_timeout3    //连接超时(秒)
        nb_get_retry 3    //重试次数
        delay_before_retry3   //重试间隔(秒)
        }
}
real_server 192.168.100.113 80 {
        weight 1
        TCP_CHECK {
             connect_port 80
             connect_timeout 3
             nb_get_retry 3
            delay_before_retry 3
     }
  }
}
wKiom1WkfX_Cv9GVAAOiH7q3bHo968.jpg
2.  在从调度器上安装keepalived并编辑其配置文件
A.  使用相同的方式把keepalived软件包上传到从调度器
[iyunv@DDQ-01~]# yum -y install popt-devel kernel-devel openssl-devel
[iyunv@DDQ-01~]# yum -y install ipvsadm
[iyunv@DDQ-01~]# modprobe ip_vs   //加载ip_vs模块
[iyunv@DDQ-01~]# service ipvsadm start   //开启ipvsadm服务
[iyunv@DDQ-01~]# vi /etc/sysctl.conf    //编辑配置文件,打开路由转发功能
修改下面一行
net.ipv4.ip_forward= 1
[iyunv@zhang~]# sysctl -p   //重新加载刚才的配置文件,使其生效
[iyunv@DDQ-01~]#tar xzvf keepalived-1.2.2.tar.gz   //解压keepalived软件包
[iyunv@DDQ-01~]#cd keepalived-1.2.2
[root@DDQ-01keepalived-1.2.2]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/    //对keepalived的参数进行配置
[root@DDQ-01keepalived-1.2.2]# make && make install   //编译和安装keepalived服务
[root@DDQ-01keepalived-1.2.2]# chkconfig --add keepalived   //把keepalived添加到系统进行管理
[root@DDQ-01keepalived-1.2.2]# chkconfig keepalived on   让keepalived服务在2345级别开启
[root@DDQ-01keepalived-1.2.2]# service iptables stop  //关闭防火墙
B.  配置从调度器
从调度器的配置和主调度器上的配置基本相同,只需要调整router_id、state、priority参数即可,其余内容完全相同。
[root@DDQ-01keepalived-1.2.2]# vi /etc/keepalived/keepalived.conf
清空配置文件内容,添加以下文本
! Configuration File for keepalived
global_defs {
  notification_email {
     root@localhost.localdomain      //从调度器的名称
   }
  notification_email_from benet root@localhost.localdomain
  smtp_server 192.168.200.1
  smtp_connect_timeout 30
  router_id LVS_02
}
vrrp_instance VI_1 {
    state BACKUP        //从调度器的热备状态
    interface eth0
    virtual_router_id 51 //编号主与从的两边要一样的
    priority 100        //从调度器的优先级
    advert_int 1
    authentication { //主、从热备认证信息
       auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {     //指定群集(虚拟服务器地址),可以指定多个的   
        192.168.100.188
    }
}
virtual_server 192.168.100.188 80{ //虚拟服务器地址(VIP)、端口  
     delay_loop 6        //健康检查的间隔时间(秒)
     lb_algo rr          //轮询(rr)调度算法
     lb_kind DR          //直接路由(DR)群集工作模式
     persistence_timeout 60  //连接保持时间(秒),若注释掉加个"!"
     protocol TCP        //应用服务采用的是TCP协议
    real_server192.168.100.110 80 { //第一个web节点的地址、端口
       weight 1     //节点的权重
       TCP_CHECK {      //健康检查方式
         connect_port 80 //检查的目标端口
            connect_timeout 3    //连接去超时(秒)
            nb_get_retry 3   //重试次数
            delay_before_retry 3 //重试间隔(秒)
    }
}
    real_server 192.168.100.113 80 { //第二个web节点的地址、端口
       weight 1
        TCP_CHECK {
         connect_port 80
             connect_timeout 3
             nb_get_retry 3
             delay_before_retry 3
     }
}
}
[iyunv@DDQ-01 keepalived-1.2.2]# servicekeepalived start   //开启keepalived服务
3.  配置web节点服务器
1)  Server-01的配置
[iyunv@server-01~]# yum -y install httpd    //安装web服务器
[iyunv@server-01~]# echo "<h1>this is server-01</h1>" >/var/www/html/index.html    //建立一个网站测试页
DR模式Web服务器配置如下:
[iyunv@server-01~]# vi web.sh   //编辑web服务器配置脚本
添加以下内容
ifconfig lo:0 192.168.100.188 broadcast 192.168.100.188 netmask 255.255.255.255up
route add -host 192.168.100.188 dev lo:0
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
sysctl -p &>/dev/null
[iyunv@server-01~]# sh web.sh
[iyunv@server-01~]# service iptables stop   //关闭防火墙
[iyunv@server-01~]# service httpd start   //开启web服务器
Server-02的配置
[iyunv@server-02~]# yum -y install httpd    //安装web服务器
[iyunv@server-02~]# echo "<h1>this is server-02</h1>" >/var/www/html/index.html    //建立一个网站测试页
DR模式Web服务器配置如下:
[iyunv@server-02~]# vi web.sh   //编辑web服务器配置脚本
添加以下内容
ifconfig lo:0 192.168.100.188 broadcast 192.168.100.188 netmask255.255.255.255 up
route add -host 192.168.100.188 dev lo:0
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
sysctl -p &>/dev/null
[iyunv@server-02~]# sh web.sh   //运行脚本
[iyunv@server-02~]# service iptables stop   //关闭防火墙
[iyunv@server-02~]# service httpd start    //开启web服务器

3. 测试LVS+Keepalived高可用群集

1.  在客户机的浏览器中,能够通过LVS+Keepalived群集的漂移地址(192.168.100.188)正常访问web页面内容,则验证群集构建成功。
wKiom1Wkfa3yhJsaAADFNrxooHk101.jpg
wKioL1Wkf4XBzvBEAADraeMgscc600.jpg
对于同一个IP地址一直都是由同一台web服务器为其提供服务,当服务器出现故障时,另一台就会代替其工作,实现了业务的高可用。
使用[iyunv@zhang ~]# tail /var/log/messages可以查看主从切换以及服务器的自动化加入和删除
wKiom1Wkfc_CIcZNAAT8revtf_Q105.jpg
在从调度器上查看结果如下
wKioL1Wkf7-w62ghAAUFQoAWyrc784.jpg
2.  模拟主调度器失效,查看web站点是否仍可以访问?
若可以正常访问则验证调度器实现热备切换
wKioL1Wkf82i3RKbAAHyS-XjH24167.jpg
修改客户机IP地址,验证web服务器访问量的负载均
wKiom1WkfhKSmswoAALJKhzIO0I931.jpg
使用[iyunv@zhang ~]# tail /var/log/messages
wKioL1Wkf_6T79TrAAPOFUNFcOA924.jpg
在从服务器上查看
wKioL1WkgA7icBFDAAUc-jYeLIE567.jpg
3.  模拟一台web服务器故障,再次查看日志信息
wKioL1WkgDOz4aFNAAN4yxfF73A836.jpg
wKiom1Wkfl2yT_YuAAWDXiIGGCc070.jpg
恢复web服务,再次查看日志信息
wKioL1WkgEyTLY-7AAVDhOMRJGg698.jpg
以上测试验证了LVS+Keepalived网站服务群集搭建成功


运维网声明 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-87165-1-1.html 上篇帖子: LVS 自开发脚本 下篇帖子: Linux_lvs集群 网站
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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