centos7의 소스 코드에서 Heartbeat 컴파일 및 설치

  최근 타사 소프트웨어 설치 패키지의 수정이 발생하여 설치 경로가 /opt/ 경로로 통합되었습니다. 원래는 yum을 이용해 직접 설치했는데, 이번 글에서는 소스코드 컴파일을 이용해 centos7에 Heartbeat를 설치하는 방법을 소개한다.

1. 하트비트가 무엇인지 이해하세요

  Heartbeat 프로젝트는 고가용성 클러스터 시스템을 구현하는 Linux-HA 프로젝트의 필수적인 부분입니다. 하트비트 서비스와 클러스터 통신은 고가용성 클러스터의 두 가지 핵심 구성 요소입니다. 하트비트 프로젝트에서는 이 두 기능을 하트비트 모듈로 구현합니다.

원리: 하트비트의 핵심은 하트비트 모니터링 부분과 리소스 인수 부분의 두 부분으로 구성됩니다. 하트비트 모니터링은 네트워크 링크와 직렬 포트를 통해 수행될 수 있으며 중복 링크를 지원합니다. 서로에게 현재 상태를 알리기 위해 메시지를 보냅니다. status.status, 상대방이 보낸 메시지가 지정된 시간 내에 수신되지 않으면 상대방은 유효하지 않은 것으로 간주됩니다. 이때 상대방에서 실행 중인 리소스나 서비스를 인수하려면 자원 인수 모듈을 시작해야 합니다. 주인.

하트비트 공식 주소: http://www.linux-ha.org/wiki/Download

2. 하트비트 컴파일 및 설치

1. 컴파일 환경 준비

服务器:centos7

安装依赖包:yum install -y gcc gcc-c++ autoconf automake libnet  libtool glib2-devel libxml2-devel bzip2-devel e2fsprogs-devel libxslt-devel libtool-ltdl-devel docbook-dtds docboot-style-xsl asciidoc

创建用户和用户组:
groupadd haclient #创建组haclient
useradd -g haclient hacluster -M -s /sbin/nologin  #创建用户hacluster

2. 관련 설치 패키지를 다운로드합니다.

  소스 코드에서 Heartbeat를 컴파일하고 설치하기 위해 다운로드해야 하는 설치 패키지 파일은 다음과 같습니다(순서대로 설치해야 합니다).

3. 클러스터-접착제 컴파일

#解压安装包
tar -xf 0a7add1d9996.tar.bz2
#进入解压后的目录
cd Reusable-Cluster-Components-glue--0a7add1d9996/
#执行脚本
./autogen.sh
#执行configure
./configure --prefix=/opt/heartbeat/ --sysconfdir=/opt/heartbeat/etc libdir=/opt/heartbeat/lib64 LIBS='/lib64/libuuid.so.1'
#编译并安装
make && make install

4. 리소스 에이전트 컴파일

리소스 에이전트는 다양한 리소스에 대한 ocf 스크립트입니다. 이러한 스크립트는 다양한 리소스를 시작, 중지, 모니터링 등을 위해 LRM에서 호출됩니다.

#解压安装包
tar xf resource-agents-3.9.6.tar.gz
#进入解压后的目录
cd resource-agents-3.9.6/
#执行脚本
./autogen.sh
#执行configure
./configure --prefix=/opt/heartbeat/ --sysconfdir=/opt/heartbeat/etc libdir=/opt/heartbeat/lib64 CFLAGS=-I/opt/heartbeat/include LDFLAGS=-I/opt/heartbeat/lib64 LIBS='/lib64/libuuid.so.1'
#编译并安装
make && make install

5. 하트비트 컴파일 및 설치

#解压安装包
tar -jxvf 958e11be8686.tar.bz2
#进入解压目录
cd Heartbeat-3-0-958e11be8686
#执行脚本
./bootstrap
#执行configure
./configure --prefix=/opt/heartbeat --sysconfdir=/opt/heartbeat/etc CFLAGS=-I/opt/heartbeat/include LDFLAGS=-L/opt/heartbeat/lib64 LIBS='/lib64/libuuid.so.1'
#创建库文件链接
ln -s /opt/heartbeat/lib64/\*    /lib64
#修改源码文件,否则会make报错
vim /opt/heartbeat/include/heartbeat/glue_config.h
  /*define HA_HBCONF_DIR “/usr/local/heartbeat/etc/ha.d/”*/ #把这一行用/**/注释掉或者删除掉
#编译并安装
make && make install

6. 관련 파일 복사

#复制配置源码中的配置文件到配置目录
cp -rf doc/{ha.cf,haresources,authkeys} /opt/heartbeat/etc/ha.d/
mkdir -p /opt/heartbeat/usr/lib
cp -rf /usr/lib/ocf /opt/heartbeat/usr/lib/
#修改认证文件及属性
chmod 600 authkeys
#修改配置文件中软件启动路径
sed -i 's#/usr/lib/ocf#/opt/heartbeat/usr/lib/ocf#g' /opt/heartbeat/etc/ha.d/shellfuncs
sed -i 's#/usr/lib/ocf#/opt/heartbeat/usr/lib/ocf#g' /opt/heartbeat/etc/ha.d/resource.d/hto-mapfuncs
sed -i 's#/usr/lib/ocf#/opt/heartbeat/usr/lib/ocf#g' /opt/heartbeat/usr/lib/ocf/lib/heartbeat/ocf-shellfuncs

7. 구성 파일을 수정하고 하트비트 서비스를 활성화합니다.

구성 파일 ha.cf(/opt/heartbeat/etc/ha.d/ha.cf)를 편집합니다.

#调试日志
debugfile /var/log/ha-debug         
#日志文件
logfile /var/log/ha-log
#表示使用系统日志            
logfacility local0  
#心跳的时间间隔,默认单位为秒                 
keepalive 1                         
#超出该时间间隔未收到对方节点的心跳,则判定对方死亡
deadtime 30  
#超出该时间间隔未收到对方节点的心跳,则发出警告记录到日志中                       
warntime 10 
#在某系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔,取值至少为deadtime的2倍                         
initdead 120  
#设置广播通信使用的端口,694为默认使用的端口号                           
udpport 694                         
#传播心跳的广播网卡信息
bcast eth0      
#设置对方机器心跳检测的IP                   
ucast eth0 192.168.17.10   
#在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点         
auto_failback off              
#配置主从的节点信息(主机名)
node localhost
#如果ping不通该地址,就认为当前断网,需要转移vip
ping 127.0.0.1                  
#指定与heartbeat一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的ping、node来检测网络连接。如果你的系统是64bit,请注意该文件的路径
respawn hacluster /opt/heartbeat/libexec/heartbeat/ipfail  
#指定用户和组
apiauth ipfail gid=haclient uid=hacluster

인증 키 authkeys 편집(/opt/heartbeat/etc/ha.d/authkeys)

#
#       Authentication file.  Must be mode 600
#
#
#       Must have exactly one auth directive at the front.
#       auth    send authentication using this method-id
#
#       Then, list the method and key that go with that method-id
#
#       Available methods: crc sha1, md5.  Crc doesn't need/want a  key.
#
#       You normally only have one authentication method-id listed in this file
#
#       Put more than one to make a smooth transition when changing auth
#       methods and/or keys.
#
#
#       sha1 is believed to be the "best", md5 next best.   --->sha1是被认为是最好的  咱们用这个就是最好
#
#       crc adds no security, except from packet corruption.
#               Use only on physically secure networks.
#
auth 1
1 crc
2 sha1 HI!
3 md5 Hello!

리소스 파일 haresources(/opt/heartbeat/etc/ha.d/haresources)를 편집합니다.

  이 파일은 리소스 관리를 나타냅니다. 호스트인 경우 이 파일에 구성된 모든 시작 리소스는 호스트가 시작된 후 자동으로 로드됩니다. 리소스 스크립트는 기본적으로 haresources와 동일한 수준 디렉터리 아래의 resources.d 디렉터리에 있습니다. .

#机器名 虚拟服务器IP 系统服务
localhost 192.168.17.10 mysqld

8. 방화벽을 닫고 하트비트 서비스를 시작합니다.

실행 파일 heartbeat를 찾고 다음을 입력합니다. heartbeat start

3. 일반적인 문제 및 해결 방법

1、/usr/bin/ld: -lplmb를 찾을 수 없습니다.

해결 방법: / -name libplumb*를 찾아 해당 종속 라이브러리 파일을 찾아 /usr/lib64에 복사합니다.

2. gmake[2]: a2x: 명령을 찾을 수 없습니다

해결책: yum install asciidoc

3. 리소스 에이전트-3.9.6 설치, 오류 ln: 심볼릭 링크 "/usr/lib/ocf/resource.d/heartbeat/.ocf-binaries"를 생성할 수 없습니다: 파일이 이미 존재합니다.

해결책: 제거한 다음 다시 설치하십시오.

4、오류: /opt/heartbeat/etc/ha.d//ha.cf의 잘못된 지시문 [xxx]

해결책: 이 상황은 일반적으로 구성 파일 ha.cf의 잘못된 구성으로 인해 발생합니다. 구성 파일을 확인하십시오.

추천

출처blog.csdn.net/fish332/article/details/128540022