Phiên bản TL; DR: Hóa ra đây là một lỗi mạng Broadcom sâu trong Windows Server 2008 R2. Thay thế bằng phần cứng Intel đã sửa nó. Chúng tôi không sử dụng phần cứng Broadcom nữa. Không bao giờ.
Chúng tôi đã sử dụng HAProxy cùng với nhịp tim từ dự án Linux-HA. Chúng tôi đang sử dụng hai phiên bản linux để cung cấp chuyển đổi dự phòng. Mỗi máy chủ có IP công cộng riêng và một IP duy nhất được chia sẻ giữa hai máy bằng giao diện ảo (eth1: 1) tại IP: 69.59.196.211
Giao diện ảo (eth1: 1) IP 69.59.196.211 được định cấu hình là cổng cho các máy chủ windows phía sau chúng và chúng tôi sử dụng ip_forwarding để định tuyến lưu lượng.
Chúng tôi đang gặp sự cố ngừng mạng thỉnh thoảng trên một trong các máy chủ windows phía sau cổng linux của chúng tôi. HAProxy sẽ phát hiện máy chủ đang ngoại tuyến mà chúng tôi có thể xác minh bằng cách từ xa đến máy chủ bị lỗi và cố gắng ping cổng:
Ping 69.59.196.211 với 32 byte dữ liệu: Trả lời từ 69.59.196.220: Máy chủ đích không thể truy cập được.
Chạy arp -a
trên máy chủ bị lỗi này cho thấy rằng không có mục nhập cho địa chỉ cổng (69.59.196.211):
Giao diện: 69.59.196.220 --- 0xa Địa chỉ Internet Loại địa chỉ vật lý 69.59.196.161 00-26-88-63-c7-80 động 69.59.196.210 00-15-5d-0a-3e-0e động 69.59.196.212 00-21-5e-4d-45-c9 động 69.59.196.213 00-15-5d-00-b2-0d động 69.59.196.215 00-21-5e-4d-61-1a động 69.59.196.217 00-21-5e-4d-2c-e8 động 69.59.196.219 00-21-5e-4d-38-e5 động 69.59.196.221 00-15-5d-00-b2-0d động 69.59.196.222 00-15-5d-0a-3e-09 động 69.59.196.223 ff-ff-ff-ff-ff-ff tĩnh 224.0.0.22 01-00-5e-00-00-16 tĩnh 224.0.0.252 01-00-5e-00-00-fc tĩnh Tĩnh 225.0.0.1 01-00-5e-00-00-01
Trên các phiên bản cổng linux của chúng tôi arp -a
hiển thị:
pic-colo-196-220.peak.org (69.59.196.220) tại <không đầy đủ> trên eth1 stackoverflow.com (69.59.196.212) lúc 00: 21: 5e: 4d: 45: c9 [ether] trên eth1 pic-colo-196-215.peak.org (69.59.196.215) lúc 00: 21: 5e: 4d: 61: 1a [ether] trên eth1 pic-colo-196-219.peak.org (69.59.196.219) lúc 00: 21: 5e: 4d: 38: e5 [ether] trên eth1 pic-colo-196-222.peak.org (69.59.196.222) lúc 00: 15: 5d: 0a: 3e: 09 [ether] trên eth1 pic-colo-196-209.peak.org (69.59.196.209) lúc 00: 26: 88: 63: c7: 80 [ether] trên eth1 pic-colo-196-217.peak.org (69.59.196.217) lúc 00: 21: 5e: 4d: 2c: e8 [ether] trên eth1
Tại sao arp thỉnh thoảng đặt mục nhập cho máy chủ bị lỗi này là <không đầy đủ>? Chúng ta có nên xác định mục arp của chúng tôi tĩnh? Tôi đã luôn để arp một mình vì nó hoạt động 99% thời gian, nhưng trong trường hợp này có vẻ như nó bị lỗi. Có bất kỳ bước khắc phục sự cố bổ sung nào chúng tôi có thể giúp giải quyết vấn đề này không?
Những điều chúng tôi đã thử
Tôi đã thêm một mục arp tĩnh để thử nghiệm trên một trong các cổng linux mà vẫn không giúp được.
root@haproxy2:~# arp -a
peak-colo-196-215.peak.org (69.59.196.215) at 00:21:5e:4d:61:1a [ether] on eth1
peak-colo-196-221.peak.org (69.59.196.221) at 00:15:5d:00:b2:0d [ether] on eth1
stackoverflow.com (69.59.196.212) at 00:21:5e:4d:45:c9 [ether] on eth1
peak-colo-196-219.peak.org (69.59.196.219) at 00:21:5e:4d:38:e5 [ether] on eth1
peak-colo-196-209.peak.org (69.59.196.209) at 00:26:88:63:c7:80 [ether] on eth1
peak-colo-196-217.peak.org (69.59.196.217) at 00:21:5e:4d:2c:e8 [ether] on eth1
peak-colo-196-220.peak.org (69.59.196.220) at 00:21:5e:4d:30:8d [ether] PERM on eth1
root@haproxy2:~# arp -i eth1 -s 69.59.196.220 00:21:5e:4d:30:8d
root@haproxy2:~# ping 69.59.196.220
PING 69.59.196.220 (69.59.196.220) 56(84) bytes of data.
--- 69.59.196.220 ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6006ms
Khởi động lại máy chủ web windows giải quyết vấn đề này tạm thời mà không có thay đổi nào khác đối với mạng nhưng kinh nghiệm của chúng tôi cho thấy vấn đề này sẽ quay trở lại.
Trao đổi card mạng và thiết bị chuyển mạch
Tôi nhận thấy đèn liên kết trên cổng của công tắc cho máy chủ windows bị lỗi đang chạy ở tốc độ 100Mb thay vì 1Gb trên giao diện bị lỗi. Tôi đã chuyển cáp sang một số cổng mở khác và liên kết chỉ ra 100Mb cho mỗi cổng mà tôi đã thử. Tôi cũng đổi cáp với kết quả tương tự. Tôi đã thử thay đổi các thuộc tính của card mạng trong windows và máy chủ bị khóa và yêu cầu thiết lập lại cứng sau khi nhấp vào áp dụng. Máy chủ windows này có hai giao diện mạng vật lý, vì vậy tôi đã đổi cáp và cài đặt mạng trên hai giao diện để xem sự cố có tuân theo giao diện không. Nếu giao diện công cộng bị hỏng lần nữa, chúng tôi sẽ biết rằng đó không phải là vấn đề với card mạng.
(Chúng tôi cũng đã thử một công tắc khác mà chúng tôi có trong tay, không thay đổi)
Thay đổi phiên bản trình điều khiển phần cứng mạng
Chúng tôi đã có cùng một vấn đề với trình điều khiển Broadcom mới nhất, cũng như trình điều khiển tích hợp sẵn có trong Windows Server 2008 R2.
Thay thế cáp mạng
Như một nỗ lực cuối cùng, chúng tôi nhớ một thay đổi khác xảy ra là thay thế tất cả các dây vá giữa các máy chủ / công tắc của chúng tôi. Chúng tôi đã mua hai bộ, một bộ màu xanh có độ dài 1ft - 3ft cho các giao diện riêng và một bộ cáp đỏ khác cho các giao diện công cộng. Chúng tôi đã trao đổi tất cả các cáp vá giao diện công cộng với một thương hiệu khác và chạy các máy chủ của chúng tôi mà không gặp sự cố trong cả tuần ... aaaaaand sau đó vấn đề tái phát.
Vô hiệu hóa tổng kiểm tra giảm tải, loại bỏ TProxy
Chúng tôi cũng đã thử vô hiệu hóa tổng kiểm tra TCP / IP trong trình điều khiển, không thay đổi. Bây giờ chúng tôi đang rút TProxy và chuyển sang x-forwarded-for
sắp xếp mạng truyền thống hơn mà không cần viết lại địa chỉ IP ưa thích nào. Chúng tôi sẽ xem nếu điều đó giúp.
Chuyển đổi nhà cung cấp ảo hóa
Nếu không may, điều này có liên quan đến Hyper-V theo một cách nào đó (chúng tôi lưu trữ máy ảo Linux trên đó), chúng tôi đã chuyển sang VMWare Server. Không thay đổi.
Chuyển đổi mô hình máy chủ
Chúng tôi đã đạt đến cuối sợi dây xử lý sự cố và hiện đang chính thức liên quan đến hỗ trợ của Microsoft. Họ đề nghị thay đổi mô hình máy chủ:
- http://en.wikipedia.org/wiki/host_model
- http://technet.microsoft.com/en-us/magazine/2007.09.cableguy.aspx
Chúng tôi đã làm điều đó và chúng tôi cũng đã nhận được một số hotfix kernel chưa được công bố có lẽ đã được đưa vào 2008 R2 SP1. Không sửa.
Thay thế phần cứng card mạng
Cuối cùng, việc thay thế phần cứng mạng Broadcom bằng phần cứng mạng Intel đã khắc phục vấn đề này cho chúng tôi. Vì vậy, tôi có xu hướng nghĩ rằng trình điều khiển Broadcom Windows Server 2008 R2 có lỗi!