SafeKit을 사용한 Linux 고가용성: 장애 조치를 위한 mirror.safe 모듈 설치
Linux 고가용성 빠른 설치 가이드
이 가이드는 SafeKit을 사용하여 Linux용 mirror 클러스터를 설정하는 방법을 설명하며, 공유 스토리지가 필요 없이 자동 장애 조치 및 동기식 복제를 보장합니다.
도움이 필요하시면 SafeKit AI 🤖를 이용해 보세요.
1. 개요
- 아키텍처 : 2노드 시스템(기본/보조)을 사용합니다.
- 데이터 보호: 데이터 손실 제로 (RPO = 0)를 위한 실시간 동기 복제를 구현합니다.
2. 설치
- 소프트웨어: 두 서버 모두에 SafeKit 엔진을 설치합니다.
- 모듈: 사전 구성된
mirror.safe애플리케이션 모듈을 다운로드합니다.
3. 구성
- 웹 콘솔: Linux 파일이 포함된 특정 폴더를 구성합니다.
- 모니터링: Linux 애플리케이션 모니터링 및 보호를 시작합니다.
SafeKit 고가용성 제한 사항
| 제한/요구사항 | 이유 및 영향 | 권장 대체안 |
|---|---|---|
| 복제 크기: 수 TB | 장애 후 재동기화 시간(3단계): • 1Gb/s 네트워크 ≈ 3시간/TB • 10Gb/s 네트워크 ≈ 1시간/TB(디스크 쓰기 성능에 따라 다름) | • 외부 공유 스토리지 사용(비용이 더 많이 들고 더 복잡함). |
| 파일 수: 1,000,000개 미만 | • 장애 발생 후 재동기화 시간 성능(3단계). • 두 노드 간에 각 파일을 비교하는 데 필요한 시간입니다. | • 복제할 여러 파일을 가상 하드 디스크/가상 머신에 넣습니다. • 이 경우 가상 하드 디스크/가상 머신을 나타내는 파일만 복제되고 재동기화됩니다. |
| 장애 조치 용량: ≤ 32개 VM | • 각 VM은 독립적인 mirror 모듈에서 실행됩니다. • 동일한 클러스터에서 최대 32개의 mirror 모듈을 실행할 수 있습니다. | • 외부 공유 스토리지 및 다른 VM 클러스터링 솔루션 사용(비용이 더 많이 들고 더 복잡함). |
| 네트워크 아키텍처: 원격 사이트 간 LAN/VLAN 네트워크 | • 동일한 서브넷에 있는 2개의 노드에서 가상 IP 주소의 자동 장애 조치. • 재동기화를 위한 충분한 대역폭(3단계). • 동기 복제를 위한 낮은 지연 시간: 일반적으로 RTT가 5ms 미만입니다. 더 높은 값은 애플리케이션의 쓰기 속도에 대해 검증해야 합니다. | • 두 노드가 서로 다른 서브넷에 있는 경우(클라우드에서 일반적), 로드 밸런서, 클라우드 공급자 CLI, BGP 또는 DNS 리디렉션과 같은 다른 라우팅 옵션을 사용합니다. • 지연 시간이 긴 네트워크의 경우 비동기 복제 기능이 있는 백업 솔루션을 사용하세요. |
SafeKit/Linux 솔루션 개요
솔루션은 다음에서 설명합니다. **💡 가장 간단한 Linux 고가용성: 2노드 동기 복제 및 장애 조치.
**
SafeKit/Linux 솔루션 설치 (mirror.safe)
사전 요구 사항
- SafeKit에서 다시 시작하려는 애플리케이션을 2개의 노드(가상 머신 또는 물리적 서버)에 설치해야 합니다.
Linux에서 패키지 설치
- SafeKit 무료 버전을 2개의 Linux 노드에 설치하세요. 참고: 무료 평가판에는 모든 SafeKit 기능이 포함되어 있습니다. 평가 기간이 끝나면 패키지를 제거하지 않고 영구 라이선스 키를 활성화할 수 있습니다.
- safekit_xx.bin 패키지를 다운로드한 후 실행하여 rpm과 safekitinstall 스크립트를 추출하고 safekitinstall 스크립트를 실행합니다
- 방화벽 자동 구성을 예로 설정합니다
- 웹 콘솔과 기본 사용자 admin의 암호를 설정합니다. 모든 노드에 동일한 암호를 설정합니다.
참고: 구성할 일반 mirror.safe 모듈은 패키지 내에 포함되어 있습니다.
SafeKit/Linux 솔루션 단계별 구성
사전 요구 사항
- Linux이 2개의 노드에 설치되었습니다.
- 복제된 총 데이터는 몇 테라바이트로 제한됩니다. 이보다 많아지면 재동기화 시간이 상당히 길어집니다.
- 노드 간 최소 1Gb/s의 상호 연결(더 빠른 재동기화를 위해 10Gb/s 권장).
- IP 장애 조치에는 동일한 LAN 또는 확장 LAN (L2)의 두 노드가 모두 필요합니다. 라우팅된 L3 네트워크는 지원되지 않습니다(🛠️ 클라우드 로드 밸런서 제외).
1. SafeKit 콘솔을 시작합니다
http://localhost:9010에 연결하여 클러스터 노드 중 하나에서 브라우저로 웹 콘솔을 실행합니다.- 사용자 이름에
admin입력하고 설치 시 정의한 암호를 입력합니다.
클러스터 외부의 워크스테이션에 있는 브라우저에서 콘솔을 실행할 수도 있습니다.
⚠️ SafeKit 구성은 단일 브라우저에서 두 노드 모두에 대해 수행됩니다.
ℹ️ 웹 콘솔을 보호하려면 사용 설명서의 🛠️ 11. SafeKit 웹 서비스 보안을 참조하십시오.

2. 노드 주소 구성
- 노드 IP 주소를 입력하고
Tab key눌러 연결을 확인한 후 노드 이름을 입력합니다. node1 또는 node2 빨간색으로 표시되면 브라우저와 두 노드 간의 연결을 확인하고 두 노드의 방화벽에서 🛠️ 문제 해결을 확인하십시오. - 그런 다음, 구성을 저장하려면
Save and apply을 클릭합니다. - 두 노드 모두에서
Success✅ 메시지를 확인하세요. - 한 노드에서 구성
Failure❌ 가 발생하면 해당 노드의 ▼ 아코디언을 열고 메시지를 검토하십시오. SafeKit AI 🤖 를 사용하여 도움을 받을 수 있습니다.
ℹ️ 원하는 경우 새 LAN and nodes (첫 번째 ➕)를 추가하여 두 번째 하트비트와 전용 복제 네트워크를 만들 수 있습니다.
ℹ️ Advanced configuration 클릭하면 cluster.xml 파일이 표시됩니다. 이 파일은 콘솔에서 자동으로 채워지고 노드에 배포됩니다.

3. 모듈 선택
New module에서mirror.safe모듈을 클릭합니다.
ℹ️ 상단의 파란색 배너에서 🛜 node1 콘솔 연결 노드를 나타냅니다. 이 노드는 필요할 때 요청을 node2로 전달합니다.
ℹ️ 설치 중에 모듈을 해당 디렉터리에 배치한 경우 콘솔은 연결 노드(node1)의 Application_Modules/generic/ 디렉터리에서 xxx.safe를 검색합니다.

4. 모듈 구성
Module startup at boot에서 지연 없이 부팅 시 모듈을 자동으로 시작하도록 선택합니다.Macros/SERVICES에 애플리케이션의 서비스 이름을 시작 순서대로 쉼표로 구분하여 입력합니다. Milestone XProtect 서비스의 시각적 예시는 이 스크린샷을 참조하십시오 🖼️.Heartbeat networks에서는 복제가 이루어지는 단일 하트비트 네트워크가 있어야 합니다. 2단계에서 개인 LAN을 추가한 경우 개인 LAN에서 복제 흐름으로 두 개의 하트비트를 구성할 수 있습니다.Virtual IP addresses에 가상 IP 주소를 입력합니다. 가상 IP 주소는 두 노드의 IP 주소와 동일한 IP 네트워크(동일한 서브넷)의 표준 IP 주소입니다.
애플리케이션 클라이언트는 가상 IP 주소(또는 가상 IP 주소와 연결된 DNS 이름)로 구성해야 합니다.
가상 IP 주소는 장애 발생 시 자동으로 전환됩니다.Replicated directories에서 복제할 디렉터리의 경로를 설정합니다. 두 노드 모두에 존재하고 애플리케이션 데이터가 포함되어 있는지 확인합니다.
데이터 및 로그 복제는 데이터베이스에 필수적입니다.
필요에 따라 복제된 디렉터리를 추가로 생성할 수 있습니다.
Milestone XProtect SQL 복제의 시각적 예시는 이 스크린샷을 참조하세요 🖼️.Checkers에서 필요한 경우 프로세스 모니터링, 사용자 지정 체커, TCP, ping 또는 분할 브레인 체커와 같은 체커를 구성할 수 있습니다.
예를 들어, 프로세스 이름이Monitored processes/services에 표시되면 실패 시 재시작 작업으로 모니터링됩니다. 잘못된 프로세스 이름을 구성하면 모듈이 시작 직후 중지됩니다.
ℹ️ Advanced configuration 클릭하면 userconfig.xml 파일이 표시됩니다. 이 파일은 콘솔에서 자동으로 채워지며 재시작 스크립트와 함께 노드에 배포됩니다.
ℹ️ 클라우드 배포에서는 SafeKit에서 가상 IP 주소를 구성할 필요가 없습니다. 가상 IP는 🛠️ 클라우드 로드 밸런서 수준에서 관리됩니다.
ℹ️ SafeKit 구성을 적용하면 Windows 서비스에서 서비스의 startup type 자동으로 Manual으로 설정됩니다. 이렇게 하면 시스템 부팅 시 서비스가 자동으로 시작되지 않고 모듈 자체가 시작될 때만 시작됩니다(Linux 에서도 동일하게 적용됩니다).

5. 스크립트 편집(선택 사항)
- 이 단계는 선택 사항이며 대부분의 경우 건너뛸 수 있습니다. 재시작 스크립트는 이전 단계에서 정의된 서비스를 재시작하도록 이미 사전 구성되어 있기 때문입니다.
- 그러면
Next step를 직접 클릭하세요. start_prim.ps1SERVICES목록에 지정된 순서대로 모든 서비스를 시작하고,stop_prim.ps1역순으로 모든 서비스를 중지합니다.- 또한
start_prim.ps1각 서비스의 시작을 확인하고 서비스 중 하나라도 제대로 시작되지 않으면 모듈을 중지합니다.

6. 통신 암호화(선택 사항)
- 노드 간 통신 암호화를 유지하세요.

7. 저장 및 적용
- 두 노드 모두에서 구성을
Save and apply.

8. 구성 성공 여부 확인
- 두 노드 모두에서
Success✅ 메시지를 확인하고Monitor modules클릭하세요. - 한 노드에서 구성
Failure❌ 가 발생하면 해당 노드의 ▼ 아코디언을 열고 메시지를 검토하십시오. SafeKit AI 🤖 를 사용하여 도움을 받을 수 있습니다.
⚠️ Linux에서 복제된 디렉터리가 마운트 지점인 경우 이 단계에서 오류가 발생할 수 있습니다. 🛠️ 문제를 해결하려면 SK-0030을 참조하십시오.

9. 최신 데이터로 노드를 시작합니다
- 노드 1에 최신 복제 디렉터리가 있는 경우 해당 노드를 선택하고 ⋯
Force start▶As primary시작을 선택합니다.
노드 2가 시작되면 모든 데이터가 노드 1에서 노드 2로 복사됩니다.
⚠️ 잘못된 선택을 하면 두 노드 모두에서 오래된 데이터를 동기화할 위험이 있습니다.
⚠️ 또한 SafeKit은 복제 메커니즘을 설치한 다음 start_prim 스크립트에서 애플리케이션을 시작할 수 있도록 노드 1에서 Linux 애플리케이션이 중지되었다고 가정합니다.
⚠️ 후속 시작 시에는 Start 사용하십시오. SafeKit은 최신 서버를 유지합니다. As primary 시작하는 것은 처음이거나 예외적인 작업 중에 특별히 시작하는 것입니다.

10. ALONE (녹색)로 전환될 때까지 기다리세요
- 노드 1은 ALONE (녹색) 상태에 도달해야 합니다. 이는 가상 IP가 설정되었고 노드 1에서
start_prim스크립트가 실행되었음을 의미합니다.
⚠️ ALONE (녹색)에 도달하지 못했거나 애플리케이션이 시작되지 않은 경우 노드 1의 모듈 로그 🖼️ 를 통해 원인을 분석하십시오.
node1의 🔍 로그 아이콘을 클릭하여 모듈 로그를 열고, 검사기가 오류를 감지하여 모듈을 중지시키는 등의 오류 메시지를 찾습니다.- 로그에서
start_prim클릭하면 스크립트의 출력 메시지가 오른쪽에 표시되며 서비스가 잘못 시작되는 등의 오류를 감지할 수 있습니다. - 로그 메시지 관련 지원은 SafeKit AI 🤖 이용하세요.
⚠️ 클러스터가 WAIT (red) not uptodate, STOP (red) not uptodate 상태인 경우 WAIT 노드를 중지하고 주 노드로 강제 시작합니다 🖼️.

11. 노드 2 시작
- ⋯ 컨텍스트 메뉴가 있는
Start노드 2를 선택합니다. - SECOND (녹색) 상태가 될 때까지 기다리세요.
ℹ️ 노드 2는 복제된 디렉터리를 재동기화하는 동안(노드 1에서 노드 2로 복사) SECOND (주황색) 상태를 유지합니다.
- 복제된 디렉터리에서 다시 동기화할 파일의 크기와 네트워크 대역폭에 따라 시간이 다소 걸릴 수 있습니다.
- 복사 진행 상황을 확인하려면 노드 2의 모듈 로그 🖼️ 및 복제 리소스 🖼️ 를 참조하십시오. 로그 메시지 지원이 필요한 경우 SafeKit AI 🤖 사용하십시오.

12. 클러스터가 작동 중인지 확인합니다
- 클러스터가 녹색/녹색이고 PRIM 노드에서 Linux 서비스가 실행 중이며 SECOND 노드에서는 실행 중이 아닌지 확인합니다.
이 상태에서는 파일 내부의 변경 사항만 실시간으로 복제됩니다.
⚠️ Linux 서비스의 클라이언트인 구성 요소는 가상 IP 주소로 구성해야 합니다. 구성은 DNS 이름으로 수행할 수 있습니다(DNS 이름이 생성되어 가상 IP 주소와 연결된 경우).

13. 테스트
- PRIM 노드의 상황별 메뉴를 아래로 스크롤하여
Stop클릭하여 노드를 중지합니다. - SECOND 노드에 장애 조치가 발생하여 ALONE 작동하는지(녹색) 확인합니다.
- Windows의 Microsoft Management Console(MMC) 또는 Linux의 명령줄을 사용하여 Linux 서비스의 장애 조치(failover)를 확인합니다(
stop_prim스크립트에서 노드 1에서 중지되고start_prim스크립트에서 노드 2에서 시작됨).
⚠️ node2에서 ALONE (녹색)에 도달하지 못했거나 애플리케이션이 시작되지 않은 경우 노드 2의 모듈 로그 🖼️ 를 통해 원인을 분석하십시오.
node2의 🔍 로그 아이콘을 클릭하여 모듈 로그를 열고, 검사기가 오류를 감지하여 모듈을 중지시키는 등의 오류 메시지를 찾으십시오.- 로그에서
start_prim클릭하면 스크립트의 출력 메시지가 오른쪽에 표시되며 서비스가 잘못 시작되는 등의 오류를 감지할 수 있습니다. - 로그 메시지 관련 지원은 SafeKit AI 🤖 이용하세요.
⚠️
- 모든 것이 정상이라면 node1에서 시작을 실행하여 node2에서 복제된 디렉터리를 다시 동기화합니다.
- 문제가 발생하면 node2를 중지하고 node1이 기본 노드로 시작되도록 강제하면 🖼️ 중지 시점에 로컬에서 정상적인 데이터로 다시 시작됩니다.
ℹ️ 자세한 내용과 동영상은 SafeKit 온라인 교육에서 확인하세요.

14. 지원
- 지원을 받으려면 각 노드에 대해 SafeKit
Snapshots2개(.zip 파일 2개)를 찍으십시오.

SafeKit mirror 솔루션 시연
SafeKit 동영상: 애플리케이션 수준 클러스터링 (8:47)
이 비디오에서는 SAN의 복잡성 없이 SafeKit mirror HA 클러스터를 구현하는 방법을 알아보세요. 이 데모에서는 Microsoft SQL Server 사용하지만, 이 솔루션은 다른 데이터베이스 및 애플리케이션에서도 동일하게 작동합니다.
챕터
- 🎬 SQL Server가 있는 2개의 노드 (0:32)
- 🎬 클러스터 및 mirror.safe 모듈 구성 (3:58)
- 🎬 SQL 복제, 마이그레이션, 충돌 시 장애 조치 시작 및 테스트 (4:17)
단계별 구현
🔍 SafeKit 살펴보기
SafeKit의 기능, 아키텍처, 동영상, 설명서 및 무료 평가판에 대한 정보를 찾아보세요.
| 자원 | 설명 | 링크 |
|---|---|---|
| 주요 기능 | SafeKit가 간단하고 비용 효율적인 고가용성 솔루션인 이유를 알아보세요. | 주요 기능 살펴보기 |
| 사용 사례 | SafeKit이 중요 애플리케이션과 인프라의 가용성을 유지하는 방법을 알아보세요. | 사용 사례 살펴보기 |
| 배포 모델 | SafeKit는 SAN이나 공유 스토리지 없이도 고가용성을 제공합니다. | 배포 모델 살펴보기 |
| 고가용성 전략 | 가상 머신과 애플리케이션의 고가용성을 비교합니다. | 두 가지 전략을 비교해 보세요 |
| 기술 사양 | SafeKit 클러스터의 기술 요구 사항 및 제한 사항을 확인하십시오. | 기술 사양을 읽어보세요 |
| 동영상 | SafeKit 구성 및 자동 장애 조치 시연을 시청하세요. | 기술 동영상 시청하기 |
| 아키텍처 | SafeKit mirror 클러스터 실시간으로 파일을 복제하고 장애 조치를 처리하는 방법을 알아보세요. | Mirror 아키텍처 살펴보기 |
| 아키텍처 | SafeKit farm 클러스터 네트워크 트래픽의 균형을 맞추고 장애 조치를 처리하는 방법을 알아보세요. | Farm 아키텍처 둘러보기 |
| 제품 비교 | SafeKit와 기존의 고가용성 클러스터 비교해 보세요. | 솔루션 비교 |
| 기술 자료 | 기술 설명서를 찾아보고, SafeKit을 다운로드하고, 무료 평가판을 이용해 보세요. | 설명서 및 무료 평가판에 액세스하세요 |
| 애플리케이션 모듈 | 사전 구성된 SafeKit 모듈을 사용하여 애플리케이션의 고가용성을 설정하세요. | 애플리케이션 모듈 살펴보기 |