একাধিক স্তর (শারীরিক ড্রাইভ -> এমডি -> ডিএম -> এলভিএম) এর ক্ষেত্রে, শিডিয়ুলার, রিডহেড সেটিংস এবং অন্যান্য ডিস্ক সেটিংস কীভাবে ইন্টারঅ্যাক্ট করে?
ভাবুন আপনার mddm দ্বারা তৈরি একটি সফ্টওয়্যার RAID ডিভাইসের সমস্ত অংশ (/ dev / sda - / dev / sdd) বেশ কয়েকটি ডিস্ক রয়েছে (/ dev / sda - / dev / sdd)। (শারীরিক ডিস্ক ও / dev / md0 সহ) প্রতিটি ডিভাইস আই নির্ধারণকারী জন্য নিজস্ব সেটিং (হয়েছে তাই মত পরিবর্তিত ) এবং readahead ( blockdev ব্যবহার পরিবর্তিত )। আপনি যখন ডিএম (ক্রিপ্টো) এবং এলভিএমের মতো জিনিস ফেলে দেন আপনি তাদের নিজস্ব সেটিংসের সাথে আরও বেশি স্তর যুক্ত করেন।
উদাহরণস্বরূপ, যদি ফিজিকাল ডিভাইসটিতে 128 টি ব্লকের আগে পড়া থাকে এবং RAID এর 64 টি ব্লকের একটি রিডহেড থাকে, তবে আমি / dev / md0 থেকে পাঠ করিলে সম্মানিত হয়? এমডি ড্রাইভার কি একটি 64 টি ব্লক পড়ার চেষ্টা করে যা প্রকৃত ডিভাইস ড্রাইভার 128 ব্লকের একটি পঠনকে অনুবাদ করে? অথবা র্যাড রিডহেড অন্তর্নিহিত ডিভাইসে "পাস-থ্রো" করে, যার ফলে 64৪ টি ব্লক পড়ে?
একই ধরণের প্রশ্ন শিডিয়ুলারদের জন্য রয়েছে? আইও শিডিউলারের একাধিক স্তর এবং সেগুলি কীভাবে ইন্টারঅ্যাক্ট করে সে সম্পর্কে কি আমাকে চিন্তিত হতে হবে, বা / dev / md0 কার্যকরভাবে অন্তর্নিহিত শিডিয়ুলগুলিকে ওভাররাইড করে?
এই প্রশ্নের উত্তর দেওয়ার জন্য আমার প্রচেষ্টায়, আমি শিডিয়ুলার এবং সরঞ্জামগুলিতে কিছু আকর্ষণীয় ডেটা তৈরি করেছি যা এটি বের করতে সহায়তা করতে পারে:
/sys/block/md0/queue/schedulerআমার সিস্টেমে একটি আছে , তবে সেখানে একমাত্র পছন্দnone।