ฉันมีไดรฟ์ 1 TB เชื่อมต่อผ่าน USB มันมีฟิสิคัลวอลุ่ม LVM ที่เติมอุปกรณ์ทั้งหมด (ไม่มีตารางพาร์ติชัน) เมื่อฉันพยายามที่จะขยายปริมาณตรรกะโดยใช้ทั้ง PV, mapper อุปกรณ์เริ่มบ่นว่าส่วนที่จัดสรรโดย LVM บน PV มีขนาดใหญ่กว่าอุปกรณ์ ข้อความแสดงข้อผิดพลาดจากอุปกรณ์ทำแผนที่ (ดังแสดงโดยdmesg
) รายงานขนาดของปี1953320367 [dm] เซ็กเตอร์:
device-mapper: table: 254:0: sdf too small for target: start=1821353984, len=132169728, dev_size=1953320367
แต่ LVM สร้าง PV พร้อมขอบเขตทางกายภาพ 238467 ซึ่งเป็นภาค 1953521664 [lvm] (ซึ่งมีประมาณ 100 MB ขึ้นไป):
$ 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] ซึ่งน้อยกว่า PE หนึ่งตัวที่ใหญ่กว่าขนาดที่รวมกันของ PE ของ PV นี่ทำให้ฉันคิดว่านี่เป็นค่าที่ 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 จะไม่ทำให้ PVs มีขนาดใหญ่กว่าพื้นที่ที่ตัวแม็ปอุปกรณ์เต็มใจ / เข้าถึงได้
hdparm
เป็นจำนวนที่ใหญ่ที่สุดซึ่งเป็นหลายส่วนของ 255 * 63 และน้อยกว่าขนาดจริง ข้อ จำกัด นี้เกิดจากรูปแบบรูปทรงกระบอก / หัว / ส่วนจาก BIOS อินเตอร์เฟสอายุ 30 ปี อินเทอร์เฟซ LBA48 ที่ใหม่กว่าสามารถรายงานขนาดของดิสก์ของคุณได้ ฉันไม่รู้ว่าทำไม Linux ใช้ขนาด CHS เพื่ออะไร
vgextend <vg-name> /dev/sdf
โดยใช้ธรรมดา LVM ทำสิ่งที่ฉันคาดหวัง pvdisplay
แม้จะบอกว่า1.71 MiBนั้นผิดปกติซึ่งมีขนาดเท่ากับความแตกต่างระหว่าง [lvm] และ [lba]