RHCS를 구축하기 위해선 다음과 같은 사항이 요구된다.
# sh app_script.sh {start|stop|status} ; echo $?
0
- app stop 상태에서 start 시 : 0
- app start 상태에서 start 시 : 0
- app start 상태에서 stop 시 : 0
- app stop 상태에서 stop 시 : 0
- app start 상태에서 status 시 : 0
- app stop 상태에서 status 시 : 1(혹은 그 이상값)
반환되는 값에 대한 정보는 다음과 같다.
0: 프로그램이 실행 중이거나 서비스가 정상 동작중
1: 프로그램이 종료되었지만, /var/run 디렉터리에 해당 프로그램의 PID 파일이 존재함.
2: 프로그램이 종료되었지만, /var/lock 디렉터리에 해당 프로그램의 lock 파일이 존재함.
3: 프로그램이 실행되고 있지 않음.
4: 프로그램 또는 서비스의 상태를 알 수 없음.
5-99: 잠정적으로 LSB에서 사용하기 위해 예약된 코드 범위
100-149: 배포판에서 사용하기 위해 예약된 코드 범위
150-199: 어플리케이션에서 사용하기 위해 예약된 코드 범위
200-254: 그 외 예약된 코드 범위
Power Fencing 을 사용하기 위해 하드웨어 벤더사의 IPMI over LAN 기능을 활성화해야 한다.
하지만 하드웨어 테스트가 불가능한 환경일 경우 아래와 같이 하이퍼바이저에 vbmc 서버를 구축하면 vm에 power off signal 을 전송하여 물리적으로 종료되는 것처럼 구현이 가능하다.
아래 가이드는 하이퍼바이저 Host OS가 아닌 Guest OS에 vbmc를 구축하는 과정이다.
- OS: RHEL 7.9 Minimal
- CPU, Memory, Disk 용량은 상관없음.
- Network: Fencing Device 용 IP 대역으로 설정
vbmc 패키지 다운로드(http://naver.me/Fu6Ua8M6)
# mkdir /root/vbmc
# cp vbmc-pkgs-rhel79.tar /root/vbmc
# cd /root/vbmc
# yum localinstall *
# systemctl disable --now firewalld NetworkManager
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# reboot
Guest OS에 vbmc를 구축하였을 경우 노드를 등록할 때 하이퍼바이저의 root 비밀번호를 물어보는데,
이것을 방지하기 위해 ssh key 를 생성한 후 하이퍼바이저에 키를 전달한다.
# ssh-keygen
# ssh-copy-id root@<Hypervisor Fencing Device Network IP>
vbmc 에 노드를 등록할 때 시그널 Port 를 다르게 등록한다.
ex)
# vbmc add jh-rhcs-01 --port 5001 --username admin --password P@ssw0rd --libvirt-uri=qemu+ssh://root@192.168.10.1/system
# vbmc add jh-rhcs-02 --port 5002 --username admin --password P@ssw0rd --libvirt-uri=qemu+ssh://root@192.168.10.1/system
# vbmc list
+-------------+---------+---------+------+
| Domain name | Status | Address | Port |
+-------------+---------+---------+------+
| jh-rhcs-01 | down | :: | 5001 |
| jh-rhcs-02 | down | :: | 5002 |
+-------------+---------+---------+------+
# vbmc start jh-rhcs-01
# vbmc start jh-rhcs-02
# vbmc list
+-------------+---------+---------+------+
| Domain name | Status | Address | Port |
+-------------+---------+---------+------+
| jh-rhcs-01 | running | :: | 5001 |
| jh-rhcs-02 | running | :: | 5002 |
+-------------+---------+---------+------+
# vbmc show jh-rhcs-01
+-----------------------+-------------------------------------+
| Property | Value |
+-----------------------+-------------------------------------+
| address | :: |
| domain_name | jh-rhcs-01 |
| libvirt_sasl_password | *** |
| libvirt_sasl_username | None |
| libvirt_uri | qemu+ssh://root@192.168.10.1/system |
| password | *** |
| port | 5001 |
| status | running |
| username | admin |
+-----------------------+-------------------------------------+