集群用在实际生产环境中:需要做HA集群的机子,可以用其中一台为LB,加上若干个real server,实例用4台,HA两台,real server2台,HA中的一台做LB:
HA虚拟主机(HA-server):
222.24.24.14 server1.example.com
222.24.24.15 server2.example.com
实验虚拟主机(real-server)
222.24.24.17 server3.example.com
222.24.24.18 server4.example.com
这次实验以httpd服务为例,在实验机server3和server4上都搭建httpd服务并在默认发布目录下建立默认发布目录,如下
在LB主机上安装ipvsadm软件包
添加虚拟网卡,在server3和server4两台实验机上都作如下操作
用ifconfig命令我们可以发现会出现eth0:0 虚拟网卡,
这时我们三台主机上都有222.24.24.100这个IP,当我们用ping命令时会发现时可以ping通的,但是到底时访问的那台主机呢?我们可以使用arp命令进行检测
用arp命令显示的是主机的MAC地址,我们可以利用MAC去寻找所对应的主机
当然还有另外一种方法,在浏览器上输入ip地址根据所搭建的http服务来辨别,可以发现server3和server4两台主机是轮询着被访问的,但这并不是我们想要的结果,我们需要的是当客户访问222.24.24.100这个IP地址时,是由LB访问到server3和server4两台主机后,再由server3和server4两台主机再将信息返回给客户,这样就达到了我们所想要的目的,这个时候就需要安装另外一个安装包:arptables_jf.x86_64(两台主机server3和server4上都得安装)
我们利用arptables命令设定server3和server4这两太real-server不对222.24.24.100这个IP响应,那么当用户访问到ip222.24.24.100时,就只有LB主机对其作出响应了
(server3也要执行arptables命令)
用arptables将其规则重刷并保留其规则
开启两台real-server主机的arptables
再LB主机上可以使用ipvsadm去查看
这时我们再去ping 222.24.24.100这个IP时依旧可以ping通,但是MAC地址一直都是LB这台的,
在浏览器中输入222.24.24.100会轮询响应server3和server4的index.html.
做调度器的主机server2本身不具备健康检查,并不知道real-server那台机子是可用的,它会默认每台都是可用的,负载均衡调度器是关键
所以我们这时得LB主机自动时别健康状况检查
我们可以使用rpm 命令查看其配置文件/usr/share/doc/ldirectord-3.9.5/ldirectord.cf (HAl两台主机都同样操作)
启动ldirectord服务
当我们关闭real-server其中的一台的http服务时
将ldirectord httpd 服务加入HA,heartbeat中,直接启动heartbeat就进行就能与real server通信:
[root@server2 ~]# vim /etc/ha.d/haresources
启动HA下的heartbeat服务,
当主HA出故障不再服务时,server2继续接管server1的工作,
阅读(2399) | 评论(0) | 转发(0) |