设为首页 收藏本站
查看: 3343|回复: 0

[经验分享] VMware双机热备配置(Heartbeat)

[复制链接]

尚未签到

发表于 2019-1-7 07:43:25 | 显示全部楼层 |阅读模式
双机热备配置(Heartbeat)引用


1.添加硬件

  在两个系统都power off的状态下。我们需要分别给两个系统添加一块网卡和一个共享磁盘。
  1.用vmware 打开linuxha1,注意不是power on 哦。在setting菜单下选择configuration edtior ,点击add,添加一块网卡,这个就不需要讲了吧。还需要添加一个虚拟磁盘,还是点add,硬件类型是Hard disk,然后”Creat a new virtual disk”,大小我分配了0.5G,并选择上下面的“Allocate all disk space”.下一步是给共享磁盘起名字叫”sharedisk.pln”,然后确定。这样子就添加好了。
  2.用vmware 打开linuxha2,注意不是power on 哦。同样添加一块网卡。接着添加虚拟磁盘,这次是”Use an existing virtual disk”,然后选择我们刚才在linuxone中创建的sharedisk.pln,按照提示就可以了。
  3.磁盘和网卡都添加好了。这里,还需要注意,由于vmware中的系统启动后会锁定磁盘,所以当你启动linuxha1后共享磁盘被锁定了,你的linuxha2就起不来了。因此,我们需要处理一下先。首先,到d:\vmfile\linuxha1下,用写字板打开linux.vmx,在最后一行加入
  Disk.locking = false
  然后到d:\vmfile\linuxha2,同样修改linux.vmx, 在最后一行加入
  Disk.locking = false
  保存退出。
  4.好了,到此为止,两个系统的硬件都配置好了.
  2.分区方式
  [root@www1 ha.d]# df -h

  Filesystem               >  /dev/mapper/VolGroup00-LogVol00   7.4G  2.8G  4.3G  40% /
  /dev/sda1               99M  9.0M   85M  10% /boot
  *安装启动服务后
  [root@www1 ha.d]# df -h

  Filesystem              >  /dev/mapper/VolGroup00-LogVol00  7.4G  2.8G  4.3G  40% /
  /dev/sda1              99M  9.0M   85M  10% /boot
  none                  94M     0   94M   0% /dev/shm
  /dev/sdb                1008M   34M  924M   4% /ha #由ha自动加载
  二.安装前网络环境设定:
  ========================================================
  node1: 主机名:www1 ( HA01 )
  eth0:  192.168.0.197        //对外IP地址
  eth1:  192.168.1.10          //HA心跳使用地址
  node2: 主机名:www2 ( HA02 )
  eth0:  192.168.0.198        //对外IP地址
  eth1:  192.168.1.20          //HA心跳使用地址
  特别注意要检查以下几个文件:
  /etc/hosts
  /etc/host.conf
  /etc/resolv.conf
  /etc/sysconfig/network
  /etc/sysconfig/network-scripts/ifcfg-eth0
  /etc/sysconfig/network-scripts/ifcfg-eth1
  /etc/nsswitch.conf
  #vi /etc/hosts
  node1的hosts内容如下:
  127.0.0.1        localhost.localdomain   localhost
  192.168.0.197      www1              HA01
  192.168.1.10       HA01
  192.168.1.20       HA02
  192.168.0.198      www2
  node2的hosts内容如下:
  127.0.0.1       localhost.localdomain   localhost
  192.168.0.198       www2              HA02
  192.168.1.20      HA02
  192.168.1.10      HA01
  192.168.0.197       www1
  #cat /etc/host.conf
  order hosts,bind
  #cat /etc/resolv.conf
  nameserver 202.98.0.68    //DNS地址
  #cat /etc/sysconfig/network
  NETWORKING=yes
  HOSTNAME=www1           //主机名
  #cat /etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  ONBOOT=yes
  BOOTPROTO=static
  IPADDR=192.168.0.197
  NETMASK=255.255.255.0
  GATEWAY=192.168.0.1
  #cat /etc/sysconfig/network-scripts/ifcfg-eth1
  DEVICE=eth1
  ONBOOT=yes
  BOOTPROTO=none
  IPADDR=192.168.1.1
  NETMASK=255.255.255.0
  [node1] 与 [node2] 在上面的配置中,除了
  /etc/hosts
  /etc/sysconfig/network
  /etc/sysconfig/network-scripts/ifcfg-eth0
  /etc/sysconfig/network-scripts/ifcfg-eth1
  要各自修改外,其他一致。
  配置完成后,试试在各自主机上ping对方的主机名,应该可以ping通:
  /root#ping HA02
  PING HA02 (192.168.1.2) 56(84) bytes of data.
  64 bytes from HA02 (192.168.1.2): icmp_seq=0 ttl=64 time=0.198 ms
  64 bytes from HA02 (192.168.1.2): icmp_seq=1 ttl=64 time=0.266 ms
  64 bytes from HA02 (192.168.1.2): icmp_seq=2 ttl=64 time=0.148 ms
  --- HA02 ping statistics ---
  3 packets transmitted, 3 received, 0% packet loss, time 2002ms
  rtt min/avg/max/mdev = 0.148/0.204/0.266/0.048 ms, pipe 2
  三.安装HA 与HA依赖包
  ===========================================================
  rpm -Uvh libnet-1.1.2.1-1.rh.el.um.1.i386.rpm  //可以不装
  rpm -Uvh heartbeat-pils-2.0.4-1.el4.i386.rpm
  rpm -Uvh heartbeat-stonith-2.0.4-1.el4.i386.rpm
  rpm -Uvh heartbeat-2.0.4-1.el4.i386.rpm
  rpm -Uvh ipvsadm-1.24-5.i386.rpm
  【四】 配置 heartbeat
  使用 heartbeat,必须配置三个文件:authkeys、ha.cf 和 haresources。
  ---------------------------
  配置心跳的加密方式:authkeys
  ---------------------------
  #vi /etc/ha.d/authkeys
  如果使用双机对联线(双绞线),可以配置如下:
  #vi /etc/hc.d/authkeys
  auth 1
  1 crc
  存盘退出,然后
  #chmod 600 authkeys
  ---------------------------
  配置心跳的监控:haresources
  ---------------------------
  #vi /etc/ha.d/haresources
  1.没有共享磁盘的情况下配置
  各主机这部分应完全相同。
  www1 192.168.0.200 ipvsadm httpd
  指定www1调用ipvsadm启动http服务,系统附加一个虚拟IP 192.168.0.200 给eth0:0
  这里如果www1宕机后,www2可以自动启动http服务,并新分配IP 192.168.0.200给www2的eth0:0
  2.有共享磁盘情况的配置
  www1 192.168.0.200 Filesystem::/dev/sdb::/ha::ext3 ipvsadm httpd
  设置www1为主节点,集群服务器的ip地址为192.168.0.200,netmask 集群的服务有httpd,还有共享磁盘/dev/sdb
  该文件只有一行,其含义就是,当主节点www1宕机时,自动启用备用节点里www2来提供 服务,在切换到www2上时,自动启动httpd服务,同时,将/dev/sdb1挂接到/ha。
  *配置HA高可用,不要设置NFS挂载和mysql服务在启动服务器时自动运行,也就是说,把与HA相关资源交给Heartbeat HA去自动管理。
  3.由NFS服务的设置
  www1 10.4.66.88 Filesystem::192.168.0.252:/data::/data::nfs mysql.server
  这一行配置了3个资源,第一个是IP地址,第二个是NFS共享数据,
  第三个是mysql.server服务,文件在/etc/rc.d/init.d/目录,
  可以使用mysql.server start或stop来启动或停止服务。
  ---------------------------
  配置心跳的配置文件:ha.cf
  ---------------------------
  #vi /etc/ha.d/ha.cf
  logfile /var/log/ha_log/ha-log.log   ## ha的日志文件记录位置。如没有该目录,则需要手动添加
  logfacility local0
  #bcast eth1     ##使用eht1做心跳监测,这个我没有设置
  keepalive 2    ##设定心跳(监测)时间时间为2秒
  #warntime 10    ##超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中,这个也没有设置
  deadtime 30     ##超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡
  initdead 120     ##在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍。
  udpport 694    ##使用udp端口694 进行心跳监测
  auto_failback on  ##heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取
  node www1  ##节点1,必须要与 uname -n 指令得到的结果一致。
  node www2  ##节点2
  ping 192.168.10.1   ##通过ping 网关来监测心跳是否正常。
  respawn hacluster /usr/lib64/heartbeat/ipfail
  ---------------------------
  设置ipvsadm的巡回监测
  ---------------------------
  ipvsadm -A -t 192.168.10.200:80 -s rr
  ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.201:80 -m
  ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.202:80 -m
  执行后进行监测:
  #ipvsadm --list
  如果返回结果与下相同,则设置正确。
  IP Virtual Server version 1.2.0 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  TCP  192.168.10.200:http rr
  -> www2:http               Local   1      0          0
  -> www1:http               Masq    1      0          0
  【五】 HA服务的启动、关闭以及测试
  =================================================
  启动HA: service heartbeat start
  关闭HA; service heartbeat stop
  系统在启动时已经自动把heartbeat 加载了。
  使用http服务测试 heartbeat
  首先启动httpd服务
  #service httpd start
  编辑各自主机的测试用html文件,放到/var/www/html/目录下。
  启动node1的heartbeat www1#service heartbeat start
  将看到不用的页面
  在主节点(www1)上启动heartbeat服务:/etc/init.d/heartbeat start。 如果不出现错误,web服务应该被heartbeat启动,同时heartbeat为主节点设置IP地址192.168.0.200。使用ifconfig eth0:0可以看到如下信息:
  eth0:0 Link encap:Ethernet HWaddr 00:0C:29:D8:FD:EB
  inet addr:192.168.0.200 Bcast:192.168.0.255 Mask:255.255.255.0
  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  RX packets:14970 errors:0 dropped:0 overruns:0 frame:0
  TX packets:14977 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:100
  RX bytes:3624073 (3.4 Mb) TX bytes:3626223 (3.4 Mb)
  Interrupt:19 Base address:0x10a0
  同时/dev/sdb,应该被挂接。使用df -h,可以看到的信息包含下面的行:
  /dev/sdb 485M8.1M452M 2% /ha
  在node2(www2)上启动heartbeat:/etc/init.d/heartbeat start。 使用ifconfig eth0:0可以看到如下信息:
  eth0:0 Link encap:Ethernet HWaddr 00:0C:29:E4:1E:F7
  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  Interrupt:19 Base address:0x10a0
  表明现在node2节点没有被启用。
  使用df -h,看到的信息不包含下面的行:
  /dev/sdb1 485M8.1M452M 2% /ha
  表明/dev/sdb1没有被加载。
  直接关闭节点1的电源或者在www1上执行service heartbeat stop命令(模拟故障)。 最慢30秒后,在节点2(www2) 上执行ifconfig eth0:0,可以看到eth0:0已经被设置为192.168.0.200
  还可以在客户机上这样来确定 ^_^
  1.www1挂起服务时的状态,仔细看197和200的mac地址是一样的
  D:\>arp -a
  Interface: 192.168.0.138 --- 0x10005
  Internet Address        Physical Address      Type
  192.168.0.197         00-0c-29-71-4b-12     dynamic
  192.168.0.200         00-0c-29-71-4b-12     dynamic
  192.168.0.254         00-01-50-55-63-5b     dynamic
  2.www2挂起服务   mac地址变啦
  D:\>arp -a
  Interface: 192.168.0.138 --- 0x10005
  Internet Address        Physical Address      Type
  192.168.0.200         00-0c-29-6c-54-91     dynamic
  192.168.0.254         00-01-50-55-63-5b     dynamic
  (发现个小问题,如果把两台节点都手动stop以后,必须重新启动机器才能重新正常启用heartbeat服务)
  【六】 防火墙设置
  ====================================================
  heartbeat 默认使用udp 694端口进行心跳监测。 如果系统有使用iptables 做防火墙,应记住把这个端口打开。
  #vi /etc/sysconfig/iptables
  加入以下内容
  iptables -A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -d 10.0.0.201 -j ACCEPT
  意思是udp 694端口对 对方的心跳网卡地址 192.168.1.2 开放。
  #service iptables restart
  重新加载iptables。
  


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660126-1-1.html 上篇帖子: linux-HA heartbeat简单配置 下篇帖子: Heartbeat V2版本基于ha
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表