mdadm บางดิสก์หายไปหลังจากรีบูต


1

ในระบบเดเบียนไดเรกทอรีบ้านของฉันอยู่ในอาร์เรย์ raid1 md หลังจากการสร้างมันใช้งานได้ดีในบางครั้ง แต่เมื่อไดรฟ์ที่สองหายไปจากอาร์เรย์

# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda3[1]
      1843414335 blocks super 1.2 [2/1] [U_]

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

ฉันจัดการเพื่อแก้ไขได้โดยสร้างอาร์เรย์ใหม่ (ด้วยพาร์ทิชันเดียวกัน) มันใช้งานได้หลายครั้งและตอนนี้ก็เป็นปัญหาเดียวกันอีกครั้ง

ดิสก์ทั้งสองเป็นของใหม่การตรวจสอบสมาร์ทก็โอเค

ฉันได้ตรวจสอบdmesgแล้วและนี่คือลำดับ "ล้มเหลว" เต็ม: RAID ที่ซิงค์ดี:

Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
1 8 19 1 active sync /dev/sdb3

ในการรีบูต (เพิ่มเติมdmesgที่นี่: http://pastebin.com/q1Du95Tv ):

[ 8.175247] sda: sda1 sda2 sda3 sda4
...
[ 8.644777] md: md0 stopped.
[ 8.645248] md: bind<sda3>
[ 8.646198] md: raid1 personality registered for level 1
[ 8.646377] md/raid1:md0: active with 1 out of 2 mirrors
[ 8.646391] md0: detected capacity change from 0 to 42916118528
[ 8.646407] RAID1 conf printout:
[ 8.646409] --- wd:1 rd:2
[ 8.646411] disk 0, wo:0, o:1, dev:sda3
[ 8.648749] md0: unknown partition table
[ 8.753331] usb 4-3: new full-speed USB device number 7 using ohci-pci
[ 8.840857] sdb: sdb1 sdb2 sdb3 sdb4
[ 8.841175] sd 1:0:0:0: [sdb] Attached SCSI disk

หลังจากนี้:

Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
2 0 0 2 removed

mdadm -Eผลลัพธ์: http://pastebin.com/cp65mNQh

คำตอบ:


0

บน Linux ชื่อ / dev / sdXY ไม่รับประกันว่าจะคงอยู่ นั่นคือสำหรับชุดฟิสิคัลดิสก์ที่กำหนดโหนดอุปกรณ์จะไม่รับประกันว่าจะปรากฏในลำดับเดียวกันจากการบู๊ตหนึ่งไปยังการบู๊ตครั้งถัดไป

หากคุณมีดิสก์เดียวคุณสามารถมั่นใจได้ 100% ว่าจะแสดงเป็นโหนดอุปกรณ์เดียวกันเสมอ (เช่น / dev / sda)

หากคุณมีดิสก์สองแผ่นคุณสามารถมั่นใจได้ว่าพวกเขาจะปรากฏขึ้นในลำดับเดียวกันเสมอ (เช่น "/ dev / sda ใน boot 1" เป็นอุปกรณ์ทางกายภาพเช่นเดียวกับ "/ dev / sda ใน boot 2" สำหรับทุก ๆ รองเท้าบูทกันสองอัน)

หากคุณมีดิสก์เป็นร้อยแผ่นความน่าจะเป็นที่ดิสก์สองแผ่นจะถูกสับเปลี่ยนสูงขึ้นอย่างกระทันหัน ซึ่งอาจเป็นผลมาจากความผิดปกติจำนวนเท่าใดก็ได้ แต่ในท้ายที่สุดแล้วมันจะไหลลงไปยังโหนดอุปกรณ์ / dev / sdX นั้นถูกสร้างขึ้นตามลำดับการตรวจจับดิสก์และลำดับการตรวจสอบนั้นไม่ได้รับประกัน

หากคุณต้องการรับประกันว่าชื่อเดียวกันจะถูกอ้างถึงในดิสก์เดียวกันคุณควรใช้ตัวระบุถาวร daemon ที่ทุกคนมีความสัมพันธ์ด้วยความรักความเกลียดชัง, udev, ทำให้เป็นเรื่องง่ายโดยปกติแล้วจะถูกกำหนดค่าให้สร้างลิงก์สัญลักษณ์ในไดเร็กทอรี / dev / disk / by- * ซึ่งชี้ไปที่แง่มุมต่าง ๆ ของดิสก์ (รถบัส / ผู้ผลิต / รุ่น / Quadruplet แบบอนุกรม, ที่ตั้งโทโพโลยีบัส, WWN , ... ) ไปยังโหนดอุปกรณ์ตามที่ตรวจพบโดยเคอร์เนล คุณสามารถเพิ่มกฎที่กำหนดเองเพื่อสร้างรูปแบบการตั้งชื่อที่คุณต้องการ ผมตีบางสิ่งบางอย่างที่คล้ายกัน ( แต่ไม่เหมือนกัน) ตัวเองซึ่งได้รับการแก้ไขโดยการโยกย้ายไปยังชื่อ WWN

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

ปัญหาของคุณควรหายไป (หรืออย่างน้อยที่สุดก็ลดลงอย่างมากยกเว้นปัญหาดิสก์จริง) หากคุณเพิ่มดิสก์ลงในอาร์เรย์อีกครั้งเช่น/ dev / disk / by-id / wwn - * - part *แทนที่จะเป็น / dev / sdXY การทำเช่นนั้นไม่ควรมีผลกระทบด้านลบต่อสิ่งอื่นใด


จุดที่ดีเกี่ยวกับชื่ออุปกรณ์ แต่ในกรณีของฉันเมื่อฉันกู้คืนการโจมตีด้วยตนเอง (ฉันทำมันหลายครั้ง) ฉันมักจะหาดิสก์ที่สองที่มีชื่อ sdb ฉันพยายามจับช่วงเวลาที่แน่นอนเมื่อไม่ได้ประกอบอาร์เรย์และดิสก์ยังคงมีชื่อเหมือนกัน หากไม่มีคำตอบที่ดีกว่านี้ฉันจะพยายามสร้าง UUID ของอุปกรณ์ตรวจค้นให้ใหม่ อย่างไรก็ตามฉันคิดว่าฉันเห็นบางแห่งที่ md ใช้ UUID เพื่อตรวจจับอุปกรณ์
Artiom

ดังนั้นหลังจากการทดสอบที่แตกต่างกันดูเหมือนจะเป็นปัญหาถอดแยกชิ้นส่วนการโจมตี สิ่งสุดท้ายที่ฉันพยายามคือการใส่raid=noautodetectตัวเลือกเคอร์เนล ตอนนี้การจู่โจมถูกประกอบโดยระบบปฏิบัติการ "ขั้นสุดท้าย" (ฉันคิดว่า systemd) แต่มันไม่มีอะไรเปลี่ยนแปลง มันยังสามารถ "เอาตัวรอด" ได้หลายครั้ง แต่ไม่มาก ฉันตรวจสอบมันทุกบูต การตั้งชื่อดิสก์ไม่เปลี่ยนแปลง ฉันคิดว่ามันจะเปลี่ยนเฉพาะเมื่อฉันเปลี่ยนการกำหนดค่าดิสก์ (เช่นเพิ่มหรือลบดิสก์ทางกายภาพ)
Artiom

ฉันอัพเดตคำถามเริ่มต้นพร้อมรายละเอียดใหม่ ไม่ใช่ปัญหาการตั้งชื่อดิสก์ แต่เป็นปัญหาลำดับการบู๊ต ฉันยังมีraid=noautodetectตัวเลือกเคอร์เนล แต่ดูเหมือนว่าจะไม่ทำงาน
Artiom

0

ฉันมีปัญหาเดียวกัน. สิ่งที่ฉันพบคือจำนวนอุปกรณ์ที่เป็น 0 และ 2 ฉันสิ้นสุดด้วยการสร้างการตั้งค่าการจู่โจมใหม่ทั้งหมด

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

ตอนนี้ตัวเลขเป็น 0 และ 1 อีกครั้ง (ตาม mdadm --detail / dev / md0)

หลังจากนั้นฉันแก้ไขไฟล์ /etc/mdadm/mdadm.conf ของฉันเล็กน้อย

ARRAY /dev/md0 level=raid1 num-devices=2 devices=/dev/sda1,/dev/sdb1 UUID=<uuid of your raid setup>

ฉันยังเพิ่มความล่าช้าเล็กน้อยใน /boot/cmdline.txt ด้วย rootdelay = 5

ทั้งหมดนี้ดูเหมือนว่าจะแก้ไขปัญหาของฉันได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.