내 구성에는 5개의 노드가 있으며, 4개 노드는 리소스를 호스팅할 수 있고 1개 노드는 리소스입니다. 내가 원하는 것은 한 노드에서 다른 노드로 N번 마이그레이션된 후 리소스가 완전히 중지되도록 하는 것입니다.
따라서 예제 시나리오는 다음과 같습니다. 리소스 VIP1이 노드에서 실행되고 one
해당 모니터가 실패하면 migration-threshold
도착 시 노드로 이동한 two
다음 다시 실패하고 노드로 이동한 three
다음 다시 실패합니다. 찾고 있습니다.) 노드로 마이그레이션하는 것을 방지합니다 four
. 일종의 마이그레이션 카운터가 필요한 것 같아요.
이는 테스트 구성이므로 실제로는 더 많은 노드와 리소스를 갖게 됩니다. 그래서 구성은 최대한 단순하게 하고 싶습니다. 각 리소스에 대한 선택 또는 선택 해제 위치 기본 설정 정책을 사용하여 이를 달성할 수 있다고 생각하지만 이는 유지 관리가 간단하지도 쉽지도 않습니다. 더 좋은 방법이 있나요?
PS 현재 구성에서는 VIP를 으로 넘치게 하면 hping
완전히 중지되기 전에 모든 노드를 반복하게 됩니다(청소하거나 옵션을 도입할 때까지 더 이상 실행할 노드가 없기 때문입니다 failure-timeout
).
버전:
[~] corosync -v
Corosync Cluster Engine, version '2.3.6'
Copyright (c) 2006-2009 Red Hat, Inc.
[~] crm --version
crm 2.2.0
[~] cat /etc/debian_version
8.5
맥박 조정기 구성:
[~] crm configure show
node 1: one
node 2: two
node 3: three
node 4: arbitr \
attributes standby=on
node 5: four
primitive VIP1 IPaddr2 \
params ip=10.10.11.230 cidr_netmask=22 \
op monitor interval=1s timeout=40ms \
meta migration-threshold=1 target-role=Started
location preferOne VIP1 50: one
property cib-bootstrap-options: \
dc-version=1.1.14-70404b0 \
cluster-infrastructure=corosync \
cluster-name=debian \
stonith-enabled=false \
last-lrm-refresh=1474984960 \
have-watchdog=false
편집: 전체 구성의 컨텍스트와 내용은 다음과 같습니다. LVS가 프런트엔드로 트래픽을 프록시하는 두 개의 로드 밸런서가 있습니다. 고가용성은 단순한 연결 유지 구성과 2개의 VIP(이중 활성 구성, 일반적으로 각 LVS에 1개의 VIP가 있음)를 통해 달성되었습니다. 그러나 일부 사람들은 최근 정기적으로 DDoS를 시작했으며 연결 유지 설정이 더 이상 예상대로 작동하지 않습니다. DDoS 1 VIP(예: 호스트 1개)만 있어도 연결 유지는 다른 호스트의 인바운드 트래픽을 잃고 두 번째 호스트를 점유합니다. VIP가 되어 전체 시스템을 약화시킵니다.
그래서 우리는 a) 분할 브레인을 피하기 위해 쿼럼으로 VIP를 관리하는 방법을 찾고 b) LVS 호스트를 최소한 두 배로 늘리는 방법을 생각했습니다.
그래서 저는 두 개의 기본 노드와 하나의 대기 노드가 있을 때 구성하기가 매우 간단한 Pacemaker+corosync를 테스트했습니다. 예상한 대로 VIP 중 하나가 DDoSed 공격을 받으면 VIP는 먼저 다른 노드로 마이그레이션된 다음 완전히 종료됩니다. 노드를 추가하면 "리소스 워크"가 길어지는데 이는 정확하게 우리가 원하는 것은 아닙니다. VIP를 최대한 빨리 종료하고 싶지만 물론 내부에서 자동으로 복구할 수 있는 기회도 남기고 싶습니다. 하드웨어 문제(노드가 갑자기 다운되는 경우 FE). 그래서 저는... 리소스를 한 번만 마이그레이션하고 그래도 실패하면 종료하는 방법이 있을지도 모른다고 생각했습니다. 하드웨어 오류로부터 우리를 보호합니다. 부분적인 DDoS 공격을 받을 때 시간을 절약합니다.
그 정도입니다. 너무 자세했다면 죄송합니다. 처음부터 이 문제를 해결하기 위해 잘못된 도구를 선택한 경우 알려 주시기 바랍니다. (물론 다른 방법으로도 DDoS를 방어하지만, 공격이 성공할 경우 피해를 최소화하고 싶습니다.)
답변1
이것은 확실히 흥미로운 사용 사례입니다. 공유해 주셔서 감사합니다…
VIP가 DDoS 공격을 받으면 안정적으로 핑을 수행하지 못할 수 있습니다. 어쩌면 Pacemaker의 "ping" 리소스 에이전트를 살펴볼 수도 있습니다.
Clusterlabs 문서에는 여기에 간략하게 언급되어 있습니다. http://clusterlabs.org/doc/en-US/Pacemaker/1.0/html/Pacemaker_Explained/ch09s03s03.html
선호하는 클러스터 구성 관리 도구를 통해 리소스 에이전트의 정보를 보면 자세한 정보를 찾을 수 있습니다.
# crm ra info ping
--or--
# pcs resource describe ping
도움이 되었기를 바랍니다.