操作系统:CentOS 6.5    相关软件:Apache、keepalived、nfs


    Keepalived的设计目录是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器、管理服务器池,而不仅仅是双机热备,使用Keepalived构建群集更加简易

    主要优势:对LVS负载调度器实现热备切换,提高可用性;对服务器池的节点进行健康检查,自动移除失效节点,如节点恢复后可重新加入服务器池


案例拓扑图:

wKiom1bo2Hywm9ztAACesQKFfO8930.jpg

案例环境:

wKiom1bo2Qyg6LliAAEY_BGT-Zs003.jpg


一、配置调度器

1.安装和配置keepalived方法请参考keepalived双机热备实例


2.添加Web服务器池,在配置好双机热备的基础上,打开keepalived.conf配置文件,在文件末尾添加“virtual_server VIP 端口 {...}”区段来配置虚拟服务器、主要包括对负载调度算法、群集工作模式、健康检查间隔、真实服务器地址等参数

wKiom1bo5wbCoQ47AAAXFN86PWI841.jpg

wKioL1bo55ey1ZwwAADZ0ubAoHI130.jpg

两台调度器都需要配置Web服务器池,修改好之后启动服务,这里要注意,因为客户端访问网页是先要访问调度器,所以两个调度器上面的防火墙80端口需要允许入站

wKiom1bo6dKiCKayAAA9E3fIQOA676.jpg


二、配置NFS共享存储

1.准备工作:NFS服务需要nfs-utils和rpcbind软件包的支持

wKioL1bo7EqzrvCXAAAUsmh2azM006.jpg


2.创建共享目录,并修改nfs配置文件/etc/exports,文件内容默认为空(无任何共享),书写格式为“目录位置 客户机地址(权限选项)”

wKiom1bo7NyQbXRoAAAaRSA_bPs878.jpg

wKioL1bo7WnQo1J4AAASB0YZsLQ760.jpg

说明:客户机地址可以是主机名、IP地址、网段地址,权限中rw表示允许读写(ro为只读),sync表示同步写入,no_root_squash表示当前客户机以root身份访问时赋予本地root权限


3.启动NFS服务

wKioL1bo7rmCVwaIAABMIkIjlRM221.jpg

注意:因为NFS是依赖于RPC机制,服务端口号是动态的,所以这里就先将NFS服务器上防火墙关闭了,毕竟NFS是搭建在内部网络环境,也相比安全,如果想了解防火墙如何配置,可以百度搜索一下有先关文档,这里就不做过多解释了

wKiom1bo70fjK51sAAAReFACUPA602.jpg


4.查看一下本机发布的NFS共享目录

wKioL1bo8ByxAdpAAAAifSnm-xE142.jpg


三、配置Web节点,两台Web服务器配置相同,这里以一台为例

1.安装Apache服务器

wKiom1bo9CexkM9BAAARAaHkzkk612.jpg


2.配置虚拟IP地址(VIP)

wKiom1bo9NXwICGgAAA6LdTXsTI276.jpg

wKioL1bo9WOh-xxiAAAccgzja8Y239.jpg

说明:在回环网站上配置虚拟接口,作为用来响应客户端请求的源IP地址,IP地址为VIP地址,子网掩码必须全为1

配置好重启网卡服务器

wKioL1bo9veBTF9RAAARm5_PzDY640.jpg


3.添加VIP本地访问路由

wKioL1bo9pDitvwyAAAQYvzvvEw897.jpg

wKioL1bo9pHAb7-JAABX6Ep46wU230.jpg

wKiom1bo9qKjS4yBAAAWSyqD9eI525.jpg


4.调整/proc响应参数,并使用“sysctl -p”命令将修改后的参数生效

wKiom1bo99HzmpWXAABUUoZrn1c976.jpg

wKioL1bpBA7S5aa7AAANWWMU9HQ879.jpg


5.挂载NFS共享存储

挂载前需要安装rpcbind工具,建议将nfs-utils软件包也一同安装上

wKioL1bo-hGww-pJAAAUsmh2azM509.jpg


查看一下NFS服务器共享了哪些目录

wKioL1bo-nzwX_phAAAjLN1bhS8550.jpg


手动挂载NFS共享目录,将共享目录挂载到http默认网站根目录下

wKiom1bo-sfDq1nlAACBOij1bag634.jpg


6.启动Apache服务

wKioL1bo_CTQcNJ0AAA39Iro-8k768.jpg

注意:启动失败原因应该是selinux开启的原因,我们关闭selinux然后重启httpd服务

wKiom1bo_IzimEAeAABLb474Pcg869.jpg

这样只是临时关闭而已,如果需求重启后依然关闭可以修改/etc/sysconfig/selinux配置文件,将SELINUX后面对应的值改成disabled即可

wKioL1bpBZ2wcM20AAAT6qCbDWA743.jpg

wKiom1bpBRPT8dtDAACJbOb4FzU595.jpg

创建防火墙规则:

wKiom1bo_NnR1v2zAAA9E3fIQOA115.jpg

这样节点服务器就配置好了,第二台节点服务器与这台一样


四、验证效果

1.在NFS共享存储服务器的共享目录中创建一个测试页

wKioL1bo_mOQZrfoAAAotxbcPDw477.jpg


2.用Win7去访问VIP地址

wKioL1bo_1PRMg5FAAB0xrP3gfY742.jpg


3.多刷新几次,然后去调度器上查看节点状态

wKiom1bpAKmhgEBWAABXg7IHX0k370.jpg


4.我们将节点2的http服务关闭后看看节点状态和浏览网页效果

wKioL1bpA2PRcigWAABMZmQMrk4365.jpg

wKiom1bpAuzQYA62AAB0xrP3gfY556.jpg

可以看到节点2关闭以后keepalived会将节点2的信息自动移除,但并不影响用户正常访问


5.我们将节点2上的共享存储卸载后,在http默认网站根目录下创建另外一个测试页,然后再次验证

wKiom1bpAYvxD0NlAAAzi7EeG0Y370.jpg

wKioL1bpAn-hRU_4AAB0xrP3gfY168.jpg

按F5刷新后:

wKiom1bpAifCBHsCAABz-yp74As133.jpg

同时也实现了Web站点的负载均衡效果