Có cách nào để buộc heartbeat thêm địa chỉ IP mới vào hệ thống mà không cần khởi động lại đầy đủ không?


8

Chúng tôi sử dụng nhịp tim cho tính sẵn sàng cao. Tôi muốn thêm một địa chỉ IP bổ sung vào cụm nhịp tim, nhưng tôi không muốn thực hiện khởi động lại toàn bộ cụm trong quy trình. Có tín hiệu nào tôi có thể gửi đến nhịp tim sẽ nhắc nó phân tích lại tệp "hares nguồn" và hành động theo nó không? heartbeat -r không xuất hiện để lừa.

Câu trả lời:


6

Vấn đề là tôi đã không đợi đủ lâu sau khi thực hiện "heartbeat -r" (lệnh được thực thi trong tập lệnh init.d khi bạn chạy "dịch vụ tải lại nhịp tim".) Sau vài phút, IP xuất hiện trên Giao diện như mong đợi.


Nhịp tim áp dụng sự thay đổi chính nó? Điều đó thực sự có một thương số rất thấp! Nếu bạn tìm hiểu mất bao lâu, hãy cho chúng tôi biết :-)
voretaq7

Tôi nhận ra sau khi đọc bình luận này rằng nó khá sai lệch; Tôi đã thu thập toàn bộ câu trả lời và viết lại nó.
Peter Grace

mmh, điều đó hợp lý hơn - Bạn phải kích hoạt tải lại, nhưng nó không phải là ngay lập tức. (Và nó mang tính quyết định hơn, khiến tôi hạnh phúc.)
voretaq7

2

Bạn không cần phải tải lại Heartbeat. Chỉ cần thêm tài nguyên IPaddr mới vào tệp hares nguồn của bạn, đại loại như thế này

IPaddr::xx.xx.xx.xx

và sau đó bắt đầu nó

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

Tất nhiên, bạn nên đảm bảo phát hành IPaddr bắt đầu trên nút hoạt động. Bây giờ bạn có thể gửi và nhận lưu lượng truy cập trên địa chỉ IP vừa được thêm.


Tôi sẽ không chấp nhận câu trả lời của mình là chính xác, vì mặc dù những gì tôi đã làm, đề xuất của bạn nghe có vẻ thanh lịch hơn đáng kể. Tôi muốn dùng thử, nhưng nếu nó hoạt động, upvote và câu trả lời được chấp nhận sẽ là của bạn.
Peter Grace

OK, đây là thỏa thuận. Tôi đã thử điều này và thấp và kìa, nó đã làm việc! Vấn đề là làm điều này mà không tải lại nhịp tim sẽ khiến cụm máy ở trạng thái không nhất quán. Tôi đã kiểm tra nguồn và chỉ có ba nơi mà nhịp tim sẽ lặp lại tệp hares nguồn và cả ba điều kiện đó đều trong quá trình khởi động lại được yêu cầu. Như vậy, nếu một cụm bị chuyển đổi dự phòng và chuyển đổi dự phòng, ip bạn đặt trong nguồn hares và được khởi tạo thủ công với IPaddr <x> start, sẽ không được tạo lại trong chuyển đổi dự phòng. Hãy chứng minh tôi sai, nhưng có vẻ như phương pháp này rất nguy hiểm khi dựa vào.
Peter Grace

Hoàn toàn đúng, Heartbeat không đồng bộ hóa các tệp cấu hình (ví dụ như nguồn hares) cho bạn - bạn phải nghĩ ra phương pháp của riêng mình. Trong môi trường của tôi, chúng tôi thường sử dụng unison cho việc này và dường như nó hoạt động tốt. Tệp haresource không được lưu trong bộ nhớ cache và do đó sẽ được đọc lại khi cần đọc. Bất kỳ mục nào trong nguồn hares sẽ được bắt đầu khi khởi động lại các sự kiện (hoặc các sự kiện khiến cho nguồn tin được đọc); điều này bao gồm chuyển đổi dự phòng.
Kendall

0

Hearbeat chỉ phải được khởi động lại trên máy thứ cấp, do đó tránh mọi thời gian chết liên quan đến quản lý tài nguyên.

Trong trường hợp này, nút chính phát hiện ra rằng máy phụ thuộc đã 'chết' và buộc 'chuyển đổi dự phòng' tải lại tệp tài nguyên và bắt đầu các tài nguyên bị thiếu.

Các nhật ký khá rõ ràng khi làm điều này:

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.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.