初始LVS 负载均衡集群搭建(2)

解决: /sbin/ifconfig eth0:0 192.168.1.135 broadcast 192.168.1.135 netmask 255.255.255.255 up

/sbin/route add -host 192.168.1.135 dev eth0:0

echo "1" >> /proc/sys/net/ipv4/ip_forward

将三条命令写入 rc.local # cat <<EOF>> /etc/rc.d/rc.local


7.2(A)使用ipvsadm配置LVS

[root@localhost ~]# ipvsadm -C #清除原有记录

[root@localhost ~]# ipvsadm -A -t 192.168.1.135:80 -s rr -p 500

[root@localhost ~]# ipvsadm -a -t 192.168.1.135:80 -r 192.168.1.210:80 -g

[root@localhost ~]# ipvsadm -a -t 192.168.1.135:80 -r 192.168.1.220:80 -g

[root@localhost ~]# service ipvsadm save

[root@localhost ~]# service ipvsadm start

 

注意:实际生产中是不直接使用ipvsadm 直接配置LVS集群的

8.使用ldirectord配置LVS

 

8. 1(A)在Director Server上绑定一个VIP,用于对外提供服务。

[root@localhost ~]# ifconfig eth0:0 192.168.1.135 broadcast 192.168.1.135 netmask 255.255.255.255 up

特别注意:

广播地址 与 ip地址 相同

子网掩码 255.255.255.255

 

8.2(A)在Director Server上为eth0:0指定路由

[root@localhost ~]# route add -host 192.168.1.135 dev eth0:0

开启内核IP转发

[root@localhost ~]# echo "1" >> /proc/sys/net/ipv4/ip_forward

在DR模式下,开启ip转发不是必须的,在NAT模式下开启ip转发是必须的。

 

8.3安装ldirectord

#yum install -y heartbeat-ldirectord

用以LVS监控real server 节点的运行状态,当real server失效是,把它从虚拟服务器列表中删除,恢复是重新加入到列表。同时,它还能调用ipvsadm 自动创建LVS路由表。

需要说明的是:ldirectord 和 Piranha 都具有监控 real server的功能。

如果要通过ldirectord监控节点状态,只需要启动 ldirectord服务,整个集群就可以运行起来。

如果要通过Piranha工具配置LVS,就无需使用ldirectord。

 

---------依赖性没能解决,没有成功安装。--------------------------------------

 

查找安装的示例配置文件

#rpm -qd heartbeat-ldirectord

复制示例文件做配置文件

#cp /usr/share/doc/heartbeat-ldirectord-<tab>/ldirectord.cf /etc/ha.d

服务启动脚本

service ldirectord start|stop

 

编辑配置文件

#vim /etc/ha.d/ldirectord.cf

#全局配置选项

checktimeout=20 #判定real server出错的时间间隔

checkinterval=10 #判定ldirectord在两次检查之间的间隔

fallback=127.0.0.1:80 #当所有的real server都不工作时,web服务重定向

autoreload=yes #自动重载配置文件。

logfile="/var/log/ldirectord.log" #指定日志文件路径

quiescent=no #"no" 表示:如果一个节点在checktimeout设置的时间周期内没有相应,ldirectord会从LVS的路由表中之间移除real server,此时中断现有的客户端连接,并是LVS丢掉所有的连接跟踪记录和持续连接记录;"yes" 表示当某个real server失效时,ldirectord 将失效节点的权值设置为0,新的连接将不能到达,但是并不从LVS路由表中清除此节点,同时,连接跟踪记录和程序连接模版仍然保留在Director上

 

----------注意:以上为ldrectord.cf文件的全局配置。它们可以应用大下面多个虚拟主机上,下面是每个虚拟主机的配置。

 

#sample for 按 http virtual service

virtual=192.168.1.135:80 #设置VIP和端口号,注意:virtual行后面的行必须缩进4个空格或以一个tab字符进行标记。

real=192.168.1.210:80 gate #指定real server服务器地址和端口,同时设定LVS的工作模式 gate: DR | ipip: TUNL | masq : NAT

real=192.168.1.220:80 gate

fallback=127.0.0.1:80 gate

service=http #指定做负载均衡的服务

request="index.html" #ldirectord将根据real server 地址,结合该选项给出的请求路径,发送访问请求,检查real server上的服务是否正常运行,确保这里给出的页面是可以访问的,否则ldirectord会误认为此节点已经失效,发生错误监控现象。

receive="Test Page" #指定请求和应答字符串

scheduler=rr #指定调度算法,这里是rr 轮询 算法

protocol=tcp #指定协议类型,包含 tcp 和 udp

checkport=80 #指定监控的端口号

checktype=negotiate #指定ldirectord的检查类型

virtualhost=www.example.com #虚拟服务器的名称

9.real server 的配置

9.1禁止real server 相应ARP请求,只允许LVS 相应

[root@zzh /]# vim /etc/sysctl.conf

 

编辑内核运行参数,添加下面字段

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

 

[root@zzh /]# sysctl -p

 

使上面的修改立即生效

 

 

 

9.2配置VIP地址

[root@localhost ~]# ifconfig lo:0 192.168.1.135 broadcast 192.168.1.135 netmask 255.255.255.255 up

[root@localhost ~]# route add -host 192.168.1.135 dev lo:0

 

需要在所有的real server 执行相同的命令,可以写成脚本在所有的real server上执行,并 放到 /etc/rc.d/rc.local 中使该脚本开机执行

 

 

10.在Director Server 启动 Keepalived 服务

service ldirectord start

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/6c9cb1b67ae461fbcd4aa612ada79d02.html