Score:1

Perc H740P: ไดรฟ์ข้อมูลของ Raid5 แบ่งออกเป็นสองการกำหนดค่าต่างประเทศ ไม่สามารถนำเข้าได้

ธง ru

หลังจากเปลี่ยนพาวเวอร์ซัพพลาย เราพบปัญหาในการเดินสายซึ่งทำให้ดิสก์บางส่วนหายไป หลังจากแก้ไขจุดบกพร่องและแก้ไขปัญหานี้ใน BIOS ในการบู๊ตครั้งแรก โวลุ่ม Raid5 ที่มีอยู่ก่อนหน้านี้ถูกแยกออกเป็นสองส่วนกำหนดค่าภายนอก หนึ่งมีดิสก์ 5 แผ่น ส่วนอีกส่วน มีดิสก์ที่เหลืออีก 2 แผ่นของโวลุ่ม 7 ของ Raid5 (ดูด้านล่าง)

เราไม่สามารถนำเข้าการกำหนดค่าต่างประเทศด้วยการนำเข้า perccli /c0/fall:

สถานะ = ความล้มเหลว
คำอธิบาย = การกำหนดค่าต่างประเทศไม่สมบูรณ์

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

--------------------------------------------- --------------------------
DG Arr Row EID:Slot DID Type State BT Size PDC PI SED DS3 FSpace TR 
--------------------------------------------- --------------------------
 0 - - - - RAID5 Frgn N 54.571 TB dsbl N N dflt N N  
 0 0 - - - RAID5 Frgn N 54.571 TB dsbl NN dflt NN  
 0 0 0 67:0 0 ไดรฟ์ Frgn N 9.094 TB dsbl NN dflt - N  
 0 0 1 67:0 1 ไดรฟ์ Frgn N 9.094 TB dsbl NN dflt - N  
 0 0 2 67:0 2 ไดรฟ์ Frgn N 9.094 TB dsbl NN dflt - N  
 0 0 3 67:0 3 ไดรฟ์ Frgn N 9.094 TB dsbl NN dflt - N  
 0 0 4 - - ข้อความไดรฟ์ - 9.094 TB - - - - - N  
 0 0 5 - - ข้อความเกี่ยวกับไดรฟ์ - 9.094 TB - - - - - N  
 0 0 6 67:0 5 ไดรฟ์ Frgn N 9.094 TB dsbl NN dflt - N  
 1 - - - - RAID5 Frgn N 54.571 TB dsbl N N dflt NN  
 1 0 - - - RAID5 Frgn N 54.571 TB dsbl NN dflt NN  
 1 0 0 - - ไดรฟ์ Msng - 9.094 TB - - - - - N  
 1 0 1 - - ไดรฟ์ Msng - 9.094 TB - - - - - N  
 1 0 2 - - ไดรฟ์ Msng - 9.094 TB - - - - - N  
 1 0 3 - - ไดรฟ์ Msng - 9.094 TB - - - - - N  
 1 0 4 67:0 6 ไดรฟ์ Frgn N 9.094 TB dsbl NN dflt - N  
 1 0 5 67:0 4 ไดรฟ์ Frgn N 9.094 TB dsbl NN dflt - N  
 1 0 6 - - ไดรฟ์ Msng - 9.094 TB - - - - - N  
--------------------------------------------- --------------------------


รายการ VD ต่างประเทศ :
===============

---------------------------------
ชื่อประเภทขนาด DG VD      
---------------------------------
 0 255 54.571 TB RAID5 RV5 
 1 255 54.571 TB RAID5 RV5 
---------------------------------

อัปเดต:

ฉันถอดตัวขยายทั้งหมดออกและบู๊ต สิ่งนี้แสดงดิสก์ทั้งหมดในการกำหนดค่าต่างประเทศ (มีไดรฟ์ข้อมูล Raid1 เดี่ยวจำนวนหนึ่งด้วย):

-----------------------------------------
DG EID: ขนาดสถานะของประเภทสล็อต NoVDs 
-----------------------------------------
 0 - RAID0 Frgn 9.094 TB 1 
 1 - RAID0 Frgn 10.913 TB 1 
 2 - RAID0 Frgn 10.913 TB 1 
 3 - RAID0 Frgn 10.913 TB 1 
 4 - RAID0 Frgn 9.094 TB 1 
 5 - RAID0 Frgn 278.875 GB 1 
 6 - RAID0 Frgn 14.551 TB 1 
 7 - RAID0 Frgn 16.370 TB 1 
 8 - RAID0 Frgn 9.094 TB 1 
 9 - RAID5 Frgn 54.571 TB 1 
10 - RAID5 Frgn 54.571 TB 1 
-----------------------------------------

ฉันสามารถ /c0/fall นำเข้าทั้งหมดได้สำเร็จ โชคไม่ดีที่สิ่งนี้จบลงด้วยสถานการณ์ที่น่าขยะแขยงเหมือนเมื่อก่อน โดยมีวอลุ่มอื่นๆ อยู่ที่นั่นและ Raid5 ถูกแบ่งออกเป็นการกำหนดค่าต่างประเทศสองรายการ

อัปเดต 2:

การแนบดิสก์เข้ากับระบบ GNU/Linux แสดงสิ่งนี้ ซึ่งสำหรับฉันโดยพื้นฐานแล้วมันพูดแบบเดียวกับตัวควบคุม perc นั่นคือมี Raid Volume สองชุดที่มีดิสก์ 5 และ 7 แผ่น ดังนั้น นี่จึงดูเหมือนว่าเป็นผลมาจากบั๊กของเฟิร์มแวร์ โดยที่ตัวควบคุมการจู่โจมแบ่งกลุ่มวอลุ่มออกเป็นสองกลุ่มที่ไม่ทำงาน ดังนั้น การผสานจึงดูเหมือนเป็นไปไม่ได้

บุคลิก : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] 
md125 : sdi ที่ไม่ได้ใช้งาน [0]
      9765912576 บล็อก super external:/md127/2
       
md126 : ไม่ทำงาน sdg[1](S) sdf[0](S)
      1048576 บล็อก super external:ddf
       
md127 : ไม่ทำงาน sdm[4](S) sdi[3](S) sdh[2](S) sdk[1](S) sdl[0](S)
      2621440 บล็อก super external:ddf
       

อุปกรณ์ที่ไม่ได้ใช้:

ฉันกำลังพยายามกู้คืนจากที่นี่ แต่ตอนนี้คำถามคือ: ฉันสามารถสร้างอาร์เรย์ใหม่ในตัวควบคุมการโจมตีหรือ GNU/Linux อีกครั้งเพื่อให้ตัวควบคุมการโจมตีรู้จักอาร์เรย์ได้หรือไม่ การกู้คืนจากข้อมูลสำรองใช้เวลาค่อนข้างนาน

** อัปเดต 3:**

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

/dev/sdf
    refno 66fee9c8
    คำแนะนำ 'ATA 999901019c64177c25b6'
    pd 1 6d67850c 'ATA 9999010198734b845e34'
    pd 2 2c442eef 'ATA 99990101a3ff6b169fb3'
    pd 3 859c2a72 'ATA 9999010140f57d7b1911'
    pd 4 2a25447d 'ATA 9999010181a40ea27a38'
    pd 5 6db9e402 'SmrtStor P^A^W1^@tfM-8'
    pd 6 0176ebaa 'ATA 99990101bd73575777e4'
    pd 7 a63ba301 'ATA 999901017d605c6aadf6'
    pd 8 5254f474 'ATA 999901014ecf2257f8f4'
    pd 9 80e8a86d 'ATA 999901014c775ca92a87'
    pd 10 49416c50 'ATA 99990101d79cd13a1e1e'
    pd 11 fa44428b 'ATA 9999010198bd2187a552'
    pd 12 66fee9c8 'ATA 999901019c64177c25b6'
    pd 13 4a94daa9 'ATA 99990101679d1776307e'
    ตอนที่ 0
        คำแนะนำ 'Dell ^P'
        ขนาด 117190950912
        บล็อก 19531825152
        ดิสก์ 0 เริ่มต้น 0 อ้างอิง a63ba301
        ดิสก์ 1 เริ่มต้น 0 อ้างอิง 5254f474
        ดิสก์ 2 เริ่มต้น 0 อ้างอิง 80e8a86d
        ดิสก์ 3 เริ่มต้น 0 อ้างอิง 49416c50
        ดิสก์ 4 เริ่มต้น 0 อ้างอิง fa44428b
        ดิสก์ 5 เริ่มต้น 0 อ้างอิง 66fee9c8
        ดิสก์ 6 เริ่มต้น 0 อ้างอิง 4a94daa9

/dev/sdg
    refno fa44428b
    คำแนะนำ 'ATA 9999010198bd2187a552'
    pd 1 6d67850c 'ATA 9999010198734b845e34'
    pd 2 2c442eef 'ATA 99990101a3ff6b169fb3'
    pd 3 859c2a72 'ATA 9999010140f57d7b1911'
    pd 4 2a25447d 'ATA 9999010181a40ea27a38'
    pd 5 6db9e402 'SmrtStor P^A^W1^@tfM-8'
    pd 6 0176ebaa 'ATA 99990101bd73575777e4'
    pd 7 a63ba301 'ATA 999901017d605c6aadf6'
    pd 8 5254f474 'ATA 999901014ecf2257f8f4'
    pd 9 80e8a86d 'ATA 999901014c775ca92a87'
    pd 10 49416c50 'ATA 99990101d79cd13a1e1e'
    pd 11 fa44428b 'ATA 9999010198bd2187a552'
    pd 12 66fee9c8 'ATA 999901019c64177c25b6'
    pd 13 4a94daa9 'ATA 99990101679d1776307e'
    ตอนที่ 0
        คำแนะนำ 'Dell ^P'
        ขนาด 117190950912
        บล็อก 19531825152
        ดิสก์ 0 เริ่มต้น 0 อ้างอิง a63ba301
        ดิสก์ 1 เริ่มต้น 0 อ้างอิง 5254f474
        ดิสก์ 2 เริ่มต้น 0 อ้างอิง 80e8a86d
        ดิสก์ 3 เริ่มต้น 0 อ้างอิง 49416c50
        ดิสก์ 4 เริ่มต้น 0 อ้างอิง fa44428b
        ดิสก์ 5 เริ่มต้น 0 อ้างอิง 66fee9c8
        ดิสก์ 6 เริ่มต้น 0 อ้างอิง 4a94daa9

/dev/sdh
    refno 4a94daa9
    คำแนะนำ 'ATA 99990101974a122c9311'
    pd 1 6d67850c 'ATA 99990101be1d53ed8c7d'
    pd 2 2c442eef 'ATA 99990101ff58714b7f1b'
    pd 3 859c2a72 'ATA 99990101fa3ac0b94ef7'
    pd 4 2a25447d 'ATA 999901017e74d11eb6e6'
    pd 5 0176ebaa 'ATA 99990101f19b3355ec56'
    pd 6 a63ba301 'ATA 99990101f391d36e91f9'
    pd 7 5254f474 'ATA 99990101fa6d3d5b6c49'
    pd 8 80e8a86d 'ATA 99990101b7ad5947d5c0'
    pd 9 49416c50 'ATA 99990101d2e6918871bb'
    pd 10 4a94daa9 'ATA 99990101974a122c9311'
    pd 11 6db9e402 'SmrtStor P^A^W1^@tfM-8'
    ตอนที่ 0
        คำแนะนำ 'Dell ^P'
        ขนาด 117190950912
        บล็อก 19531825152
        ดิสก์ 0 เริ่มต้น 0 อ้างอิง a63ba301
        ดิสก์ 1 เริ่มต้น 0 อ้างอิง 5254f474
        ดิสก์ 2 เริ่มต้น 0 อ้างอิง 80e8a86d
        ดิสก์ 3 เริ่มต้น 0 อ้างอิง 49416c50
        ดิสก์ 6 เริ่มต้น 0 อ้างอิง 4a94daa9

/dev/sdi
    refno49416c50
    คำแนะนำ 'ATA 99990101d2e6918871bb'
    pd 1 2a25447d 'ATA 999901017e74d11eb6e6'
    pd 2 0176ebaa 'ATA 99990101f19b3355ec56'
    pd 3 49416c50 'ATA 99990101d2e6918871bb'
    pd 4 6db9e402 'SmrtStor P^A^W1^@tfM-8'
    ตอนที่ 0
        คำแนะนำ 'Dell ^P'
        ขนาด 117190950912
        บล็อก 19531825152
        ดิสก์ 3 เริ่มต้น 0 อ้างอิง 49416c50

/dev/sdk
    refno 80e8a86d
    คำแนะนำ 'ATA 99990101b7ad5947d5c0'
    pd 1 2a25447d 'ATA 999901017e74d11eb6e6'
    pd 2 0176ebaa 'ATA 99990101f19b3355ec56'
    pd 3 a63ba301 'ATA 99990101f391d36e91f9'
    pd 4 5254f474 'ATA 99990101fa6d3d5b6c49'
    pd 5 80e8a86d 'ATA 99990101b7ad5947d5c0'
    pd 6 49416c50 'ATA 99990101d2e6918871bb'
    pd 7 6db9e402 'SmrtStor P^A^W1^@tfM-8'
    ตอนที่ 0
        คำแนะนำ 'Dell ^P'
        ขนาด 117190950912
        บล็อก 19531825152
        ดิสก์ 0 เริ่มต้น 0 อ้างอิง a63ba301
        ดิสก์ 1 เริ่มต้น 0 อ้างอิง 5254f474
        ดิสก์ 2 เริ่มต้น 0 อ้างอิง 80e8a86d
        ดิสก์ 3 เริ่มต้น 0 อ้างอิง 49416c50

/dev/sdl
    refno 5254f474
    คำแนะนำ 'ATA 99990101fa6d3d5b6c49'
    pd 1 2a25447d 'ATA 999901017e74d11eb6e6'
    pd 2 0176ebaa 'ATA 99990101f19b3355ec56'
    pd 3 a63ba301 'ATA 99990101f391d36e91f9'
    pd 4 5254f474 'ATA 99990101fa6d3d5b6c49'
    pd 5 80e8a86d 'ATA 99990101b7ad5947d5c0'
    pd 6 49416c50 'ATA 99990101d2e6918871bb'
    pd 7 6db9e402 'SmrtStor P^A^W1^@tfM-8'
    ตอนที่ 0
        คำแนะนำ 'Dell ^P'
        ขนาด 117190950912
        บล็อก 19531825152
        ดิสก์ 0 เริ่มต้น 0 อ้างอิง a63ba301
        ดิสก์ 1 เริ่มต้น 0 อ้างอิง 5254f474
        ดิสก์ 2 เริ่มต้น 0 อ้างอิง 80e8a86d
        ดิสก์ 3 เริ่มต้น 0 อ้างอิง 49416c50

/dev/sdm
    refnoa63ba301
    คำแนะนำ 'ATA 99990101f391d36e91f9'
    pd 1 2a25447d 'ATA 999901017e74d11eb6e6'
    pd 2 0176ebaa 'ATA 99990101f19b3355ec56'
    pd 3 a63ba301 'ATA 99990101f391d36e91f9'
    pd 4 5254f474 'ATA 99990101fa6d3d5b6c49'
    pd 5 80e8a86d 'ATA 99990101b7ad5947d5c0'
    pd 6 49416c50 'ATA 99990101d2e6918871bb'
    pd 7 6db9e402 'SmrtStor P^A^W1^@tfM-8'
    ตอนที่ 0
        คำแนะนำ 'Dell ^P'
        ขนาด 117190950912
        บล็อก 19531825152
        ดิสก์ 0 เริ่มต้น 0 อ้างอิง a63ba301
        ดิสก์ 1 เริ่มต้น 0 อ้างอิง 5254f474
        ดิสก์ 2 เริ่มต้น 0 อ้างอิง 80e8a86d
        ดิสก์ 3 เริ่มต้น 0 อ้างอิง 49416c50

seq 0 อ้างอิง a63ba301 dev /dev/sdm
ลำดับที่ 1 refno 5254f474 dev /dev/sdl
ภาคที่ 2 อ้างอิง 80e8a86d dev /dev/sdk
ลำดับที่ 3 refno 49416c50 dev /dev/sdi
seq 4 อ้างอิง fa44428b dev /dev/sdg
ลำดับที่ 5 อ้างอิง 66fee9c8 dev /dev/sdf
seq 6 refno 4a94daa9 dev /dev/sdh
Nikita Kipriyanov avatar
za flag
`mdadm --detail /dev/RAID` และ `mdadm --examine /dev/COMPONENT` พูดอะไรเกี่ยวกับแต่ละรายการ
Remember Monica avatar
ru flag
ฉันได้เพิ่มข้อมูลที่ฉันมี - ดูคำตอบของฉันเกี่ยวกับสิ่งที่ฉันทำเพื่อแก้ไขปัญหานี้ในที่สุด โดยทั่วไปแล้ว config เสียหายและฉันต้องสร้างอาร์เรย์ใหม่ แต่ไม่ต้องกู้คืนการสำรองแบบฟอร์ม
Score:2
ธง ru

ตกลง นี่คือสิ่งที่ฉันทำ อาจช่วยคนต่อไป

การค้นหาข้อเท็จจริง

ก่อนอื่น ฉันแนบดิสก์ทั้งหมดกับ HBA GNU/Linux พยายามรวบรวมไฟล์ การโจมตี แต่พบ (อย่างน้อย) สองปริมาณการโจมตี (และพิเศษอีกเล็กน้อย) ฉัน จากนั้นทำการสำรองข้อมูล 32 แรกและ 32MB สุดท้ายของแต่ละดิสก์ จัดทำดัชนีโดย WWID/WWN ของพวกเขา

ฉันจึงดาวน์โหลดข้อกำหนด SNIA DDF (https://www.snia.org/tech_activities/standards/curr_standards/ddf) เพราะฉันรู้ว่า megaraid/dell (บางส่วน) ใช้มัน (ddf ไม่ใช่มายากลสมอบล็อก เด11เด11 โดยบังเอิญ :) แล้วเขียนมาก สคริปต์ที่น่าเกลียดในการถอดรหัสข้อมูลและทำความเข้าใจกับมัน

นี่แสดงให้ฉันเห็นว่าอาร์เรย์ถูกแบ่งออกเป็นสามส่วน คอนฟิกูเรชันหนึ่งที่มีดิสก์หนึ่งแผ่นและอีกอันหนึ่งรวมอยู่ด้วย ดิสก์และอีก 4 แผ่น และอีกอันที่มีดิสก์อีก 2 แผ่นที่เหลือ

ตัวสคริปต์เองไม่มีประโยชน์มากนักหากไม่เข้าใจสิ่งที่คุณกำลังทำอยู่ ดังนั้นฉันจึงไม่ได้รวมไว้ที่นี่

ในที่สุดสิ่งนี้ทำให้ฉันสามารถแยกแยะลำดับดั้งเดิมที่ถูกต้องของ ดิสก์ คำแนะนำ: หลังจากสร้างอาร์เรย์แล้ว ให้จดลำดับของ WWN (perccli /c0/s0 แสดงทั้งหมด | เกรป WWN) และขนาดแถบเป็นอย่างน้อย

กระบวนการนี้ยังทำให้ฉันมีออฟเซ็ตเริ่มต้น (0 เสมอ) และขนาดของ พาร์ติชัน (ภาค 19531825152)

ตัวแปร Raid5 ที่ใช้โดย H740P (และอาจเป็น megaraid ทั้งหมด คอนโทรลเลอร์) เรียกว่า ซ้ายสมมาตร หรือ "RAID-5 Rotating Parity N ด้วย ความต่อเนื่องของข้อมูล (PRL=05, RLQ=03)"

ประกอบดิสก์อีกครั้งสำหรับการทดสอบ

จากนั้นฉันพยายามทดสอบประกอบการจู่โจมอีกครั้งโดยใช้ mdadm -- สร้าง. น่าเสียดายที่ mdadm ปฏิเสธที่จะรวบรวมอาร์เรย์ Raid5 - คุณ มี เพื่อเขียนไปยังอาร์เรย์และทำลายข้อมูล :(

วิธีแก้ปัญหาเบื้องต้น เพื่อทดสอบว่าคำสั่งถูกต้องหรือไม่ ฉันเริ่ม kvm ในโหมดสแน็ปช็อตพร้อมอิมเมจบูต GNU / Linux แบบสุ่มเป็น /dev/sda และดิสก์เป็นดิสก์ virtio:

ผู้บริหาร kvmb -snapshot -m 16384 \
         - ไฟล์ไดรฟ์ = linux.img, snapshot = ปิด \
         -drive file=/dev/sdm,if=virtio,snapshot=on \
         -drive file=/dev/sdl,if=virtio,snapshot=on \
         -drive file=/dev/sdk,if=virtio,snapshot=on \
         -drive file=/dev/sdi,if=virtio,snapshot=on \
         -drive file=/dev/sdg,if=virtio,snapshot=on \
         -drive file=/dev/sdf,if=virtio,snapshot=on \
         -drive file=/dev/sdh,if=virtio,snapshot=on

สิ่งนี้ทำให้ดิสก์ปรากฏในลำดับที่ระบุเป็น /dev/vda, /dev/vdb และอื่น ๆ และทำให้ฉันสามารถทดสอบตัวเลือกต่าง ๆ ได้อย่างง่ายดาย การลองครั้งแรกภายใน VM สำเร็จ:

mdadm --create /dev/md0 -f \
   --ข้อมูลเมตา 1.0 \
   --อุปกรณ์จู่โจม 7 \
   -z $((19531825152/2))K -c 256K \
   -l Raid5 -p ddf-N-ดำเนินการต่อ \
   --assume-clean -k resync \
   /dev/vd?

สำหรับ Raid5 ขนาดพาร์ติชันนั้นไม่สำคัญ - หากใหญ่กว่านั้นคือ GPT ของคุณ ตารางพาร์ติชันเสียหายและคุณมีข้อมูลเพิ่มเติม แต่ส่วนที่เหลือ ดิสก์ควรจะยังสามารถอ่านได้

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

จากนั้นฉันก็เรียกใช้ backzp อีกครั้ง

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

ย้ายระดับเสียงกลับเข้าไปในตัวควบคุมการโจมตี

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

ความพยายามครั้งแรกของฉันคือจัดรูปแบบอาร์เรย์เป็นคอนเทนเนอร์ DDF ด้วย Raid5 ปริมาณภายในโดยใช้พารามิเตอร์เดียวกับที่คอนโทรลเลอร์ใช้ แต่น่าเสียดายที่คอนโทรลเลอร์ megaraid - ขณะใช้งาน DDF เอง - ไม่รองรับ DDF "ต่างประเทศ" สำหรับการนำเข้าและแสดงดิสก์อย่างง่ายๆ เป็น "ดีที่ไม่ได้กำหนดค่า"

ฉันพยายามสร้างอาร์เรย์ใหม่โดยการเพิ่มอีกครั้ง เช่น:

perccli /c0 เพิ่ม vd r5 name=XXX drives=3,6,9,1,2,3,0 pdcache=off wb ra strip=256

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

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

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

จากนั้นฉันก็เขียนลำดับของ WWN อีกครั้ง แนบดิสก์เข้ากับ ตัวควบคุม บูตและทำ perccli /c0 เพิ่ม.... จากนั้นฉันก็เรียกคืนครั้งแรก ปริมาณ 1.5MB (ซึ่งรวมถึงพาร์ติชัน GPT และป้ายกำกับ LVM และ ข้อมูลขยะเก่า ๆ ที่เหลืออยู่ซึ่งมีประโยชน์มากในการเดาอะไร สั่งซื้อได้) มั่นใจได้ระดับหนึ่งว่าสามารถเลิกทำได้ ความผิดพลาดมีประโยชน์ในสถานการณ์นี้

ผลลัพธ์: อาร์เรย์กลับมา btrfs สอดคล้องกัน และตอนนี้ con troller กำลังเริ่มต้นพื้นหลัง ซึ่งทำให้ทั้งระบบช้าลงสองสามวัน แต่เป็นราคาที่ต้องจ่ายเล็กน้อย

สิ่งที่ได้เรียนรู้

ฉันได้เรียนรู้มากมาย!

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

  2. mdadm ไม่มีประโยชน์มากนักในการทำความเข้าใจหรือแสดงส่วนหัว DDF - ฉันไม่สามารถเข้าใจข้อมูลที่แสดงได้ และเมื่อฉันค้นพบ เมื่อถอดรหัสส่วนหัวเองนี่เป็นเพราะข้อมูลจำนวนมาก หายไปจาก --รายละเอียด และ --พิจารณา เอาต์พุตนอกจากนี้ยังไม่เป็นประโยชน์ในการทดลองเนื่องจากปฏิเสธที่จะประกอบแบบอ่านอย่างเดียวแบบไม่ทำลาย

  3. ตัวควบคุม perc/megaraid ใช้รูปแบบ SNIA DDF ภายใน และนี่คือ ข้อกำหนดที่สาธารณชนเข้าถึงได้นั้นมีประโยชน์อย่างยิ่ง แม้ว่าในท้ายที่สุดแล้ว ฉันก็ค้นพบสิ่งที่ต้องการโดยปราศจากข้อมูลนี้

  4. สามารถคาดเดาลำดับของ Raid Strip ที่ถูกต้องจากข้อมูลเพียงอย่างเดียว มีประโยชน์มาก ขยะที่เหลือและข้อมูลอื่น ๆ ที่สามารถช่วยได้ ยังมีประโยชน์มาก ฉันจะพิจารณาเขียน "ดิสก์ 1", "ดิสก์ 2" และอื่นๆ ลงใน พื้นที่ "ว่างเปล่า" ของส่วนหัวโวลุ่ม RAID ของฉันนับจากนี้ (มี 0 ไบต์ยาวเหยียดใน 2MB แรก)

  5. มันง่ายมากที่จะบ้า - ชื่ออุปกรณ์, หมายเลขสมาชิก Raid, WWN, หมายเลขสล็อตและอื่น ๆ ทั้งหมดที่แตกต่างกันอาจหมายถึงข้อมูลจำนวนมาก จัดการและ WWN ก็ยาวและตาแก่ของฉันก็ไม่ดีอีกต่อไป นอกจากนี้ ฉันไม่เป็นระเบียบและมั่นใจในตัวเองมากเกินไป :/

  6. การสร้างและการลบอาร์เรย์โดยใช้ดิสก์ที่มีข้อมูลอยู่ จะไม่ลบข้อมูล อย่างน้อยกับ RAID5 และใช้พื้นหลัง การเริ่มต้น การเริ่มต้นเบื้องหน้าแทบจะเป็นศูนย์อย่างแน่นอน ดิสก์ นั่นหมายความว่าคุณสามารถสร้างและลบอาร์เรย์ได้มาก เท่าที่คุณต้องการโดยไม่เสี่ยงกับการสูญเสียข้อมูล โดยมีข้อยกเว้นประการหนึ่งที่เป็นไปได้: การลบอาร์เรย์บางครั้งต้องใช้ตัวเลือกบังคับเนื่องจาก RAID คอนโทรลเลอร์คิดว่ามัน "ใช้งานอยู่" เนื่องจากป้ายกำกับพาร์ติชันที่ถูกต้อง และนี่ อาจ ทำให้ป้ายกำกับ GPT - YMMV เป็นศูนย์ และตรวจสอบให้แน่ใจว่าคุณมีข้อมูลสำรองของ สองสามเมกะไบต์แรกในกรณี

  7. Perc/megaraid ไม่เข้าใจคอนเทนเนอร์ DDF ที่ไม่ใช่ของ Dell/megaraid ที่ อย่างน้อยฉันก็ไม่พบวิธีทำให้คอนโทรลเลอร์ยอมรับ DDF ที่สร้างด้วย mdadm ตู้คอนเทนเนอร์ ความสามารถในการฟอร์แมตดิสก์ใน GNU/Linux และย้ายกลับเข้าไปในคอนโทรลเลอร์จะช่วยได้มากและจะช่วยหลีกเลี่ยงความเศร้าโศกที่อยู่เคียงข้างฉันได้นานหลายชั่วโมง

สรุป

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

Nikita Kipriyanov avatar
za flag
มหัศจรรย์! และมีประโยชน์มาก โดยบังเอิญ ฉันมีประสบการณ์ในการสร้างอาร์เรย์ MegaRAID ใหม่และข้อมูลไม่ถูกลบ แต่นั่นคือ RAID1 หรือ RAID10 ซึ่งฉันลบออกจากระบบปฏิบัติการโดยไม่ตั้งใจโดยใช้ megacli (ระบบหยุดทำงานทันทีเพราะมันอาศัยอยู่ที่นั่น) จากนั้นฉันก็ประทับใจ เพื่อนร่วมงานว่าฉันฟื้นคืนชีพได้เร็วแค่ไหน ฉันเพิ่งสร้างอาร์เรย์ใหม่ :) และตามความเห็น *mdadm ... ปฏิเสธที่จะประกอบแบบอ่านอย่างเดียวแบบไม่ทำลาย* â นี่คือจุดที่การซ้อนทับเข้ามามีบทบาทและทำให้ทุกอย่างไม่ทำลาย และสิ่งเหล่านี้ถือเป็นข้อบังคับในความคิดของฉัน ดังนั้น ไม่มีปัญหากับ mdadm เช่นกัน
Remember Monica avatar
ru flag
ฉันคิดว่าเครื่องมือไม่ควรปฏิเสธโดยพลการเพราะต้องการ "ปกป้อง" ผู้ใช้ เป็นเรื่องปกติที่จะมีการป้องกันในระดับหนึ่ง แต่ควรมีตัวเลือกการบังคับบางอย่าง - lvm2 เป็นตัวอย่างที่ดี: โดยค่าเริ่มต้นจะป้องกันคุณจากความผิดพลาดได้เป็นอย่างดี แต่ถ้าคุณรู้ว่าคุณกำลังทำอะไรอยู่ คุณสามารถบังคับวิธีการของคุณได้ แน่นอนว่าการจัดรูปแบบการโจมตีด้วยข้อมูลนั้นนับว่า "คุณต้องรู้ว่าคุณกำลังทำอะไรอยู่" แค่ความเห็นของฉันแน่นอน
Score:1
ธง za

คุณสามารถลองถอดไดรฟ์ทั้งหมดออกจากเซิร์ฟเวอร์ที่ปิดอยู่ จากนั้นนำทั้งสองกลุ่มออก จากนั้นใส่ดิสก์กลับเข้าไปใหม่ ที่ควรรีเซ็ตดิสก์ทั้งหมดเป็นสถานะ "ต่างประเทศ" จากนั้นลองนำเข้าทั้งหมดในการดำเนินการครั้งเดียว

โดยหลักการแล้ว คอนโทรลเลอร์นี้ควรใช้รูปแบบบนดิสก์ SNIA DDF HBA (ไม่ใช่ตัวควบคุม RAID) จะไม่ตีความข้อมูลเมตา อนุญาตให้ซอฟต์แวร์เข้าถึงได้ ดังนั้นหากคุณสามารถเชื่อมต่อกับเครื่อง Linux โดยใช้ HBA ได้ ก็จะสามารถตรวจจับและรวบรวมอาร์เรย์นี้โดยใช้ MD RAID (Linux สามารถเข้าใจข้อมูลเมตาของ DDF และ IMSM นอกเหนือจากตัวมันเอง) ดังนั้นอย่างน้อยคุณก็จะสามารถเข้าถึง ข้อมูลเกี่ยวกับมัน ตัวอย่างเช่น หากไดรฟ์เหล่านี้เป็น SATA คุณก็สามารถเชื่อมต่อกับเมนบอร์ดได้

เพื่อเป็นการป้องกันไว้ก่อน ฉันจะดัมพ์ดิสก์ทั้งหมดโดยใช้ HBA ไปยังที่จัดเก็บข้อมูลสำรอง เผื่อมีอะไรผิดพลาด

อัปเดต: เห็นความคืบหน้าของคุณแล้ว ฉันสามารถแนะนำเพิ่มเติมได้

คุณสามารถลองปรับแต่งข้อมูลเมตาด้วยโปรแกรมแก้ไขฐานสิบหก อาจจำเป็นต้องตั้งค่าบางอย่างด้วยตนเองให้เป็น UUID เดียวกัน

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

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

นอกจากนี้ ก่อนประกอบกลับ ฉันจะใช้ไดรฟ์อีกชุดหนึ่ง (ไม่มีข้อมูลที่มีค่า) จำลอง (ลองทำซ้ำ) ปัญหากับพวกเขาแล้วลองซ่อมแซมก่อนตามคำแนะนำเหล่านี้

Remember Monica avatar
ru flag
คำแนะนำที่ดี - ฉันรู้ว่าฉันสามารถลอง recoiver โดยใช้ mdadm ได้ แต่แน่นอนว่าฉันต้องการหลีกเลี่ยงสิ่งนี้ ฉันได้ลองทำตามคำแนะนำของคุณและได้อัปเดตคำถามของฉันแล้ว โดยพื้นฐานแล้ว เมื่อฉันทำตามที่คุณแนะนำ ฉันได้รับดิสก์ต่างประเทศจำนวนมากที่สามารถนำเข้าได้ หลังจากนั้นฉันจึงมีการกำหนดค่าต่างประเทศอีกสองรายการด้วยดิสก์ Raid5
Remember Monica avatar
ru flag
สวัสดี! ฉันเพิ่งเขียนคำตอบของตัวเองและตอนนี้เพิ่งเห็นการอัปเดตของคุณ การแก้ไขเลขฐานสิบหกล้มเหลวเนื่องจากข้อมูล DDF มีการป้องกันด้วย CRC และฉันไม่สามารถจำลอง CRC ได้ง่ายๆ นอกจากนี้ AFAIK --assume-clean จะหลีกเลี่ยงการ resync เท่านั้น mdadm จะไม่ทำให้ข้อมูลเป็นศูนย์เลยทีเดียว โดยพื้นฐานแล้ว ฉันได้คิดวิธีที่คุณแนะนำขึ้นมาอย่างอิสระด้วยวิธีการที่แตกต่างกันบ้าง (kvm เทียบกับการซ้อนทับ เป็นต้น) ที่สำคัญที่สุด ในที่สุดฉันก็ไขปริศนาบางอย่างได้แล้ว เช่น ไม่ว่า perccli add/del จะลบข้อมูลหรือไม่ และความเข้าใจของฉันเกี่ยวกับรูปแบบ megaraid บนดิสก์ก็ค่อนข้างดี :) อย่างไรก็ตาม ขอบคุณสำหรับคำแนะนำที่ดีของคุณ!

โพสต์คำตอบ

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