1. ফ্ল্যাশ-ভিত্তিক স্টোরেজ
এটি কি ডিস্কের ধরণের (প্রচলিত হার্ড ড্রাইভ বনাম সলিড-স্টেট ডিস্ক) বা এমন কোনও ভেরিয়েবলের উপর নির্ভর করে যা আমি অবগত নই? এটি কি কেবল লিনাক্সে ঘটে (যদি তা হয়) তবে এটি অন্যান্য ওএসে উপস্থিত রয়েছে?
আপনার পছন্দ থাকলে, ফ্ল্যাশ-ভিত্তিক স্টোরেজটিকে ক্লিন শাটডাউন না করে শক্তি হারাতে দেওয়া উচিত নয়।
এসডি কার্ডের মতো স্বল্পমূল্যের স্টোরেজে, আপনি পুরো মুছে ফেলা (4KB এর চেয়ে কয়েকগুণ বেশি) হারানোর আশা করতে পারেন, এমন ফাইল হারাবেন যা বিভিন্ন ফাইল বা ফাইল সিস্টেমের প্রয়োজনীয় কাঠামোর অন্তর্ভুক্ত হতে পারে।
কিছু ব্যয়বহুল এসএসডি বিদ্যুতের ব্যর্থতার ক্ষেত্রে আরও ভাল গ্যারান্টি দেওয়ার দাবি করতে পারে। তবে তৃতীয় পক্ষের পরীক্ষার পরামর্শ দেয় যে অনেক ব্যয়বহুল এসএসডি এটি করতে ব্যর্থ হয়। "পরিধান সমতলকরণ" এর জন্য ব্লকগুলি পুনরুদ্ধার করে এমন স্তরটি জটিল এবং মালিকানাধীন। সম্ভাব্য ব্যর্থতাগুলির মধ্যে ড্রাইভের সমস্ত ডেটা হ্রাস অন্তর্ভুক্ত।
আমাদের পরীক্ষার কাঠামো প্রয়োগ করে আমরা মোট ছয় হাজারেরও বেশি ফল্ট ইনজেকশন চক্র ব্যবহার করে ছয়টি বিভিন্ন বিক্রেতার 17 টি এসএসডি পরীক্ষা করি। আমাদের পরীক্ষামূলক ফলাফলগুলি প্রমাণ করে যে 17 টির মধ্যে পরীক্ষিত এসএসডি ডিভাইসগুলির মধ্যে 14 টি বিদ্যুত্ ত্রুটির মধ্যে বিস্ময়কর ব্যর্থতার আচরণ প্রদর্শন করে, যার মধ্যে কিছুটা দুর্নীতি, শর্ণ লেখায়, অবিরোধযোগ্য লেখায়, মেটাডেটা দুর্নীতিতে এবং মোট ডিভাইস ব্যর্থতা।
2017: https://dl.acm.org/citation.cfm?id=2992782&preflayout=flat
২০১৩: https://www.usenix.org/system/files/conferences/fast13/fast13-final80.pdf?wptouch_preview_theme=en सक्षम
2. হার্ড ডিস্ক ড্রাইভ স্পিনিং
স্পিনিং এইচডিডিগুলির বিভিন্ন বৈশিষ্ট্য রয়েছে। সুরক্ষা এবং সরলতার জন্য, আমি ধরে নিচ্ছি যে তাদের ফ্ল্যাশ-ভিত্তিক স্টোরেজের মতো ব্যবহারিক অনিশ্চয়তা রয়েছে।
আপনার কাছে সুনির্দিষ্ট প্রমাণ না থাকলে, যা আপনি পরিষ্কারভাবে ব্যবহার করেন না। এইচডিডি স্পিনিংয়ের জন্য আমার তুলনামূলক পরিসংখ্যান নেই।
এইচডিডি একটি অসম্পূর্ণ লিখিত খাতটিকে একটি খারাপ চেকসাম সহ ছেড়ে যেতে পারে, যা আমাদের পরবর্তীতে একটি দুর্দান্ত পড়ার ব্যর্থতা দেয়। বিস্তৃতভাবে বলতে গেলে, এইচডিডিগুলির এই ব্যর্থতা মোডটি সম্পূর্ণ প্রত্যাশিত; নেটিভ লিনাক্স ফাইল সিস্টেমগুলি এটি মাথায় রেখে তৈরি করা হয়েছে। fsync()
এ জাতীয় বিদ্যুৎ হ্রাস ত্রুটির মধ্যে চুক্তিটি সংরক্ষণের লক্ষ্য তাদের । (এসএসডিগুলিতে এটির নিশ্চয়তা আমরা দেখতে চাই)
তবে আমি নিশ্চিত নই যে লিনাক্স ফাইল সিস্টেমগুলি সমস্ত ক্ষেত্রে এটি অর্জন করে, বা এটি এমনকি সম্ভব কিনা।
এই ধরণের ত্রুটির পরে পরবর্তী বুটের জন্য একটি ফাইল সিস্টেম মেরামতের প্রয়োজন হতে পারে। এটি লিনাক্স হ'ল এটি সম্ভব যে ফাইল সিস্টেম মেরামত এমন কিছু প্রশ্ন জিজ্ঞাসা করবে যা আপনি বুঝতে পারছেন না, যেখানে আপনি কেবল Y টিপতে পারেন এবং আশা করেন যে এটি নিজেই সমাধান হয়ে যাবে।
২.১ যদি আপনি না জানেন তবে fsync () চুক্তিটি কী
Fsync () চুক্তিটি সুসংবাদ এবং খারাপ খবর উভয়েরই উত্স। আপনাকে অবশ্যই সুখবরটি বুঝতে হবে।
সুসংবাদ: fsync()
ফাইলের ডেটা লেখার সঠিক উপায় হিসাবে ডকুমেন্টেড যেমন উদাহরণস্বরূপ আপনি যখন "সংরক্ষণ করুন" টিপুন। এবং এটি ব্যাপকভাবে বোঝা যায় যে টেক্সট সম্পাদকদের অবশ্যই বিদ্যমান ফাইলগুলি পরমাণুভাবে ব্যবহার করে প্রতিস্থাপন করতে হবে rename()
। এটি সর্বদা পুরানো ফাইলটি রাখুন বা নতুন ফাইলটি (যা fsync()
নামটির আগে সম্পাদনা করা হয়েছিল ) পান তা নিশ্চিত করার জন্য এটি বোঝানো হয়েছে । আপনি নতুন ফাইলটির অর্ধ-লিখিত সংস্করণটি রেখে যেতে চান না।
খারাপ খবর: বেশ কয়েক বছর ধরে, সর্বাধিক জনপ্রিয় লিনাক্স ফাইল সিস্টেমে fsync () কল করা কার্যকরভাবে পুরো সিস্টেমটিকে কয়েক সেকেন্ডের জন্য স্থির রাখতে পারে। যেহেতু অ্যাপ্লিকেশনগুলি এ সম্পর্কে কিছুই করতে পারে না, তাই আশাবাদীভাবে ফিনসিঙ্ক () ছাড়াই পুনর্নামকরণ () নামটি ব্যবহার করা খুব সাধারণ বিষয় ছিল, যা এই ফাইল সিস্টেমে তুলনামূলকভাবে নির্ভরযোগ্য বলে মনে হয়েছিল।
সুতরাং, অ্যাপ্লিকেশনগুলি উপস্থিত রয়েছে যা fsync () সঠিকভাবে ব্যবহার করে না।
এই ফাইল সিস্টেমের পরবর্তী সংস্করণটি সাধারণত fsync () হ্যাং এড়ায় - একই সাথে এটি fsync () এর সঠিক ব্যবহারের উপর নির্ভর করতে শুরু করে।
এই সব বেশ খারাপ। এই ইতিহাস বোঝা সম্ভবত বরখাস্ত সুর এবং উদ্দীপনা দ্বারা সহায়তা করে না যা অনেকগুলি বিরোধী কার্নেল বিকাশকারীদের দ্বারা ব্যবহৃত হয়েছিল।
বর্তমান রেজোলিউশনটি হ'ল বর্তমান সর্বাধিক জনপ্রিয় লিনাক্স ফাইল সিস্টেম পুনরায় নাম () প্যাটার্নকে সমর্থন করতে ডিফল্ট fsync () এর প্রয়োজন ছাড়াইপূর্ববর্তী সংস্করণটির সাথে "বাগের জন্য বাগ সামঞ্জস্য" প্রয়োগ করে। এটি মাউন্ট বিকল্পের সাথে অক্ষম করা যেতে পারে noauto_da_alloc
।
এটি সম্পূর্ণ সুরক্ষা নয়। মূলত এটি পুনর্নবীকরণের সময় () সময়ে মুলতুবি থাকা আইওকে ফ্লাশ করে তবে নাম পরিবর্তন করার আগে আইওর সম্পূর্ণ হওয়ার জন্য এটি অপেক্ষা করে না। এটি উদাহরণস্বরূপ 60 সেকেন্ডের বিপদ উইন্ডোর তুলনায় অনেক ভাল! আরও দেখুন উত্তর কোনটি ফাইল সিস্টেম যখন পুনঃনামকরণ সঙ্গে একটি বিদ্যমান ফাইল প্রতিস্থাপন ক্র্যাশ-নিরাপত্তার জন্য fsync () প্রয়োজন ()?
কিছু কম জনপ্রিয় ফাইল সিস্টেম সুরক্ষা সরবরাহ করে না। এক্সএফএস তা করতে অস্বীকার করে। এবং ইউবিআইএফএস এটি প্রয়োগ করে নি, দৃশ্যত এটি গৃহীত হতে পারে তবে এটি সম্ভব করার জন্য অনেক কাজ প্রয়োজন। একই পৃষ্ঠাটি নির্দেশ করে যে ইউবিআইএফএসের বিদ্যুতের ক্ষয়ক্ষতি সহ ডেটা অখণ্ডতার জন্য আরও কয়েকটি "টোডো" ইস্যু রয়েছে। ইউবিআইএফএস হ'ল একটি ফাইল সিস্টেম যা সরাসরি ফ্ল্যাশ স্টোরেজে ব্যবহৃত হয়। আমি কল্পনা করি যে ফ্ল্যাশ স্টোরেজ সহ ইউবিআইফএস উল্লেখ করেছে এমন কয়েকটি সমস্যা এসএসডি বাগগুলির সাথে প্রাসঙ্গিক হতে পারে।