3. Tìm hiểu về Network Load Balancing
3.8. Quá trình hội tụ
Các host trong nhóm trao đổi định kỳ các bản tin "heartbeat" multicast hoặc broadcast với nhau. Điều này cho phép các host có thể giám sát trạng thái của nhóm. Khi trạng thái của nhóm thay đổi (chẳng hạn như khi có host gặp trục trặc, rời khỏi hoặc tham gia vào nhóm), NLB kích hoạt một chu trình gọi là hội tụ trong đó các host trao đổi bản tin "heartbeat" để định ra một trạng thái mới, bền vững cho nhóm. Khi tất cả các đạt được sự "nhất trí" trạng thái mới của chúng sẽ được thiết lập và những thay đổi này sẽ được lưu vào nhật ký sự kiện.
Trong quá trình hội tụ, các host tiếp tục xử lý lưu lượng mạng đến như mọi khi ngoại trừ lưu lượng đến host bị lỗi không nhận được dịch vụ. Quá trình hội tụ kết thúc khi tất cả các host trong nhóm có được một quan hệ thành viên ổn định trong vòng một vài chu kỳ heartbeat.
Khi hoàn thành quá trình hội tụ, lưu lượng đến host bị lỗi sẽ được tái phân phối cho các host còn lại. Nếu một host được thêm vào nhóm, quá trình hội tụ cho phép host này nhận được phần tải của nó trong lưu lượng đã được cân bằng.
Việc mở rộng nhóm không ảnh hưởng đến các hoạt động của nhóm và theo một cách hoàn toàn trong suốt đối với tất cả các Internet client cũng như trước các chương trình phần mềm server. Tuy nhiên, nó có thể ảnh hưởng đến các phiên client vì các client có thể phải tái ánh xạ tới các host khác trong nhóm.
Trong chế độ unicast, mỗi host sẽ phát quảng bá (broadcast) bản tin "heartbeat" theo chu kỳ. Còn trong chế độ multicast, nó sẽ phát các bản tin này ở chế độ multicast. Mỗi bản tin "heartbeat" chiếm một khung Ethernet và được gắn thêm địa chỉ IP chính của nhóm nhằm cho phép nhiều nhóm có thể cùng tồn tại trên cùng một mạng con. Bản tin "heartbeat" của NLB của Microsoft được gán một giá trị 0x886F. Chu kỳ gửi các bản tin này mặc định là 01 giây. Giá trị này có thể thay đổi.
Trong quá trình hội tụ, chu kỳ này được giảm xuống chỉ còn một nửa để đẩy nhanh việc hoàn tất quá trình này. Thậm chí, đối với các cluster lớn, băng thông cần thiết để truyền các bản tin "heartbeat" rất thấp (24kBytes/s cho một cluster 16 đường). Để có thể khởi tạo quá trình hội tụ, theo mặc định cần 05 bản tin heartbeat không được nhận. Giá trị này có thể thay đổi.