
저는 세 개의 CentOS 5.4 상자로 구성된 부하 분산 서버 솔루션 설정을 조사 중입니다. 이 상자 중 두 개는 한 시설에 있고, 세 번째 상자는 다른 시설에 있습니다.
현재 컴퓨터의 로드 밸런싱을 위해 heartbeat, ldirectord, ipvsadm을 설정하는 중이지만 제대로 작동할지는 잘 모르겠습니다.
저는 이 모든 작동 방식에 대한 자세한 내용을 잘 알지 못합니다. 하지만 이러한 서버가 모두 동일한 LAN에 있지 않을 때 로드 밸런싱이 올바르게 작동할까요? 하트비트가 SNMP를 사용하여 신호를 보내는지 여부는 확실하지 않습니다. 이는 LAN을 통해서만 작동합니다. 누구든지 이것을 시도했거나 다른 해결책을 찾았습니까?
답변1
이것은 빠르게 복잡해지는 큰 주제입니다. 그만큼CAP 정리이는 이루어져야 하는 더 높은 수준의 선택을 식별하므로 좋은 출발점이 됩니다.
쓰기 작업이 많은 웹 응용 프로그램을 처리하는 경우 데이터 무결성을 유지하면서 인터넷을 통해 로드를 분산하는 것이 더 어려워집니다. 읽기 중심 애플리케이션(검색!)은 데이터 쓰기 실행에 신경 쓸 필요가 없으므로 배포하기가 더 쉽습니다.
IPVLinux가 본질적으로 레이어 4 스위치가 되도록 허용합니다. 저는 이를 레이어 2(ARP/이더넷-링크 레이어)에서 사용하여 가장 큰 성공을 거두었으며 그것이 나의 첫 번째 선택이 될 것이지만 다음과 같은 것을 사용하는 것이 가능할 수도 있습니다.LVS-Tun브로드캐스트 계층에 연결되지 않은 지리적으로 분리된 서버의 경우. ipvsadm은 ipvs용 사용자 도구이고 ldirectord는 ipvs 리소스를 관리하는 데몬입니다.
심장 박동이 효과적으로 성공했습니다.맥박 조정 장치. 다른 서버를 모니터링하려면 다중 링크가 있어야 합니다. 서버 간에 직렬 또는 중복 물리적 연결이 없을 경우 위험이 훨씬 더 커집니다. 두 사이트 사이에서 하트비트가 모니터링하는 물리적으로 구분되는 여러 개의 인터넷 연결도 다운될 수 있습니다. 자동 장애 조치는 분할 브레인으로 인한 데이터 손상 위험이 있으므로 데이터 위험이 작용하는 곳입니다. 이러한 위험을 완화할 수 있는 이상적인 방법은 없습니다.
장애 조치 프로세스에 더 많은 논리를 주입할 수 있습니다. 예를 들어:
path1이 다운되고 path2가 다운되면 이 프로세스가 실행되고 있지 않으므로 이 작업을 수행할 수 없습니다. 그런 다음 장애 조치를 수행합니다.
이렇게 하면 위험이 줄어들지만 그래도 단거리에 걸쳐 서버를 물리적으로 연결할 수 있을 정도는 아닙니다.
정적 콘텐츠를 사용하면 직원이 쉽게콘텐츠 배포 네트워크.
다음을 사용하여 간단한 로드 밸런싱 및 장애 조치를 수행할 수 있습니다.라운드 로빈 DNS, 이는 더 오류가 많습니다.
국경 게이트웨이 프로토콜네트워크 계층에서 고가용성을 활성화할 수 있는 네트워크 프로토콜입니다.
궁극적으로 충분한 자금(시간/리소스)이 있으면 적절한 SLA를 개발하여 높은 수준의 가용성을 구현할 수 있습니다. 귀하의 예산은 궁극적인 제약이 될 것입니다. 요구 사항을 정의한 다음 절충안이 있으므로 예산 내에서 무엇을 달성할 수 있는지 확인하십시오.
나는 적어도 쓰기량이 많은 애플리케이션의 경우 동일한 물리적 전제 내에서 고가용성과 자동 장애 조치를 활성화하는 것이 더 합리적이라는 것을 종종 발견했습니다. 재해 복구 계획 및 SLA의 일환으로 물리적으로 분리된 사이트에 대한 수동 장애 조치 프로세스를 마련하여 데이터 무결성을 유지하면서도 여전히 품질 서비스 수준을 유지할 수 있습니다.
답변2
서로 연결될 수 있을 때까지는 서로 다른 위치에 서로 다른 서버가 있어도 문제가 되지 않습니다.
문제는 그들 사이의 대역폭과 당신이 그것에 흐르게 만드는 것입니다.
하트비트는 snmp를 사용하지 않으며 멀티캐스트, 유니캐스트 또는 브로드캐스트일 수 있습니다. 이는 특정 프로토콜입니다(어쨌든 snmp는 LAN 사이에서 작동하며 UDP 프로토콜입니다).
로드 밸런싱을 시도하는 서비스는 무엇입니까?
답변3
또 다른 아이디어는 고가용성을 갖춘 DRBD를 구현하는 것입니다. 이 사이트를 확인해보세요http://www.drbd.org/home/what-is-drbd/