
Ich habe ein 1 TB Laufwerk über USB angeschlossen. Es enthält ein LVMphysisches Volumendas gesamte Gerät ausfüllt (ohne Partitionstabelle). Als ich versuchte, einLogisches VolumenDurch die Nutzung des gesamten PV, derGerätemapperbegann sich zu beschweren, dass der von LVM auf dem PV zugewiesene Abschnitt größer als das Gerät ist. Die Fehlermeldung des Gerätemappers (wie in angezeigt dmesg
) meldet eine Größe von1953320367[dm] Sektoren:
device-mapper: table: 254:0: sdf too small for target: start=1821353984, len=132169728, dev_size=1953320367
Aber LVM erstellte ein PV mit 238467physische Ausmaße, welches ist1953521664[lvm] Sektoren (das sind etwa 100 MB mehr):
$ 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
Wenn ich jetzt hdparm -gI
auf dem Gerät laufe, kann ich zwei Werte für die Größe des Geräts sehen. UnterGeometriegibt es den gleichen Wert, der vom Device-Mapper als Gerätegröße gemeldet wird. Aber unterLBA48 benutzeradressierbare Sektoren, da ist der Wert1953525168[lba], was weniger als ein PE größer ist als die kombinierte Größe der PEs des PV. Das lässt mich vermuten, dass dies der Wert ist, den LVM sieht:
$ 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
...
Nun zu meinen Fragen:
- Warum gibt es zwei unterschiedliche Werte für die Gerätegröße, die von verschiedenen Teilen des Kernels verwendet werden?
- Und wie gehe ich mit dieser Situation um bzw. wie behebe ich sie, sodass der LVM keine PVs erstellt, die größer sind als der Speicherplatz, auf den der Geräte-Mapper zugreifen möchte/kann?
Antwort1
Das Hauptproblem hier ist Ihr Free PE
Wert. Beachten Sie, dass nur 100 Extents frei sind? Das bedeutet, dass Sie es nicht erweitern können. Wenn Sie einen vgscan, pvscan und dann ein vgdisplay (auch vgs) ausführen, werden Sie wahrscheinlich feststellen, dass Ihr Gerät bereits Teil eines vg (und wahrscheinlich auch eines lv(s)) ist, weshalb die Extents nicht frei sind.
Könnten Sie die Ausgabe von Folgendem bereitstellen:
vgscan;pvscan;vgdisplay;vgs
Sie sollten in der Lage sein, zusätzliche 400 MB zu erhalten, abhängig von der Größe Ihrer Extents und davon, wie viele frei sind.