ทำไมการล็อกเซิร์ฟเวอร์จึงทำให้เซิร์ฟเวอร์อื่น ๆ หลุดจากเครือข่าย


9

เรามีเซิร์ฟเวอร์ Proxmox สองสามเครื่อง (Proxmox ทำงานบน Debian) และประมาณเดือนละครั้งหนึ่งในนั้นจะมีเคอร์เนลที่ตื่นตระหนกและล็อค ส่วนที่แย่ที่สุดเกี่ยวกับการล็อกอัพเหล่านี้คือเมื่อเป็นเซิร์ฟเวอร์ที่อยู่บนสวิตช์ที่แยกต่างหากจากหลักของคลัสเตอร์เซิร์ฟเวอร์ Proxmox อื่น ๆ ทั้งหมดบนสวิตช์นั้นจะหยุดตอบสนองจนกว่าเราจะพบเซิร์ฟเวอร์ที่ล้มเหลวและรีบูต

เมื่อเรารายงานปัญหานี้ในฟอรัม Proxmox เราได้รับคำแนะนำให้อัปเกรดเป็น Proxmox 3.1 และเราอยู่ในขั้นตอนการทำเช่นนั้นในช่วงหลายเดือนที่ผ่านมา น่าเสียดายที่หนึ่งในเซิร์ฟเวอร์ที่เราโอนย้ายไป Proxmox 3.1 ถูกล็อกด้วยเคอร์เนลที่ตื่นตระหนกในวันศุกร์และเซิร์ฟเวอร์ Proxmox ทั้งหมดที่อยู่ในสวิตช์เดียวกันนั้นไม่สามารถเข้าถึงเครือข่ายได้จนกว่าเราจะสามารถค้นหาเซิร์ฟเวอร์ที่ล้มเหลวและรีบูตได้

เอาล่ะเซิร์ฟเวอร์ Proxmox เกือบทั้งหมดบนสวิตช์ ... ฉันพบว่ามันน่าสนใจที่เซิร์ฟเวอร์ Proxmox บนสวิตช์เดียวกันนั้นที่ยังคงอยู่บน Proxmox เวอร์ชัน 1.9 นั้นไม่ได้รับผลกระทบ

นี่เป็นภาพหน้าจอของคอนโซลของเซิร์ฟเวอร์ที่เสียหาย:

ป้อนคำอธิบายรูปภาพที่นี่

เมื่อเซิร์ฟเวอร์ล็อคส่วนที่เหลือของเซิร์ฟเวอร์ที่อยู่บนสวิตช์เดียวกันกับที่เรียกใช้ Proxmox 3.1 ก็ไม่สามารถเข้าถึงได้และได้พ่นสิ่งต่อไปนี้:

e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
...etc...

uname -a เอาต์พุตของเซิร์ฟเวอร์ที่ถูกล็อค:

Linux ------ 2.6.32-23-pve #1 SMP Tue Aug 6 07:04:06 CEST 2013 x86_64 GNU/Linux

pveversion -v เอาท์พุท (ตัวย่อ):

proxmox-ve-2.6.32: 3.1-109 (running kernel: 2.6.32-23-pve)
pve-manager: 3.1-3 (running version: 3.1-3/dc0e9b0e)
pve-kernel-2.6.32-23-pve: 2.6.32-109

สองคำถาม:

  1. เบาะแสอะไรที่ทำให้เคอร์เนลตกใจ (ดูภาพด้านบน)?

  2. เหตุใดเซิร์ฟเวอร์อื่น ๆ ที่ใช้สวิตช์และรุ่นเดียวกันของ Proxmox จึงถูกปิดการใช้งานเครือข่ายจนกว่าเซิร์ฟเวอร์ที่ถูกล็อคจะรีบูต? (หมายเหตุ: มีเซิร์ฟเวอร์อื่น ๆ บนสวิตช์เดียวกันกับที่รัน Proxmox เวอร์ชัน 1.9 ที่เก่ากว่าซึ่งไม่ได้รับผลกระทบนอกจากนี้ไม่มีเซิร์ฟเวอร์ Proxmox อื่นในคลัสเตอร์ 3.1 เดียวกันที่ได้รับผลกระทบที่ไม่ได้อยู่บนสวิตช์เดียวกันนั้น)

ขอบคุณล่วงหน้าสำหรับคำแนะนำใด ๆ


คุณสามารถให้ crashdump แบบเต็มได้หรือไม่? ภาพด้านบนตัดส่วนที่น่าสนใจออก นอกจากนี้คุณโพสต์ crashdump บนlkml ด้วยหรือไม่ อย่างไรก็ตามเมื่อมองดูอีกครั้งนี่เป็นเคอร์เนลที่ค่อนข้างเก่ามีแผนที่จะอัพเกรด Debian เป็นรุ่นเสถียรหรือไม่?
ckujau

น่าเสียดายที่เราไม่มีการถ่ายโอนข้อมูลขัดข้อง ฉันได้เพิ่มลงในรายการของฉันเพื่อกำหนดค่าคอนโซลแบบอนุกรมและ / หรือ kdump สำหรับเคอร์เนลที่เก่า Proxmox ใช้เคอร์เนลของ OpenVZ ซึ่งเป็นสาขาที่ปิดเคอร์เนลหลัก ดังนั้นเมื่อฉันสามารถทำงานผิดพลาดได้ฉันจะติดต่อผู้พัฒนา OpenVZ เพื่อขอความช่วยเหลือ ขอบคุณสำหรับความคิดเห็นของคุณ ... มันช่วยให้ฉันชี้ไปในทิศทางที่ถูกต้อง
เคอร์ติส

สวิตช์ชนิดใด
ETL

ปัญหาเกิดขึ้นกับ 3 สวิตช์ที่แตกต่างกัน (หนึ่ง dlink และ 2 cisco) ฉันไม่มีหมายเลขรุ่นในสวิตช์ก่อนหน้านี้สองตัว แต่รุ่นล่าสุดคือ Cisco SG102-24 เนื่องจากมีผลกับเซิร์ฟเวอร์บนสวิตช์ที่ใช้เคอร์เนลเดียวกันเท่านั้นและเนื่องจากฉันใช้สวิตช์ที่สามของฉันจึงไม่น่าเป็นไปได้ที่สวิตช์จะตำหนิ (แม้ว่าจะเป็นความคิดดั้งเดิมของฉันก็ตาม)
เคอร์ติส

ฉันได้รับการแจ้งเตือนทางอีเมลว่ามีคนโพสต์ความคิดเห็นต่อไปนี้ที่นี่ ... "ฉันมีปัญหาที่คล้ายกันยกเว้นว่าฉันสามารถสร้างความผิดพลาดของฉันด้วยตู้คอนเทนเนอร์คู่ที่ทำฮาร์ดคอร์ ... " โชคไม่ดีที่มันถูกตัดออก ที่นี่ผู้เขียนได้ลบความคิดเห็นของพวกเขาดังนั้นฉันไม่รู้ว่ามันคืออะไร แต่ฉันจะเพิ่มว่าฉันสังเกตเห็นว่าปัญหาดูเหมือนจะเกิดขึ้นบ่อยที่สุดเมื่อมีการรับส่งข้อมูลเครือข่ายจำนวนมาก (เช่นเมื่อการสำรองข้อมูลกำลังทำงาน) บางทีความคิดเห็นนั้นคือ "การถ่ายโอนเครือข่ายง่าย ๆ "?
เคอร์ติส

คำตอบ:


2

ฉันเกือบจะมั่นใจว่าปัญหาของคุณไม่ได้เกิดจากเพียงปัจจัยเดียว แต่เกิดจากการรวมกันของปัจจัยต่างๆ สิ่งที่ปัจจัยเหล่านั้นไม่แน่นอน แต่ปัจจัยหนึ่งที่น่าจะเป็นได้มากที่สุดคืออินเตอร์เฟสเครือข่ายหรือไดรเวอร์และอีกปัจจัยหนึ่งที่พบได้ในสวิตช์นั้น ดังนั้นจึงค่อนข้างเป็นปัญหาที่สามารถทำซ้ำกับสวิตช์ยี่ห้อนี้รวมกับเครือข่ายอินเตอร์เฟสยี่ห้อนี้เท่านั้น

คุณดูเหมือนจะเป็นสาเหตุของปัญหาที่เกิดขึ้นบนเซิร์ฟเวอร์หนึ่งเครื่องซึ่งมีเคอร์เนลที่ตื่นตระหนกซึ่งมีเอฟเฟกต์ที่สามารถแพร่กระจายข้ามสวิตช์ได้ ฟังดูน่าจะเป็นไปได้ แต่ฉันบอกว่ามันน่าจะเป็นไปได้

อาจเป็นไปได้ว่ามีบางสิ่งเกิดขึ้นบนสวิตช์หรืออินเทอร์เฟซเครือข่ายซึ่งทำให้เคอร์เนลเกิดความตื่นตระหนกและปัญหาการเชื่อมโยงบนสวิตช์ ในคำอื่น ๆ แม้ว่าเคอร์เนลไม่ได้มีความตื่นตระหนกเคอร์เนลทริกเกอร์อาจมีการเชื่อมต่อลงบนสวิตช์

หนึ่งต้องถามสิ่งที่อาจเกิดขึ้นในแต่ละเซิร์ฟเวอร์ซึ่งอาจมีผลกระทบต่อเซิร์ฟเวอร์อื่น ๆ มันเป็นไปไม่ได้ดังนั้นคำอธิบายต้องเกี่ยวข้องกับข้อบกพร่องบางแห่งในระบบ

หากเป็นเพียงการเชื่อมโยงระหว่างเซิร์ฟเวอร์ที่เสียหายและสวิตช์ที่ทำงานผิดปกติหรือไม่เสถียรแสดงว่าไม่มีผลใด ๆ กับสถานะลิงก์ไปยังเซิร์ฟเวอร์อื่น หากทำเช่นนั้นจะถือว่าเป็นข้อบกพร่องในสวิตช์ และทราฟฟิกตามมาเซิร์ฟเวอร์อื่น ๆ ควรเห็นทราฟฟิกน้อยลงเล็กน้อยเมื่อเซิร์ฟเวอร์ที่ขัดข้องขาดการเชื่อมต่อซึ่งไม่สามารถอธิบายได้ว่าทำไมพวกเขาจึงเห็นปัญหาที่เกิดขึ้น

สิ่งนี้ทำให้ฉันเชื่อว่ามีข้อบกพร่องในการออกแบบของสวิตช์

อย่างไรก็ตามปัญหาการเชื่อมโยงไม่ใช่คำอธิบายแรกที่เราจะมองหาเมื่อพยายามอธิบายว่าปัญหาในเซิร์ฟเวอร์หนึ่งอาจทำให้เกิดปัญหากับเซิร์ฟเวอร์อื่น ๆ บนสวิตช์ได้อย่างไร พายุออกอากาศจะเป็นคำอธิบายที่ชัดเจนยิ่งขึ้น แต่อาจมีการเชื่อมโยงระหว่างเซิร์ฟเวอร์ที่มีเคอร์เนลตกใจและพายุออกอากาศหรือไม่?

มัลติคาสต์และแพ็คเก็ตที่กำหนดไว้สำหรับที่อยู่ MAC ที่ไม่รู้จักนั้นจะได้รับการปฏิบัติเหมือนออกอากาศเช่นกันดังนั้นพายุของแพ็คเก็ตดังกล่าวก็จะถูกนับเช่นกัน เซิร์ฟเวอร์ paniced พยายามส่ง crashdump ข้ามเครือข่ายไปยังที่อยู่ MAC ที่สวิตช์ไม่รู้จักหรือไม่

หากเป็นตัวกระตุ้นแสดงว่ามีบางอย่างผิดปกติบนเซิร์ฟเวอร์อื่น เนื่องจากแพ็กเก็ตสตอร์มไม่ควรทำให้เกิดข้อผิดพลาดชนิดนี้ในอินเทอร์เฟซเครือข่าย Reset adapter unexpectedlyไม่ฟังดูเหมือนพายุแพ็คเก็ต (ซึ่งควรทำให้ประสิทธิภาพลดลง แต่ไม่มีข้อผิดพลาดเช่นนี้) และไม่เสียงเหมือนปัญหาลิงก์ (ซึ่งควรทำให้เกิดข้อความเกี่ยวกับลิงก์ลง แต่ไม่ใช่ข้อผิดพลาดที่คุณเป็น เห็น)

ดังนั้นจึงเป็นไปได้ว่ามีข้อบกพร่องบางอย่างในฮาร์ดแวร์เครือข่ายหรือไดรเวอร์ซึ่งถูกทริกเกอร์โดยสวิตช์

คำแนะนำเล็กน้อยที่สามารถให้เบาะแสเพิ่มเติมได้:

  1. คุณช่วยต่ออุปกรณ์อื่น ๆ เข้ากับสวิตช์แล้วดูว่าปริมาณการใช้งานที่คุณเห็นบนสวิตช์นั้นเป็นเท่าใดเมื่อเกิดปัญหาขึ้น (ฉันเดาว่ามันเงียบหรือคุณเห็นน้ำท่วม)
  2. เป็นไปได้ไหมที่จะแทนที่อินเทอร์เฟซเครือข่ายบนหนึ่งในเซิร์ฟเวอร์ด้วยแบรนด์อื่นโดยใช้ไดรเวอร์ที่แตกต่างกันเพื่อดูว่าผลลัพธ์จะแตกต่างกันอย่างไร
  3. เป็นไปได้ไหมที่จะเปลี่ยนสวิตช์ตัวใดตัวหนึ่งเป็นยี่ห้ออื่น? ฉันคาดว่าการเปลี่ยนสวิตช์จะช่วยให้มั่นใจได้ว่าปัญหาจะไม่ส่งผลกระทบต่อเซิร์ฟเวอร์หลายเครื่องอีกต่อไป สิ่งที่น่าสนใจมากกว่าคือถ้ามันหยุดเคอร์เนลที่เกิดขึ้น

ขอบคุณสำหรับการตอบกลับอย่างรอบคอบ ในแง่ของคำแนะนำ 3 ข้อของคุณ: 1) อุปกรณ์ / ซอฟต์แวร์ประเภทใดที่จะทำเช่นนั้น? 2) หวังว่าฉันจะทำได้ แต่มีเซิร์ฟเวอร์จำนวนมากที่เกี่ยวข้องและฉันไม่รู้ว่าปัญหาจะเกิดขึ้นที่ไหนต่อไป 3) ฉันลองสวิตช์ที่แตกต่างกัน 3 ตัวแล้ว (3 รุ่นที่แตกต่างกัน 2 ยี่ห้อที่ต่างกัน) ที่น่าสนใจคือมีเพียงเซิร์ฟเวอร์ใน Proxmox เวอร์ชันเดียวกันเท่านั้นที่ได้รับผลกระทบ Proxmox มีกลไกการซิงค์คลัสเตอร์ดังนั้นฉันจึงสงสัยว่ามันมีบางอย่างเกี่ยวข้องกับสิ่งนั้น โชคดีที่ผ่านไปสองสามเดือนแล้วนับตั้งแต่เกิดปัญหาขึ้น
เคอร์ติส

สำหรับการดูที่ทราฟฟิกบนสวิตช์ฉันคิดว่ากำลังต่อพีซีธรรมดากับ tcpdump และ / หรือ wireshark เห็นได้ชัดว่าคุณต้องการหลีกเลี่ยงการติดตั้งซอฟต์แวร์ที่ได้รับผลกระทบบนพีซีเครื่องนั้น แต่ดูเหมือนจะต้องมีข้อผิดพลาดในรหัสที่ Proxmox ติดตั้งลงในเคอร์เนล หากเกิดขึ้นน้อยมากคุณจะเห็นเพียงครั้งเดียวต่อเดือนและเปิดสวิตช์ครั้งละหนึ่งครั้งเท่านั้นอาจใช้เวลานานกว่าจะติดตามได้ ฉันจะคิดเล็กน้อยเกี่ยวกับมันและแสดงความคิดเห็นหากมีแนวคิดเพิ่มเติมเกิดขึ้น
kasperd

1

มันฟังดูราวกับว่ามีข้อบกพร่องในไดรเวอร์อีเธอร์เน็ตหรือฮาร์ดแวร์ / เฟิร์มแวร์นี่คือสถานะสีแดง:

e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly

ฉันเคยเห็นสิ่งเหล่านี้มาก่อนและมันสามารถเคาะเซิร์ฟเวอร์ออฟไลน์ ฉันจำไม่ได้ว่าอยู่ในการ์ด intel ethernet หรือไม่ แต่ฉันเชื่อเช่นนั้น มันอาจจะเกี่ยวข้องกับข้อผิดพลาดในการ์ดอีเธอร์เน็ตด้วยตัวเอง ฉันจำได้ว่าอ่านอะไรบางอย่างเกี่ยวกับการ์ด intel ethernet ที่มีปัญหาดังกล่าว แต่ฉันทำลิงก์ของบทความหาย

ฉันนึกภาพว่าทริกเกอร์สำหรับสิ่งนี้ขึ้นอยู่กับการใช้งานไดรเวอร์ (เวอร์ชั่น) บางส่วนความจริงที่ว่าซอฟต์แวร์รุ่นเก่าใช้งานได้โอเคดูเหมือนจะยืนยันได้ว่า คุณบอกว่าผู้ขายใช้เคอร์เนลที่กำหนดเองของพวกเขาเองพยายามอัพเดทโมดูลไดรเวอร์อีเธอร์เน็ตที่ใช้สำหรับฮาร์ดแวร์อีเธอร์เน็ตของคุณโดยเฉพาะ อย่างใดอย่างหนึ่งจากผู้ขายของคุณหรือจากต้นกำเนิดเคอร์เนลอย่างเป็นทางการ

ดูที่การเชื่อมฮาร์ดแวร์อีเธอร์เน็ตของคุณโดยปกติเซิร์ฟเวอร์จะมีพอร์ตอีเธอร์เน็ตสองพอร์ตออนบอร์ดและ / หรือเพิ่มการ์ด ด้วยวิธีนี้หากการ์ดอีเทอร์เน็ตหนึ่งการ์ดมีปัญหานี้อีกการ์ดหนึ่งจะมารับ ฉันใช้คำว่า "การ์ด" แต่ใช้กับฮาร์ดแวร์อีเธอร์เน็ตแน่นอน

การเปลี่ยนฮาร์ดแวร์อีเธอร์เน็ตก็สามารถแก้ไขได้ แทนที่หรือเพิ่มการ์ดอีเธอร์เน็ต (intel) ที่ใหม่กว่าและใช้แทน โอกาสที่จะเกิดปัญหานี้เกิดขึ้นในฮาร์ดแวร์ / เฟิร์มแวร์การ์ดรุ่นใหม่มีการแก้ไข (หรือเก่ากว่า)


เครื่องทั้งหมดมีพอร์ตอีเธอร์เน็ตแบบคู่อย่างไรก็ตามข้อผิดพลาดนี้เกิดขึ้นในเซิร์ฟเวอร์หลายเครื่องทั้งหมดในเวลาเดียวกันที่อยู่ในสวิตช์เดียวกันในเวลาเดียวกับที่หนึ่งในเครื่องล็อค ทันทีที่เซิร์ฟเวอร์ที่ถูกล็อคหนึ่งถูกใช้พลังงานหมดสภาพเซิร์ฟเวอร์ที่ได้รับผลกระทบทั้งหมดจะสามารถเข้าถึงได้อีกครั้งทันที ดูเหมือนว่านี่จะบ่งบอกว่าเซิร์ฟเวอร์ที่ถูกล็อคนั้นไม่ได้ถูกล็อคอย่างสมบูรณ์ แต่อย่างใดที่ทำให้การรีเซ็ตเครื่องบนสวิทช์เดียวกันเกิดความเสียหาย มันน่าสนใจที่จะดูว่าการอัปเดตไดรเวอร์สามารถช่วยได้หรือไม่ แต่ฉันไม่คิดว่าการเปิดใช้งานการ์ดอีเทอร์เน็ตอื่นอาจช่วยได้ตามหลักฐาน
เคอร์ติส

เธรดเก่า แต่ถึงแม้จะมี Intel e1000e NIC Model 82574L และ ProxMox เวอร์ชั่นใหม่ 5.0-23 / af4267bf รุ่นใหม่กว่าปัญหาเครือข่ายยังคงอยู่ ฉันสามารถเปิดแล็ปท็อป windows ของฉัน (ปลุกจากโหมดสลีปหรือล็อกอิน) เชื่อมต่อกับสวิตช์เดียวกันและเซิร์ฟเวอร์ ProxMox จะรีบูตโดยทั่วไปทุกครั้ง ฉันเคยเห็นมันเพิ่งรีบูตเป็นระยะเมื่อไม่ได้เชื่อมต่อกับสวิทช์ และมันจะรีบูตเมื่อฉันเชื่อมต่อกับสวิตช์เป็นครั้งแรก ไดรเวอร์ปัจจุบันคือ 3.3.5.3 และมี 3.3.5.10, 3.3.6 และ 3.4.0.2 ดังนั้นฉันอาจจะลองสร้างและใช้มัน . 02c ของฉัน
JGlass
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.