Score:1

CentOS 7 (dracut) กำลังค้นหาชื่ออุปกรณ์เครือข่ายที่ไม่สอดคล้องกันซึ่งก่อให้เกิดปัญหาในการเริ่มทำงาน

ธง id

ฉันใช้ตัวเลือกการบูต biosdevname=1 net.ifnames=1 เพื่อให้ได้ชื่ออุปกรณ์ที่คาดเดาได้และสอดคล้องกัน ฉันเริ่มสังเกตเห็นปัญหาที่ในบางกรณีชื่ออุปกรณ์เครือข่ายไม่สอดคล้องกัน ตัวอย่างเช่น ถ้าฉันไปที่เชลล์การดีบัก dracut และดูผลลัพธ์ของ rdsosreport.txt ฉันเห็นสิ่งนี้:

+ ไอพีแอดเดรส
1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น qlen 1,000
    ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 ขอบเขตโฮสต์ lo
       valid_lft ตลอดไป reserved_lft ตลอดไป
    inet6 ::1/128 ขอบเขตโฮสต์
       valid_lft ตลอดไป reserved_lft ตลอดไป
2: p3p1: <BROADCAST,MULTICAST> mtu 1500 สถานะ qdisc noop กลุ่มเริ่มต้น qlen 1000
    ลิงค์/อีเธอร์ a8:b4:56:50:97:08 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN กลุ่มเริ่มต้น qlen 1,000
    ลิงค์/อีเธอร์ a8:b4:56:50:97:09 brd ff:ff:ff:ff:ff:ff

โปรดสังเกตว่ามีการผสมระหว่างการตั้งชื่อที่สอดคล้องกัน (p3p1) และสไตล์ดั้งเดิม (eth1)อย่างไรก็ตาม หากฉันดูอินเทอร์เฟซจากเชลล์ดีบัก dracut ฉันเห็นสิ่งนี้:

initqueue:/run/initramfs# ไอพีแอดเดรส
1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น qlen 1,000
    ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 ขอบเขตโฮสต์ lo
       valid_lft ตลอดไป reserved_lft ตลอดไป
    inet6 ::1/128 ขอบเขตโฮสต์
       valid_lft ตลอดไป reserved_lft ตลอดไป
2: p3p1: <BROADCAST,MULTICAST> mtu 1500 สถานะ qdisc noop กลุ่มเริ่มต้น qlen 1000
    ลิงค์/อีเธอร์ a8:b4:56:50:97:08 brd ff:ff:ff:ff:ff:ff
3: p3p2: <BROADCAST,MULTICAST> mtu 1500 สถานะ qdisc noop กลุ่มเริ่มต้น qlen 1000
    ลิงค์/อีเธอร์ a8:b4:56:50:97:09 brd ff:ff:ff:ff:ff:ff

p3p1/p3p2 เป็นชื่อที่ถูกต้อง ด้วยเหตุผลบางอย่าง ในช่วงต้นของลำดับเริ่มต้น พวกเขากำลังมาในรูปแบบผสม ข้อสันนิษฐานของฉันคือมีการแข่งขันบางอย่างเกิดขึ้นที่นี่และให้เวลาอีกสักหน่อย มัน (udev?) จะเข้าสู่สถานะที่ถูกต้อง แต่ฉันไม่แน่ใจว่ามันอยู่ที่ไหน น่าเสียดายที่สิ่งนี้ทำให้เกิดปัญหากับเซิร์ฟเวอร์อัตโนมัติบางรุ่นของเรา เนื่องจากเซิร์ฟเวอร์กำลังจะมาหลังจาก (ติดตั้งภายหลัง) บูตครั้งแรกและพยายามเปิดขึ้นมา eth1 เมื่อชื่ออินเทอร์เฟซจริงคือ p3p2.

ฉันได้ขุดผ่านโมดูล dracut เพื่อพยายามหาว่าปัญหาอาจอยู่ที่ใด แต่ยังไม่สามารถระบุได้อย่างแน่ชัดดังนั้นจึงมองหาคำแนะนำ

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

Michael Hampton avatar
cz flag
ชื่อถูกต้องเมื่อบู๊ตระบบที่ติดตั้งหรือไม่
guzzijason avatar
id flag
@ไมเคิลแฮมป์ตัน ระบบที่ติดตั้งจะจบลงด้วยไฟล์ปรับแต่ง `ifcfg-p3p1` และ `ifcfg-eth1` แต่ไม่มี eth1 ดังนั้น เพื่อให้ระบบที่ติดตั้งทำงานได้ตามปกติ ฉันจำเป็นต้องแก้ไขการกำหนดค่าเครือข่ายด้วยตนเอง นอกจากนี้ ฉันเพิ่งต่อท้ายโพสต์เดิมของฉัน - ลักษณะการทำงานไม่สอดคล้องกัน หมายความว่าบางครั้งปัญหาก็เกิดขึ้น และบางครั้งก็ไม่เป็นเช่นนั้น ซึ่งบอกฉันการแข่งขัน
Michael Hampton avatar
cz flag
ดูเหมือนว่าเมื่อคุณผ่าน initramfs และเข้าสู่ตัวติดตั้งแล้ว ชื่ออุปกรณ์ควรจะตกลงไปนานแล้ว ซึ่งก่อนหน้าสิ่งที่คุณอาจทำในคิกสตาร์ท คุณสามารถเจาะจงเกี่ยวกับสิ่งที่คุณกำลังทำซึ่งส่งผลให้การกำหนดค่าเครือข่ายล้มเหลวได้หรือไม่?
guzzijason avatar
id flag
ใช่ ฉันใช้ initramfs ที่สร้างขึ้นเอง ซึ่งกำหนดค่าการเชื่อมโยง LACP แบบไดนามิก เรามีโฮสต์แบบบ้านเดี่ยว บางโฮสต์แบบดูอัล และบางโฮสต์มีหลายอินเทอร์เฟซที่รวมกันเป็นหนึ่งเดียว มัน "ปกติ" ใช้งานได้ ยกเว้นเมื่อปัญหานี้เกิดขึ้น
Michael Hampton avatar
cz flag
สิ่งที่กำหนดเองนี้เขียนเป็นโมดูล dracut หรือไม่ สิ่งเหล่านี้ควรโหลดนานหลังจากที่ชื่อ udev ถูกตัดสินแล้วนอกจากนี้โปรดทราบว่า dracut สามารถตั้งค่าการเชื่อมต่อได้เองโดยมีตัวเลือกบรรทัดคำสั่งให้ทำเช่นนั้น
guzzijason avatar
id flag
เราได้ทำการแก้ไขโมดูล dracut `40network` เพื่อตอบสนองความต้องการเฉพาะของเรา
guzzijason avatar
id flag
ฉันคิดว่าปัญหาการแข่งขันอาจเกิดจาก biosdevname จนถึงตอนนี้ ฉันไม่สามารถจำลองปัญหาได้เมื่อใช้ `biosdevname=0 net.ifnames=1` ซึ่งอาจเป็นตัวเลือกสำหรับเรา
Score:0
ธง id

ตอบคำถามของตัวเองที่นี่ ปรากฎว่าปัญหาเกิดขึ้นเอง (บางส่วน)

ส่วนที่เราควบคุมไม่ได้:

ใช้ตัวเลือกการบูต biosdevname=1 มีศักยภาพที่จะทำให้เกิดการแข่งขันระหว่างขั้นตอนการเปลี่ยนชื่ออินเทอร์เฟซ หากคุณอยู่ได้โดยปราศจากมัน เพียงแค่ใช้ net.ifnames=1 biosdevname=0 อาจจะดีกว่า แม้ว่าชื่อที่ได้จะ "สวยน้อยกว่า" ก็ตาม

ส่วนที่เราสามารถควบคุมได้:

เว็บไซต์ของเราใช้ dracut ที่ปรับแต่งเอง 40เครือข่าย โมดูล. สิ่งสำคัญอย่างหนึ่งที่เวอร์ชันของเราทำคือการตรวจสอบเนื้อหาของ /sys/คลาส/เน็ต/ กำลังมองหาอินเทอร์เฟซที่ใช้งานได้เพื่อเพิ่มความผูกพันโดยอัตโนมัติ (เราไม่ทราบชื่ออุปกรณ์ล่วงหน้าเสมอไป ซึ่งเป็นสาเหตุที่โมดูลต้องการตรรกะบางอย่างเพื่อระบุชื่ออุปกรณ์เหล่านั้นด้วยตัวมันเอง) การแข่งขันดังกล่าวข้างต้นอาจทำให้เกิดความล่าช้าในการเปลี่ยนชื่อไฟล์ใน /sys/คลาส/เน็ต/. วิธีแก้ปัญหานั้นง่ายมาก: เพิ่มโหมดสลีป 5 วินาทีให้กับสคริปต์ก่อนที่จะทำการตรวจสอบ /sys/คลาส/เน็ต/. สิ่งนี้ให้ biosdevname (หวังว่าจะมากเกินพอ) ถึงเวลาเปลี่ยนชื่ออุปกรณ์ให้เสร็จ การทดสอบจนถึงตอนนี้ดูเหมือนว่าโอเค

Michael Hampton avatar
cz flag
น่าสนใจ. คุณจะได้ชื่ออะไรจาก `biosdevname=0`? อาจเป็นเวลาหนึ่งปีแล้วที่ฉันอัปเกรดกล่อง CentOS 7 ล่าสุดที่ฉันมี (เป็น 8)
guzzijason avatar
id flag
ด้วย `net.ifnames=1 biosdevname=1` เราจะได้ชื่อเช่น "p3p1", "p3p2" (ช่องและพอร์ตค่อนข้างเรียบง่าย) ด้วย `net.ifnames=1 biosdevname=0` ชื่อเหล่านั้นจะเปลี่ยนเป็น "enp193s0f0", "enp193s0f1"
Michael Hampton avatar
cz flag
อา ดังนั้นชื่อปกติจะกลับมาเมื่อคุณใช้ `biosdevname=0` อาจเป็นการดีที่สุดที่จะเปลี่ยนกลับไปใช้สิ่งนั้นเพราะเป็นสิ่งที่ทุกคนใช้ ชื่อเก่าเหล่านั้นถูกละทิ้งไปเมื่อหลายปีก่อน
guzzijason avatar
id flag
ฉันรู้ว่าชื่อเดิม "eth0", "eth1" ถูกละทิ้งด้วยเหตุผลที่ดี `biosdevname=1` จริงๆ แล้วเป็นลักษณะการทำงานเริ่มต้นบนฮาร์ดแวร์ของ Dell เว้นแต่จะปิดใช้งานโดยชัดแจ้ง
Michael Hampton avatar
cz flag
ขออภัย ฉันหมายความว่าชื่อ Dell `biosdevname=1` ถูกละทิ้ง เมื่อตั้งค่านี้เป็น 0 ชื่ออุปกรณ์จะใช้รูปแบบทั่วไปเดียวกันในผู้จำหน่ายฮาร์ดแวร์ทั้งหมด

โพสต์คำตอบ

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