haixin3036 发表于 2019-1-6 06:22:48

通过heartbeat搭建lvs高可用性集群

  首先,在主、备节点上配置lvs信息,一般通过ldirectord配置
  在搭建Director Server的双机热备系统之前,首先需要在两台主机上安装heartbeat软件,安装软件后在/etc/ha.d/ha.cf产生主配置文件
  

  1.配置heartbeat的主配置文件/etc/ha.d/ha.cf
  

  #debugfile /var/log/ha-debug
  logfile /var/log/ha-log   #指定heartbeat的日志存放位置
  #crm yes   #是否开启ClusterResourceManager(集群资源管理)功能
  bcast eth1   #指定心跳使用以太网广播方式,并且在eth1接口上进行广播
  logfacility local0
  keepalive 2   #指定心跳间隔时间为2s(即每2s在eth1上发送一次广播)
  deadtime 30   #如果指定备用节点在30s内没有收到主节点的心跳信号,则立即接管
  #主节点的资源
  warntime 10#指定心跳延迟的时间为10s。当10s内备机不能接受到主节点的心跳信
  #号时,就会在日志中写入一个警告信息,但此时不会切换服务
  initdead 120#在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常
  #工作,该选项用于设置这种情况产生的时间间隔,取值至少为deadtime的2倍
  

  udpport 694#设置广播通信的端口,694为默认使用的端口号
  baud19200#设置串行通信的比特率
  serial /dev/ttyS0   #选择串行通信设备,用于双机使用串口线连接情况,如果双机通
  #过以太网连接,则应该关闭该选项
  #ucast eth0 192.168.1.1#采用网卡eth0的UDP单播来组织心跳,后面跟的IP地址应为
  #双机中对方的IP地址
  #mcast eth0 225.0.0.1 694 1 0   #采用网卡eth0的UDP多播来组织心跳,一般在备机不
  #止一台时使用。bcast、ucast和mcast分别代表广播、单播和多播,
  #是组织心跳的3种方式,任选其一即可
  auto_failback on   #用来定义当主节点恢复后,是否将服务自动切回,heartbeat的两
  #台主机分别表示主节点和备用节点。主节点在正常情况下占用资源并运行所有服
  #务,遇到故障时把资源交给备用节点并由备用节点运行服务。在将该选项设置on的
  #情况下,一旦主节点恢复运行,则自动获取资源并取代备用节点;如果该选项设置
  #为off,那么主节点恢复后,将变为备用节点,而原来的备用节点变成主节点
  #stonith bayteach /etc/ha.d/conf/stonith.baytech   #stonish的主要作用是使出现
  #问题的节点从集群环境中脱离,进而释放集群资源,避免两个节点争
  #用一个资源的情况发生。保证共享数据的安全性和完整性
  #watchdog /dev/watchdog#该选项是可选配置,通过heartbeat来监控系统的运行状
  #态。使用该特性,需要在内核中载入“softdog”内核模块,用来生成实际的设备
  #文件,如果系统中没有这个内核模块,就需要指定此模块,重新编译内核。编译
  #完成后输入“insmod softdog”加载该模块,然后输入grep misc /proc/devices
  #(结果应为10),输入cat /proc/misc |grep watchdog(结果应为130)。最好,
  #生成设备文件mknod /dev/watchdog c 10 130即可完成此功能
  node DR1    #主节点主机名称,必须要和uname -n查看的一致
  node DR2    #备用节点主机名称,必须要和uname -n查看的一致
  ping 192.168.12.1   #选择ping的节点。ping节点选择的越好,HA的集群就越健壮。可
  #以选择固定的路由器作为ping节点,但是最好不要选择集群中的成
  #员作为ping的节点,ping节点仅用来测试网络连接
  ping node 192.168.12.188 192.168.12.100#指定ping node。ping node并不是双机中
  #的两个节点,仅仅用来测试网络的连通性
  respawn hacluster /usr/lib/heartbeat/ipfail   #该选项是可选配置,列出与
  #heartbeat一起启动和关闭的进程,该进程一般是heartbeat的集成的
  #插件,这些进程遇到故障可以自动重新启动。最常用的进程是
  #ipfail,此进程用来检测和处理网络故障,需要配合ping语句指定的
  #ping node来检测网络的连通性。其中hacluster表示启动ipfail进程的身份
  

  2.配置heartbeat的资源文件/etc/ha.d/haresources
  haresources文件用于指定双机系统的主节点、集群ip、子网掩码、广播地址以及启动
  服务等集群资源。文件每一行可以包括一个或多个资源脚本名,资源脚本名之间用空格隔开,参数之间是有两个冒号隔开。
  

  DR1 IPaddr::192.168.12.200/24/eth0ldirectord
  #设置DR1为主节点,集群服务器的IP地址为192.168.12.200,netmask为255.255.255.0,同时指定此IP使用的网络接口为eth0,heartbeat托管的服务为ldirectord
  注意:这里的ldirectord对应的文件为/etc/init.d/ldirectord,即ldirectord服务的启动文件,也就是将ldirectord的启动与关闭交给heartbeat来管理。另外,LVS主节点和备份节点的资源文件haresources要完全一致,当指定DR1是主节点后,另一个节点DR2就是备用节点。
  

  

  3.配置heartbeat的认证文件/etc/ha.d/authkeys
  authkeys文件用于设定heartbeat的认证方式,该文件中有3种可用的认证方式crc、sha1和md5,这里使用crc认证方式。设置如下:
  

  auth 1
  1 crc
  #2 sha1 sha1_any_password
  #3 md5 md5_any_password
  

  需要说明的一点是无论auth后面指定的是什么数字,在下一行必须作为关键字再次出现,例如指定“auth 6 ”下面一定要有一行“6 认证类型”,最后确保这个文件的权限是600
  

  4.启动heartbeat服务
  所有配置完成后,就可以在主、备Director Server上启动heartbeat服务了
  /etc/init.d/heartbeat {start|stop|status|restart|reload|force-reload}
  由于heartbeat托管了主、备Director Server上的ldirectord服务,因此只需在主、备
  上启动heartbeat服务即可,这样ldirectord服务就在主机上起来了
  

  启动Real Server节点服务
  分别在两个Real Server节点上执行如下脚本:
  /etc/init.d/lvsrs start
  




页: [1]
查看完整版本: 通过heartbeat搭建lvs高可用性集群