কীভাবে লেখার ক্যাশে বিভিন্ন গতির সাথে একটি ফাইল সিস্টেম স্প্যানিং ডিস্কের সাথে কাজ করে?


9

আধুনিক লিনাক্স সিস্টেমে একাধিক ডিস্ক এবং একটি সফ্টওয়্যার RAID ধীর (এইচডিডি) এবং দ্রুত (এসএসডি) ড্রাইভ উভয়ই প্রসারিত, ফাইল সিস্টেমকে ক্যাশে যায় কীভাবে?

এমডি-রেড RAID1 এর জন্য অ্যারেগুলি ডিস্কগুলি হিসাবে কনফিগার করা যেতে পারে --write-mostlyএবং --write-behindযা প্রস্তাব দেয় যে দ্রুত ডিস্ক থেকে পাঠ করা হয় এবং ধীর ডিস্কে লেখার পিছনে পিছিয়ে থাকতে পারে। কিন্তু এটি কার্নেল স্তরে ক্যাশেড কীভাবে? এমডি-রেইড স্তরটির আগে বা পরে ডিস্কটি কার্নেল ক্যাশে করে? একটি লিখন () কল শেষে ডেটা নোট --write-behindডিস্কগুলির মধ্যে একটিতে লিখিতভাবে গ্যারান্টিযুক্ত ?

একটি btrfsRAID1 এর জন্য একই পরিস্থিতি কীভাবে বাজবে? কোনও --write-behindকার্যকারিতা নেই, তাই কি নোংরা পৃষ্ঠাগুলি কোনও ডিভাইস স্তরে বা ফাইল সিস্টেম স্তরে গণনা করা হয়? কোন লিখন () ফিরে আসবে?

আপনি কিভাবে vm.dirty_*ratiotunables এই স্থাপনার প্রভাবিত করে?

উত্তর:


7

--write-mostly, --write-behindদ্বারা পরিচালিত হয় mdচালক অভ্যন্তরীণভাবে। mdরাইট-ইনটেন্ট বিটম্যাপের মতো মেটাডেটা রাখে (যা লেখার পিছনে থাকা বৈশিষ্ট্যের জন্য বাধ্যতামূলক) যা মূলত লগ ইন করে যে কোনও ডেটা এখনও লেখা হয়েছে যা বনাম কোন তথ্য এখনও অনুপস্থিত রয়েছে। কোনও বিদ্যুৎ হ্রাসের ঘটনা ঘটলে এটি প্রয়োজনীয়, যখন ডেটা এখনও বেশিরভাগ ডিভাইসে লেখেনি। সেক্ষেত্রে আক্রান্ত ডেটা অঞ্চলটি পুনরায় সিঙ্ক হবে (আপনার ক্ষেত্রে এসএসডি থেকে পড়া, এইচডিডি লিখুন)।

কিন্তু এটি কার্নেল স্তরে ক্যাশেড কীভাবে?

লেখার পিছনে থাকা মামলার জন্য, এমডি ড্রাইভার মূলত অভ্যন্তরীণভাবে লেখার অনুরোধটি নকল করে। মাস্টার রাইটিং অনুরোধ প্রাথমিক ড্রাইভে যায় এবং উপরের স্তরগুলিকে বলে "ঠিক আছে আমি ইতিমধ্যে এটি সম্পন্ন করেছি"; অনুলিপি করা লিখিত অনুরোধটি তখন RAID- র বেশিরভাগ অংশের পিছনে থাকে এবং আশা করি কারও নজর না দিয়ে শেষ হতে আরও বেশি সময় নিতে পারে।

তারপরে কিউতে এখনও লেখার পিছনে থাকা অনুরোধগুলি থাকা অবস্থায় এখনও রাইড-বেশিরভাগ ডিভাইস থেকে কোনও তথ্য পড়বে না তা নিশ্চিত করতে অভিযান স্তরটি অনেক পদক্ষেপ নেয়। বেশিরভাগ লেখার ডিভাইস থেকে কেন ডেটা পড়তে হবে? ঠিক আছে, এসএসডি ব্যর্থ হতে পারে তাই এখন যা কিছু বাকি আছে। এটি জটিল, এবং লেখার পিছনে কিছু কোণার ক্ষেত্রে পরিচয় করিয়ে দেওয়া হয়েছে।

এটি সম্ভবত এটিই RAID-1 স্তরের জন্য সমর্থিত, অন্য কারও জন্য নয়। লিখিত-পিছনের মোডে মূলত এসআইডি-র মূলত র‌্যাড -0 এবং দুটি প্যারিটি এইচডিডি থাকা তত্ত্বের বোধগম্য হওয়া সত্ত্বেও, এই জাতীয় লেখার পিছনে RAID-6 এর পক্ষে কোনও সমর্থন নেই। এটি শুধুমাত্র RAID-1 এবং খুব কমই সেখানে ব্যবহার করা হয়।

অন্যান্য ক্যাশে সেটিংস এতে ক্ষতিগ্রস্থ হয় না, মূলত সামগ্রিকভাবে ক্যাশিং পদ্ধতিটি mdড্রাইভার অভ্যন্তরীণভাবে কীভাবে জিনিসগুলি প্রয়োগ করেছে সে সম্পর্কে কমপক্ষে যত্ন নেয় না । ক্যাশে তার জিনিসটি করে এবং এমডি তার জিনিস করে। সুতরাং একটি ফাইল সিস্টেমের ক্যাশে এমডি এর উপরে একটি ফাইল সিস্টেমের জন্য একই কাজ করে একটি খালি ড্রাইভের উপরে একটি ফাইল সিস্টেম। (বাস্তবতা তার চেয়ে জটিল যে আরও জটিল, তবে আপনি এটি এইভাবে ভাবতে পারেন))


3

এমডি-রেড RAID1 এর জন্য অ্যারেগুলি ডিস্কগুলি হিসাবে কনফিগার করা যেতে পারে --write-mostlyএবং --write-behindযা প্রস্তাব দেয় যে দ্রুত ডিস্ক থেকে পাঠ করা হয় এবং ধীর ডিস্কে লেখার পিছনে পিছিয়ে থাকতে পারে। কিন্তু এটি কার্নেল স্তরে ক্যাশেড কীভাবে? এমডি-রেইড স্তরটির আগে বা পরে ডিস্কটি কার্নেল ক্যাশে করে?

পরে, যেহেতু এই বৈশিষ্ট্যটি এমডি-রেডের জন্য নির্দিষ্ট।

আপনার এই এমডি-রেড বৈশিষ্ট্যটিকে বাফারিং হিসাবে ভাবা উচিত, ক্যাশে করা নয়। এটি নিম্নলিখিত mdadmবিকল্প দ্বারা আবদ্ধ :

--write-পিছনে =

লিখিত-পিছনে মোড সক্ষম করা উচিত তা নির্দিষ্ট করুন (কেবল RAID1 এর জন্য বৈধ)। যদি কোনও যুক্তি নির্দিষ্ট করা থাকে, তবে এটি অনুমোদিত বকেয়া লেখকদের সর্বাধিক সংখ্যক সেট করে। ডিফল্ট মান 256।

আমি কেবল এটিই ভাবতে পারি যে এটি সাধারণ কার্নেল এবং হার্ডওয়্যার বাফারিংয়ের দ্বারাও সীমাবদ্ধ ie স্বাভাবিক কার্নেল বাফারিং দ্বারা বেষ্টিত nr_requestsএবং max_hw_sectors_kb। দেখুন /sys/class/block/$write_behind_device/queue/। হার্ডওয়্যার বাফারিং দ্বারা, আমি ড্রাইভের লিখিত ক্যাশে বোঝাতে চাইছি।

একটি লিখন () কল শেষে ডেটা নোট --write-behindডিস্কগুলির মধ্যে একটিতে লিখিতভাবে গ্যারান্টিযুক্ত ?

অবশ্যই ধরে নেওয়া, আপনার লেখার অর্থ () লেখার অর্থ ওএসওয়াইএনসি / ও_ডিএসওয়াইএনসি দিয়ে খোলা কোনও ফাইলে ছিল বা আপনি আসলে () + ফিনসিঙ্ক () লিখতে চেয়েছিলেন। যদি তা না হয় তবে কোনও গ্যারান্টি আদৌ প্রযোজ্য নয়।


ধন্যবাদ, তবে এটি আরও একটি প্রশ্ন উত্থাপন করে: ফাইলটি যদি ওএসওয়াইএনসি দিয়ে খোলা হয়, তবে প্রথম ডিস্কে লিখিত হওয়ার পরে কি এই লিখনটি () ফিরে আসে বা এই ক্ষেত্রে সমস্ত ডিস্ক লিখিত হয়েছিল?
স্টিভ

3
সাব-লিখিত-বিহীন ডিস্কগুলিতে সাব-
রাইটসকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.