在Linux系统上双机功能的实现,对双机软件High-Availability Linux Project的安装、配置、运行以及测试进行说明。1.软件及安装说明本文档描述的Linux-HA软件以及参考的文档均来自网站:。通过安装该Linux-HA软件,可以实现Linux双机系统的高可用性解决方案,实现双机系统的热备份,并能够做到双机之间的无缝切换,从而对外提供稳定可靠的服务,最终实现系统高性能RAS(reliability, availability, and serviceability)。实现双机系统的两台主机不要求完全一致,但应该尽量做到硬件匹配。双机的连接可以使用串口线,也可以通过以太网ethernet进行连接,还可以采用并存的多种连接方式实现两台主机的多重互连。两台主机应该安装相同的操作系统,推荐使用RedHat Linux。进行网络配置,为每一台主机分配一个固定IP地址,另外需要选择一个IP地址作为集群IP(cluster IP),该IP是集群系统对外提供服务的接口。注意:主机IP地址与集群IP地址一定不能重复。1.2软件的安装1.2.1下载首先选择与系统匹配的安装文件。本文档测试所用的系统是CENTOS4.4,所用的安装文件是heartbeat-2.0.8.tar.gz,用户可以自行到网站上下载,该网站也会不断提供实时更新.同时到下载libnet.tar.gz稳定版本是:1.1.2.1.

Linux-HA软件的安装需要大量支持性的rpm软件包,根据用户系统及配置的不同,安装过程中会提出不同的rpm需求。如果有未获得的rpm包,可以到网站上查找并下载。1.2.2编译安装如安装文件所示,heartbeat-2.0.8.tar.gz是heartbeat的源代码软件包。该文件需要重新编译,但是首先应该依次安装支持heartbeat的一些rpm package,这些软件包对heartbeat提供必要的支持,然后再安装heartbeat软件包。注意由于软件包之间有相互依赖关系,因而需要遵循一定的安装顺序,可以根据安装过程中的提示自行协调安装顺序。一些依赖的rpm包如下:

#rpm –ivh perl-Digest-SHA1-2.01-6.i386.rpm

#rpm –ivh perl-Digest-HMAC-1.01-8.noarch.rpm

#rpm –ivh perl-Authen-SASL-2.03-1.rh.8.0.um.1.noarch.rpm

#rpm –ivh perl-ldap-0.2701-1.rh.8.0.um.1.noarch.rpm

#rpm –ivh perl-Convert-ASN1-0.16-2.rh.8.0.um.1.noarch.rpm

#rpm –ivh perl-Net-SSLeay-1.22-1.rh.8.0.um.1.i386.rpm

#rpm –ivh perl-IO-Socket-SSL-0.92-1.rh.8.0.um.1.noarch.rpm

#rpm –ivh perl-Parse-RecDescent-1.80-1.rh.8.0.um.1.noarch.rpm

#rpm –ivh perl-Mail-IMAPClient-2.2.7-1.rh.8.0.um.1.noarch.rpm

#rpm –ivh perl-XML-NamespaceSupport-1.08-1.rh.8.0.um.1.noarch.rpm

#rpm –ivh perl-XML-SAX-0.12-1.rh.8.0.um.1.noarch.rpm下面开始编译安装libnet和heartbeat

tar -zxvf libnet.tar.gz

cd libnet

./configure

make

make install

tar zxf heartbeat-2.0.8.tar.gz

cd heartbeat-2.0.8

./ConfigureMe configure --disable-swig --disable-snmp-subagent

make

make install

cp doc/ha.cf doc/haresources doc/authkeys /etc/ha.d/

cp ldirectord/ldirectord.cf /etc/ha.d/

1.3软件的配置Heartbeat软件的安装目录为/etc/ha.d,其中的README.config对配置文件进行了说明,共有三个主要的配置文件:ha.cf,haresources,authkeys。下面依次对三个配置文件进行说明,此外用户还可以参考Linux-HA附带的安装文档以及配置文件自身的注释。1.3.1配置ha.cf文件ha.cf是heartbeat的主要配置文件,可以对heartbeat的多数性能和状态进行配置。大部分选项的取值可以采用默认值,其中的主要选项及配置方法说明如下:debugfile /var/log/ha-debug:该文件保存heartbeat的调试信息logfile /var/log/ha-log:heartbeat的日志文件keepalive 2:心跳的时间间隔,默认时间单位为秒:超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡。warntime 10:超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。initdead 120:在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍。udpport 694:设置广播通信使用的端口,694为默认使用的端口号。baud 19200:设置串行通信的波特率。serial /dev/ttyS0:选择串行通信设备,用于双机使用串口线连接的情况。如果双机使用以太网连接,则应该关闭该选项。bcast eth0:设置广播通信所使用的网络接口卡。auto_failback on:heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。ping ping-node1 ping-node2:指定ping node,ping node并不构成双机节点,它们仅仅用来测试网络连接。respawn hacluster /usr/lib/heartbeat/ipfail:指定与heartbeat一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连接。1.3.2配置haresources文件haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等。其配置语句格式如下:node-name  network-config  其中node-name指定双机系统的主节点,取值必须匹配ha.cf文件中node选项设置的主机名中的一个,node选项设置的另一个主机名成为从节点。network-config用于网络设置,包括指定集群IP、子网掩码、广播地址等。resource-group用于设置heartbeat启动的服务,该服务最终由双机系统通过集群IP对外提供。下面举例对配置方法进行说明:

# hello 192.168.8.240 httpd tomcat假设ha.cf文件中node选项设置的两个主机名分别为hello和web,则根据上述配置,双机系统的主节点为hello,从节点为web。heartbeat启动时获取集群IP(cluster IP)为192.168.8.240,该IP成为heartbeat对外提供服务的网络地址。此外heartbeat依次启动服务httpd和tomcat(从左向右的顺序)。heartbeat关闭时将依次关闭tomcat和httpd(从右向左的顺序),并释放cluster IP。httpd和tomcat分别是apache和tomcat的启动脚本,heartbeat将从下面目录中寻找这些启动脚本:/etc/ha.d/resource.d

/etc/rc.d/init.d

# hello 192.168.8.240/19 httpd tomcat指定cluster IP为192.168.8.240,并且指定子网掩码为255.255.224.0,每个网段内有213个可用IP,默认广播地址取该网段内的最大可用IP,取值为192.168.31.255。此外,还可以向启动脚本传递argument,语法为:scriptname::argument # hello 192.168.8.240/19/eth0/192.168.31.251 httpd tomcat指定cluster IP为192.168.8.240,子网掩码为255.255.224.0,使用的网络接口卡为eth0,并强制设定广播地址为192.168.31.251。注意:两台主机的haresources文件设置必须完全一致。1.3.3配置authkeys文件authkeys文件用于heartbeat的鉴权设置,共有三种可用的鉴权方式:crc、md5和sha1。三种方式安全性依次提高,但同时占用的系统资源也依次扩大。crc安全性最低,适用于物理上比较安全的网络,sha1提供最为有效的鉴权方式,占用的系统资源也最多。其配置语句格式如下:auth

[]举例说明:auth 1

1 sha1 key-for-sha1其中键值key-for-sha1可以任意指定,number设置必须保证上下一致。auth 2

2 crc

crc方式不需要指定键值。最后,该authkeys文件的文件许可权应该设为600(即-rw-------),命令为:chmod 600 authkeys注意:上述三个配置文件设置完毕后,应该复制到/etc/ha.d目录下。1.4运行与测试1.4.1启动heartbeat

heartbeat安装完成后,自动在/etc/rc.d/init.d/目录下生成启动脚本heartbeat,启动heartbeat可以使用命令/etc/rc.d/init.d/heartbeat start此外还可以使用stop、restart、reload、status等控制参数。heartbeat在生成启动脚本的同时也为不同的runlevel创建了启动脚本的符号连接,从而在切换runlevel的时候自动启动或关闭heartbeat。例如,在/etc/rc.d/rc3.d/目录下创建了符号连接S75heartbeat,从而在系统进入字符模式(runlevel 3)时自动启动heartbeat。在/etc/rc.d/rc6.d/目录下创建了符号连接K05heartbeat,从而在系统重启(runlevel 6)时自动关闭heartbeat。默认情况下,heartbeat的启动优先级是75,关闭优先级是5。可以手动来创建。命令如下:cd /etc/rc.d/rc0.d    ln -s ../init.d/heartbeat K05heartbeat

cd /etc/rc.d/rc3.d    ln -s ../init.d/heartbeat S75heartbeat

cd /etc/rc.d/rc5.d    ln -s ../init.d/heartbeat S75heartbeat

cd /etc/rc.d/rc6.d    ln -s ../init.d/heartbeat K05heartbeat

1.4.2测试方案下面描述一个简单的测试方案。系统环境和软件配置如下:两台主机的主机名和IP地址分别为:hello(192.168.6.7)

web(192.168.6.33)则ha.cf文件中的node语句定义如下:node hello

node web

haresources文件定义如下:hello 192.168.8.240/19/192.168.31.255该语句指定双机系统的主节点为hello,从节点为web,集群IP(cluster IP)为192.168.8.240,子网掩码为255.255.224.0,广播地址为192.168.31.255。本测试方案没有指定heartbeat启动的服务,仅通过ping命令和telnet命令来检测双机系统的可用性。任何一台主机在启动heartbeat后,可以使用命令ps aux | grep heartbeat来查看heartbeat的进程状态,可以使用ifconfig命令确认当前主机是否已经绑定了cluster IP,此外还可以在/var/log/目录下查看heartbeat的日志文件ha-debug、ha-log。如果运行过程中产生了任何异常或错误消息,则应该根据上述信息进行检查和调试。测试步骤如下:1.   主节点启动heartbeat在主节点hello上调用命令/etc/rc.d/init.d/heartbeat start启动heartbeat。该主机将会自动绑定集群IP地址,在双机系统之外的第三台主机上使用ping命令检测集群IP地址192.168.8.240,直至该地址变为可用(根据硬件和网络性能的差异,主机绑定集群IP地址需要等待不同的时间)。在主节点hello上使用ifconfig命令查看该主机的网络配置,显示主节点已经绑定了集群IP地址192.168.8.240。在第三台主机上使用telnet命令登录集群IP地址192.168.8.240,输入主节点hello的用户名和口令,可以成功登录hello主机。

linux查看双机状态命令,Linux 系统下双机HA的功能实现相关推荐

  1. linux查看电源状态命令,linux查看机器运行状态常用命令

    查看系统基本信息 lsb_release -a # 查看linux版本 top # 查看谁最占用cpu等资源 uname -a # 查看内核/操作系统/cpu等信息 cat /etc/issue # ...

  2. linux查看电源状态命令,Linux下查看电池损耗等信息

    使用upower查看电池信息 刚买了新本,发现电池亏损6%,不知道是临时的还是永久的,为了经常能查询到电池信息而使用这个命令. 使用命令:upower -i `upower -e | grep 'BA ...

  3. linux查看网络流量 命令,linux查看流量命令

    Linux系统下想要查看网络流量,那我们该使用那个命令呢?下面由学习啦小编为大家整理了linux查看网络流量的命令的相关知识,希望对大家有帮助. linux查看网络流量命令大全 linux查看网络流量 ...

  4. linux查看显示器名称命令,linux 查看显示器信息Linux下查看硬件信息命令大全

    /proc 虚拟的目录,是系统内存的映射.可直接访问这个目录来获取系统信息.其中也包含下面的信息: 主机CPU信息:cpuinfo 主机DMA通道信息:dma 文件系统信息:filesystems 主 ...

  5. linux查看当前间命令,Linux系统查看当前时间的命令

    转自:https://www.cnblogs.com/redfire/p/7702213.html 一.查看和修改Linux的时区 1. 查看当前时区 命令 : "date -R" ...

  6. linux查看机器配置命令,linux 下查看机器配置的几个命令

    查看硬盘信息:dmesg | grep hd username@node01:~> dmesg|grep hd activating NMI Watchdog ... done. testing ...

  7. linux查看防火墙状态命令

    1.查看防火墙状态     firewall-cmd --state 2.关闭防火墙     systemctl stop firewalld.service 3.禁用开启启动防火墙 systemct ...

  8. linux查看php日志命令,linux查看日志的三种命令是什么,linux查看进程命令

    linux查看日志的三种命令是什么Linux查看日志的三个命令是什么,linux查看日志有三个命令:1.查看实时更改日志,代码为[tail-f filename]:2.搜索关键字附近的日志代码为[ca ...

  9. linux查看cpu个数命令,Linux怎么查看物理CPU个数

    在linux中我们对于硬件的查看只能通过命令的方式来获得了不能直接查看到了,下面学习阿拉小编给各位整理了一些Linux查看物理CPU个数.核数.逻辑CPU个数的命令供各位学习. Linux怎么查看物理 ...

最新文章

  1. Go 语言中手动内存管理
  2. 【以前的空间】主席树
  3. java kinect 人体识别_深度图像的Kinect骨架算法
  4. redis主从复制下哨兵模式---选举原理
  5. dnscapy使用——本质上是建立ssh的代理(通过dns tunnel)
  6. 具有ReadWriteLock的Java并发
  7. 508. 出现次数最多的子树元素和
  8. 转贴:电子商务如何提升网站转化率之:谷歌9条
  9. 学会用Go解析复杂JSON的思路
  10. RedisDesktopManager的安装与使用
  11. android 自定义进度条 水量,Android自定义带水滴的进度条样式(带渐变色效果)...
  12. WebSocket使用,包括服务端和客户端(JAVA实现)
  13. java文件名中不能包含的字符,使用Java 7编写包含非英语字符的文件名时,zip条目不正确...
  14. C/C++_宏定义神仙级用法 实现枚举字符串互转
  15. NTKO控件使用总结——个人观点总结
  16. JS逆向---获取某知名外卖平台数据(_token)
  17. ESXI安装部署主机
  18. 为什么要远离色情信息(转载)
  19. CodeBlocks注释和替换快捷键
  20. Unity 之 贝塞尔曲线介绍和实际使用

热门文章

  1. 自定义采购订单批导(BAPI)
  2. 北京络捷斯特物流系统(四)
  3. iphone开发 IOS 组织架构图
  4. Cesium通视分析
  5. 案例:从键盘输入本组学员的人数,和本组学员的姓名,用数组存储姓名,然后再从键盘输入一个姓名,查找它是否在之前的数组中,如果存在,就显示它的下标
  6. 平均气温(Temperature)
  7. 清华数据结构平均气温AC100
  8. Vue 学习06——Vue父子组件通信、非父子组件通信1
  9. JAVA57_JAVA_第一次作业_孙明明
  10. ”三魂七魄”是怎么回事