ฉันมีปัญหาต่อไปนี้กับพาร์ติชั่นการจู่โจมซอฟต์แวร์ RAID1 บนระบบ Ubuntu ของฉัน (10.04 LTS, 2.6.32-24- เซิร์ฟเวอร์ในกรณีที่เป็นเรื่องสำคัญ)
หนึ่งในดิสก์ของฉัน (sdb5) รายงานข้อผิดพลาดของ I / O และถูกทำเครื่องหมายว่าผิดพลาดในอาเรย์ อาร์เรย์จะถูกลดระดับด้วยอุปกรณ์ที่ใช้งานอยู่หนึ่งเครื่อง ดังนั้นฉันจึงเปลี่ยนฮาร์ดดิสค์โคลนตารางพาร์ทิชันและเพิ่มพาร์ทิชันใหม่ทั้งหมดในอาร์เรย์การโจมตีของฉัน หลังจากการซิงค์พาร์ติชั่นทั้งหมดสิ้นสุดลงโดยมีอุปกรณ์ที่ใช้งาน 2 อุปกรณ์ - ยกเว้นหนึ่งในนั้น อย่างไรก็ตามพาร์ติชันที่รายงานดิสก์ที่ผิดพลาดมาก่อนจะไม่รวมพาร์ติชันใหม่เป็นอุปกรณ์ที่ใช้งาน แต่เป็นดิสก์สำรอง:
md3 : active raid1 sdb5[2] sda5[1]
4881344 blocks [2/1] [_U]
ดูรายละเอียดเผยให้เห็น:
root@server:~# mdadm --detail /dev/md3
[...]
Number Major Minor RaidDevice State
2 8 21 0 spare rebuilding /dev/sdb5
1 8 5 1 active sync /dev/sda5
ดังนั้นนี่คือคำถาม: ฉันจะบอกการโจมตีของฉันเพื่อเปลี่ยนดิสก์สำรองให้กลายเป็นดิสก์ที่ใช้งานอยู่ได้อย่างไร และทำไมถึงถูกเพิ่มเป็นอุปกรณ์สำรอง? การสร้างหรือประกอบซ้ำอาร์เรย์ไม่ใช่ตัวเลือกเนื่องจากเป็นพาร์ติชันรากของฉัน และฉันไม่สามารถหาคำแนะนำใด ๆ เกี่ยวกับเรื่องนั้นใน Software Raid HOWTO
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม
ทางออกปัจจุบัน
ฉันพบวิธีแก้ไขปัญหาของฉันแล้ว แต่ฉันไม่แน่ใจว่านี่เป็นวิธีการที่แท้จริง เมื่อมองดูการโจมตีของฉันอย่างใกล้ชิดฉันพบว่า sdb5 นั้นถูกระบุว่าเป็นอุปกรณ์สำรองเสมอ:
mdadm --examine /dev/sdb5
[...]
Number Major Minor RaidDevice State
this 2 8 21 2 spare /dev/sdb5
0 0 0 0 0 removed
1 1 8 5 1 active sync /dev/sda5
2 2 8 21 2 spare /dev/sdb5
ดังนั้นการอ่านอุปกรณ์ sdb5 ไปยังอาร์เรย์ md3 มักจะจบลงด้วยการเพิ่มอุปกรณ์เป็นอะไหล่
ในที่สุดฉันก็สร้างอาร์เรย์ขึ้นมาใหม่
mdadm --create /dev/md3 --level=1 -n2 -x0 /dev/sda5 /dev/sdb5
ซึ่งทำงานได้
แต่คำถามยังคงเปิดอยู่สำหรับฉัน: มีวิธีที่ดีกว่าในการจัดการกับบทสรุปใน superblock และบอกให้อาร์เรย์เปลี่ยน sdb5 จากดิสก์สำรองเป็นดิสก์ที่ใช้งานอยู่หรือไม่ ฉันยังอยากรู้อยากเห็นสำหรับคำตอบ