मेरे पास USB के माध्यम से 1 टीबी ड्राइव जुड़ा हुआ है। इसमें संपूर्ण डिवाइस (बिना किसी विभाजन तालिका) को भरने वाले LVM भौतिक आयतन शामिल हैं । जब मैंने पूरे पीवी का उपयोग करके एक तार्किक आयतन का विस्तार करने की कोशिश की , तो डिवाइस-मैपर ने यह शिकायत करना शुरू कर दिया कि पीवी पर एलवीएम द्वारा आवंटित अनुभाग डिवाइस से बड़ा है। डिवाइस-मैपर से त्रुटि संदेश (जैसा कि दिखाया गया है dmesg
) 1953320367 [dm] सेक्टरों के आकार की रिपोर्ट करता है:
device-mapper: table: 254:0: sdf too small for target: start=1821353984, len=132169728, dev_size=1953320367
लेकिन LVM ने 238467 भौतिक विस्तार के साथ एक PV बनाया , जो 1953521664 [lvm] सेक्टर (जो लगभग 100 एमबी अधिक है):
$ pvdisplay /dev/sdf
--- Physical volume ---
PV Name /dev/sdf
VG Name apu-vg1
PV Size 931.51 GiB / not usable 1.71 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 238467
Free PE 100
Allocated PE 238367
PV UUID LrKDDW-4dXz-kDgh-CK78-OWhY-4sCH-rKT0e4
अब अगर मैं hdparm -gI
डिवाइस पर चलता हूं, तो मैं डिवाइस के आकार के लिए दो मान देख सकता हूं। ज्यामिति के तहत , डिवाइस के आकार के रूप में डिवाइस-मैपर द्वारा रिपोर्ट किया गया वही मान है। लेकिन LBA48 उपयोगकर्ता पता योग्य क्षेत्रों के अंतर्गत , मूल्य 1953525168 [lba] है, जो कि PV के PE के कम्बाइंड साइज से एक PE से भी कम है। इससे मुझे लगता है कि यह वह मूल्य है जो LVM देखता है:
$ hdparm -Ig /dev/sdf
/dev/sdf:
geometry = 121588/255/63, sectors = 1953320367, start = 0
ATA device, with non-removable media
Model Number: ST1000LM024 HN-M101MBB
Serial Number: S2RUJ9BC702524
Firmware Revision: 2AR10001
Transport: Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
Used: unknown (minor revision code 0x0028)
Supported: 8 7 6 5
Likely used: 8
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 1953525168
...
अब मेरे सवालों के लिए:
- कर्नेल के विभिन्न भागों द्वारा उपयोग किए जाने वाले डिवाइस के आकार के लिए दो अलग-अलग मान क्यों हैं?
- और, मैं इस स्थिति को कैसे संभालता / ठीक करता हूं ताकि LVM उन पीवी को नहीं बनाएगा जो डिवाइस-मैपर अंतरिक्ष से बड़े हैं / जो एक्सेस करने में सक्षम हैं / हैं?
hdparm
सबसे बड़ी संख्या है जो 255 * 63 सेक्टरों से अधिक है और वास्तविक आकार से कम है। यह बाधा 30 वर्षीय BIOS इंटरफेस से सिलेंडर / हेड / सेक्टर प्रारूप के कारण है। नया LBA48 इंटरफ़ेस आपकी डिस्क के आकार को ठीक-ठीक बता सकता है। मुझे नहीं पता कि लिनक्स किसी भी चीज़ के लिए CHS आकार का उपयोग क्यों करता है।
vgextend <vg-name> /dev/sdf
। LVM ठीक वही करता है जिसकी मुझे उम्मीद है। pvdisplay
यहां तक कि कहते हैं कि 1.71 MiB असामान्य हैं, जो बिल्कुल [lvm] और [lba] के बीच के अंतर का आकार है।