คู่มือเกมแลค › L5 อุปกรณ์เครือข่ายในดาต้าเซ็นเตอร์
การ failover ของอุปกรณ์เครือข่าย Network device failover
ID สาเหตุ dc-failover · ผู้รับผิดชอบหลัก อินฟราเครือข่าย (ทีมอินฟรา) · ร่วมกับ พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม), พัฒนาไคลเอนต์ (ทีมพัฒนาเกม)
เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →
ระหว่างไม่กี่วินาทีที่เราเตอร์หรือไฟร์วอลล์ตัวหนึ่งเสียแล้วสลับไปใช้อุปกรณ์สำรอง (failover) ทุกคนจะค้างพร้อมกัน
ทำไม อุปกรณ์เสียหรืออยู่ระหว่างซ่อมบำรุง จึงสลับไปใช้อุปกรณ์สำรอง → ผลคือ การสลับใช้เวลาหลายวินาที ถ้าข้อมูลเซสชันไม่ได้ซิงก์ไว้ การเชื่อมต่อจะถูกรีเซ็ต → บนหน้าจอ ผู้เล่นทุกคนในเซิร์ฟเวอร์ค้างพร้อมกัน, หลุดจำนวนมาก
- อาการ
- ค้าง, หลุด
- ปัจจัย
- แพ็กเก็ตหาย
- ใครเจอ
- ทั้งเซิร์ฟเวอร์
- เกิดเมื่อไร
- สุ่มเป็นครั้งคราว
- ผู้รับผิดชอบ
- ผู้รับผิดชอบหลัก อินฟราเครือข่าย (ทีมอินฟรา) · ร่วมกับ พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม), พัฒนาไคลเอนต์ (ทีมพัฒนาเกม)
- งานฝั่งทีมพัฒนาเกม
- เซิร์ฟเวอร์: ตั้งไทม์เอาต์ที่ทนการขาดช่วงสั้น ๆ (หลายวินาที) ได้, ถ้าขาดแล้วเชื่อมต่อใหม่ ให้รับเซสชันต่อด้วย session token ไคลเอนต์: เชื่อมต่อใหม่อัตโนมัติเมื่อหลุด (กระจายช่วงห่างของการลองใหม่แบบสุ่มเพื่อไม่ให้แห่มาพร้อมกัน)
- งานฝั่งทีมอินฟรา
- ทำระบบสำรอง (redundancy) ที่แชร์สถานะการเชื่อมต่อ, ใช้ BFD ตรวจจับความเสียหายภายใน 1 วินาที, ทดสอบการสลับเป็นประจำ
- ตัวเลขที่ควรรู้
- ถ้าอุปกรณ์ตรวจพบความเสียหายได้ทันที จะใช้เวลาราว 1–3 วินาที ถ้าไม่มีการตรวจจับความเสียหายแบบเร็ว (BFD) และปล่อยให้ใช้ตัวจับเวลาค่าเริ่มต้นของ BGP อย่างเดียว เส้นทางอาจขาดไป 90–180 วินาทีกว่าอุปกรณ์ข้างเคียงจะตรวจพบ
- บนกราฟ
- การเชื่อมต่อหลุดพร้อมกัน · จำนวนการเชื่อมต่อ, ปริมาณรับส่งรวมของเซิร์ฟเวอร์
- จุดที่ต้องดู
- ดู event log ของเราเตอร์และไฟร์วอลล์ (VRRP เปลี่ยนบทบาท, เซสชัน BFD หรือ BGP ล่ม, ประวัติ failover) และจำนวนการเชื่อมต่อกับปริมาณรับส่งรวมของเซิร์ฟเวอร์ในเวลาเดียวกัน
- สัญญาณว่าใช่
- ในเวลาที่ log ของอุปกรณ์บันทึกการสลับ ทราฟฟิกของเซิร์ฟเวอร์ทุกเครื่องหลังอุปกรณ์นั้นเป็น 0 ไปหลายวินาที หรือจำนวนการเชื่อมต่อลดลงพร้อมกัน
- สัญญาณว่าไม่ใช่
- ถ้าการเชื่อมต่อลดลงเฉพาะเซิร์ฟเวอร์เครื่องเดียว น่าจะเป็น “เซิร์ฟเวอร์แครช” หรือ “ปัญหาไดรเวอร์/เฟิร์มแวร์ของ NIC” ถ้า log ของอุปกรณ์สะอาด และเซิร์ฟเวอร์ที่หยุดเป็น VM บนคลาวด์เครื่องเดียว น่าจะเป็น “การซ่อมบำรุงโฮสต์คลาวด์/live migration”
- วิธีตรวจ
- ใช้เครื่องมือฝั่งอินฟรา (ไม่ต้องใช้โค้ดเกม)
แหล่งอ้างอิง
- RFC 5880: Bidirectional Forwarding Detection (BFD) IETF
วิธี Hello ของโปรโตคอล routing ใช้เวลาตรวจพบความเสียหายเกิน 1 วินาที จึงมี BFD ที่สร้างขึ้นเพื่อตรวจพบได้เร็วกว่านั้น - RFC 7938: Use of BGP for Routing in Large-Scale Data Centers IETF
ถ้าพึ่งแค่ BGP keepalive การ converge จะช้า ถ้ารับสัญญาณลิงก์ล่มทันทีแล้วตัดเซสชัน จะตรวจพบได้ในระดับ ms และ converge ใหม่ - RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6 IETF
VRRP ส่ง advertisement ทุก 1 วินาทีเป็นค่าเริ่มต้น ถ้า advertisement ขาดไปนานกว่าราว 3 เท่าของช่วงนั้น อุปกรณ์สำรองจะรับบทบาทแทน (ถ้าใช้ค่าเริ่มต้นจะเป็นราว 3 วินาทีเศษ)
สาเหตุที่ควรดูประกอบ
ชั้นเดียวกัน: L5 อุปกรณ์เครือข่ายในดาต้าเซ็นเตอร์
สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (ค้าง)
ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง