Haproxy软件部署网站LB集群、keepalived +lvs部署高可用

基础知识:高可用性HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。
VIP : 一个通过ARP协议映射出来的非接口真正唯一对应的IP。
VIP :主要是用来进行不同主机之间的切换,其实现原理主要是靠TCP/IP的ARP协议。
原理:ARP是地址解析协议,每台主机中都有一个ARP高速缓存,存储同一个网络内的IP地址与MAC地址的对应关系.。
VIP自动切换的过程就称之为IP漂移,可以通过Keepalived来实现这个过程。


一 、HAProxy简介
1、HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层即应用层)应用的代理软件,支持虚拟主机,是免费、快速并且可靠的一种解决方案。单haproxy稳定性可以与硬件级的F5相媲美。
2、HAProxy适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理,HAProxy完全可以支持数以万计的 并发连接。
3、HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。
4、HAProxy 支持连接拒绝 : 有时我们很需要限制攻击蠕虫(attack bots),防止网站陷于小型DDoS攻击。
5、HAProxy 支持全透明代理(已具备硬件防火墙的典型特点): 可以用客户端IP地址或者任何其他地址来连接后端服务器.
6、haproxy现多于线上的Mysql集群环境,我们常用于它作为MySQL(读)负载均衡。
7、自带强大的监控服务器状态的页面,结合Nagios进行邮件或短信报警。

8、工作原理: HAProxy主要为基于 HTTP和 TCP访问的应用服务提供负载均衡,通过负载均衡算法, HAproxy能够接受数以万计的访问请求并将其转发到后端服务器池中进行处理,而后端服务器池就如一个强大的虚拟服务器接受 HAProxy转发的请求并进行处理。 HAproxy的请求调度器(Scheduler)决定了后端服务器中每个服务器接受和处理的请求量,在没有权重的调度算法下,调度器为每台服务器分配相同数量的请求,而在加权调度算法下,调度器根据每台服务器的权重为每个后端服务器分配不同数量的请求。
HAProxy允许用户自定义多个代理,并为每个代理提供负载均衡服务,代理由一个前端和一个或多个后端构成,前端定义了代理监听的IP地址(Virtual IP )和端口,同时还需在前端定义中关联与其相关的后端,而在HAProxy中,后端主要用于定义服务器池和负载均衡算法。HAProxy的负载均衡服务在7层,即应用层。
前端与后端是HAProxy配置中的关键部分,通常前端负责监听请求连接,后端负责负载均衡。
………在 openstack高可用集群配中,由于要为每个 openstack服务进行高可用配置,最佳做法就是将每个服务配置为一个前端和后端的组合,并将前端监听的 VIP通过Pacemaker或者Keeplived进行高可用设计。


9、 配置文件/etc/haproxy/haproxy.cfg说明
——HAProxy的配置文件由两部分组成:全局设定和对代理的设定,即全局配置段global、default默认属性配置段、前端代理配置段frontend、backend后端负载均衡配置段 、listen。
—— 全局配置global:
— Pidfile  /var/run/HAproxy.pid
— user   HAproxy
— group   HAproxy
– chroot :修改haproxy的工作目录至指定的目录。确保指定的目录为空目录且任何用户均不能有写权限;
– daemon:让haproxy以守护进程的方式工作于后台。
– log 设置HAProxy运行日志的输出设备,通常默认为本机的并默认记录 INFO级别的日志,用户可以将 HAProxy的日志输出到本机或者远程主机的日志设备上,并设置需要记录的日志级别,如 ERROR和 WARN。
— stats socket /var/lib/haproxy/stats 用户访问统计数据的接口


—— defaults :用于为所有其它配置段提供默认参数。
用户可以将具有共性的参数放到default段进行统一配置,然后再到各个配置段中进行个性修改
mode http 默认模式mode{tcp|http|health} log global //采用全局定义的日志
option dontlognull //不记录健康检查的日志信息
option httpclose //每次请求完毕后主动关闭http通道
option httplog //日志类别http日志格式
option forwardfor //后端服务器可以从http header 中获得客户端ip
timeout http-request 10s //在客户端建立连接但不请求数据时,关闭客户端连接
timeout queue 1m //等待最大时长
timeout connect 10s //定义haproxy将客户端请求转发至后端服务器所等待的超时时长
timeout client 1m //客户端非活动状态的超时时长
timeout server 1m //客户端与服务器端建立连接后,等待服务器端的超时时长
timeout http-keep-alive 10s //定义保存连接的超时时长
timeout check 10s //健康状态监测时的超时时间,过短会误判,过长资源会消耗
maxconn 4000 //每个server最大的连接数 默认为2000
http-server-close // 设置多少时间未连接到服务器后关闭服务器
option redispatch //serverid 服务器挂掉后强制定向到其他健康服务器
retries 3 //超过设置的尝试连接次数将认为连接失败


—— frontend:用于定义一系列监听的套接字socket,这些套接字可接受客户端请求并与之建立连接。
前端配置主要完成两个功能:
(一)是配置监听客户端请求的 IP地址和端口,在高可用环境下,此处的监听 IP地址通常为虚拟 IP;
(二)是将监听到的客户端请求转发到指定的后端配置中进行负载均衡。
典型的 HAProxy前端配置如下:
frontend WEB //frontend定义前端名称
bind 192.168.0.10:80 //bind参数指定该前端监听的IP 和端口
default_backend app //default_backend 指定后端名称是app


—— backend:用于定义一系列“后端”服务器,代理将会将对应客户端的请求转发至这些服务器。
后端配置主要实现两个主要功能:
(一)是负载均衡调度算法的设置;
(二) 是设置最终响应请求的服务器池各个节点的IP地址和端口,并设置每个节点的健康检查方式。
典型的后端配置如下:
backend app //后端实例的名称一定要与对应前端中设置的后端名称一致
balance roundrobin //balance指定采用 Round-Robin负载均衡算法
server appl 192.168.1.1:80 check //server行定义后端的真实服务器,ip 和端口。
server app2 192.168.1.2:80 check //自定义真实服务器的名称为app1、app2、app3和 app4
server app3 192.168.1.3:80 check inter 2s rise 4 fall 3 //
rver app4 192.168.1.4:80 backup //


—— listen:用于状态页面监控,以及后端server检查,是Fronted和backend的组合体
HAProxy为每个监听代理提供了实时监控,并可以将监控参数以 GUI页而的形式呈现给用户。
要使用HAProxy的GUI页面,需要在/etc/haproxy/haproxy.cfg配置文件中配置相应的监听参数,通常需要配置一个Listen置段(也可以是 Frontend或 Backend配置段),即可通过 HTTP协议访问HAProxy的监控页面。
最为常用的HAProxy监控页面配置如下:
listen status   #定义一个listen
mode http        #使用协议
bind 192.168.142.110:8080 #监听地址和端口
stats enable        #启用信息统计功能
stats hide-version #隐藏HAProxy版本信息
stats uri /HAproxy #自定义统计页面的URL
stats realm HAProxy\Statistics #登录提示信息
stats auth admin:admin #admin界面,验证成功后允许管理节点(健康检查访问页面的用户名及密码)
stats refreah 10s #页面自动刷新时间

HAProxy的监控页面将每项资源的监控参数以表格形式呈现给用户,并将监控参划分为七个类别,即 Queue、Session rate、Sessions、Bytes、Denied、Errors、 Warning、server。


衡量负载均衡器性能的因素:
session rate 会话率:每秒钟产生的会话数
session concurrency 并发会话数: 服务器处理会话的时间越长,并发会话数越多
date rate 数据速率:
以MB/s 或Mbps 衡量;大的对象导致并发会话数增加;高会话数,高数据速率要求更多的内存。


HAProxy 工作模式:
——mode http :客户端请求被深度分析后再发往服务器
——mode tcp :客户端与服务器之间建立会话,不检查第七项层信息
——mode health :仅做健康状态检查,已经不建议使用了。


常用的会话跟踪技术是Cookie与Session。
Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。
URL:Uniform Resource Locator,统一资源定位符;
URI:Uniform Resource Identifier,统一资源标识符,(代表一种标准);
URN:Uniform Resource Name,统一资源名称。
URI是标识符,可以表示名称,位置或两者(URI包含了URL和URN)
URI 表示请求服务器的路径,定义这么一个资源。而 URL 同时说明要如何访问这个资源(http://)。


server 为后端声明一个server,因此,不能用于defaults和frontend区段。
格式:server

【:port 】【 param*】
:为此服务器指定的内部名称

:此服务器的的IPv4地址 [:port]:指定将连接请求所发往的此服务器时的目标端口 [param*]:服务器设定的一系参数

以下都为服务器或默认服务器参数
check:启动对此server执行健康状态检查;
inter :设定健康状态检查的时间间隔,单位为毫秒,默认为2000;
rise :设定健康状态检查中,某离线的server从离线状态转换至正常状态需要成功检查的次数;
fall :确认server从正常状态转换为不可用状态需要检查的次数;
backup:表示该服务器是备份服务器,只有在其他非 backup服务器均不可用的情况下负载均衡器才会使用该后端服务器
cookie :为指定server设定cookie值,此处指定的值将在请求入站时被检查,第一次为此值挑选的server将在后续的请求中被选中,其目的在于实现持久连接的功能;

weight :权重,默认为1,最大值为256,0表示不参与负载均衡(不被调度);

capture request header:捕获并记录指定的请求首部最近一次出现时的第一个值,仅能用于“frontend”和“listen”区段。
:要捕获的首部的名称;:指定记录首部值时所记录的精确长度,超出的部分将会被忽略。

capture response header:捕获并记录响应首部

stats enable:启用基于程序编译时默认设置的统计报告,不能用于“frontend”区段。

stats hide-version:启用统计报告并隐藏HAProxy版本报告,不能用于“frontend”区段。

stats auth :启用带认证的统计报告功能并授权一个用户帐号及密码。

stats admin : 在指定的条件满足时启用统计报告页面的管理级别功能

option httplog :启用记录HTTP请求、会话状态和计时器的功能。

option logasap:启用或禁用提前将HTTP请求记入日志,不能用于“backend”区段。

errorfile :在用户请求不存在的页面时,返回一个页面文件给客户端而非由haproxy生成的错误代码;可用于所有段中。:指定对HTTP的哪些状态码返回指定的页面;这里可用的状态码有200、400、403、408、500、502、503和504;:指定用于响应的页面文件;

errorloc :请求错误时,返回一个HTTP重定向至某URL的信息;
状态码有200、400、403、408、500、502、503和504;
:Location首部中指定的页面位置的具体路径;

ACL :haproxy的ACL用于实现基于请求报文的首部、响应报文的内容或其它的环境状态信息来做出转发决策。
配置法则通常分为两步,首先去定义ACL,即定义一个测试条件,而后在条件得到满足时执行某特定的动作,如阻止请求或转发至某特定的后端。
格式:acl [flags]
:ACL名称
:测试标准,即对什么信息发起测试;
[flags]:目前haproxy的acl支持的标志位有3个: -i:不区分中模式字符的大小写;
-f:从指定的文件中加载模式;–:标志符的强制结束标记。
:acl测试条件支持的值 四类:正整数或正整数范围 ;字符串 ;正则表达式 ;IP地址及网络地址;

常用的测试标准(criteria):
be_sess_rate :用于测试指定的backend上会话创建的速率(即每秒创建的会话数)是否满足指定的条件;
fe_sess_rate :用于测试指定的frontend(或当前frontend)上的会话创建速率是否满足指定的条件;
hdr : 用于测试请求报文中的所有首部或指定首部是否满足指定的条件;
method :测试HTTP请求报文中使用的方法。
path_beg :用于测试请求的URL是否以指定的模式开头。
path_end :用于测试请求的URL是否以指定的模式结尾。
hdr_beg : 用于测试请求报文的指定首部的开头部分是否符合指定的模式。
hdr_end : 用于测试请求报文的指定首部的结尾部分是否符合指定的模式。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

二、使用Haproxy软件部署网站LB集群
2.1 普通LB集群
客户端: 192.168.4.250
haproxy 服务器 :192.168.4.100
网站服务器:192.168.4.101;192.168.4.102
将LVS/DR模式的配置全部撤掉。

2.1.1 配置haproxy服务器192.168.4.100
——装包
lvs ~] # yum -y install haproxy
lvs ~]# rpm -qc haproxy 查看配置文件的位置
/etc/haproxy/haproxy.cfg
/etc/logrotate.d/haproxy
/etc/sysconfig/haproxy

——haproxy上修改配置文件/etc/haproxy/haproxy.cfg:
]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
]# vim /etc/haproxy/haproxy.cfg (这里不做业务区分,所有删除58行后的所有内容,并添加以下内容)
60 stats uri /admin //设置查看web页面显示健康性检查信息的路径
62 listen lbweb 0.0.0.0:80 //定义一个webcluster的应用名称 IP 和 端口
63 cookie SERVERID rewrite //把服务器分发给客户端的cookies记录下来
64 balance roundrobin
65 server webA 192.168.4.101:80 cookie app101a check inter 2000 rise 2 fall 5
66 server webB 192.168.4.102:80 cookie app102b check inter 2000 rise 2 fall 5
]# netstat -antulp| grep :80 查看80端口是否被占用
]# /etc/init.d/haproxy status 查看服务的状态
]# chkconfig --list haproxy 查看服务是否自启
]# chkconfig haproxy on 设置开启自启
起动haproxy服务: ]# service haproxy start
]# netstat -antulp| grep :80
在客户端上访问页面:]# elinks --dump http://192.168.4.100/test.html
在真机上查看web页面显示健康性检查信息:http://192.168.4.100/admin

2.2 区分业务的LB集群(七层)
动静分离:web1和web2 负载html 静态网页;web3和web4负载 php 动态网页
四个web服务器上安装php :]# yum -y install php
]# systemctl restart httpd (重启web服务)
]# vim /var/www/html/a.php 编写网页文件(文件名一致,内容不一样)


在HAProxy 上停止不区分业务的服务]# service haproxy stop
]# cd /etc/haproxy/
haproxy]# mv haproxy.cfg haproxy.cfg-1
haproxy]# cp haproxy.cfg.bak haproxy.cfg
haproxy]# vim haproxy.cfg
frontend weblb 192.168.4.100:80
acl pathhtml path_end -i .html
acl pathphp path_end -i .php
use_backend htmlgrp if pathhtml
use_backend phpgrp if pathphp
default_backend htmlgrp (访问首页文件)
backend htmlgrp
balance roundrobin
server app101 192.168.4.101:80 check
server app102 192.168.4.102:80 check
backend phpgrp
balance roundrobin
server app61 192.168.4.61:80 check
server app62 192.168.4.62:80 check
haproxy]# service haproxy start
在web1 和web 2创建首页文件:
]# echo “192.168.4.101” > /var/www/html/index.html
]# echo “192.168.4.102” > /var/www/html/index.html

客户端上]# elinks --dump http://192.168.4.100/test.html
web102
client ~]# elinks --dump http://192.168.4.100/test.html
web101
client ~]# elinks --dump http://192.168.4.100/a.php
web03
client ~]# elinks --dump http://192.168.4.100/a.php
web04
】# elinks --dump http://192.168.4.100/ (访问首页)
192.168.4.102
]# elinks --dump http://192.168.4.100/
192.168.4.101
在真机浏览器上:http://192.168.4.100/admin


配置调度器本身也是日志服务器, 可以接受通过网络发来的日志
]# vim /etc/rsyslog.conf
#Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
#Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
]# systemctl restart rsyslog.service
]# netstat -tulpn | grep :514
查看haproxy的日志
]# tail -f /var/log/messages
客户端访问负载均衡集群,将有日志产生

+++++++++++++++++++++++++++++++++++++++++++++++++++++++
三、使用keepalive软件部署网站HA(高可用)集群
keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
HSRP:热备份路由协议 思科私有
VRRP:虚拟冗余路由协议 IETF公共标准
keepalived工作原理:
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。

keepalived的配置文件:/etc/keepalived/keepalived.conf
主要包括以下几个配置区域,分别是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server。
global_defs区域 : 主要是配置故障发生时的通知对象以及机器标识;
notification_email 故障发生时给谁发邮件通知;
notification_email_from 通知邮件从哪个地址发出;
smpt_server 通知邮件的smtp地址
smtp_connect_timeout 连接smtp服务器的超时时间。
enable_traps 开启SNMP陷阱(Simple Network Management Protocol)。
router_id 标识本节点的字条串

static_ipaddress和static_routes区域 : 配置是本节点的IP和路由信息,一般不再配置。

vrrp_script区域 : 用来做健康检查的,当时检查失败时会将vrrp_instance的priority减少相应的值。
vrrp_instance区域:用来定义对外提供服务的VIP区域及其相关属性。
vrrp_rsync_group:用来定义vrrp_intance组,使得这个组内成员动作一致。
notify_master/backup/fault 分别表示切换为主/备/出错时所执行的脚本
smtp_alert 表示是否开启邮件通知
state 可以是MASTER或BACKUP,启动时会将priority比较大的节点选举为MASTER
interface 节点固有IP(非VIP)的网卡,用来发VRRP包。
use_vmac 是否使用VRRP的虚拟MAC地址。
dont_track_primary 忽略VRRP网卡错误。(默认未设置)
track_interface 监控以下网卡
mcast_src_ip 修改vrrp组播包的源地址,默认源地址为master的IP
lvs_sync_daemon_interface 绑定lvs syncd的网卡
garp_master_delay 当切为主状态后多久更新ARP缓存,默认5秒
virtual_router_id 取值在0-255之间,用来区分多个instance的VRRP组播。
priority 优先级 1-255 ,master一般高于其他50点
advert_int 发VRRP包的时间间隔,健康查检时间间隔
authentication 认证区域,认证类型有PASS和HA(IPSEC)
virtual_ipaddress vip 虚拟ip
virtual_routes 虚拟路由
virtual_ipaddress_excluded 发送的VRRP包里不包含的IP地址
nopreempt 允许一个priority比较低的节点作为master,即使有priority更高的节点启动
preempt_delay master 启动多久之后进行接管资源(VIP/Route信息等)

virtual_server_group和virtual_server区域 一般在超大型的LVS中用到
delay_loop 延迟轮询时间(单位秒)
lb_algo 后端调试算法(load balancing algorithm
lb_kind LVS调度类型NAT/DR/TUN。
virtualhost 用来给HTTP_GET和SSL_GET配置请求header的
sorry_server 当所有real server宕掉时,sorry server顶替
real_server 真正提供服务的服务器
weight 权重
notify_up/down 当real server宕掉或启动时执行的脚本
path 请求real serserver上的路径。
persistence_timeout 50 会话保持时间,
digest/status_code 分别表示用genhash算出的结果和http状态码
connect_port 健康检查,如果端口通则认为服务器正常
connect_timeout,nb_get_retry,delay_before_retry 分别表示超时时长、重试次数,下次重试的时间延迟

注意: 同一网段中virtual_router_id的值不能重复,否则会出错。


配置高可用的web集群:61(主服务器)和62(备用服务器)
(selinux 、防火墙 一定要关闭)
1、在两台web服务器上分别安装keepalived
]# yum install -y keepalived
2、分别修改各自配置(虚拟VIP :192.168.4.253)
]# vim /etc/keepalived/keepalived.conf
将全局的vrrp_strict这一行注释掉
vrrp_instance VI_1 {
state MASTER # 从属的用BACKUP
interface eth0 #定义网络接口
virtual_router_id 51 #主备VRID号,必须一致
priority 150 #优先级,主服务器比备服务器高50点
advert_int 1
authentication {
auth_type PASS //主从之间通信的验证方式是密码
auth_pass 1111
}
virtual_ipaddress {
192.168.4.253
}
}后续部分全部删除
3、启动服务
先启动主服务器
]# systemctl restart keepalived
备用服务器
]# systemctl restart keepalived
4、查看是否获取vip地址
web1 ~]# ip addr show | grep 192.168.4.
把web1上的keepalived停止后检查web2上是否获取vip
web2 ~]# ip addr show | grep 192.168.4.
客户端上]# elinks --dump http://192.168.4.253/a.php

++++++++++++++++++++++++++++++++++++++++++++++++++++++++
四、使用keepalive做LVS分发器的HA集群
LVS+KEEPALIVED,实现高可用、负载均衡的web集群

(一)、配置KVS/DR模式的LB集群(网站)
1、web服务器101,102配置
1)、运行网站服务并编写网页文件
2)、修改内核参数,在lo网卡上配置vip(192.168.4.253)
]# vim /var/www/html/test.html
]# ifconfig lo:1 192.168.4.253/32
]# cd /proc/sys/net/ipv4/conf/
conf]# ls
conf]# echo 1 >lo/arp_ignore
]# echo 2 >lo/arp_announce
conf]# echo 1 >all/arp_ignore
conf]# echo 2 >all/arp_announce
2、 在分发器的主机100/200上安装提供lvs服务的ipvsadm
]# yum -y install ipvsadm
注意:ipvsadm不需要配置规则,因为规则将由keepalived配置文件进行配置
分发器也不需要绑定虚拟IP,keepalived会配置。


(二)、配置分发器的HA集群 100(RHEL7)、200(RHEL6)
2.1 在两台分发器主机上分别安装keepalived软件(关闭selinux、防火墙)
]# yum -y install keepalived
2.2 分别修改2台分发器主机上的keepalived服务配置文件
lvs 100]# vim /etc/keepalived/keepalived.conf
19 vrrp_instance VI_1 {
20 state MASTER //主服务器
21 interface eth0
22 virtual_router_id 51
23 priority 150 //优先级
24 advert_int 1
25 authentication {
26 auth_type PASS
27 auth_pass 1111
28 }
29 virtual_ipaddress {
30 192.168.4.253 虚拟ip
31 }
32 }
34 virtual_server 192.168.4.253 80 { //虚拟服务器
35 delay_loop 6
36 lb_algo rr
37 lb_kind DR LVS模式改为DR
38 # persistence_timeout 50 //注释
39 protocol TCP
41 connect_timeout 3
42 nb_get_retry 3
43 delay_before_retry 3
45 real_server 192.168.4.101 80 { //指定realserver
46 weight 1
47 }
49 real_server 192.168.4.102 80 {
50 weight 1
51 }
52 }

lvs 200]# vim /etc/keepalived/keepalived.conf
19 vrrp_instance VI_1 {
20 state BACKUP //备服务器
21 interface eth0
22 virtual_router_id 51
23 priority 100 //降低优先级
24 advert_int 1
25 authentication {
26 auth_type PASS
27 auth_pass 1111
28 }
29 virtual_ipaddress {
30 192.168.4.253 虚拟ip
31 }
32 }
34 virtual_server 192.168.4.253 80 { //虚拟服务器
35 delay_loop 6
36 lb_algo rr
37 lb_kind DR LVS模式改为DR
38 # persistence_timeout 50 //注释
39 protocol TCP
41 connect_timeout 3
42 nb_get_retry 3
43 delay_before_retry 3
45 real_server 192.168.4.101 80 { //指定realserver
46 weight 1
47 }
49 real_server 192.168.4.102 80 {
50 weight 1
51 }
52 }
注意: lvs中 persistence_timeout ,持续会话时间,
作用:在持续会话时间内把同一用户的请求转发给同一个应用服务器,该参数会导致负载不均

2.3 分别启动2台分发器主机上的keepalived服务
lvs100 ]# systemctl start keepalived //启动服务
lvs 100]# systemctl enable keepalived //设置开机自启
lvs200]# /etc/init.d/keepalived start //启动服务
lvs200]# chkconfig keepalived on //设置开机自启

2.4 查看是否获取到VIP地址和虚拟服务及realserver
lvs 100]# ip addr show | grep 192.168.4.
inet 192.168.4.100/24 brd 192.168.4.255 scope global eth0
inet 192.168.4.253/32 scope global eth0

(三)、测试HA集群的配置
把主服务器宕机,客户端仍然能够正常访问网站服务
elinks --dump http://192.168.4.253/test.html


实验:
共享目录的服务有哪些?:NFS /SAMBA/ tftp /ftp/
配置需求:
配置LB集群中的网站服务把网页文件存储在存储服务器105主机的/dev/vdd磁盘上,结合keepalived+lvs高可用实验。
一、配置存储服务器192.168.4.105
1.1 准备存储空间:分区、格式化、挂载、
fdisk -l /dev/vdb
fdisk /dev/vdb —> n --> p -->1 -->2次回车–>w
fdisk -l /dev/vdb
blkid /dev/vdb1
mkfs.ext4 /dev/vdb1
mkdir /webdir
mount /dev/vdb1 /webdir
df -h /webdir/
设置开机挂载/etc/fstab
umount /webdir
blkid /dev/vdb1
vim /etc/fstab
UUID=4cc40006-e04a-4813-ba3c-59497c5eaa4d /webdir ext4 defaults 0 0
mount -a
mount | grep /webdir
/dev/vdb1 on /webdir type ext4 (rw)
]# df -hT /dev/vdb1
Filesystem Type Size Used Avail Use% Mounted on
/dev/vdb1 ext4 30G 44M 28G 1% /webdir

1.2 共享存储空间:装包、修改配置文件、启服务
]# yum list | grep -i nfs
]# yum -y install nfs-utils.x86_64
]# rpm -q nfs-utils
nfs-utils-1.2.3-64.el6.x86_64
还需安装传输数据的软件:rpcbind
~]# rpm -q rpcblind || yum -y install rpcbind
先启动rpcbind后启动NFS
]# cat /etc/exports (默认情况下不共享任何文件)
]# vim /etc/exports
/webdir *(rw)
]# ls -ld /webdir
]# chmod o+w /webdir
]# /etc/init.d/rpcbind start //先 启动rpcbind服务
]# /etc/init.d/nfs start //后启动nfs
]# chkconfig rpcbind on 开机自启
]# chkconfig nfs on 开机自启

1.3 查看共享信息
]# which showmount
/usr/sbin/showmount
]# rpm -qf /usr/sbin/showmount
nfs-utils-1.2.3-64.el6.x86_64
]# showmount -e localhost
Export list for localhost:
/webdir *

二、配置应用服务器192.168.4.101/102
2.1 挂载nfs 共享目录
]# yum -y install nfs-utils
/etc/init.d/rpcbind start
]# chkconfig rpcbind on
]# chkconfig nfs on
]# /etc/init.d/nfs start
]# showmount -e 192.168.4.105
Export list for 192.168.4.105:
/webdir/ *
]# ls /var/www/html/
]# rm -rf /var/www/html/* //删除网页目录下的无用文件
]# mount -t nfs 192.168.4.105:/webdir /var/www/html/ //把共享目录挂载到本机的网页目录下
]# mount

2.2 编写网页文件(在192.168.4.105上)
]# vim /webdir/test.html
aaaa
bbbb
]# ls /var/www/html/
lost+found test.html
在客户端上#elinks --dump http://192.168.4.253/test.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值