---
title: "SafeKit을 사용한 Milestone XProtect 고가용성: 장애 조치용 milestone.safe 모듈 설치"
canonical: "https://safekit.eviden.com/ko/quick-install/safekit-quick-installation-guide-with-milestone-xprotect-management-server/"
description: "SafeKit용 milestone.safe 모듈을 배포하여 Windows에서 Milestone XProtect의 동기식 실시간 복제 및 자동 장애 조치를 활성화하십시오. 이 가이드는 공유 스토리지 없이 중요한 애플리케이션을 위한 2노드 SANless 클러스터를 설정하는 과정을 안내합니다."
category: "quick-install"
lang: "ko"
topics: "Milestone XProtect 고가용성 빠른 설치 가이드, SafeKit 고가용성 제한 사항, SafeKit/Milestone XProtect 솔루션 개요, Windows에 SafeKit/Milestone XProtect 솔루션 설치 (milestone.safe), SafeKit/Milestone XProtect 솔루션의 단계별 구성, SafeKit mirror 솔루션 시연"
translation: "translate_md 2026-11-08.15 | glossaire 2026-11-09.11 | Translation LLM | 43 expressions"
---

# SafeKit을 사용한 Milestone XProtect 고가용성: 장애 조치용 milestone.safe 모듈 설치 {#milestone-xprotect-high-availability-with-safekit-install-the-milestonesafe-module-for-failover}

## Milestone XProtect 고가용성 빠른 설치 가이드 {#quick-guide}

이 가이드는 SafeKit을 사용하여 Milestone XProtect용 **mirror 클러스터**를 설정하는 방법을 설명하며, 공유 스토리지가 필요 없이 자동 장애 조치 및 동기식 복제를 보장합니다. 

도움이 필요하시면 [SafeKit AI 🤖](https://safekit.eviden.com/ko/resources/safekit-support/)를 이용해 보세요.

### 1. 개요 {#1-overview}

  * **아키텍처 :** 2노드 시스템(기본/보조)을 사용합니다.
  * **데이터 보호:** **데이터 손실 제로** (RPO = 0)를 위한 실시간 동기 복제를 구현합니다.

### 2. 설치 {#2-installation}

  * **소프트웨어:** 두 서버 모두에 SafeKit 엔진을 설치합니다.
  * **모듈:** 사전 구성된 `milestone.safe` 애플리케이션 모듈을 다운로드합니다.

### 3. 구성 {#3-configuration}

  * **웹 콘솔:** Milestone XProtect 파일이 포함된 특정 폴더를 구성합니다.
  * **모니터링:** Milestone XProtect 애플리케이션 모니터링 및 보호를 시작합니다.

## SafeKit 고가용성 제한 사항 {#safekit-ha-limitations}

제한/요구사항 | 이유 및 영향 | 권장 대체안  
---|---|---  
복제 크기: 수 TB |  장애 후 재동기화 시간([3단계](https://safekit.eviden.com/ko/architectures/file-replication-byte-level-with-failover-mirror-cluster/#safekit-mirror-cluster)): <br> • 1Gb/s 네트워크 ≈ 3시간/TB <br> • 10Gb/s 네트워크 ≈ 1시간/TB(디스크 쓰기 성능에 따라 다름)  |  • [외부 공유 스토리지](https://safekit.eviden.com/ko/best-practises/san-vs-nas-shared-storage-for-a-failover-cluster/) 사용(비용이 더 많이 들고 더 복잡함).   
파일 수: 1,000,000개 미만 |  • 장애 발생 후 재동기화 시간 성능([3단계](https://safekit.eviden.com/ko/architectures/file-replication-byte-level-with-failover-mirror-cluster/#safekit-mirror-cluster)). <br> • 두 노드 간에 각 파일을 비교하는 데 필요한 시간입니다.  |  • 복제할 여러 파일을 가상 하드 디스크/가상 머신에 넣습니다. <br> • 이 경우 가상 하드 디스크/가상 머신을 나타내는 파일만 복제되고 재동기화됩니다.   
장애 조치 용량: ≤ 32개 VM |  • 각 VM은 독립적인 mirror 모듈에서 실행됩니다. <br> • 동일한 클러스터에서 최대 32개의 mirror 모듈을 실행할 수 있습니다.  |  • 외부 공유 스토리지 및 다른 VM 클러스터링 솔루션 사용(비용이 더 많이 들고 더 복잡함).   
네트워크 아키텍처: 원격 사이트 간 LAN/VLAN 네트워크 |  • 동일한 서브넷에 있는 2개의 노드에서 [가상 IP 주소](https://safekit.eviden.com/ko/best-practises/how-a-virtual-ip-address-works/)의 자동 장애 조치. <br> • 재동기화를 위한 충분한 대역폭([3단계](https://safekit.eviden.com/ko/architectures/file-replication-byte-level-with-failover-mirror-cluster/#safekit-mirror-cluster)). <br> • [동기 복제](https://safekit.eviden.com/ko/best-practises/synchronous-replication-vs-asynchronous-replication/)를 위한 낮은 지연 시간: 일반적으로 RTT가 5ms 미만입니다. 더 높은 값은 애플리케이션의 쓰기 속도에 대해 검증해야 합니다.  |  • 두 노드가 서로 다른 서브넷에 있는 경우(클라우드에서 일반적), 로드 밸런서, 클라우드 공급자 CLI, BGP 또는 DNS 리디렉션과 같은 [다른 라우팅 옵션](https://safekit.eviden.com/ko/best-practises/how-a-virtual-ip-address-works/#safekit-virtual-ip-implementation)을 사용합니다. <br> • 지연 시간이 긴 네트워크의 경우 비동기 복제 기능이 있는 백업 솔루션을 사용하세요.   

 

## SafeKit/Milestone XProtect 솔루션 개요 {#overview-of-the-safekit--milestone-xprotect-solution}

솔루션은 여기에서 설명합니다: **💡 [가장 간단한 Milestone XProtect 고가용성: 2노드 동기 복제 및 장애 조치](<https://safekit.eviden.com/ko/solutions/milestone-xprotect-corporate-high-availability-synchronous-replication-failover/>)**.

## Windows에 SafeKit/Milestone XProtect 솔루션 설치 (milestone.safe) {#installation-of-the-safekit--milestone-xprotect-solution-on-windows-milestonesafe}

### 사전 요구 사항 {#prerequisites}

  * Milestone XProtect Management와 SQL을 2개의 노드(가상 머신 또는 물리적 서버)에 설치해야 합니다. SQL Server와 Event Server는 외부일 수 있습니다. 아래 참고 사항을 참조하십시오.

ℹ️ 참고: SQL Server 외부일 수 있습니다. 이 경우 milestone.safe의 단계별 구성 중 4단계에서:

  * SQL 데이터 및 로그 폴더의 복제를 제거합니다
  * sqlservr.exe의 프로세스 검사기를 제거합니다
  * 매크로 서비스에서 MSSQLServer를 제거합니다.

💡 [SafeKit과 sqlserver.safe 모듈](<https://safekit.eviden.com/ko/solutions/sql-server-high-availability-synchronous-replication-failover/>)을 사용하여 외부 SQL Server의 이중화를 구현할 수 있습니다.

이 경우 두 관리 노드 모두에서 sqlserver.safe 모듈(레지스트리 키 HKEY_LOCAL_MACHINE > SOFTWARE > VideoOSServerConnectionString)의 가상 IP 주소를 사용하여 [Milestone Management와 SQL 간의 연결](<https://doc.milestonesys.com/xprotect/xprotect-management-client/2026r1/en/change-the-location-and-name-of-a-sql-server-database.html>)을 구성합니다.

ℹ️ 참고: 이벤트 서버는 관리 서버 외부에 있을 수 있습니다.

이 경우, milestone.safe가 2개 설치된 2개의 클러스터가 있습니다. 하나는 관리 클러스터용이고 다른 하나는 이벤트 클러스터용입니다.

관리 클러스터의 경우, milestone.safe의 단계별 구성 중 4단계에서:

  * SERVICES 매크로에서 MilestoneEventServerService를 제거합니다.

이벤트 클러스터의 경우, milestone.safe의 단계별 구성 중 4단계에서:

  * SERVICES 매크로에서 다음을 제거합니다. MSSQLServer, Milestone XProtect Management Server, Milestone XProtect Log Server
  * SQL 데이터 및 로그 폴더의 복제를 제거합니다
  * sqlservr.exe의 프로세스 검사기를 제거합니다
  * 단계별 구성 중에 이벤트 서버를 **관리 클러스터**의 가상 IP 주소로 [등록하거나](<https://safekit.eviden.com/wp-content/uploads/2022/07/milestone-management-server-register-2020.png>) (또는 다운로드 관리자에서 이벤트 서버를 설치하고 설치 중에 **관리 클러스터**의 가상 IP 주소를 설정)
  * Milestone 관리 클라이언트의 [등록된 서비스](<https://safekit.eviden.com/wp-content/uploads/2022/07/milestone-url-vip.png>)에서 이벤트 서버를 **이벤트 클러스터**의 가상 IP 주소로 설정합니다.

### ℹ️ 레코더 이중화 {#ℹ-recorder-redundancy}

  * 데이터 양 때문에 레코더 복제는 SafeKit에 적합하지 않습니다.
  * Milestone에 통합된 솔루션은 (실시간 복제 기능이 없는 장애 조치 녹화 서버로) 사용할 수 있습니다.
  * 두 대의 레코더는 액티브/액티브 구성으로 실행될 수 있으며, 카메라 고장 시 동일 영역의 모든 카메라가 손실되지 않도록 분산 배치됩니다.
  * 각 카메라의 스트림은 [Vega/RMF](<https://vega25.com/>) 솔루션을 통해 두 대의 녹화기로 전송될 수도 있습니다.

ℹ️ SafeKit 클러스터에서 Milestone을 버전 N에서 버전 N+1로 마이그레이션하는 경우 이 문서를 읽어보십시오: 🛠️ [SafeKit을 사용한 Milestone 관리 마이그레이션](<https://safekit.eviden.com/ko/quick-install/safekit-quick-installation-guide-milestone-migration/>)

### Windows에서 패키지 설치 {#package-installation-on-windows}

  * SafeKit 무료 버전을 2개의 Windows 노드에 다운로드하여 설치하세요.   
참고: 무료 버전에는 모든 SafeKit 기능이 포함되어 있습니다. 평가판이 끝나면 패키지를 제거하지 않고 영구 라이선스 키를 활성화할 수 있습니다. 
  * 패키지 설치를 완료한 후, **지금 콘솔 자격 증명 및 방화벽 규칙 설정**을 선택하고 SafeKit 콘솔의 **admin** 사용자에 대한 암호를 구성합니다.   
**모든 노드에 동일한 암호를 설정하세요.**
  * **C:/safekit/** (기본 설치 디렉터리) 및 정의할 **모든 복제 폴더**를 바이러스 백신 검사에서 제외하십시오.   
안티바이러스는 SafeKit이 OS와 긴밀하게 통합되고 가상 IP 메커니즘, 실시간 복제 및 중요 서비스 재시작 기능을 갖추고 있어 탐지에 어려움을 겪을 수 있습니다. 

<a class="btn-download" href="/ko/resources/safekit-free-trial/">SafeKit (Windows) 다운로드 ></a>

### Windows에 모듈 설치 {#module-installation-on-windows}

  * milestone.safe 모듈을 다운로드하세요. 이 모듈은 무료입니다. userconfig.xml 파일과 재시작 스크립트가 포함되어 있습니다.
  * **milestone.safe**를 **C:/safekit/Application_Modules/generic**에 넣으세요.

<a class="btn-download" href="/wp-content/uploads/downloads_safekit/version-82/modules_windows/milestone.safe" download="milestone.safe">milestone.safe 다운로드 (Windows) ></a> 

 

## SafeKit/Milestone XProtect 솔루션의 단계별 구성 {#step-by-step-configuration-of-the-safekit--milestone-xprotect-solution}

### 사전 요구 사항 {#prerequisites}

  * Milestone XProtect and SQL이 2개의 노드에 설치되었습니다.
  * 복제된 총 데이터는 몇 테라바이트로 제한됩니다. 이보다 많아지면 재동기화 시간이 상당히 길어집니다.
  * 노드 간 최소 1Gb/s의 상호 연결(더 빠른 재동기화를 위해 10Gb/s 권장).
  * IP 장애 조치에는 동일한 LAN 또는 확장 LAN (L2)에 있는 두 노드가 모두 필요합니다. 라우팅된 L3 네트워크는 지원되지 않습니다.

⚠️ 이 구성에는 **Milestone XProtect 2023 R3 이상이** 필요합니다. 이전 버전에 대한 내용은 🛠️ [이 문서를 참조](https://safekit.eviden.com/ko/quick-install/safekit-quick-installation-guide-old-milestone-configuration/) 하십시오.

### 1. SafeKit 콘솔을 시작합니다 {#1-launch-the-safekit-console}

  * `http://localhost:9010`에 연결하여 클러스터 노드 중 하나에서 브라우저로 웹 콘솔을 실행합니다.
  * 사용자 이름에 `admin` 입력하고 설치 시 정의한 암호를 입력합니다.

클러스터 외부의 워크스테이션에 있는 브라우저에서 콘솔을 실행할 수도 있습니다.

⚠️ SafeKit 구성은 단일 브라우저에서 두 노드 모두에 대해 수행됩니다.

ℹ️ 웹 콘솔을 보호하려면 사용 설명서의 🛠️ [11. SafeKit 웹 서비스 보안](https://safekit.eviden.com/ko/resources/safekit-user-guide-82/#https)을 참조하십시오.

![SafeKit 웹 콘솔을 시작하여 Milestone XProtect and SQL 클러스터를 구성합니다](https://safekit.eviden.com/wp-content/uploads/2024/03/01-login-large.png)

### 2. 노드 주소 구성 {#2-configure-node-addresses}

  * 노드 IP 주소를 입력하고 `Tab key` 눌러 연결을 확인한 후 노드 이름을 입력합니다. node1 또는 node2 빨간색으로 표시되면 브라우저와 두 노드 간의 연결을 확인하고 두 노드의 방화벽에서 🛠️ [문제 해결](https://safekit.eviden.com/ko/resources/safekit-user-guide-82/#Troubleshooting)을 확인하십시오.
  * 그런 다음, 구성을 저장하려면 `Save and apply`을 클릭합니다.
  * 두 노드 모두에서 `Success` ✅ 메시지를 확인하세요.
  * 한 노드에서 구성 `Failure` ❌ 가 발생하면 해당 노드의 ▼ 아코디언을 열고 메시지를 검토하십시오. SafeKit AI 🤖 를 사용하여 도움을 받을 수 있습니다.

ℹ️ 원하시면 새 `LAN and nodes` 추가하여(먼저 ➕) 두 번째 하트비트 와 전용 복제 네트워크를 만들 수 있습니다.

ℹ️ `Advanced configuration` 클릭하면 `cluster.xml` 파일이 표시됩니다. 이 파일은 콘솔에서 자동으로 채워지고 노드에 배포됩니다.

![Milestone XProtect and SQL 클러스터의 노드를 입력하세요](https://safekit.eviden.com/wp-content/uploads/2024/03/02-cluster-edit.png)

### 3. 모듈 선택 {#3-select-a-module}

  * `New module`에서 `milestone.safe` 모듈을 클릭합니다.

ℹ️ 상단의 파란색 배너에서 🛜 `node1` 콘솔 연결 노드를 나타냅니다. 이 노드는 필요할 때 요청을 `node2`로 전달합니다.

ℹ️ 설치 중에 모듈을 해당 디렉터리에 배치한 경우 콘솔은 연결 노드(`node1`)의 `Application_Modules/generic/` 디렉터리에서 `xxx.safe`를 검색합니다.

![Milestone XProtect and SQL 모듈을 선택하세요](https://safekit.eviden.com/wp-content/uploads/2024/03/04-module-new.png)

### 4. 모듈 구성 {#4-configure-the-module}

  * `Module startup at boot`에서 지연 없이 부팅 시 모듈을 자동으로 시작하도록 선택합니다.
  * `Macros`/`SERVICES`에 애플리케이션의 서비스 이름을 시작 순서대로 쉼표로 구분하여 입력합니다. [Milestone XProtect 서비스의 시각적 예시는 이 스크린샷을 참조하십시오 🖼️](https://safekit.eviden.com/wp-content/uploads/2025/05/milestone-services.png).
  * `Heartbeat networks`에서는 복제가 이루어지는 단일 하트비트 네트워크가 있어야 합니다. 2단계에서 개인 LAN을 추가한 경우 개인 LAN에서 복제 흐름을 사용하는 두 개의 하트비트 구성할 수 있습니다.
  * `Virtual IP addresses`에 가상 IP 주소를 입력합니다. 가상 IP 주소는 두 노드의 IP 주소와 동일한 IP 네트워크(동일한 서브넷)의 표준 IP 주소입니다.  
애플리케이션 클라이언트는 가상 IP 주소(또는 가상 IP 주소와 연결된 DNS 이름)로 구성해야 합니다.  
가상 IP 주소는 장애 발생 시 자동으로 전환됩니다.
  * `Replicated directories`에서 복제할 디렉터리의 경로를 설정합니다. 두 노드 모두에 존재하고 애플리케이션 데이터가 포함되어 있는지 확인합니다.  
데이터 및 로그 복제는 데이터베이스에 필수적입니다.  
필요에 따라 복제된 디렉터리를 추가로 생성할 수 있습니다.  
[Milestone XProtect SQL 복제의 시각적 예시는 이 스크린샷을 참조하세요 🖼️](https://safekit.eviden.com/wp-content/uploads/2025/05/milestone-replication.png).
  * `Checkers`에서 필요한 경우 프로세스 모니터링, 사용자 지정 체커, TCP, ping 또는 분할 브레인 체커와 같은 체커를 구성할 수 있습니다.  
예를 들어, 프로세스 이름이 `Monitored processes/services`에 표시되면 실패 시 재시작 작업으로 모니터링됩니다. 잘못된 프로세스 이름을 구성하면 모듈이 시작 직후 중지됩니다.

⚠️ SQL이 관리 서버에 있는 경우:

  * [SQL 시스템 데이터베이스](https://learn.microsoft.com/en-us/sql/relational-databases/databases/system-databases) (master.mdf 및 mastlog.ldf 등)는 두 노드 모두에서 동일한 디렉터리에 있어야 합니다. 디렉터리는 복제되도록 구성되어야 합니다.
  * 읽기 전용 [SQL 리소스 데이터베이스는](https://learn.microsoft.com/en-us/sql/relational-databases/databases/resource-database) 바이너리에 있으며 장애 조치에 필요하므로 SQL은 두 노드 모두의 파일 시스템에서 동일한 위치에 설치되어야 합니다. 이 데이터베이스는 복제할 필요가 없습니다.
  * SQL Milestone 데이터베이스(.mdf 및 .ldf)는 두 노드 모두에서 동일한 디렉터리에 있어야 합니다. 디렉터리는 복제되도록 구성되어야 합니다. 이 [문서](https://doc.milestonesys.com/xprotect/xprotect-management-client/2026r1/en/change-the-location-and-name-of-a-sql-server-database.html)에 따르면 Milestone 데이터베이스는 다음과 같습니다.

ℹ️ `Advanced configuration` 클릭하면 `userconfig.xml` 파일이 표시됩니다. 이 파일은 콘솔에서 자동으로 채워지며 재시작 스크립트와 함께 노드에 배포됩니다.

ℹ️ SafeKit 구성을 적용하면 Windows 서비스에서 서비스의 `startup type` 자동으로 `Manual`으로 설정됩니다. 이렇게 하면 시스템 부팅 시 서비스가 자동으로 시작되지 않고 모듈 자체가 시작될 때만 시작됩니다.

![Milestone XProtect and SQL 모듈 설정으로 이동](https://safekit.eviden.com/wp-content/uploads/2025/05/05-module-mirror-edit-config-3.png)

### 5. 스크립트 편집(선택 사항) {#5-edit-scripts-optional}

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

![Milestone XProtect and SQL 모듈 설정으로 이동](https://safekit.eviden.com/wp-content/uploads/2026/09/28-module-edit-script.png)

### 6. 통신 암호화(선택 사항) {#6-communication-encryption-optional}

  * 노드 간 통신 암호화를 유지하세요.

![Milestone XProtect and SQL 모듈의 통신 암호화](https://safekit.eviden.com/wp-content/uploads/2025/05/07-module-encryption-1.png)

### 7. 저장 및 적용 {#7-save-and-apply}

  * 두 노드 모두에서 구성을 `Save and apply`.

![Milestone XProtect and SQL 모듈 구성을 저장하고 적용합니다](https://safekit.eviden.com/wp-content/uploads/2025/05/08-module-save-1.png)

### 8. 구성 성공 여부 확인 {#8-verify-successful-configuration}

  * 두 노드 모두에서 `Success` ✅ 메시지를 확인하고 `Monitor modules` 클릭하세요.
  * 한 노드에서 구성 `Failure` ❌ 가 발생하면 해당 노드의 ▼ 아코디언을 열고 메시지를 검토하십시오. SafeKit AI 🤖 를 사용하여 도움을 받을 수 있습니다.

![Milestone XProtect and SQL 모듈 구성 성공 여부 확인](https://safekit.eviden.com/wp-content/uploads/2025/05/09-module-save-check-1.png)

### 9. 최신 데이터로 노드를 시작합니다 {#9-start-the-node-with-up-to-date-data}

  * 노드 1에 최신 복제 디렉터리가 있는 경우 해당 노드를 선택하고 ⋯ `Force start` ▶ `As primary` 시작을 선택합니다.

노드 2가 시작되면 모든 데이터가 노드 1에서 노드 2로 복사됩니다.

⚠️ 잘못된 선택을 하면 두 노드 모두에서 오래된 데이터를 동기화할 위험이 있습니다.

⚠️ 또한 SafeKit은 복제 메커니즘을 설치한 다음 `start_prim` 스크립트에서 애플리케이션을 시작할 수 있도록 노드 1에서 Milestone XProtect and SQL 애플리케이션이 중지되었다고 가정합니다.

⚠️ 후속 시작 시에는 `Start` 사용하십시오. SafeKit은 최신 서버를 유지합니다. `As primary` 시작하는 것은 처음이거나 예외적인 작업 중에 특별히 시작하는 것입니다.

![최신 데이터가 있는 Milestone XProtect and SQL 노드를 기본으로 시작합니다](https://safekit.eviden.com/wp-content/uploads/2024/03/10-monitoring-mirror-stop-stop-prim.png)

### 10. ALONE (녹색)로 전환될 때까지 기다리세요 {#10-wait-for-the-transition-to-alone-green}

  * 노드 1은 ALONE (녹색) 상태에 도달해야 합니다. 이는 가상 IP가 설정되었고 노드 1에서 `start_prim` 스크립트가 실행되었음을 의미합니다.

⚠️ ALONE (녹색)에 도달하지 못했거나 애플리케이션이 시작되지 않은 경우 노드 1의 [모듈 로그 🖼️ 를](https://safekit.eviden.com/wp-content/uploads/2024/03/24-module-log-script.png) 통해 원인을 분석하십시오.

  * `node1`의 🔍 **로그** 아이콘을 클릭하여 모듈 로그를 열고, 검사기가 오류를 감지하여 모듈을 중지시키는 등의 오류 메시지를 찾습니다.
  * 로그에서 `start_prim` 클릭하면 스크립트의 출력 메시지가 오른쪽에 표시되며 서비스가 잘못 시작되는 등의 오류를 감지할 수 있습니다.
  * 로그 메시지 관련 지원은 SafeKit AI 🤖 이용하세요.

⚠️ 클러스터가 `WAIT (red) not uptodate, STOP (red) not uptodate` 상태인 경우 WAIT 노드를 중지하고 [주 노드로 강제 시작합니다 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/10-monitoring-mirror-stop-stop-prim.png).

![첫 번째 Milestone XProtect and SQL 노드는 기본으로 시작하여 ALONE 상태가 됩니다](https://safekit.eviden.com/wp-content/uploads/2024/03/12-monitoring-alone-stop.png)

### 11. 노드 1의 데스크톱에서 중지한 다음 가상 IP 주소에 등록하고 Milestone KB를 적용한 후 Milestone Management Server를 다시 시작합니다 {#11-in-the-desktop-of-node-1-stop-then-register-on-the-virtual-ip-address-apply-the-milestone-kb-and-restart-the-milestone-management-server}

이미지의 메뉴에 따라 노드 1에서 다음 글머리 기호를 실행하세요

  * SafeKit 콘솔의 **ALONE** 메뉴를 사용하여 관리 서버 서비스를 중지할 때 잘못된 감지를 방지하기 위해 **검사기** 및 **프로세스/서비스 모니터링**을 비활성화하십시오([검사기 일시 중지 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/04/safekit-disable-checkers.png)).
  * 작업 표시줄에서 **Milestone Management Server** 아이콘을 마우스 오른쪽 버튼으로 클릭합니다.
  * **관리 서버 서비스 중지**
  * 그런 다음 **Server Configurator** 선택하고 가상 IP 주소를 등록합니다.
  * 노드 1의 **ServerConfig.xml을 편집합니다**. 
    * " C:/ProgramData/Milestone/XProtect Management Server"로 이동하여 원본 ServerConfig.xml 파일을 백업하십시오.
    * 관리자 권한이 있는 텍스트 편집기로 ServerConfig.xml 파일을 엽니다.
    * `XXX.XXX.XXX.XXX`를 실제 가상 IP 주소로 바꾸십시오
    * `<Failover>...`
    * `<VirtualAddress>`
    * `XXX.XXX.XXX.XXX`
    * `</VirtualAddress>`
    * `...</Failover>`
    * `<ClusterMember>false</ClusterMember>` `true`로 변경하세요
    * 다음에서 `http://NODE1_FQDN:9010` (또는 워크그룹인 경우 NODE1 호스트 이름)을 설정합니다 
    * `<ClusterLocalWebserverUri>`
    * `http://NODE1_FQDN:9010`
    * `</ClusterLocalWebserverUri>`
    * 자세한 내용은 **[Milestone KB](https://milestonesys.my.site.com/developer/s/article/Management-Client-and-Smart-Client-are-not-functioning-properly-after-node-switch-in-a-clustered-Management-Server-setup)를** 참조하세요.
  * **관리 서버 서비스 시작**
  * SafeKit 콘솔의 **ALONE** 메뉴를 사용하여 **검사기** 및 **프로세스/서비스 모니터링**을 활성화하세요([검사기 활성화 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/04/safekit-disable-checkers.png)).

ℹ️ 이 절차는 가상 주소에 대한 연결을 통해 노드 1 관리 서버를 SQL 데이터베이스(노드 1에서 실행 중)에 등록합니다.

![Milestone 2020+에 관리 서버를 등록합니다](https://safekit.eviden.com/wp-content/uploads/2022/07/milestone-management-server-register-2020.png)

### 12. 노드 2의 데스크톱에서 가상 IP 주소에 관리 서버를 등록합니다 {#12-in-the-desktop-of-node-2-register-the-management-server-on-the-virtual-ip-address}

  * 노드 2의 작업 표시줄에서 **Server Configurator** 선택하고 가상 IP 주소에 등록합니다(이미지 참조).
  * 그런 다음 **관리 서버 서비스를 중지합니다**.
  * 노드 2의 **ServerConfig.xml을 편집합니다**. 
    * " C:/ProgramData/Milestone/XProtect Management Server"로 이동하여 원본 ServerConfig.xml 파일을 백업하십시오.
    * 관리자 권한이 있는 텍스트 편집기로 ServerConfig.xml 파일을 엽니다.
    * `XXX.XXX.XXX.XXX`를 실제 가상 IP 주소로 바꾸십시오
    * `<Failover>...`
    * `<VirtualAddress>`
    * `XXX.XXX.XXX.XXX`
    * `</VirtualAddress>`
    * `...</Failover>`
    * `<ClusterMember>false</ClusterMember>` `true`로 변경하세요
    * 다음에서 `http://NODE2_FQDN:9010` (또는 워크그룹인 경우 NODE2 호스트 이름)을 설정합니다 
    * `<ClusterLocalWebserverUri>`
    * `http://NODE2_FQDN:9010`
    * `</ClusterLocalWebserverUri>`
    * 자세한 내용은 **[Milestone KB](https://milestonesys.my.site.com/developer/s/article/Management-Client-and-Smart-Client-are-not-functioning-properly-after-node-switch-in-a-clustered-Management-Server-setup)를** 참조하세요.

⚠️ 주의:

  * 노드 2에서 등록을 실행하는 사용자의 계정은 노드 1의 Milestone에서 관리자 역할을 가져야 합니다.
  * 노드 2의 로컬 관리자가 등록하는 경우, [13단계](#role)에서 Management Client / Security / Roles에 내장된 Windows 그룹 `BUILTIN/Administrators` 설정되어 있어야 합니다. 그렇지 않으면 등록이 작동하지 않습니다.

ℹ️ 이 절차는 가상 주소에 대한 연결을 통해 노드 2 관리 서버를 SQL 데이터베이스(노드 1에서 실행 중)에 등록합니다.

![Milestone 2020+에 관리 서버를 등록합니다](https://safekit.eviden.com/wp-content/uploads/2022/07/milestone-management-server-register-2020.png)

### 13. 장애 조치 시 Windows 인증 문제 해결 {#role}

Milestone XProtect Management Client 시작할 때 다음 방법 중 하나를 사용하여 인증해야 합니다. 선택한 방법에 따라 SafeKit 장애 조치 후 로그인이 작동하도록 특정 단계가 필요합니다. 참조: [로그인 스크린샷 보기 🖼️](https://safekit.eviden.com/wp-content/uploads/2022/07/milestone-management-server-connect.png).

#### Active Directory(AD)를 사용한 Windows 인증 {#windows-authentication-with-active-directory-ad}

**구성:** 특별한 구성은 필요하지 않습니다.

Milestone " Windows 인증"이 Active Directory로 구성된 경우 사용자 및 암호 정보는 외부 AD에서 검색됩니다. 장애 조치 후 보조 노드는 동일한 AD에 연결되므로 인증이 자동으로 작동합니다.

#### 워크그룹의 Windows 인증 {#windows-authentication-in-workgroup}

**구성:** "보안/역할"에 **BUILTIN/Administrators** 그룹을 추가해야 합니다.

**경고:** 작업 그룹에서 로컬 사용자는 이름이 동일하더라도 각 노드에서 서로 다른 보안 식별자(SID)를 갖습니다. BUILTIN/Administrators 그룹만 두 노드에서 동일한 SID를 갖습니다.

  * 이 그룹을 추가하면 장애 조치 후 모든 로컬 관리자 계정으로 보조 노드에서 인증할 수 있습니다.
  * 이것이 없으면 SID가 일치하지 않아 보조 노드에서 로컬 Windows 인증이 실패합니다.

#### SQL 데이터베이스를 사용한 기본 인증 {#basic-authentication-with-sql-database}

**구성:** "기본 인증"으로 사용자를 만듭니다(예: " Admin ").

"기본 인증"의 경우 사용자 자격 증명은 SQL 데이터베이스에 직접 저장됩니다. SafeKit SQL 데이터베이스를 보조 노드에 실시간으로 복제하므로, 장애 조치 후 즉시 이러한 사용자를 사용할 수 있습니다.

![Milestone Management Client에서 역할 설정](https://safekit.eviden.com/wp-content/uploads/2022/07/milestone-management-server-roles.png)

### 14. 노드 2 시작 {#14-start-node-2}

  * ⋯ 컨텍스트 메뉴가 있는 `Start` 노드 2를 선택합니다.
  * SECOND (녹색) 상태가 될 때까지 기다리세요.

ℹ️

  * 노드 2는 복제된 디렉터리를 재동기화하는 동안(노드 1에서 노드 2로 복사) SECOND (주황색) 상태를 유지합니다.
  * 복제된 디렉터리에서 다시 동기화할 파일의 크기와 네트워크 대역폭에 따라 시간이 다소 걸릴 수 있습니다.
  * 복사 진행 상황을 확인하려면 노드 2의 [모듈 로그 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/27-module-log-reintegration.png) 및 [복제 리소스 🖼️ 를](https://safekit.eviden.com/wp-content/uploads/2024/03/26-replication-resources-reintegration.png) 참조하십시오. 로그 메시지 지원이 필요한 경우 SafeKit AI 🤖 사용하십시오.

![Milestone XProtect and SQL 노드 2를 시작합니다](https://safekit.eviden.com/wp-content/uploads/2024/03/13-monitoring-alone-stop-start.png)

### 15. 클러스터가 작동 중인지 확인합니다 {#15-verify-that-the-cluster-is-operational}

  * 클러스터가 녹색/녹색이고 PRIM 노드에서 Milestone XProtect and SQL 서비스가 실행 중이며 SECOND 노드에서는 실행 중이 아닌지 확인합니다.
  * 이 상태에서는 파일 내부의 변경 사항만 실시간으로 복제됩니다.

⚠️

  * 가상 IP 주소로 **녹화 서버**를 등록합니다.
  * 가상 IP 주소에서 **Milestone Management Client**와 **Milestone Smart Client** 연결합니다.
  * Milestone XProtect and SQL 서비스의 클라이언트인 구성 요소는 가상 IP 주소로 구성해야 합니다. 구성은 DNS 이름으로 수행할 수 있습니다(DNS 이름이 생성되어 가상 IP 주소와 연결된 경우).

![Milestone XProtect and SQL 노드 2는 SECOND (녹색)입니다](https://safekit.eviden.com/wp-content/uploads/2024/03/14-monitoring-prim-second.png)

### 16. 테스트 {#16-testing}

  * PRIM 노드의 상황별 메뉴를 아래로 스크롤하여 `Stop` 클릭하여 노드를 중지합니다.
  * SECOND 노드에 장애 조치가 발생하여 ALONE 작동하는지(녹색) 확인합니다.
  * Windows의 Microsoft Management Console(MMC) 또는 Linux의 명령줄을 사용하여 Milestone XProtect and SQL 서비스의 장애 조치(failover)를 확인합니다(`stop_prim` 스크립트에서 노드 1에서 중지되고 `start_prim` 스크립트에서 노드 2에서 시작됨).

⚠️ node2에서 ALONE (녹색)에 도달하지 못했거나 애플리케이션이 시작되지 않은 경우 노드 2의 [모듈 로그 🖼️ 를](https://safekit.eviden.com/wp-content/uploads/2024/03/38-module-log-script-second.png) 통해 원인을 분석하십시오.

  * `node2`의 🔍 **로그** 아이콘을 클릭하여 모듈 로그를 열고, 검사기가 오류를 감지하여 모듈을 중지시키는 등의 오류 메시지를 찾으십시오.
  * 로그에서 `start_prim` 클릭하면 스크립트의 출력 메시지가 오른쪽에 표시되며 서비스가 잘못 시작되는 등의 오류를 감지할 수 있습니다.
  * 로그 메시지 관련 지원은 SafeKit AI 🤖 이용하세요.

⚠️

  * 모든 것이 정상이라면 node1에서 시작을 실행하여 node2에서 복제된 디렉터리를 다시 동기화합니다.
  * 문제가 발생하면 node2를 중지하고 node1 [주 🖼️ 로 강제 시작](https://safekit.eviden.com/wp-content/uploads/2024/03/10-monitoring-mirror-stop-stop-prim.png) 하면 중지 시점에 로컬에서 정상적인 데이터로 다시 시작됩니다.

ℹ️ 클러스터에서 발생하는 상황을 이해하는 데 도움이 될 수 있는 🕒 **[타임라인 🖼️ 이](https://safekit.eviden.com/wp-content/uploads/2026/05/safekit-console-timeline.png)** 있습니다.

ℹ️ 자세한 내용과 동영상은 [SafeKit 온라인 교육](https://safekit.eviden.com/ko/resources/safekit-on-line-training/)에서 확인하세요.

![PRIM 서버에서 Milestone XProtect and SQL 모듈을 중지합니다](https://safekit.eviden.com/wp-content/uploads/2024/03/16-monitoring-prim-second-stop.png)

### 17. 지원 {#17-support}

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

ℹ️ [지원에 대한 자세한 정보는 여기에서 확인하세요](https://safekit.eviden.com/ko/resources/safekit-support/).

![지원을 위해 Milestone XProtect and SQL 스냅샷을 찍으세요](https://safekit.eviden.com/wp-content/uploads/2024/03/30-snapshots-mirror.png)

 

## SafeKit mirror 솔루션 시연 {#demonstration-of-the-safekit-mirror-solution}

### SafeKit 동영상: 애플리케이션 수준 클러스터링 (8:47) {#demo-mirror-ha-cluster}

이 비디오에서는 SAN의 복잡성 없이 SafeKit **mirror HA 클러스터**를 구현하는 방법을 알아보세요. 이 데모에서는 Microsoft SQL Server 사용하지만, 이 솔루션은 다른 데이터베이스 및 애플리케이션에서도 동일하게 작동합니다. 

### 챕터 {#chapters}

  1. 🎬 [SQL Server가 있는 2개의 노드](https://www.youtube.com/watch?v=mGwEguDnnH0&t=0s) (0:32)
  2. 🎬 [클러스터 및 mirror.safe 모듈 구성](https://www.youtube.com/watch?v=mGwEguDnnH0&t=32s) (3:58)
  3. 🎬 [SQL 복제, 마이그레이션, 충돌 시 장애 조치 시작 및 테스트](https://www.youtube.com/watch?v=mGwEguDnnH0&t=270s) (4:17)

### 단계별 구현 {#step-by-step-implementation}

  * 🛠️ [Windows에서 mirror 클러스터를 설정하는 방법에 대한 가이드를 읽어보세요](https://safekit.eviden.com/ko/quick-install/safekit-quick-installation-guide-for-a-new-windows-application-with-real-time-replication-and-failover/)
  * 🛠️ [Linux에서 mirror 클러스터를 설정하는 방법에 대한 가이드를 읽어보세요](https://safekit.eviden.com/ko/quick-install/safekit-quick-installation-guide-for-a-new-linux-application-with-real-time-replication-and-failover/)

