मैं इस पर एक सीधा जवाब खोजने की कोशिश कर रहा हूं, और यह मायावी साबित हुआ है। यह सवाल और इसका जवाब करीब है, लेकिन वास्तव में मुझे वह बारीकियां नहीं देता जो मैं चाहूंगा। जो मुझे लगता है कि मुझे पता है के साथ शुरू करते हैं।
यदि आपके पास एक मानक ब्लॉक डिवाइस है और आप चलाते हैं 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)
इसलिए, डिफ़ॉल्ट सेक्टर आकार के साथ मैंने जो बदलाव किए हैं, वे रीडहेड को 128k से 64k तक छोड़ देंगे। सभी अच्छी तरह से और अब तक अच्छा।
हालाँकि, क्या होता है जब हम एक सॉफ्टवेयर 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
इस मामले में हमारे पास mdadm द्वारा बनाए गए md0 के शीर्ष पर एक डिवाइस-मैप्ड dm-0 LVM डिवाइस है, जो वास्तव में चार डिवाइस xvdg-j पर एक RAID0 स्ट्राइप है।
दोनों md0 और dm-0 में आरए के लिए 4096 की सेटिंग्स हैं, जो ब्लॉक डिवाइस से कहीं अधिक है। तो, यहाँ कुछ प्रश्न:
- आरए सेटिंग वर्चुअल ब्लॉक डिवाइस चेन से कैसे गुजरती है?
- क्या dm-0 ट्रम्प सभी क्योंकि शीर्ष स्तर का ब्लॉक डिवाइस है जिसे आप वास्तव में एक्सेस कर रहे हैं?
- चाहेंगे
lvchange -r
पर dm-0 डिवाइस प्रभाव पड़ता है और यहां दिखाई नहीं?
यदि यह उतना ही सरल है, जितना कि आप उपयोग कर रहे वर्चुअल ब्लॉक डिवाइस से RA सेटिंग को पास करते हैं, तो क्या इसका मतलब यह है कि dm-0 (या md0) से एक रीड 4 x 4096 RA रीड में अनुवाद करेगा? (प्रत्येक ब्लॉक डिवाइस पर एक)। यदि हां, तो इसका मतलब यह होगा कि ये सेटिंग्स ऊपर के परिदृश्य में रीडहेड के आकार में विस्फोट कर सकती हैं।
फिर यह पता लगाने के संदर्भ में कि वास्तव में रीडहेड सेटिंग क्या कर रही है:
वर्चुअल डिवाइस के लिए वास्तविक रीडहेड मान निर्धारित करने के लिए आप सेक्टर आकार के बराबर क्या उपयोग करते हैं:
- RAID की पट्टी का आकार (md0 के लिए)?
- कुछ अन्य सेक्टर के आकार के बराबर?
- क्या यह विन्यास योग्य है, और कैसे?
- क्या FS एक हिस्सा निभाता है (मैं मुख्य रूप से ext4 और XFS में दिलचस्पी रखता हूं)?
- या, अगर इसे अभी-अभी पारित किया गया है, तो क्या यह केवल शीर्ष स्तर के डिवाइस से आरए सेटिंग वास्तविक ब्लॉक उपकरणों के सेक्टर आकार से गुणा है?
अंत में, धारी के आकार और आरए सेटिंग (उदाहरण के लिए) के बीच कोई पसंदीदा संबंध होगा? यहाँ मैं सोच रहा हूँ कि यदि स्ट्रिप सबसे छोटा तत्व है जो कि RAID डिवाइस से निकाला जा रहा है, तो आप आदर्श रूप से यह नहीं चाहेंगे कि डेटा की न्यूनतम इकाई तक सेवा के लिए 2 डिस्क एक्सेस हो और आरए बनाना चाहेगा। एकल पहुंच के साथ अनुरोध को पूरा करने के लिए पर्याप्त बड़ा।