INTRO
Pacemaker Resource를 등록할 때 OCF로 형태로 제공하는 리소스로 등록하면 간편하게 등록할 수 있습니다.
하지만 OCF 형태로 제공되지 않는 자사 솔루션 및 기타 솔루션들이 많기 때문에 이러한 서비스들은 LSB 리소스, systemd 등으로 등록하여 서비스를 관리해야 됩니다.
RHEL 9버전부터 /etc/init.d의 function이 제공되지 않고 /etc/init.d 역시 사용되지 않기 때문에 앞으로 systemd를 이용하여 서비스를 관리할 필요가 있습니다.
아직까지는 RHEL 8.X까지의 OS가 도입된 곳이 많기 때문에 LSB Resource Agent에 대하여 공유드리려고 합니다.
LSB Resource Agent란?
LSB Resource Agent란 작성한 init script(init 스크립트)를 Pacemaker 리소스에 등록하는 것입니다.
Init 스크립트는 작성한 스크립트가 서버가 생성 및 부팅시에 자동으로 실행시킬 수 있게 도와주는 기능입니다.
LSB Resource 검증 방법
LSB 호환 여부와 관련된 ClusterLabs 문서를 참고하면 start, stop에 대한 return 값 검증을 중요시 여기는 것으로 확인됩니다. 자세한 부분은 아래의 문서를 참고해주세요.
1. 시작(start) 검증
- 서비스가 정상적으로 실행되었는지?
- return 값이 0으로 출력되었는지?
# /etc/init.d/example.sh start
# echo "result: $?"
2. 시작 상태 확인
- status 옵션이 수행이 정상적으로 되는지? (status 명령이 수행되지 않는다면 function 재확인 필요)
- return 값이 0으로 출력되었는지?
# /etc/init.d/example.sh status
# echo "result: $?"
3. 시작 명령 2번 이상 실행시 서비스가 계속 실행중인지 확인
- 서비스가 계속 실행중인지? (ps 명령을 통해 프로세스 시간 확인 필요)
- return 값이 0으로 출력되었는지?
# /etc/init.d/example.sh start
# echo "result: $?"
# ps -ef |grep -i <서비스 명>
--> 실행중인 프로세스의 시작 시간 확인 필요 (스크립트 start시 재기동이 되었는지 확인 용도)
4. 중지 명령어가 정상적으로 수행되는지 확인
- 서비스가 정상적으로 종료되었는지?
- return 값이 0으로 출력되었는지?
# /etc/init.d/example.sh stop
# echo "result: $?"
5. 중지 상태 확인
- status 옵션이 수행이 정상적으로 되는지? (status 명령이 수행되지 않는다면 function 재확인 필요)
- return 값이 0이 아니거나 3으로 출력되었는지?
# /etc/init.d/example.sh status
# echo "result: $?"
6. 중지 명령 2번 이상 실행시 서비스가 계속 중지중인지 확인
- 서비스가 종료된 상태로 유지되고 있는지?
- return 값이 0으로 출력되었는지?
# /etc/init.d/example.sh stop
# echo "result: $?"
7. 서비스의 status 검증은 스크립트 status function을 참고하므로 스크립트의 status 검증은 필수적이며 가장 중요한 부분입니다.
LSB init Script 예시
start, stop, status function은 필수로 있어야 하며 op monitor(리소스 모니터링) action을 위해 monitor도 작성되어 있으면 좋습니다.
#!/bin/sh
start() {
}
stop() {
}
restart() {
}
status() {
}
monitor() {
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
monitor)
monitor
;;
*)
echo $"Usage: $0 {start|stop|restart|status|monitor}"
exit 1
esac
추가로 몇 개의 Practice들을 참고용으로 더 공유드립니다.
'Linux > Pacemaker' 카테고리의 다른 글
Pacemaker) 일반 사용자 pcs 명령 사용하는 방법 (0) | 2021.08.29 |
---|---|
Pacemaker) Pacemaker 이론 (1) | 2021.07.03 |
Pacemaker) Pacemaker 설치 (RHEL 8.X) (4) | 2021.06.27 |