আমাকে প্রথমে স্বীকার করতে দাও যে আমি ভুল করেছি এবং এই RAID- র সমস্ত ডেটা নয় তবে বেশিরভাগের জন্য আমার একটি ব্যাকআপ রয়েছে । আমি এখনও বাকি তথ্য পুনরুদ্ধার আশা করি। ড্রাইভগুলি পুনরুদ্ধার বিশেষজ্ঞ সংস্থায় নিয়ে যাওয়ার মতো ধরণের অর্থ আমার কাছে নেই।
ভুল # 0, একটি 100% ব্যাকআপ নেই। আমি জানি.
আমার কাছে mdadm4x3TB এর একটি RAID5 সিস্টেম রয়েছে। ড্রাইভ / ডেভ / এসডি [হতে], সমস্তই একটি পার্টিশন সহ /dev/sd[b-e]1। আমি সচেতন যে খুব বড় ড্রাইভের RAID5 ঝুঁকিপূর্ণ, তবুও আমি এটি যাইহোক করেছি।
সম্প্রতিক ঘটনাবলী
দুটি ড্রাইভ ব্যর্থতার পরে RAID অবনমিত হয়। একটি ড্রাইভ [/ dev / sdc] সত্যিই চলে গেছে, অন্য [/ dev / sde] একটি পাওয়ার চক্র পরে ফিরে এসেছিল, তবে স্বয়ংক্রিয়ভাবে RAID- এ পুনরায় যুক্ত হয়নি। সুতরাং আমি কেবলমাত্র 2 টি সক্রিয় ড্রাইভ [/ dev / sdb এবং / dev / sdd] সহ একটি 4 ডিভাইস RAID রেখে এসেছি।
ভুল # 1, RAID পুনরুদ্ধার করার জন্য ড্রাইভের ডিডি কপি ব্যবহার না করা। আমার ড্রাইভ বা সময় ছিল না। ভুল # 2, সুপারব্লক এবং mdadm -Eঅবশিষ্ট ড্রাইভগুলির ব্যাকআপ না করে।
পুনরুদ্ধারের প্রচেষ্টা
আমি ডিএইডিটিকে ডিগ্রিড মোডে পুনরায় জমা দিয়েছিলাম
mdadm --assemble --force /dev/md0, using /dev/sd[bde]1.
আমি তখন আমার ডেটা অ্যাক্সেস করতে পারি। আমি /dev/sdcঅতিরিক্ত দিয়ে প্রতিস্থাপন করেছি ; খালি; অভিন্ন ড্রাইভ
আমি /dev/sdc1পুরানোটিকে RAID থেকে সরিয়েছি
mdadm --fail /dev/md0 /dev/sdc1
ভুল # 3 করুন, ড্রাইভ প্রতিস্থাপনের আগে এটি করছেন না
আমি তখন নতুনটি পার্টিশন করে /dev/sdcএটিকে RAID এ যুক্ত করেছি।
mdadm --add /dev/md0 /dev/sdc1
এটি তখন RAID পুনরুদ্ধার করতে শুরু করে। ইটিএ 300 মিনিট। আমি প্রক্রিয়াটি /proc/mdstat2% এর মাধ্যমে অনুসরণ করেছি এবং তারপরে অন্যান্য স্টাফগুলি করতে গিয়েছিলাম।
ফলাফল চেক করা হচ্ছে
বেশ কয়েক ঘন্টা (তবে 300 মিনিটের কম) পরে, আমি প্রক্রিয়াটি পরীক্ষা করে দেখলাম। এটি একটি পঠন ত্রুটির কারণে বন্ধ হয়ে গিয়েছিল /dev/sde1।
এখানেই সমস্যাটি শুরু হয়
আমি তখন /dev/sde1RAID থেকে সরিয়ে এটিকে আবার যুক্ত করেছি। আমি কেন এটি করেছি তা মনে করতে পারি না; এটা দেরি হয়ে গেছে.
mdadm --manage /dev/md0 --remove /dev/sde1
mdadm --manage /dev/md0 --add /dev/sde1
তবে, /dev/sde1এখন অতিরিক্ত হিসাবে চিহ্নিত করা হয়েছিল। সুতরাং আমি সিদ্ধান্ত নিয়েছিলাম - অ্য্যাসিউম-ক্লিন যা আমি সঠিক ক্রম বলে মনে করেছি তা ব্যবহার করে এবং /dev/sdc1নিখোঁজ হয়ে পুরো অ্যারেটি পুনরায় তৈরি করবো ।
mdadm --create /dev/md0 --assume-clean -l5 -n4 /dev/sdb1 missing /dev/sdd1 /dev/sde1
এটি কাজ করেছে, তবে মাউন্ট করার চেষ্টা করার সময় ফাইল সিস্টেমটি সনাক্ত করা যায়নি। (এটি EXT4 হওয়া উচিত ছিল)।
ডিভাইস অর্ডার
আমি তখন আমার কাছে থাকা একটি সাম্প্রতিক ব্যাকআপ চেক করেছিলাম /proc/mdstatএবং আমি ড্রাইভের অর্ডার পেয়েছি।
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]
আমি তখন মনে করি এই র্যাড প্রায় এক বছর আগে ড্রাইভ ক্ষতিতে ভুগছিল এবং ত্রুটিযুক্ত ড্রাইভের অতিরিক্ত ছাড়িয়ে প্রতিস্থাপন করে এটি থেকে সেরে উঠলাম। এটি হয়ত ডিভাইসটির অর্ডারটিকে কিছুটা ঝাঁকুনিতে ফেলেছে ... সুতরাং কোনও ড্রাইভ নেই [3] তবে কেবল [0], [1], [2] এবং [4]।
আমি পারমুটে_আরলি স্ক্রিপ্ট: ড্রাইভ অর্ডারটি সন্ধান করার চেষ্টা করেছি: https :// भय.wiki.kernel.org/index.php/Permute_array.pl কিন্তু এটি সঠিক ক্রমটি খুঁজে পেল না।
প্রশ্নাবলি
আমার এখন দুটি প্রধান প্রশ্ন আছে:
আমি ড্রাইভগুলিতে সমস্ত সুপারব্লকগুলি আঁকিয়েছি, তবে কেবল দিয়েছেন:
mdadm --create --assume-cleanকমান্ড (সুতরাং আমার নিজের উপর ডেটা ওভাররাইট করা উচিত ছিল না
/dev/sd[bde]1I আমি কি ঠিক বলছি যে তাত্ত্বিকভাবে RAID পুনরুদ্ধার করা যেতে পারে [এক মুহুর্তের জন্য/dev/sde1যা ঠিক আছে তা ধরে নিচ্ছি]] আমি যদি সঠিক ডিভাইসের ক্রমটি পাই তবে?/dev/sde1RAID- এ ডিভাইস নম্বর [4] দেওয়া কি গুরুত্বপূর্ণ ? যখন আমি এটি দিয়ে তৈরি করিmdadm --create /dev/md0 --assume-clean -l5 -n4 \ /dev/sdb1 missing /dev/sdd1 /dev/sde1এটি নম্বর দেওয়া হয়েছে [3]। আমি ভাবছি যে এটি প্যারিটি ব্লকের গণনার সাথে প্রাসঙ্গিক কিনা। যদি এটি গুরুত্বপূর্ণ হয়ে যায়, আমি কীভাবে অ্যারেটি পুনরায় তৈরি করতে পারি
/dev/sdb1[0][1]/dev/sdd1[2]/dev/sde1[4]? যদি আমি এটি কাজ করতে পেতাম তবে/dev/sdc1আমি এটিকে অবনতিযুক্ত মোডে শুরু করতে এবং নতুন ড্রাইভ যুক্ত করতে এবং এটিকে আবার সংযুক্ত করতে দিতে পারি।
আপনি যদি আমার কাছে এটি উল্লেখ করতে চান তবে এটি ঠিক আছে যে এটি সম্ভবত সেরা পদক্ষেপ নাও হতে পারে তবে আপনি দেখতে পাবেন যে আমি এটি উপলব্ধি করেছি। কারও কোনও পরামর্শ থাকলে এটি দুর্দান্ত হবে।