Brocade 200e giữa Proxmox và FreeNAS: Buffer I/O error và isp0: Receive Error dù mọi cổng đều online
Đang chạy một hệ ảo hóa nhỏ: hai node Proxmox 6 và một target trên FreeNAS 11.2. Lúc HBA còn nối thẳng với target, mọi thứ chạy êm nhiều tháng không một lỗi nào. Lắp thêm Brocade 200e cũ vào giữa để khỏi kéo dây chéo nhau, thế là bắt đầu.
- hai node Proxmox 6, HBA QLogic QLE2462 và QLE2432
- target FreeNAS 11.2
- switch Brocade 200e, Fabric OS 6.1.0a
- SFP và patch cord LC lấy từ kho cũ, không còn nhãn mác
Trên node, trong log:
Buffer I/O error on dev dm-5
sau đó là reset thiết bị liên tục. Phía target thì timeout firmware trên các lệnh (CTIO7), và khoảng một phút một lần:
isp0: Receive Error
Sau đó target rớt khỏi cả hai initiator cùng lúc, chỉ chữa được bằng cách reboot node.
Đã thử những gì:
- quay lại nối thẳng - hoàn toàn không lỗi, tức là HBA, ổ đĩa và bản thân target không phải nguyên nhân
switchshowcho thấy cả ba cổng đều online, zoning tối thiểu, một zone duy nhất- tháo cắm lại patch cord, reboot switch
Nên nhìn vào đâu trên chính switch? online trong switchshow rõ ràng đang đánh lừa mình, nhưng kiểm tra nó bằng cách nào thì mình chưa biết.
Comments 4
Bạn tự tìm ra hết rồi đấy: crc_err và enc_out tăng dần chính là frame bị hỏng trên đường truyền, xuống dưới stack nó biến thành timeout firmware, reset thiết bị và
isp0: Receive Error. Không phải lỗi của kernel trên node hay của target, chúng chỉ đang thật thà kể lại những gì nhận được.Những gì bạn đã kiểm tra được đọc ra như sau:
sfpshowtrên cùng hai cổng đó, với dây dài bằng nhau, là so sánh các link đối xứng với nhau, không phải so với chuẩn nghĩ trong đầu. Cổng thứ ba, sạch sẽ, đang đóng vai chuẩn cho bạnCòn lại không nhiều. Chạy
fabriclog -s- ở đó thấy được cổng nhấp nháy lên xuống thế nào, kể cả khi switchshow lúc đó vẫn vẽ ra online. Và đổi SFP cùng với patch cord LC trên các cổng nghi ngờ, đổi cùng lúc chứ đừng tách riêng. Chỗ mình từng gặp chuyện tương tự và kết thúc đúng kiểu đó: đổi module và dây trên hai cổng có vấn đề, sau đó porterrshow suốt một ngày dưới tải vẫn bằng không, fabric không còn sập nữa.Logic đơn giản thôi: nối thẳng thì trên đường truyền có hai connector, qua switch thì thành bốn, cộng thêm hai module thừa. Một SFP cận biên về công suất hoặc dây bám bụi, thứ mà kết nối thẳng vẫn kéo nổi, thì đường dài hơn này không kéo nổi nữa. Nên online trong switchshow không phải chẩn đoán, chỉ là thực tế đã login được thôi.
switchshow chỉ nói đúng một điều: cổng thấy ánh sáng và login được vào fabric. Nó không biết gì về chất lượng tín hiệu cả, nên tin nó trong tình huống này là vô ích.
Chạy
portstatscleartrên cả ba cổng, cho chạy tải rồi xemporterrshow- quan tâm crc_err và enc_out, có tăng không và tăng ở đúng cổng nào. Tiện thểsfpshowtừng cổng: công suất thu và điện áp, so sánh giữa các cổng sẽ có ích. Và cho xemsysctl dev.isp.0phía FreeNAS trả về gì vào đúng lúc target rớt.Đã clear counter, cho chạy tải, xem kết quả. Bức tranh là: trên hai cổng, crc_err và enc_out tăng thành từng đợt, đúng vào những lúc node bị dồn dập Buffer I/O error, còn cổng thứ ba thì bằng không.
sfpshowtrên đúng hai cổng đó cho thấy mức thu thấp hơn rõ rệt so với cổng bên cạnh, trong khi dây dài bằng nhau.sysctl dev.isp.0lúc rớt cho thấy HBA đang tái khởi tạo, tức là nó phản ứng lại với sự cố chứ không phải nguyên nhân gây ra. Có vẻ đây là vật lý, không phải do Proxmox hay target.Bẫy tương tự cũng xảy ra ngoài FC, nên counter đáng xem trong mọi trường hợp. Từng có combo Intel X520-2 với module 10Gtek SR bước sóng 850 nm và Brocade FastIron CX 648S-PoE với module FCX-2XG cùng XFP chính hãng Brocade, năm mét sợi quang giữa chúng.
Server lên 10GbE đàng hoàng và truyền được, nhưng phía thu thì hoàn toàn không có gì, cổng trên switch treo ở Up với tốc độ None. Xem
show media, đối chiếu bước sóng và tầm xa cả hai phía, tắt negotiation trunk trên cổng - chẳng đi đến đâu, tốc độ trên XFP không chốt được. Cũng sợi quang đó cắm vào cổng SFP+ thì chạy ngon ở tốc độ gigabit. Bài học y hệt như của bạn: Up trên cổng không có nghĩa là frame đến nơi.