Score:0

การกู้คืนข้อมูลจาก zpool ด้วยอุปกรณ์ที่หายไป

ธง cn

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

นี่คือเลย์เอาต์ดั้งเดิมของพูล (เรียกว่า "ห้องนิรภัย") ก่อนที่ฉันจะทำอะไร:

ห้องนิรภัย
  มิเรอร์-0
    SDD
    ด.ช

ฉันพยายามเพิ่มไดรฟ์อื่นโดยการออก zpool เพิ่ม vault /dev/sdcและได้รับคำเตือนจาก zpool (บางอย่างเกี่ยวกับการคาดหวัง vdev แต่ scd เป็นดิสก์) ฉันเพิกเฉยต่อคำเตือนและบังคับให้ดำเนินการกับ -ฉ (ใช่ มันค่อนข้างงี่เง่า ... )

ฉันลงเอยด้วยการกำหนดค่าพูลต่อไปนี้:

ห้องนิรภัย
  มิเรอร์-0
    SDD
    ด.ช
  เอสดีซี

เมื่อสังเกตว่า sdc ไม่ได้เป็นส่วนหนึ่งของกระจก ฉันพยายามเอามันออกจากสระอีกครั้งและพบว่ามันเป็นไปไม่ได้ ฉันเพิกเฉยต่อไดรฟ์พิเศษและรีบูต และสันนิษฐานว่าข้อมูลของฉันปลอดภัยแล้วใน mirror-0 และตัดสินใจใช้ repurpose sdc และใช้ไดรฟ์อื่นแทน เขียนทับ 100MB แรกของ sdc ด้วยศูนย์: dd if=/dev/zero of=/dev/sdc bs=1MB count=100 (ใช่ วันนี้ฉันโง่เป็นพิเศษ ... )

ตอนนี้เมื่อฉันพยายามนำเข้า zpool ฉันได้รับข้อผิดพลาดต่อไปนี้:

root@atlas:~# นำเข้า zpool                                                                                                                         
   สระว่ายน้ำ: ห้องนิรภัย                                                                                                                                     
     id:3553551207657826252                                                                                                                       
  สถานะ: UNAVAIL                                                                                                                                   
 สถานะ: อุปกรณ์อย่างน้อยหนึ่งเครื่องขาดหายไปจากระบบ                                                                                          
 การดำเนินการ: ไม่สามารถนำเข้าพูลได้ แนบสิ่งที่ขาดหายไป                                                                                           
        อุปกรณ์และลองอีกครั้ง                                                                                                                     
   ดู: http://zfsonlinux.org/msg/ZFS-8000-6X                                                                                                      
 การกำหนดค่า:                                                                                                                                           
                                                                                                                                                   
        ห้องนิรภัย UNAVAIL ไม่มีอุปกรณ์                                                                                                       
          มิเรอร์-0 ออนไลน์                                                                                                                        
            sdd ออนไลน์                                                                                                                        
            ออนไลน์                                                                                                                        
                                                                                                                                                   
        เป็นที่ทราบกันดีว่าอุปกรณ์เพิ่มเติมเป็นส่วนหนึ่งของพูลนี้                                                                         
        ไม่สามารถกำหนดค่าที่แน่นอนได้                                                                                                  

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

ใครสามารถช่วยฉันได้บ้าง

Score:0
ธง cn

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

เสียงสะท้อน 1 >> /sys/module/zfs/parameters/zfs_max_missing_tvds
zpool import -o readonly=on vault

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

zdb -e vault -ul | grep ' txg' | sed 's/.*= //' | จัดเรียง | ศีรษะ
zdb -deG -o zfs_max_missing_tvds=1 -T 5102203 ห้องนิรภัย # <- ข้อผิดพลาด
zdb -deG -o zfs_max_missing_tvds=1 -T 5102202 ห้องนิรภัย # <- ข้อผิดพลาด
zdb -deG -o zfs_max_missing_tvds=1 -T 5102201 ห้องนิรภัย # <- ใช้งานได้!

ฉันสามารถนำเข้า zpool ที่รหัสกลุ่มธุรกรรมที่ไม่เสียหาย:

zpool import -o readonly=on -T 5102201 ห้องนิรภัย

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

โพสต์คำตอบ

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