আমি এইটির একটি সোজা উত্তর খুঁজতে চেষ্টা করেছি এবং এটি অধরা প্রমাণিত হয়েছে। এই প্রশ্ন এবং এর উত্তরটি নিকটবর্তী, তবে সত্যই আমি আমার পছন্দ করতে চাই না। আমি যা জানি তা দিয়ে শুরু করি।
আপনার যদি স্ট্যান্ডার্ড ব্লক ডিভাইস থাকে এবং আপনি চালনা করেন তবে sudo blockdev --report
আপনি এরকম কিছু পাবেন:
RO RA SSZ BSZ StartSec Size Device
rw 256 512 4096 0 500107862016 /dev/sda
rw 256 512 4096 2048 399999238144 /dev/sda1
rw 256 512 1024 781252606 1024 /dev/sda2
এখন, আপনি --setra
কোনও পার্টিশন ব্যবহার করে সেই ডিফল্টটিকে 256 থেকে 128 এ পরিবর্তন করার সিদ্ধান্ত নিয়েছেন এবং এটি পুরো ব্লক ডিভাইসে ঘটে, যেমন:
sudo blockdev --setra 128 /dev/sda1
sudo blockdev --report
RO RA SSZ BSZ StartSec Size Device
rw 128 512 4096 0 500107862016 /dev/sda
rw 128 512 4096 2048 399999238144 /dev/sda1
rw 128 512 1024 781252606 1024 /dev/sda2
এটি আমার কাছে নিখুঁত ধারণা তৈরি করে - ব্লক স্তরের ডিভাইসটি সেটিংটি যেখানে পার্টিশন নয়, তাই এটি সমস্ত পরিবর্তিত হয়। এছাড়াও আরএ সেটিংস এবং ডিভাইসের মধ্যে ডিফল্ট সম্পর্কটি আমার কাছে বোধগম্য হয়, এটি সাধারণত:
RA * sector size (default = 512 bytes)
অতএব, আমি ডিফল্ট সেক্টরের আকারের সাথে উপরে উপরে পরিবর্তনগুলি 128 কে থেকে 64 কে নেমে পড়ব। এখন পর্যন্ত সব ঠিক আছে।
তবে, যখন আমরা একটি সফ্টওয়্যার RAID, বা LVM এবং ডিভাইস-ম্যাপার যুক্ত করব তখন কী ঘটে? পরিবর্তে আপনার প্রতিবেদনটি এর মতো দেখাচ্ছে বলে মনে করুন:
RO RA SSZ BSZ StartSec Size Device
rw 256 512 4096 0 10737418240 /dev/xvda1
rw 256 512 4096 0 901875499008 /dev/xvdb
rw 256 512 4096 0 108447924224 /dev/xvdj
rw 256 512 4096 0 108447924224 /dev/xvdi
rw 256 512 4096 0 108447924224 /dev/xvdh
rw 256 512 4096 0 108447924224 /dev/xvdg
rw 4096 512 4096 0 433787502592 /dev/md0
rw 4096 512 512 0 429496729600 /dev/dm-0
এক্ষেত্রে আমাদের এমডিডএম দ্বারা নির্মিত এমডি0 এর শীর্ষে একটি ডিভাইস-ম্যাপযুক্ত ডিএম-0 এলভিএম ডিভাইস রয়েছে যা প্রকৃতপক্ষে চারটি ডিভাইস xvdg-j জুড়ে একটি RAID0 স্ট্রাইপ।
Md0 এবং dm-0 উভয়েরই আরএর জন্য 4096 এর সেটিংস রয়েছে, যা ব্লক ডিভাইসের চেয়ে অনেক বেশি। সুতরাং, এখানে কিছু প্রশ্ন:
- ভার্চুয়াল ব্লক ডিভাইস চেইনে আরএ সেটিংস কীভাবে পাস হবে?
- ডিএম-0 ট্রাম্প কি সমস্ত কারণ এটিই শীর্ষস্থানীয় ব্লক ডিভাইস যা আপনি আসলে অ্যাক্সেস করছেন?
- চান
lvchange -r
উপর জন্য dm-0 ডিভাইস একটা প্রভাব আছে এবং এখানে দেখাবে না?
যদি এটি যতটা সহজ হয় তবে আপনি যে ভার্চুয়াল ব্লক ডিভাইসটি ব্যবহার করছেন তা থেকে আরএ সেটিংসটি পাস হয়ে যায়, এর অর্থ কি ডিএম -0 (বা এমডি0) থেকে একটি পড়া 4 x 4096 আরএ পড়বে? (প্রতিটি ব্লক ডিভাইসে একটি)। যদি তা হয় তবে এর অর্থ এই হবে যে এই সেটিংসটি উপরের দৃশ্যে রিডহেডের আকারটি বিস্ফোরিত করবে।
তারপরে রিডহেড সেটিংটি আসলে কী করছে তা নির্ধারণের ক্ষেত্রে:
ভার্চুয়াল ডিভাইসের আসল রিডহেড মান নির্ধারণ করতে আপনি উপরের ক্ষেত্রের আকারের সমতুল্য কী ব্যবহার করবেন:
- RAID এর স্ট্রাইপ আকার (md0 এর জন্য)?
- কিছু অন্যান্য খাত সমান?
- এটি কনফিগারযোগ্য, এবং কিভাবে?
- এফএস কি কোনও ভূমিকা পালন করে (আমি প্রাথমিকভাবে এক্স 4 এবং এক্সএফএসে আগ্রহী)?
- অথবা, যদি এটি কেবলমাত্র পাস করা হয় তবে এটি কি কেবল শীর্ষ স্তরের ডিভাইস থেকে আরএ সেটিংসটি বাস্তব ব্লক ডিভাইসের খাত আকার দ্বারা গুণিত হয়?
অবশেষে, স্ট্রাইপ আকার এবং আরএ সেটিংয়ের মধ্যে কোনও পছন্দসই সম্পর্ক থাকবে (উদাহরণস্বরূপ)? এখানে আমি ভাবছি যে স্ট্রাইপটি যদি RAID ডিভাইসটি সরিয়ে ফেলার জন্য ক্ষুদ্রতম উপাদান হয় তবে আপনি আদর্শভাবে চান না যে সেখানে ন্যূনতম ইউনিটের ডেটা ব্যবহারের জন্য 2 ডিস্ক অ্যাক্সেস থাকতে হবে এবং আরএটি তৈরি করতে চান একক অ্যাক্সেসের মাধ্যমে অনুরোধটি পূরণ করতে যথেষ্ট বড়।