SIOS LifeKeeper를 사용하여 클러스터 인식이 아닌 애플리케이션 클러스터링
모든 애플리케이션이 다음과 같이 구축된 것은 아닙니다.클러스터링염두에 두었습니다. 사실 대부분은 그렇지 않았습니다. 하지만 그렇다고 해서 그들이 혜택을 받을 수 없다는 것은 아닙니다.고가용성에 의해 제공되는 보호SIOS 라이프키퍼애플리케이션을 중지하고, 시작하고, 다른 서버에서 실행할 수 있다면 클러스터링할 가능성이 높습니다.
시작하기에 앞서, 성공적인 클러스터링 구현과 좌절스러운 시행착오 경험의 차이를 만들어낼 몇 가지 주요 고려 사항이 있습니다.
-
동적 데이터를 공유 또는 복제 스토리지로 이동
애플리케이션은 일반적으로 로그, 데이터베이스, 캐시 및 기타 애플리케이션 데이터와 같은 동적 데이터를 로컬 스토리지에 저장합니다. 클러스터링 시에는 이 방식이 작동하지 않습니다.장애 조치대기 노드는 동일한 데이터에 액세스할 수 있어야 하므로 애플리케이션이 중단된 부분부터 정확히 작업을 시작할 수 있습니다.
해결책은 SAN 환경의 공유 디스크나 복제된 볼륨으로 모든 동적 데이터를 재배치하는 것입니다.SIOS 데이터키퍼실행 파일과 같은 정적 파일은 로컬에 남아 있을 수 있지만, 런타임에 변경되는 모든 내용은 모든 클러스터 노드에서 액세스할 수 있는 저장소에 있어야 합니다.
-
클러스터 환경에 대한 애플리케이션 호스트 참조 업데이트
많은 애플리케이션이 로컬 시스템을 이름, FQDN 또는 IP 주소로 참조합니다. 독립 실행형 구성에서는 문제가 없지만, 클러스터에서는 애플리케이션이 클러스터의 가상 IP(VIP)에 바인딩하거나 이를 통해 통신해야 합니다.
애플리케이션이나 해당 구성 파일이 다음을 참조하는 경우:
- 로컬호스트
- 노드의 호스트 이름 또는 FQDN
- 노드의 정적 IP 주소
해당 참조를 VIP 또는 VIP로 확인되는 호스트 이름으로 변경해야 할 가능성이 높습니다. 일반적으로 확인해야 할 위치로는 레지스트리 키, 구성 파일, 그리고 애플리케이션이 자기 자신이나 다른 서비스에 접속하는 데 사용하는 연결 문자열 등이 있습니다.
-
사용자 정의 시작, 중지 및 모니터링 스크립트 작성
클러스터 인식 애플리케이션에는 클러스터에 서비스 시작, 중지 및 모니터링 방법을 알려주는 로직이 포함되어 있습니다. 클러스터 인식이 아닌 애플리케이션에는 이러한 로직이 없습니다. 바로 이러한 경우에 SIOS LifeKeeper 애플리케이션 복구 키트(ARK)가 도움이 됩니다.
애플리케이션에 해당 스크립트가 없는 경우 다음과 같은 사용자 정의 스크립트를 만들 수 있습니다.
- 시작서비스 또는 프로세스
- 멈추다전환하기 전에 깨끗하게
- 감시 장치예를 들어 포트, 로그 파일 또는 프로세스를 확인하여 상태를 확인합니다.
경우에 따라 애플리케이션 보호는 서비스를 시작하고 중지하는 것만큼 간단합니다. 이러한 상황을 위해 LifeKeeper는 Quick Service Protection(QSP) 복구 키트를 제공합니다. QSP를 사용하면 보호할 서비스를 선택하기만 하면 되므로 코드를 작성할 필요가 없습니다. LifeKeeper는 해당 서비스의 시작, 중지 및 모니터링 작업을 자동으로 처리합니다.
이러한 옵션을 사용하면 간단한 것부터 광범위한 애플리케이션을 쉽게 보호할 수 있습니다.윈도우또는리눅스동일한 클러스터링 프레임워크 내에서 복잡한 다중 구성 요소 시스템에 대한 서비스를 제공합니다.
-
모든 클러스터 노드에서 암호화 키를 적절하게 처리합니다.
애플리케이션이 저장 데이터를 암호화하는 경우, 각 클러스터 노드는 해당 데이터를 복호화할 수 있어야 합니다. 즉, 암호화 키는 모든 노드에서 접근 가능하고 일관적이어야 합니다. 설정에 따라 로컬 키 저장소를 동기화하거나 중앙 집중식 키 관리 솔루션을 사용해야 할 수도 있습니다.
핵심은 모든 노드가 암호화 키가 활성화될 때 안전하고 일관되게 접근할 수 있어야 한다는 것입니다. 그렇지 않으면 애플리케이션이 시작되더라도 장애 조치(failover) 후 데이터에 접근하지 못할 수 있습니다.
-
장애 조치 후 클라이언트가 다시 연결되는 방식 고려
애플리케이션이 한 노드에서 다른 노드로 장애 조치(failover)될 때, 새로운 활성 노드가 IP 주소를 인계받고 애플리케이션을 시작하는 동안 잠시 중단됩니다. 해당 서비스에 연결된 클라이언트의 동작은 연결 끊김을 어떻게 처리하는지에 따라 전적으로 달라집니다.
클라이언트 재시도 로직이 내장되어 있다면 사용자는 중단을 전혀 느끼지 못할 수도 있습니다. VIP와 서비스가 다시 사용 가능해지면 클라이언트가 자동으로 다시 연결됩니다.
클라이언트에 재시도 로직이 포함되지 않은 경우 사용자는 장애 조치 후 연결을 수동으로 새로 고치거나 다시 시작해야 할 수 있습니다.
클라이언트의 동작을 이해하고 장애 조치 시 어떻게 반응하는지 테스트하는 것이 중요합니다. 때로는 간단한 연결 재시도 루프를 추가하거나 연결 시간 제한 설정을 조정하는 것만으로도 원활한 사용자 경험을 제공할 수 있습니다.
-
클러스터 배포를 위한 애플리케이션 라이선스 요구 사항 확인
종종 간과되는 단계 중 하나는 라이선스입니다. 애플리케이션을 클러스터링하면 클러스터의 모든 노드에 설치되지만, 한 번에 하나의 인스턴스, 즉 액티브 인스턴스만 실행됩니다. 일부 공급업체는 특별한 액티브/패시브 클러스터 라이선스를 제공하는 반면, 다른 공급업체는 설치된 모든 인스턴스에 대한 라이선스를 요구합니다.
배포 전에 항상 애플리케이션 공급업체에 확인하세요. 사전에 간단히 논의하면 나중에 라이선스 문제로 인해 발생하는 시간을 절약할 수 있습니다.
-
모든 애플리케이션 및 클러스터 구성 요소를 철저히 테스트합니다.
테스트는 클러스터링 프로젝트에서 가장 중요하면서도 가장 자주 간과되는 부분 중 하나입니다.
장애 조치(failover) 테스트만 하지 마세요. 애플리케이션이 보호되는 동안 모든 기능을 테스트하세요. 여기에는 다음이 포함됩니다.
- 시작 및 종료 시퀀스
- 모든 필수 서비스 및 백그라운드 작업
- 데이터를 읽거나 쓰거나 캐시하는 모든 구성 요소
- 서비스 종속성에 의존하는 모든 프로세스
- 장애 조치 전, 중, 후의 클라이언트 동작
애플리케이션에서 사용자 지정 스크립트나 QSP를 사용하는 경우, 각 단계가 부하 상황에서도 제대로 작동하는지 확인하십시오. 이를 통해 문제를 조기에 발견할 수 있을 뿐만 아니라 실제 문제 발생 시 솔루션이 제대로 작동할 것이라는 확신을 가질 수 있습니다.
클러스터를 인식하지 않는 애플리케이션에 대한 HA 달성
SIOS LifeKeeper를 사용하여 클러스터를 인식하지 않는 애플리케이션을 클러스터링하는 것은 어렵지 않지만, 약간의 계획이 필요합니다. 데이터를 공유 또는 복제 스토리지로 이동하고, 모든 항목을 클러스터의 VIP로 지정하고, 시작, 중지 및 모니터링 로직을 스크립팅하고(또는 필요한 경우 QSP를 사용), 모든 노드에서 암호화 키를 사용할 수 있는지 확인하고, 라이선스 요구 사항을 확인하세요.
클라이언트가 장애 조치에 어떻게 대응하는지 테스트하는 것을 잊지 마세요. 진정한 고가용성은 서버와 사용자가 모두 연결된 상태를 유지한다는 것을 의미합니다.
이러한 단계를 따르면 가장 “독립형” 애플리케이션조차도 엔터프라이즈급 고가용성을 달성할 수 있다는 것을 알게 될 것입니다.오늘 데모를 요청하세요SIOS LifeKeeper가 클러스터를 인식하지 못하는 애플리케이션에 어떻게 안정적인 HA를 제공하는지 확인하세요.
저자: SIOS의 수석 기술 전문가인 David Bermingham
허가를 받아 복제되었습니다.시오스




