완전히 다시 시작하지 않고 하트 비트가 시스템에 새 IP 주소를 추가하도록하는 방법이 있습니까?


8

고 가용성을 위해 하트 비트를 사용합니다. 하트 비트 클러스터에 추가 IP 주소를 추가하고 싶지만 프로세스에서 클러스터를 완전히 다시 시작하고 싶지 않습니다. "haresources"파일을 다시 구문 분석하고 이에 대한 조치를 요청하는 신호를 하트 비트로 보낼 수 있습니까? 하트 비트 -r이 트릭을 수행하지 않는 것 같습니다.

답변:


6

문제는 "heartbeat -r"( "service heartbeat reload"를 실행할 때 init.d 스크립트에서 실행되는 명령)을 실행 한 후 충분히 오래 기다리지 않았다는 것입니다. 몇 분 후 IP가 예상대로 인터페이스.


하트 비트가 변경 자체를 적용합니까? 실제로 흡인 지수가 매우 낮습니다! 시간이 얼마나 걸리면 저희에게 알려주십시오 :-)
voretaq7

나는이 의견을 읽은 후에 오히려 오해의 소지가 있음을 깨달았다. 나는 전체 답변을 발췌하고 다시 썼다.
피터 그레이스

음, 그것은 더 합리적입니다-당신은 재 장전을 발동시켜야하지만, 즉시는 아닙니다. (그리고 그것은 더 결정 론적이며, 나를 행복하게합니다.)
voretaq7

2

하트 비트를 전혀 다시로드하지 않아도됩니다. 새로운 IPaddr 리소스를 haresources 파일에 추가하면됩니다.

IPaddr::xx.xx.xx.xx

그런 다음 시작하십시오

/etc/ha.d/resource.d/IPaddr xx.xx.xx.xx start

물론 활성 노드에서 IPaddr start를 실행해야합니다. 이제 방금 추가 한 IP 주소로 트래픽을 보내고받을 수 있습니다.


내가 한 일에도 불구하고 당신의 제안은 훨씬 더 우아하게 들리기 때문에 나는 내 자신의 대답을 옳은 것으로 받아 들일 것입니다. 나는 그것을 시도하고 싶지만 그것이 효과가 있다면, 찬성하고 받아 들여진 대답은 당신의 것이 될 것입니다.
피터 그레이스

좋아, 여기 거래가있다. 나는 이것을 시도하고 낮게 보았습니다. 문제는 하트 비트를 다시로드하지 않고이 작업을 수행하면 클러스터가 일관되지 않은 상태가됩니다. 소스를 확인했는데 하트 비트가 haresources 파일을 다시 분석하는 위치는 세 곳 뿐이며이 세 가지 조건은 모두 요청 된 재시작 중입니다. 따라서 클러스터가 페일 오버 및 페일 백인 경우, 리소스에 넣고 IPaddr <x> start로 수동으로 인스턴스화 된 IP는 페일 오버에서 다시 생성되지 않습니다. 저를 틀리게 증명해주세요. 그러나이 방법은 의지하는 것이 위험합니다.
피터 그레이스

하트 비트는 설정 파일 (예 : 리소스)을 동기화하지 않고 자신 만의 방법을 고안해야합니다. 내 환경에서 우리는 일반적으로 이것을 위해 일제히 사용하며 잘 작동하는 것 같습니다. haresources 파일은 캐시되지 않으므로 읽을 필요가있을 때 새로 읽습니다. haresources에있는 모든 항목이 됩니다 다시 시작 이벤트를 시작 (또는 이벤트는 원인 haresources은 읽을 수 있음); 여기에는 장애 조치가 포함됩니다.
Kendall

0

Hearbeat는 보조 시스템에서만 재시작해야하므로 자원 관리와 관련된 다운 타임을 피하십시오.

이 경우 기본 노드는 슬레이브 시스템이 '죽음'임을 감지하고 '페일 오버'를 강제 실행하여 자원 파일을 다시로드하고 누락 된 자원을 시작합니다.

이 작업을 수행 할 때 로그가 매우 분명합니다.

May  9 12:10:40 gw2 heartbeat: [3684]: info: Received shutdown notice from 'gw1'.
May  9 12:10:40 gw2 heartbeat: [3684]: info: Resources being acquired from gw1.
May  9 12:10:40 gw2 heartbeat: [26469]: debug: notify_world: setting SIGCHLD Handler to SIG_DFL
May  9 12:10:40 gw2 harc[26469]: info: Running /etc/ha.d//rc.d/status status
May  9 12:10:40 gw2 mach_down[26521]: info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired
May  9 12:10:40 gw2 mach_down[26521]: info: mach_down takeover complete for node gw1.
May  9 12:10:40 gw2 heartbeat: [3684]: info: mach_down takeover complete.
May  9 12:10:40 gw2 heartbeat: [3684]: debug: StartNextRemoteRscReq(): child count 1
May  9 12:10:40 gw2 IPaddr2[26520]: INFO:  Running OK
May  9 12:10:40 gw2 IPaddr2[26640]: INFO:  Running OK
May  9 12:10:40 gw2 IPaddr2[26725]: INFO:  Running OK
May  9 12:10:40 gw2 IPaddr2[26805]: INFO:  Running OK
May  9 12:10:40 gw2 IPaddr2[26890]: INFO:  Resource is stopped
May  9 12:10:40 gw2 heartbeat: [26470]: info: Local Resource acquisition completed.
May  9 12:10:40 gw2 heartbeat: [3684]: debug: StartNextRemoteRscReq(): child count 1
May  9 12:10:40 gw2 heartbeat: [26953]: debug: notify_world: setting SIGCHLD Handler to SIG_DFL
May  9 12:10:40 gw2 harc[26953]: info: Running /etc/ha.d//rc.d/ip-request-resp ip-request-resp
May  9 12:10:40 gw2 ip-request-resp[26953]: received ip-request-resp IPaddr2::1.2.3.4 OK yes
May  9 12:10:40 gw2 ResourceManager[26976]: info: Acquiring resource group: gw2 IPaddr2::1.2.3.4
May  9 12:10:40 gw2 IPaddr2[27006]: INFO:  Resource is stopped
May  9 12:10:40 gw2 ResourceManager[26976]: info: Running /etc/ha.d/resource.d/IPaddr2 1.2.3.4 start
May  9 12:10:40 gw2 IPaddr2[27115]: INFO: ip -f inet addr add 1.2.3.4/24 brd 1.2.3.255 dev brwan
May  9 12:10:40 gw2 IPaddr2[27115]: INFO: ip link set brwan up
May  9 12:10:40 gw2 IPaddr2[27115]: INFO: /usr/lib/heartbeat/send_arp -i 200 -r 5 -p /var/run/resource-agents/send_arp-1.2.3.4 brwan 1.2.3.4 auto not_used not_used
May  9 12:10:40 gw2 IPaddr2[27091]: INFO:  Success

May  9 12:10:47 gw2 heartbeat: [3684]: WARN: node gw1: is dead
May  9 12:10:47 gw2 heartbeat: [3684]: info: Dead node gw1 gave up resources.
May  9 12:10:47 gw2 heartbeat: [3684]: info: Link gw1:eth0 dead.

May  9 12:10:59 gw2 heartbeat: [3684]: info: Heartbeat restart on node gw1
May  9 12:10:59 gw2 heartbeat: [3684]: info: Link gw1:eth0 up.
May  9 12:10:59 gw2 heartbeat: [3684]: info: Status update for node gw1: status init
May  9 12:10:59 gw2 heartbeat: [3684]: info: Status update for node gw1: status up
May  9 12:10:59 gw2 heartbeat: [3684]: debug: StartNextRemoteRscReq(): child count 1
May  9 12:10:59 gw2 heartbeat: [28604]: debug: notify_world: setting SIGCHLD Handler to SIG_DFL
May  9 12:10:59 gw2 heartbeat: [3684]: debug: get_delnodelist: delnodelist= 
May  9 12:10:59 gw2 harc[28604]: info: Running /etc/ha.d//rc.d/status status
May  9 12:10:59 gw2 heartbeat: [3684]: info: Status update for node gw1: status active
May  9 12:10:59 gw2 heartbeat: [3684]: debug: StartNextRemoteRscReq(): child count 1
May  9 12:10:59 gw2 heartbeat: [28619]: debug: notify_world: setting SIGCHLD Handler to SIG_DFL
May  9 12:10:59 gw2 harc[28619]: info: Running /etc/ha.d//rc.d/status status
May  9 12:10:59 gw2 heartbeat: [28634]: debug: notify_world: setting SIGCHLD Handler to SIG_DFL
May  9 12:10:59 gw2 harc[28634]: info: Running /etc/ha.d//rc.d/status status
May  9 12:11:00 gw2 heartbeat: [3684]: info: remote resource transition completed.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.