SUSE Linux 15에서 고가용성 클러스터링(HAE)을 설정하는 방법

이 초보자용 안내서는 SUSE Linux Enterprise High Availability(SLE HA) 15를 사용하여 기본적인 2노드 액티브/패시브 클러스터를 구축하는 방법을 설명합니다. 지원되는 CRM Shell 부트스트랩 스크립트를 사용하여 첫 번째 노드를 초기화하고 crm cluster init, 두 번째 노드를 추가하고 crm cluster join, 멤버십을 확인하고, 관리 가상 IP의 계획된 페일오버를 테스트합니다. 이 예제는 2026년 9월 24일에 게시된 SUSE의 SLE HA 15 SP7 설명서를 따르며, 프롬프트는 서비스 팩, 하드웨어 및 플랫폼에 따라 다를 수 있습니다.

"HAE"는 고가용성 확장(High Availability Extension)을 비공식적으로 지칭하는 데 자주 사용됩니다. SUSE의 최신 제품 설명서에서는 이를 SUSE Linux Enterprise High Availability(SLE HA)라고 부릅니다. 이 절차는 클러스터 기반을 구축하고 Hawk2 관리 액세스를 제공합니다. 하지만 애플리케이션, 데이터베이스 또는 해당 데이터의 고가용성을 자동으로 보장하지는 않습니다. 이러한 요소들을 위해서는 별도의 Pacemaker 리소스, 스토리지 설계 및 워크로드별 테스트가 필요합니다.

아래의 터미널 및 Hawk2 화면 그림은 대표적인 인터페이스 화면을 보여주는 것으로, 실제 시스템의 화면을 캡처한 것은 아닙니다. 이름과 주소는 예시이며, 실제 네트워크 환경에 맞는 값으로 교체해야 합니다.

이 클러스터는 무엇을 할까요?

클러스터는 선택된 서비스를 지속적으로 실행하기 위해 서로 협력하는 노드 라고 불리는 서버 그룹입니다 . Corosync는 노드 멤버십 및 클러스터 메시징을 관리합니다. 클러스터 리소스 관리자인 Pacemaker는 관리되는 리소스가 실행될 위치를 결정하고 장애에 대응합니다. 리소스 는 Pacemaker가 시작, 중지, 모니터링 및 이동할 수 있는 서비스 또는 주소입니다.

이 가이드에서는 노드 alice와 노드를 bob사용하여 2노드 클러스터를 구성합니다. 플로팅 관리 IP는 관리자에게 SUSE의 웹 인터페이스인 Hawk2에 대한 안정적인 주소를 제공합니다. 한 노드가 대기 모드로 전환되면 Pacemaker는 해당 IP를 다른 노드로 이동할 수 있습니다. 프로덕션 환경의 2노드 클러스터에서는 쿼럼 결정을 위해 QDevice/QNetd를 추가하고 노드 펜싱을 설정하는 것이 좋습니다.

설치하기 전에 무엇을 준비해야 할까요?

  • 동일한 서비스 팩과 프로세서 아키텍처를 실행하는 두 대의 SUSE Linux Enterprise Server 15 시스템과 루트 또는 적절한 권한을 가진 sudo 계정이 필요합니다.
  • 모든 노드에 유효한 SUSE 등록 및 SLE HA 사용 권한이 있어야 합니다. 확장 및 패키지 패턴은 SLES 서비스 팩 및 아키텍처와 일치해야 합니다.
  • 고정 노드 주소, 정상적인 이름 확인, 동기화된 시계 및 안정적인 클러스터 네트워크 연결을 제공합니다. Corosync 인터페이스는 신중하게 선택해야 하며, 프로덕션 환경에서는 별도의 경로 또는 이중화된 경로를 사용하는 것이 유용합니다.
  • 펜싱 계획. 펜싱 (STONITH 용어로 "상대방 노드를 강제로 격리")은 상태가 불량할 수 있는 노드를 강제로 격리하거나 재부팅하여 네트워크 분할의 양쪽이 공유 데이터에 쓰기 작업을 수행하지 못하도록 합니다. 지원되는 클러스터는 펜싱이 활성화되어 있어야 합니다.
  • SBD(STONITH 블록 장치)를 사용하는 경우, 각 노드에 적절한 워치독을 설치하고 안정적인 장치 경로를 갖춘 공유 블록 스토리지를 제대로 설계해야 합니다. 프로덕션 환경에서는 하드웨어 워치독을 사용하는 것이 좋습니다. 물리적 전원 펜스를 사용하는 경우, 지원되는 STONITH 장치를 구성하고 테스트하십시오.
  • 두 개의 노드를 사용하는 경우, 부트스트랩 흐름을 통해 구성하려면 초기화 전에 QDevice/QNetd Witness를 계획해야 합니다. Witness는 연결이 끊어졌을 때 클러스터가 어느 쪽이 쿼럼을 확보했는지 결정하는 데 도움을 줍니다.

실험실 환경을 실제 운영 환경에 적합한 환경으로 간주하지 마십시오. SUSE의 SLE HA 15 SP7 시스템 요구 사항에는 펜싱(fencing)이 필요하며, 설치 개요 에서는 확장하기 전에 2~3개의 노드로 설정을 테스트할 것을 권장합니다.

1단계: SLE HA 확장 프로그램 및 패키지를 설치합니다.

SLES 설치 시 SLE HA를 선택하지 않은 경우 각 노드에서 확장 기능을 활성화하십시오. 등록된 x86_64 SLES 15 SP7 호스트의 경우, 문서화된 패턴은 다음과 같습니다.

SUSEConnect -p sle-ha/15.7/x86_64 -r ADDITIONAL_REGCODE
zypper install -t pattern ha_sles

ADDITIONAL_REGCODESLE HA 등록 코드로 교체하십시오 . 사용 중인 서비스 팩 및 아키텍처와 일치하는 활성화 제품 식별자를 사용하십시오. SP7 예제를 다른 SLES 15 서비스 팩에 복사하지 마십시오. 두 노드 모두에서 package-pattern 명령을 실행하십시오. SUSE는 ha_sles패턴을 클러스터를 구성하고 관리하는 데 사용되는 패키지 집합으로 정의합니다.

Linux 터미널 화면에 zypper가 ha_sles 고가용성 패턴을 설치하고 클러스터 패키지를 해결하는 모습이 표시됩니다.
첫 번째 노드에서 고가용성 패턴 설치 명령의 터미널 화면입니다.

2단계: 이름, 시간 및 네트워크 접근 권한을 준비합니다.

두 노드 모두에 안정적인 호스트 이름과 고정 기본 IP 주소를 할당하십시오. 각 노드가 짧은 이름과 정규화된 이름 모두를 사용하여 서로를 확인할 수 있는지 확인하십시오. SUSE의 설정 지침에서는 /etc/hosts이름 확인 실패로 인해 내부 통신이 중단될 수 있으므로 필요에 따라 클러스터 멤버 목록을 DNS에 등록할 것을 권장합니다. 예를 들어, 다음과 같은 항목을 DNS 및 주소 지정 계획에 맞게 수정하십시오.

10.20.0.11 alice.example.net alice
10.20.0.12 bob.example.net bob

클러스터 외부의 NTP 소스에 두 클럭을 동기화하고 시간대를 일관되게 유지하십시오. SLES 15에서는 Chrony가 기본 NTP 구현입니다. Corosync에 사용할 네트워크의 연결 상태를 확인하십시오. 부트스트랩 스크립트는 클러스터 통신에 필요한 방화벽 포트를 열 수 있지만, 호스트 및 네트워크 방화벽에서 선택한 토폴로지에 필요한 트래픽을 허용하는지 확인해야 합니다. 부트스트랩 흐름에서는 유니캐스트가 기본값이며, Corosync의 기본 포트는 5405입니다.

두 개의 리눅스 터미널에서 각 노드의 호스트 이름, NTP 동기화 상태 및 피어와의 핑 연결 상태를 확인합니다.
사전 점검을 통해 예제 노드 이름, 동기화된 시계 및 피어 연결 상태를 확인합니다.

3단계: 첫 번째 노드를 초기화합니다.

루트 권한 으로 alice부트스트랩 명령을 실행하세요.

crm cluster init --name demo-ha

프롬프트가 나타나면 수락하기 전에 내용을 검토하십시오. Corosync에 사용할 인터페이스와 네트워크 주소를 선택한 다음 포트를 확인하십시오. 스크립트는 시간 동기화 및 워치독 가용성을 확인하고 SSH 키와 관련 클러스터 구성을 준비할 수 있습니다. SBD, Hawk2 관리 가상 IP, QDevice/QNetd를 구성할지 여부를 묻습니다. SBD를 구성하려면 워치독과 공유 장치가 이미 준비되어 있어야 합니다. 이 부트스트랩 단계에서 QDevice를 구성하는 경우 먼저 QNetd 서버를 준비하십시오. 스크립트는 실행 중인 단일 노드 클러스터를 생성하며, bob이 단계에서는 노드를 추가하지 않습니다.

SBD에 임의의 공유 디스크 또는 장치 경로를 선택하지 마십시오. 경로는 모든 노드에서 동일하고 적절한 스토리지를 식별해야 하며, 장애 동작 및 시간 초과는 스토리지 설계와 일치해야 합니다. SUSE는 softdog모든 CPU가 멈춘 경우 시스템을 재부팅할 수 없으므로 가능한 경우 프로덕션 환경에 적합한 하드웨어 워치독을 사용하라고 안내합니다.

crm 클러스터 초기화 중 Linux 터미널 화면에 첫 번째 노드에 대한 Corosync 인터페이스 선택 및 포트 프롬프트가 표시됩니다.
첫 번째 노드 부트스트랩 시 클러스터 통신 네트워크와 Corosync 포트를 입력하라는 메시지가 표시됩니다.

4단계: 두 번째 노드에 참여합니다.

첫 번째 노드가 초기화되면 로그인하여 bob다음 명령을 실행하십시오.

crm cluster join

안내에 따라 기존 클러스터 노드를 식별하십시오 alice. 첫 번째 노드에 root 계정 대신 sudo 계정을 사용한 경우, SUSE 문서에는 -c다음과 같이 해당 계정을 지정하는 방법이 나와 있습니다.

sudo crm cluster join -c USER@alice

참여 스크립트는 Corosync 구성을 복사하고, SSH 및 Csync2를 구성하고, 현재 머신을 클러스터 노드로 온라인 상태로 만들고, Hawk2에 필요한 서비스를 시작합니다. 두 머신을 독립적으로 초기화하지 마십시오. 두 번째 노드는 첫 번째 노드가 생성한 클러스터에 참여해야 합니다.

노드2의 Linux 터미널에서 crm 클러스터 조인을 실행하고 노드1을 기존 클러스터 노드로 입력합니다.
두 번째 노드에서 조인 워크플로를 실행하고 초기화된 첫 번째 노드를 가리키도록 설정합니다.

5단계: 두 노드 모두 온라인 상태인지 확인합니다.

어느 노드에서든 클러스터 요약을 확인하세요.

crm status

노드 이름 Online과 쿼럼이 확보된 클러스터 파티션을 모두 확인하십시오. 진행하기 전에 실패한 작업이나 오프라인 상태인 노드가 있는지 확인하십시오. 초기화 시 선택한 관리 VIP를 사용하여 Hawk2에 로그인할 수도 있습니다(일반적으로 ) https://ADMIN-VIP:7630/. 자체 서명된 인증서를 사용하는 경우 첫 방문 시 인증서 경고가 발생할 수 있습니다. 프로덕션 환경에서는 알 수 없는 인증서를 무시하지 말고 클러스터 관리자에게 인증서 세부 정보를 확인하십시오.

crm status 명령어의 터미널 출력 결과는 alice와 bob이 온라인 상태이고 리소스가 구성되지 않은 2노드 Corosync 클러스터를 보여줍니다.
장애 조치를 테스트하기 전에 클러스터 상태 확인에서 두 노드 모두 온라인 상태인지 확인해야 합니다.
Hawk2 스타일의 브라우저 상태 보기에서 alice와 bob이 온라인 클러스터 노드로 표시됩니다.
노드 목록은 클러스터 멤버십을 확인하는 두 번째 방법을 제공합니다.

6단계: 관리 계정을 확보합니다.

부트스트랩 절차는 haclusterHawk2용 계정을 생성합니다. SUSE의 설치 가이드에는 기본 설정 중에 기본 암호가 명시되어 있으므로 시스템에 접근하기 전에 즉시 암호를 변경하십시오.

passwd hacluster

고유하고 강력한 암호를 사용하고 조직의 자격 증명 정책을 준수하십시오. Hawk2 관리 네트워크에 대한 액세스를 제한하고, 필요에 따라 신뢰할 수 있는 인증서를 설치하고, 관리 인터페이스를 공용 인터넷에 직접 노출하지 마십시오.

7단계: 계획된 장애 조치를 안전하게 테스트합니다.

계획된 대기 테스트는 리소스 배치에서 노드 하나를 의도적으로 제거했을 때 관리 가상 IP가 이동할 수 있는지 확인합니다. 테스트 전에 두 노드가 모두 정상인지, 클러스터에 쿼럼이 있는지, 그리고 예상치 못한 동작이 발생할 경우를 대비하여 콘솔 또는 대역 외 액세스가 가능한지 확인하십시오. 동일 네트워크에 있는 클라이언트에서 관리 VIP로 지속적으로 ping을 시도하십시오. 예를 들면 다음과 같습니다.

ping 10.20.0.20

Hawk2에서 현재 관리 IP를 호스팅하는 노드를 열고 '대기'를 선택합니다 . 그런 다음 '상태 > 리소스'를 확인합니다. SUSE의 빠른 시작 가이드에 따르면 플로팅 리소스는 ping이 계속되는 동안 다른 노드로 이동합니다. 테스트가 완료되면 Hawk2의 해당 작업을 사용하여 노드를 서비스 상태로 되돌리고 두 노드가 모두 온라인 상태인지 확인한 다음 리소스가 예상 위치에 있는지 확인합니다.

계획된 페일오버 테스트를 위해 대기(Standby) 상태가 표시되는 alice의 Hawk2 스타일 노드 상세 페이지입니다.
활성 노드에서 계획된 대기 작업을 사용하여 충돌을 시뮬레이션하지 않고 리소스 이동을 테스트합니다.
Hawk2 스타일의 리소스 보기에서 Alice가 대기 모드로 전환된 후 Bob에서 admin-ip 리소스가 시작된 것을 보여줍니다.
대기 모드 해제 후, 다른 노드에서 관리 IP가 실행 중인지 확인하십시오.

이 실험은 무엇을 증명하고, 무엇을 증명하지 못하는가?

두 노드 모두 가시성을 유지하고 관리 IP가 피어 노드로 이동하면, 계획된 시나리오에서 기본 클러스터 멤버십과 플로팅 IP 리소스가 제대로 작동한다는 증거가 됩니다. 하지만 핑 테스트만으로는 애플리케이션 사용 가능 여부, 클라이언트 세션 유지, 공유 데이터 보호 또는 클러스터가 모든 네트워크, 스토리지, 전원 또는 소프트웨어 오류로부터 복구될 수 있다는 것을 입증할 수 없습니다.

애플리케이션의 경우, 올바른 리소스 에이전트를 추가하고 애플리케이션 설계에 따라 순서 지정, 공동 배치, 모니터링, 스토리지 액세스 및 펜싱을 구성하십시오. 두 노드가 일반 공유 스토리지에 동시에 쓰기 작업을 수행하지 않도록 하십시오. 프로덕션 환경에 배포하기 전에 실제 노드 및 네트워크 장애를 포함한 스테이징 환경에서 워크로드 복구 및 데이터 무결성을 테스트하십시오.

흔히 저지르는 실수들을 피하는 방법

  • 펜싱 건너뛰기: STONITH가 제대로 작동하지 않는 클러스터는 스플릿 브레인을 안전하게 해결할 수 없으며 SUSE의 지원 요구 사항을 충족하지 못합니다.
  • 두 노드가 독립적으로 결정할 수 있다고 가정할 때, 특히 2노드 클러스터와 같이 짝수 개의 노드로 구성된 클러스터에 QDevice/QNetd를 계획하십시오.
  • 불안정하거나 일치하지 않는 노드 ID를 사용하는 경우: 고정 주소, 일관된 호스트 이름, 정상적인 정방향 및 역방향 이름 확인, 그리고 동기화된 시간을 사용하십시오.
  • 잘못된 네트워크를 재사용하는 경우: 의도한 Corosync 인터페이스를 선택하고 모든 네트워크 경로에서 방화벽 정책을 확인하십시오.
  • 클러스터가 앱을 자동으로 보호한다고 가정할 때, 클러스터는 구성 및 테스트를 거친 리소스만 관리할 수 있습니다.
  • 초기 부트스트랩을 "프로덕션 준비 완료"라고 부르는 이유는 빠른 시작이 기본적인 설정에 불과하기 때문입니다. 진정한 프로덕션 준비를 위해서는 워크로드별 복구 테스트, 펜싱 유효성 검사, 모니터링, 백업 및 복원 절차, 그리고 문서화된 운영 절차가 필요합니다.

SUSE 공식 참조 자료

댓글 남기기

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

TestDisk와 PhotoRec을 사용하여 손실된 파티션과 파일을 복구하는 방법을 알아보세요. 원본 드라이브를 보호하고 안전하게 스캔한 다음 복구된 데이터를 다른 디스크에 저장하세요.

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

웹캠이나 이미지 파일을 사용하여 CoBang으로 Linux에서 QR 코드를 스캔하세요. Flatpak 카메라 접근 관련 설치 옵션, 설정 단계 및 문제 해결 방법을 참조하세요.

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하세요. 노출, 색상, 깜빡임 감소 및 기타 지원되는 제어 기능을 조정하고 호환되는 비디오 모드를 확인하세요.

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하려면 JetBrains Toolbox 또는 독립 실행형 tar.gz 아카이브를 사용하세요. Snap 및 Arch AUR 옵션도 제공됩니다. Java는 이미 포함되어 있습니다.

리눅스에 Cisco Packet Tracer를 설치하는 방법

리눅스에 Cisco Packet Tracer를 설치하는 방법

Cisco Packet Tracer 9.0.1 for Ubuntu 64비트 버전을 다운로드하고, APT를 사용하여 DEB 패키지를 설치한 다음, 터미널에서 라이선스에 동의하고 로그인하여 실습을 시작하십시오.

XFCE 4에서 듀얼 패널을 설정하는 방법

XFCE 4에서 듀얼 패널을 설정하는 방법

각 디스플레이마다 별도의 XFCE 4 패널을 생성하고, 두 번째 패널을 올바른 출력에 할당하고, 위치와 크기를 조정한 다음, 필요한 실행기와 상태 항목을 추가합니다.

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

GNOME Disks 또는 dd 명령어를 사용하여 Linux에서 CD-ROM ISO 파일을 생성합니다. 광학 드라이브를 식별하고, 복사 과정을 모니터링하고, 이미지 유효성을 검사하고, 손상된 디스크나 오디오 디스크에 다른 도구가 필요한 경우를 알 수 있습니다.

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

GIMP를 사용하여 Linux에서 사진 배경 제거하기: 피사체를 따라 그리고, 선택한 배경을 삭제하고, 투명도를 유지한 다음, 재사용 가능한 PNG 파일로 내보낼 수 있습니다.

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear를 공식 사이트에서 무료로 다운로드하세요. Windows, macOS, Linux 패키지를 비교하고, 데이터 파일을 설치한 후 첫 비행을 시작하세요.

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

브라우저에서 Google Tasks를 열거나, Chrome 바로가기 또는 앱 스타일 실행을 추가하고, 캘린더 및 Gmail을 통해 날짜별 할 일을 관리하세요.