Linux를 위한 좋은 장애 조치/고가용성 솔루션이 있습니까?

Linux를 위한 좋은 장애 조치/고가용성 솔루션이 있습니까?

장애(서버 정지 또는 충돌)가 발생할 경우 애플리케이션을 한 서버에서 다른 서버로 마이그레이션해야 하는 경우가 여러 가지 있습니다.

솔라리스에서는 VCS(Veritas Cluster Server)를 사용하여 이 작업을 수행합니다. Linux에는 어떤 옵션을 사용할 수 있나요?

각각에 대한 설정/유지 관리 노력 수준 또는 비용(있는 경우)을 표시해 주십시오.

-- 자세한 내용이 추가되었습니다 --

복잡성 수준에 대한 아이디어를 제공하려면 다음을 수행하십시오.

  • 실패한 서버는 예고 없이 중단되거나 충돌할 수 있으며 여전히 'ping 가능'할 수 있습니다.
  • 복구 서버는 장애 조치 시 해당 애플리케이션을 시작해야 합니다.
  • 서버 부팅/전원 순환에 실패하면 복구 서버를 방해하지 않도록 수동 상태가 됩니다.

이는 데이터베이스가 아닌 데이터 수집 또는 컴퓨팅 노드이므로 더 간단한 솔루션이 작동할 수 있습니다.

-- 더 자세한 내용(죄송합니다) --

공유 스토리지는 옵션이 아니지만 한 서버에서 다른 서버로 마이그레이션하는 데 필요한 상태(있는 경우)가 많지 않습니다. 우리는 rsync를 통해 두 서버의 동기화를 유지합니다.

지금까지 모든 게시물에 진심으로 감사드립니다.

답변1

http://linux-ha.org/모든 고가용성 요구 사항을 충족합니다. 노래에서 말했듯이 인생에서 가장 좋은 것은 무료입니다.

답변2

저는 Linux에서 다양한 클러스터 솔루션을 사용해 왔습니다. 나는 또한 구성 관리 지지자이므로 설명에 이에 대한 내용을 조금 추가하겠습니다(예: Chef 또는 Puppet).

베리타스 클러스터 서버(VCS). 꽤 시간이 지났지만 우리는 RHEL 3.0에 Linux VCS 클러스터 몇 개를 배포했습니다. RHEL 5.0에서 사용할 수 있기를 바랍니다. 익숙한 영역으로서 이를 설정하는 데 어려움이 있다는 점을 잘 알고 있어야 합니다. 아시다시피 VCS는 비용이 많이 듭니다. 일화로, VCS는 구성 관리를 통해 설정하는 데 적합하지 않습니다.

RHEL에 관해 말하면 Red Hat Cluster Suite는 RHEL 2.1의 원래 릴리스 이후로 많이 성숙되었습니다. 설정/구성 단계는 매우 간단하고 문서가 매우 완벽하고 유용하며 VCS와 마찬가지로 공급업체로부터 지원을 구입할 수 있습니다. 상업용 HA 제품의 경우 RHCS의 가격이 합리적입니다. 구성 관리를 사용하여 패키지를 설치하고 웹 인터페이스를 통해 "수동으로" 유지 관리합니다. 또한 Red Hat이 아닌 플랫폼에서도 이를 사용하는 사람들이 있다는 이야기를 들었습니다. 하지만 직접 사용해 본 경험은 없습니다.

Linux-HA(drbd/heartbeat)도 훌륭하지만 VCS에서 오는 구성은 단순해 보이지만 다루기 힘들 수 있습니다. 이는 구성 관리 도구를 사용하여 자동화하는 것이 매우 쉽습니다.

개념 증명으로 IBM의 AIX 클러스터링 소프트웨어인 HACMP를 사용하여 Linux 클러스터를 설치했습니다. VCS보다 가격이 더 비싸기 때문에 권장하지 않습니다. IBM에는 HACMP 설치 및 유지 관리에 대한 특정 절차가 있으므로 여기서는 구성 관리를 사용하지 않겠습니다.

답변3

Michael은 현재 커뮤니티가 약간 분열되어 있고 문서가 약간 부족하다는 점에서 옳습니다.

사실 모든 것이 다 있어서 이해하기가 불가능합니다. 당신이 정말로 원하는 것은 "Pacemaker 구성 설명" 전자책입니다... (PDF로 링크). 당신은 그것을 십여 번 정도 읽고, 그것을 구현하려고 노력하고, 그리고 실제로 이해할 수 있도록 또 십여 번 읽어보고 싶을 것입니다.

현 시점에서 가장 잘 지원되는 Linux용 클러스터 서비스 구현은 아마도 Novell의 SLES11과 HAE(High Availability Extension)일 것입니다. 한두 달 전에 출시되었으며, 설정 및 실행 방법을 설명하는 두꺼운 200페이지 설명서가 함께 제공됩니다. Novell은 다양한 형태의 Pacemaker 구성 지원에도 뛰어났습니다.

그 외에도 동일한 패키지와 괜찮은 문서를 포함하는 RHEL5 구현이 있지만 SLES보다 비용이 더 많이 드는 것 같습니다. 적어도 우리에게는 그렇습니다.

지금 당장은 Heartbeat를 피하고 Pacekmaker/OpenAIS를 선택하겠습니다. 왜냐하면 앞으로 훨씬 더 나은 지원을 받을 것이기 때문입니다. 그러나 현재 커뮤니티 상태는 소수의 전문가가 있고, 프로덕션 환경에서 이를 실행하는 소수의 사람들이 있으며, 전혀 모르는 사람들이 엄청나게 많습니다. Pacemaker 메일링 리스트에 가입하여 Andrew Beekhof라는 사람에게 주목하세요.

요청된 세부정보를 제공하도록 편집하세요.

Pacemaker/OpenAIS는 '기본 리소스'(예: nfs-server)에 대한 '모니터링' 작업을 사용하여 리소스가 수행하는 작업을 추적합니다. 예제 NFS 서버가 X초 동안 나머지 클러스터에 응답하지 않으면 클러스터는 STONITH(Shoot The Other Node In The Head) 작업을 실행하여 기본 노드를 종료하고 보조 노드를 활성 노드로 승격합니다. 나중에 표시할 내용과 수행할 관련 작업을 구성에서 결정합니다. 구현 세부 사항은 장애 조치를 수행하려는 서비스, 특정 작업(예: 기본 노드를 마스터로 다시 승격)에 대한 실행 창에 따라 달라지며 모든 것이 가능한 한 거의 구성 가능합니다.

답변4

Linux에서는 heartbeat 및 drbd를 사용하여 클러스터링을 구현했습니다. Heartbeat는 서버의 상태를 확인합니다. DRBD는 서버 간 데이터 동기화에 사용됩니다. 한 서버에서는 Oracle 서비스가 실행되고 다른 서버에서는 Apache가 실행됩니다. oracle을 실행하는 서버가 실패하면 heartbeat는 이를 감지하고 apache를 실행하는 서버에서 oracle 서비스를 복원합니다. 그 반대도 마찬가지입니다. 이 설정은 다른 여러 목적으로 사용해 왔으며 지금까지 안정적으로 사용되었습니다.

관련 정보