Biarkan saya mengakui terlebih dahulu bahwa saya telah membuat kesalahan, dan bahwa saya memiliki cadangan untuk sebagian besar tetapi tidak semua data pada RAID ini. Saya masih memiliki harapan untuk memulihkan sisa data. Saya tidak punya uang untuk membawa drive ke perusahaan ahli pemulihan.
Kesalahan # 0, tidak memiliki cadangan 100%. Aku tahu.
Saya memiliki mdadmsistem RAID5 4x3TB. Drive / dev / sd, semua dengan satu partisi /dev/sd[b-e]1. Saya sadar bahwa RAID5 pada drive yang sangat besar berisiko, namun saya tetap melakukannya.
Peristiwa terbaru
RAID menjadi menurun setelah dua drive gagal. Satu drive [/ dev / sdc] benar-benar hilang, yang lain [/ dev / sde] muncul kembali setelah siklus daya, tetapi tidak secara otomatis ditambahkan kembali ke RAID. Jadi saya dibiarkan dengan 4 perangkat RAID dengan hanya 2 drive aktif [/ dev / sdb dan / dev / sdd].
Kesalahan # 1, tidak menggunakan salinan dd drive untuk mengembalikan RAID. Saya tidak punya drive atau waktu. Kesalahan # 2, tidak membuat cadangan superblok dan mdadm -Edrive yang tersisa.
Upaya pemulihan
Saya memasang kembali RAID dalam mode terdegradasi dengan
mdadm --assemble --force /dev/md0, using /dev/sd[bde]1.
Saya kemudian dapat mengakses data saya. Saya diganti /dev/sdcdengan cadangan; kosong; drive identik.
Saya menghapus yang lama /dev/sdc1dari RAID
mdadm --fail /dev/md0 /dev/sdc1
Kesalahan # 3, tidak melakukan ini sebelum mengganti drive
Saya kemudian mempartisi yang baru /dev/sdcdan menambahkannya ke RAID.
mdadm --add /dev/md0 /dev/sdc1
Kemudian mulai mengembalikan RAID. ETA 300 menit. Saya mengikuti proses /proc/mdstathingga 2% dan kemudian melakukan hal-hal lain.
Memeriksa hasilnya
Beberapa jam (tetapi kurang dari 300 menit) kemudian, saya memeriksa prosesnya. Itu telah berhenti karena kesalahan baca pada /dev/sde1.
Di sinilah masalah sebenarnya dimulai
Saya kemudian dihapus /dev/sde1dari RAID dan menambahkannya kembali. Saya tidak ingat mengapa saya melakukan ini; sudah terlambat.
mdadm --manage /dev/md0 --remove /dev/sde1
mdadm --manage /dev/md0 --add /dev/sde1
Namun, /dev/sde1sekarang ditandai sebagai cadangan. Jadi saya memutuskan untuk membuat ulang seluruh array menggunakan --assume-clean menggunakan apa yang saya pikir adalah urutan yang benar, dan dengan /dev/sdc1hilang.
mdadm --create /dev/md0 --assume-clean -l5 -n4 /dev/sdb1 missing /dev/sdd1 /dev/sde1
Itu berhasil, tetapi sistem file tidak dikenali saat mencoba me-mount. (Seharusnya EXT4).
Pesanan perangkat
Saya kemudian memeriksa cadangan yang saya miliki /proc/mdstat, dan saya menemukan urutan drive.
md0 : active raid5 sdb1[0] sde1[4] sdd1[2] sdc1[1]
8790402048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
Saya kemudian ingat bahwa RAID ini mengalami kehilangan drive sekitar setahun yang lalu, dan pulih darinya dengan mengganti drive yang rusak dengan yang cadangan. Itu mungkin sedikit mengacak urutan perangkat ... jadi tidak ada drive [3] tetapi hanya [0], [1], [2], dan [4].
Saya mencoba untuk menemukan urutan drive dengan skrip Permute_array: https://raid.wiki.kernel.org/index.php/Permute_array.pl tetapi itu tidak menemukan urutan yang benar.
Pertanyaan
Saya sekarang memiliki dua pertanyaan utama:
Saya mengacaukan semua superblok pada drive, tetapi hanya memberikan:
mdadm --create --assume-cleanperintah (jadi saya seharusnya tidak menimpa data itu sendiri
/dev/sd[bde]1. Apakah saya benar bahwa secara teori RAID dapat dipulihkan [dengan asumsi untuk saat yang/dev/sde1ok] jika saya hanya menemukan urutan perangkat yang tepat?Apakah penting
/dev/sde1memberikan nomor perangkat [4] dalam RAID? Ketika saya membuatnya denganmdadm --create /dev/md0 --assume-clean -l5 -n4 \ /dev/sdb1 missing /dev/sdd1 /dev/sde1itu diberi nomor [3]. Saya ingin tahu apakah itu relevan dengan perhitungan blok paritas. Jika ternyata penting, bagaimana saya bisa membuat ulang array dengan
/dev/sdb1[0]hilang [1]/dev/sdd1[2]/dev/sde1[4]? Jika saya bisa membuatnya berfungsi, saya bisa memulainya dalam mode terdegradasi dan menambahkan drive baru/dev/sdc1dan membiarkannya melakukan sinkronisasi ulang lagi.
Tidak apa-apa jika Anda ingin menunjukkan kepada saya bahwa ini mungkin bukan tindakan terbaik, tetapi Anda akan menemukan bahwa saya menyadari hal ini. Alangkah baiknya jika ada yang punya saran.