USB ile bağlı 1 TB'lık bir sürücüm var. Tüm cihazı dolduran bir LVM fiziksel hacmi içerir (herhangi bir bölüm tablosu olmadan). Tüm PV'yi kullanarak mantıksal bir hacmi genişletmeye çalıştığımda , cihaz eşleyici , LVM tarafından PV'ye tahsis edilen bölümün cihazdan daha büyük olduğundan şikayet etmeye başladı. Aygıt eşleyiciden gelen hata mesajı (ile gösterildiği gibi dmesg
) 1953320367 [dm] sektör büyüklüğünde rapor verir :
device-mapper: table: 254:0: sdf too small for target: start=1821353984, len=132169728, dev_size=1953320367
Ancak LVM , 1953521664 [lvm] sektör olan (yaklaşık 100 MB daha fazla) 238467 fiziksel uzantıya sahip bir PV yarattı :
$ 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
Şimdi hdparm -gI
cihazda çalışırsam , cihazın boyutu için iki değer görebilirim. Geometri altında , aygıt eşleyici tarafından aygıtın boyutuyla aynı değer bildirilir. Ancak LBA48 kullanıcı tarafından adreslenebilir sektörler altında , PV'nin PE'lerinin boyutlarını birleştiren bir PE'den daha büyük olan 1953525168 [lba] değeri vardır . Bu bana LVM'nin gördüğü değer olduğunu düşündürüyor:
$ 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
...
Şimdi sorularıma:
- Neden çekirdeğin farklı bölümleri tarafından kullanılan cihazın boyutu için iki farklı değer var?
- LVM'nin aygıt eşleyicinin erişmeye istediği / erişebileceği alandan daha büyük PV'ler oluşturmaması için bu durumu nasıl ele alır / düzeltirim?
hdparm
, 255 * 63 sektörden kat ve gerçek boyuttan daha küçük olan en büyük sayıdır. Bu kısıtlama, 30 yaşındaki BIOS arayüzünden silindir / kafa / sektör formatından kaynaklanmaktadır. Daha yeni LBA48 arayüzü diskinizin boyutunu iyi rapor edebilir. Linux'un neden CHS boyutunu herhangi bir şey için kullandığı hakkında hiçbir fikrim yok.
vgextend <vg-name> /dev/sdf
. LVM tam olarak beklediğimi yapıyor. pvdisplay
hatta 1.71 MiB'nin [lvm] ve [lba] arasındaki farkın büyüklüğü olan unusabe olduğunu söylüyor .