er232112 发表于 2015-7-16 09:20:46

LVS+Keepalived 网站服务群集

基本配置和访问方法。在CentOS 6 系统中,需要先安装nfs-utils、rpcbind软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。yum -y install nfs-utils rpcbindchkconfig nfs on chkconfig rpcbind on设置共享目录NFS的配置文件为/etc/exports,文件内容默认为空(无任何共享),在配置文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选项)”。例如,若要将文件夹/opt/wwwroot共享给192.168.100.0/24网段使用,允许读写操作,配置如下所示。mkdir -p /opt/wwwrootvi /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,然后再启动nfsservice rpcbind startservice nfs startnetstat -anpt | grep rpcbindshowmount -e   //查看本机发布的NFS共享目录在客户机中访问NFS共享资源客户机中也需要安装rpcbind软件包,并启动rpcbind系统服务;另外,为了使用showmount查询工具,建议将nfs-utils软件包也一并安装。yum -y install rpcbind nfs-utilschkconfig rpcbind onservice 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远程管理并进行相关配置# yum -y install popt-devel kernel-devel openssl-devel# yum -y install ipvsadm# modprobe ip_vs   //加载ip_vs模块# service ipvsadm start   //开启ipvsadm服务# vi /etc/sysctl.conf    //编辑配置文件,打开路由转发功能修改下面一行net.ipv4.ip_forward= 1# sysctl -p    //重新加载刚才的配置文件,使其生效编译安装keepalived把keepalived软件包上传到主调度器               

            
注意:在哪个目录下执行rz操作文件就传送到哪个目录下# tar xzvf keepalived-1.2.2.tar.gz   //解压keepalived软件包# 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 keepalivedglobal_defs {   notification_email {   acassen@firewall.loc   failover@firewall.loc   sysadmin@firewall.loc   }   notification_email_fromAlexandre.Cassen@firewall.loc   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   }}} 2.在从调度器上安装keepalived并编辑其配置文件
A.使用相同的方式把keepalived软件包上传到从调度器# yum -y install popt-devel kernel-devel openssl-devel# yum -y install ipvsadm# modprobe ip_vs   //加载ip_vs模块# service ipvsadm start   //开启ipvsadm服务# vi /etc/sysctl.conf    //编辑配置文件,打开路由转发功能修改下面一行net.ipv4.ip_forward= 1# sysctl -p   //重新加载刚才的配置文件,使其生效#tar xzvf keepalived-1.2.2.tar.gz   //解压keepalived软件包#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.localdomainsmtp_server 192.168.200.1smtp_connect_timeout 30router_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   } }}# servicekeepalived start   //开启keepalived服务 3.配置web节点服务器
1)Server-01的配置# yum -y install httpd    //安装web服务器# echo "<h1>this is server-01</h1>" >/var/www/html/index.html    //建立一个网站测试页DR模式Web服务器配置如下:# vi web.sh   //编辑web服务器配置脚本添加以下内容ifconfig lo:0 192.168.100.188 broadcast 192.168.100.188 netmask 255.255.255.255uproute add -host 192.168.100.188 dev lo:0echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announcesysctl -p &>/dev/null# sh web.sh# service iptables stop   //关闭防火墙# service httpd start   //开启web服务器Server-02的配置# yum -y install httpd    //安装web服务器# echo "<h1>this is server-02</h1>" >/var/www/html/index.html    //建立一个网站测试页DR模式Web服务器配置如下:# vi web.sh   //编辑web服务器配置脚本添加以下内容ifconfig lo:0 192.168.100.188 broadcast 192.168.100.188 netmask255.255.255.255 uproute add -host 192.168.100.188 dev lo:0echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announcesysctl -p &>/dev/null# sh web.sh   //运行脚本# service iptables stop   //关闭防火墙# service httpd start    //开启web服务器
3. 测试LVS+Keepalived高可用群集

1.在客户机的浏览器中,能够通过LVS+Keepalived群集的漂移地址(192.168.100.188)正常访问web页面内容,则验证群集构建成功。


对于同一个IP地址一直都是由同一台web服务器为其提供服务,当服务器出现故障时,另一台就会代替其工作,实现了业务的高可用。使用# tail /var/log/messages可以查看主从切换以及服务器的自动化加入和删除在从调度器上查看结果如下2.模拟主调度器失效,查看web站点是否仍可以访问?
若可以正常访问则验证调度器实现热备切换修改客户机IP地址,验证web服务器访问量的负载均使用# tail /var/log/messages在从服务器上查看3.模拟一台web服务器故障,再次查看日志信息


恢复web服务,再次查看日志信息以上测试验证了LVS+Keepalived网站服务群集搭建成功

chai931 发表于 2016-6-20 07:13:35

加油!
页: [1]
查看完整版本: LVS+Keepalived 网站服务群集