Linux运维进阶-文档总结-高可用集群之heartbeat和lvs

来源:互联网 发布:c语言dll库详解 编辑:程序博客网 时间:2024/06/05 15:23

以下所有操作都是在Red-hat 6.5上


实验环境:
server1和server4做heartbeat实验。

1.heartbeat

heartbeat是一个开源项目,我们可以通过他的官网下载源代码包编译,这里我们使用rpm包安装了
在server1和server4上安装hreatbeat

安装包:heartbeat-3.0.4-2.el6.x86_64.rpm        heartbeat-libs-3.0.4-2.el6.x86_64.rpm  heartbeat-devel-3.0.4-2.el6.x86_64.rpm  ldirectord-3.9.5-3.1.x86_64.rpm yum install -y heartbeat-* 
cd /etc/ha.d/ #进入管理hreatbeat目录vim README.config #查看hreatbeat配置文件,资源分配文件是什么rpm -q heartbeat -d  #查找配置文件的位置cd /usr/share/doc/heartbeat-3.0.4/ cp ha.cf authkeys haresources /etc/ha.d/ #制作配置文件cd -vim ha.cf    #hreatbeat配置文件34 logfacility     local0  #日志类型48 keepalive 2         #心跳频率56 deadtime 30         #死亡时间(达到30s没反应就挂掉)61 warntime 10         #警告时间71 initdead 60         #初始化时间76 udpport 69441       #udp端口(每个人的端口要不一样)91 bcast   eth0            # Linux157 auto_failback on       #开启回切211 node    server1        #节点位置(I只能写server1)212 node    server4220 ping 172.25.41.254     #设置ping的网段253 respawn hacluster /usr/lib64/heartbeat/ipfail #回切(如果是64位系统就写lib64,如果是32就写32)259 apiauth ipfail gid=haclient uid=hacluster #给定uid和gid(在安装hraet的时候就给定uid和gid)vim authkeys(密钥文件)23 auth 124 1 crcchmod 600 authkeys #密钥文件必须给定600才能使用vim haresources150 server1 IPaddr::172.25.41.100/24/eth0 httpd (server1在server4上不用改,在写上http参数后,测试的后,就不能开启httpd)scp ha.cf authkeys haresources root@172.25.41.4:/etc/ha.d/ #将写好的配置为文件发到server4上/etc/init.d/heartbeat start #打开hreatbeat

2.lvs负载均衡(轮叫)

 刷掉arp缓存命令是 arp -d IP关闭server1和server4的heartbeats 在server1上 yum install ldirectord -ycp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/  ip addr add 172.25.41.100/32 dev eth0 #在server1,2,3上添加虚拟ip地址ipvsadm -A -t 172.25.41.100:80 -s rr #添加轮询机制 -A是添加一个虚拟服务,-s是scheduler-methodipvsadm -a -t 172.25.41.100:80 -r 172.25.41.2:80 -g   -a是添加一个服务  -r是真实服务ipvsadm -a -t 172.25.41.100:80 -r 172.25.41.3:80 -g/etc/init.d/ipvsadm save  #保存策略在server2和server3上操作:/etc/init.d/httpd start #打开http服务yum install arptables_jf -y (server2和server3都安装)server2  arptables -A IN -d 172.25.41.100 -j DROP  #-d 目的地arptables -A OUT -s 172.25.41.100 -j mangle --mangle-ip-s 172.25.41.2/etc/init.d/arptables_jf save   #保存策略server3arptables -A IN -d 172.25.41.100 -j DROParptables -A OUT -s 172.25.41.100 -j mangle --mangle-ip-s 172.25.41.3/etc/init.d/arptables_jf save   #保存策略

3.heart+lvs(进行负载均衡,如果server1挂了,server4直接接管,同样进行负载均衡)

刷掉原有ipvsadm的策略vim /etc/ha.d/ldirectord.cf 25 virtual=172.25.41.100:80 26         real=172.25.41.2:80 gate 27         real=172.25.41.3:80 gate 28         fallback=127.0.0.1:80 gate 29         service=http 30         scheduler=rr 31         #persistent=600 32         #netmask=255.255.255.255 33         protocol=tcp 34         checktype=negotiate 35         checkport=80 36         request="index.html" 37 #       receive="Test Page" 38 #       virtualhost=www.x.y.zvim /etc/ha.d/haresources150 server1 IPaddr::172.25.41.100/24/eth0 httpd ldirectord #添加ldirectord在server1上和server4上同时打开heartbeats服务  心跳功能开启一个机子上开启http和ldirectord,另外一个不开启任何一个服务,但当第一个机子挂了之后,第二台会直接接管

4.keepalived

keepalived:也是高可用的服务,分为一个master和backup,当master挂掉后,直接去backup去搞。关掉server1和server4的心跳服务,关闭httpd ldirectordtar zxf keepalived-1.2.8.tar.gz  #解压  cd keepalived-1.2.8./configure --prefix=/usr/local/keepalived  #在编译的时候,要解决依赖源的问题,根据后面的提示,直接yum安转软件就好。make && make insatall #安装ln -s /usr/local/keepalived/sbin/keepalived /sbin/ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ln -s /usr/local/keepalived/etc/keepalived/ /etc/chmod +x /etc/init.d/keepalived在安装好keepalived的时候,不用在server4上编译安装,直接将server1上装好的,scp过去scp -r /usr/local/keepalived/ root@172.25.77.4:/usr/local/做软连接(server1和server4)ln -s /usr/local/keepalived/sbin/keepalived /sbin/ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ln -s /usr/local/keepalived/etc/keepalived/ /etc/  做配置文件vim /etc/keepalived/keepalived.conf 1 ! Configuration File for keepalived  2   3 global_defs {  4    notification_email {  5         root@localhost  #接收警报的 email 地址,可以添加多个  6    }  7   8    notification_email_from keepalived@server1  9    smtp_server 127.0.0.1    #使用本机转发 email 10    smtp_connect_timeout 30 11    router_id LVS_DEVEL      #load balancer 的标识 ID,用于 email 警报 12 } 13  14 vrrp_instance VI_1 { 15     state MASTER            #备机改为 BACKUP,此状态是由 priority 的值来决定的,当前 priority的值小于备机的值,那么将会失去 MASTER 状 16     interface eth0          #HA 监测网络接口 17     virtual_router_id 77    #主、备机的 virtual_router_id 必须相同(不要跟别人的重复,用自己ip数) 18     priority 100            #主机的优先级,备份机改为 50 19     advert_int 1            #主备之间的通告间隔秒数 20     authentication {        #主备切换时的验证 21         auth_type PASS 22         auth_pass 1111 23     } 24     virtual_ipaddress {     #HA 虚拟 ip,可加多个 25         172.25.77.100 26     } 27 } 28  29 virtual_server 172.25.77.100 80 { 30     delay_loop 6            #每隔 6 秒查询 realserver状态 31     lb_algo rr              #lvs 调度算法,这里使用轮叫 32     lb_kind DR          #lvs 负载均衡机制,这里使用直连路由 33     #nat_mask 255.255.255.0 #1.2.8版本上这个行必须注释 34     #persistence_timeout 50 #同一 IP 的连接 60 秒内被分配到同一台 realserver   35     protocol TCP            #用 TCP 协议检查 realserver 状态 36  37     real_server 172.25.77.2 80 { 38         weight 1 39         TCP_CHECK { 40                 connect_timeout 3  41                 nb_get_retry 3   #故障重试秒数 42                 delay_before_retry 3 #重试延迟 43         } 44     } 45     real_server 172.25.77.3 80 { 46         weight 1 47         TCP_CHECK { 48                 connect_timeout 3 49                 nb_get_retry 3 50                 delay_before_retry 3 51         } 52  53     } 54  55 }将配置文件scp到server4上,修改上面提到的几行信息,做backup将server1和server4开启keepalived服务。测试:输入172.25.77.100

这里写图片描述

这里写图片描述


The End

原创粉丝点击