RHCS - Requirements

김재현·2023년 8월 4일
0

Red Hat Cluster Suite

목록 보기
2/3
post-thumbnail

RHCS를 구축하기 위해선 다음과 같은 사항이 요구된다.

Network

  • 서비스 네트워크(Public) / 클러스터 노드 간 통신 네트워크(Private) 분리
  • VIP(Service IP) 필요
  • 각 노드당 호스트 Real IP (Public)
  • 각 노드당 Fencing Device 용 IP (RSA, iLO, IMM, iDRAC, IPMI 등등...)
  • 각 노드당 HeartBeat IP 필요(Private 망은 별도의 스위치로 구성을 권장)
    Fencing Device 와 HeartBeat 네트워크를 같은 대역대로 구성 권장
  • HeartBeat 망 구성 시 Bonding 구성 권장
    (Active-backup or RRP)

Shared Storage

  • 공유 스토리지 볼륨 필요
    LVM으로 구성해야 하며, Volume Name 확인 필요

Application

  • 어플리케이션 종류 및 해당 어플리케이션의 상태 체크가 가능하도록 LSB 호환 스크립트를 작성
    (어플리케이션 레벨에서 작성해야 한다.)
  • RHCS에 포함될 어플리케이션은 Custom Scripts 형태로 추가되며 스크립트는 각 상황에서 아래와 같은 결과값을 반환해야 한다.
# 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: 그 외 예약된 코드 범위

Fencing Device

Power Fencing 을 사용하기 위해 하드웨어 벤더사의 IPMI over LAN 기능을 활성화해야 한다.
하지만 하드웨어 테스트가 불가능한 환경일 경우 아래와 같이 하이퍼바이저에 vbmc 서버를 구축하면 vm에 power off signal 을 전송하여 물리적으로 종료되는 것처럼 구현이 가능하다.
아래 가이드는 하이퍼바이저 Host OS가 아닌 Guest OS에 vbmc를 구축하는 과정이다.

1. vbmc requirements

  • OS: RHEL 7.9 Minimal
  • CPU, Memory, Disk 용량은 상관없음.
  • Network: Fencing Device 용 IP 대역으로 설정

2. vbmc 패키지 다운로드 및 서버에 업로드

vbmc 패키지 다운로드(http://naver.me/Fu6Ua8M6)

3. vbmc 설치

# 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

4. ssh key 교환

Guest OS에 vbmc를 구축하였을 경우 노드를 등록할 때 하이퍼바이저의 root 비밀번호를 물어보는데,
이것을 방지하기 위해 ssh key 를 생성한 후 하이퍼바이저에 키를 전달한다.
# ssh-keygen
# ssh-copy-id root@<Hypervisor Fencing Device Network IP>

5. vbmc 에 노드 등록

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                |
+-----------------------+-------------------------------------+
profile
Linux/Cluster/Infra Engineer

0개의 댓글