基本配置和访问方法。 在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软件包上传到主调度器
注意:在哪个目录下执行rz操作文件就传送到哪个目录下 [iyunv@zhangopt]# tar xzvf keepalived-1.2.2.tar.gz //解压keepalived软件包 [iyunv@zhangopt]# cd keepalived-1.2.2 [root@zhangkeepalived-1.2.2]# ./configure --prefix=/--with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/ //对keepalived的参数进行配置 配置主调度器 清空配置文件,插入以下文本 ! 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 } } } 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 B. 配置从调度器 从调度器的配置和主调度器上的配置基本相同,只需要调整router_id、state、priority参数即可,其余内容完全相同。 清空配置文件内容,添加以下文本 ! Configuration File for keepalived global_defs { notification_email { } 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页面内容,则验证群集构建成功。
对于同一个IP地址一直都是由同一台web服务器为其提供服务,当服务器出现故障时,另一台就会代替其工作,实现了业务的高可用。 使用[iyunv@zhang ~]# tail /var/log/messages可以查看主从切换以及服务器的自动化加入和删除 在从调度器上查看结果如下 2. 模拟主调度器失效,查看web站点是否仍可以访问?
若可以正常访问则验证调度器实现热备切换 修改客户机IP地址,验证web服务器访问量的负载均 使用[iyunv@zhang ~]# tail /var/log/messages 在从服务器上查看 3. 模拟一台web服务器故障,再次查看日志信息
恢复web服务,再次查看日志信息 以上测试验证了LVS+Keepalived网站服务群集搭建成功
|