আমি ডাব্লুডির জন্য ডিস্ক ফার্মওয়্যার লিখতাম, এবং আমি একবার ফার্মওয়্যারটি লিখেছিলাম যা খারাপ ব্লকগুলি পুনরায় স্বাক্ষর করে।
প্রথমে, বেশিরভাগ খারাপ ব্লকগুলি পড়তে দেখা যায়, লেখায় নয়। লেখাগুলি অন্ধভাবে করা হয়, যার অর্থ ডেটা চেক না করেই লেখা হয়। মিডিয়া খারাপ হলে কোনও লেখায়, হোস্ট সেই সেক্টরে কোনও পাঠ না করা পর্যন্ত আপনি এটি জানতে পারবেন না। সেক্টরের একটি ছোট্ট অংশ রয়েছে (সেক্টর শিরোনাম) যা সঠিক খাতটি সনাক্ত করতে লেখার উপরে পড়ে, যাতে সেক্টর শিরোনাম পড়তে কোনও ত্রুটি দেখা দেয়, ড্রাইভটি সেক্টরটিকে পুনরায় নিয়োগ করবে এবং প্রাপ্ত ডেটা দিয়ে এটিকে লিখবে লিখুন কমান্ড থেকে। তবে বেশিরভাগ খারাপ ব্লকগুলি পড়ার সময় সনাক্ত করা হয়, এবং কেবল একটি লিখন কোনও সেক্টরে সাফল্য লাভ করার অর্থ মিডিয়া ভাল নয় বা এই সেক্টরটি পুনরায় নিয়োগ দেওয়া হয়েছে বলে নয়।
খারাপ ব্লক পুনর্নির্ধারণ সম্পর্কে (এটি পুনঃস্থাপনও বলা হয়)। হ্যাঁ, সাধারণত ত্রুটিটি যথেষ্ট খারাপ হলে ড্রাইভটি একটি সেক্টরকে পুনরায় নিয়োগের চেষ্টা করবে (যেমন, ইসিসি ব্যর্থতা যথেষ্ট খারাপ) তবে ইসিসি সংশোধনের পরেও ড্রাইভটি ডেটা পুনরুদ্ধার করতে পারে। সাধারণত এটি স্বয়ংক্রিয়ভাবে সম্পন্ন হয়। একমাত্র ব্যতিক্রম হ'ল হোস্ট পূর্বে ড্রাইভকে স্বয়ংক্রিয় পুনঃস্থাপন না করার কথা বলতে পারত, তবে এটি খুব কমই সম্পন্ন হয়।
তাহলে কী ঘটে যদি ড্রাইভটি একটি পঠন করে এবং ডেটা পুনরুদ্ধার করতে না পারে? কিছুই নেই। ত্রুটিটি হোস্টকে জানানো হয়েছে, তবে কোনও পুনরায় নিয়োগ দেওয়া হয়নি। সমস্যাটি হ'ল ড্রাইভটি সেক্টরটিকে পুনরায় নিয়োগ করতে পারে, তবে নতুন পুনর্নির্দিষ্ট সেক্টরে কী ডেটা লিখতে হবে তার সামান্যতম ধারণা নেই। যদি এটি কেবল একটি গুচ্ছ জিরো লিখেছিল, বলুন এবং তারপরে আবার সেক্টরটি পড়তে পারা যায়, এটি ডেটা বৈধ নয় বলে কোনও ইঙ্গিত ছাড়াই সমস্ত জিরো ফিরিয়ে দেয়। এটি মূলত ডেটা দুর্নীতি হিসাবে একই জিনিস। ড্রাইভটি বিভিন্ন কারণে হোস্টের ত্রুটির উপর নজর রাখতে পারে না (উদাহরণস্বরূপ, যদি ড্রাইভটি একটি নতুন হোস্টে স্থানান্তরিত হয় তবে কী হবে?), তাই ডেটা করতে না পারলে কর্মের সর্বোত্তম উপায় হ'ল ' পুনরুদ্ধার করা হবে না।
আধুনিক ড্রাইভগুলি, খারাপ খাতটির অবস্থানটি পুনরায় স্থান পরিবর্তন করতে না পারলে সংরক্ষণ করবে। রিলোকেশন অপেক্ষারত খারাপ সেক্টরের সংখ্যা স্মার্ট ডেটাতে পাওয়া যাবে। রিলোকেশনের অপেক্ষায় থাকা খারাপ সেক্টরগুলির একটিতে যদি একটি লিখন করা হয়, তবে পুনরায় স্থান নির্ধারণের কাজটি ঘটে কারণ পুনরায় প্রত্যাবর্তনের পরে ড্রাইভে এখন এটিতে লেখার জন্য বৈধ ডেটা রয়েছে What সুতরাং লোকেরা যখন খারাপ খাতে লেখার কথা বলে তখন তা পুনরায় প্রকাশিত হয়, এটি সত্যিই কেবল গল্পের অর্ধেক গল্প। ড্রাইভটি অবশ্যই প্রথমে পড়তে হবে যাতে ড্রাইভটি এমন সমস্ত খারাপ সেক্টর আবিষ্কার করতে পারে যা স্বয়ংক্রিয়ভাবে পুনরায় স্থাপন করা যায় না। সুতরাং আপনি একটি সম্পূর্ণ ড্রাইভ লিখতে পারেন, এবং স্মার্ট তথ্য বলবে যে পুনর্নির্ধারণের অপেক্ষায় কোনও খারাপ ক্ষেত্র নেই, তবে আপনি অগত্যা সমস্ত খারাপ খাতগুলির ড্রাইভ সাফ করেন নি। সুতরাং আপনি যদি সত্যিই সমস্ত খারাপ খাতের একটি ড্রাইভ সাফ করতে চান,
খারাপ ব্লকগুলির সাথে মোকাবিলার অন্যান্য উপায় রয়েছে যা পুনরায় স্থান দেওয়া যায় না। ড্রাইভটি যদি রিডান্ট্যান্ট RAID কনফিগারেশনের অংশ হয় (যেমন, RAID 0 ব্যতীত অন্য কিছু হয়), RAID সফ্টওয়্যারটি স্বয়ংক্রিয়ভাবে অন্য ড্রাইভগুলির থেকে খারাপ সেক্টরের জন্য ডেটা পুনরুদ্ধার করে পুনরায় স্থানান্তরিত খাতটিতে লিখতে হবে। এসসিএসআই ডিস্কের একটি স্পষ্টত পুনঃসাইন ব্লক কমান্ড রয়েছে যা হোস্টটি ব্লকে লেখার জন্য কোনও বৈধ ডেটা না থাকলেও পুনরায় নিয়োগের জন্য বাধ্য করতে পারে তবে এটির ব্যবহারটি বেশ নিম্ন স্তরের।