Bir sürücünün boyutu için neden iki farklı değer var ve bunları aygıt eşleyici ve LVM ile nasıl uzlaştırıyoruz?


13

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 -gIcihazda ç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?

genişlettiğinizde tam olarak çalıştırdığınız komut nedir? LVM kafalarına genellikle tutarsızlığınızın boyutu olan 2 MB tahsis edilir.
Bratchley

7
Raporlanan daha küçük boyut 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.
Gilles 'SO- kötü olmayı bırak'

Farklı değerleri kolayca belirtmek için köşeli parantez içinde etiketledim.
Feuermurmel

1
@JoelDavis VG'yi bir ova kullanarak uzattım vgextend <vg-name> /dev/sdf. LVM tam olarak beklediğimi yapıyor. pvdisplayhatta 1.71 MiB'nin [lvm] ve [lba] arasındaki farkın büyüklüğü olan unusabe olduğunu söylüyor .
Feuermurmel

2
@Feuermurmel lütfen ek bilgi sağlamak için sorunuzu düzenleyin - yorum kullanmayın.
guntbert

Yanıtlar:


1

Buradaki temel sorun sizin Free PEdeğerinizdir. Sadece 100 uzantının ücretsiz olduğunu nasıl söylediğine dikkat edin? Bu, onu genişletemeyeceğiniz anlamına gelir. Bir vgscan, pvscan ve sonra bir vgdisplay (ayrıca vgs) yaparsanız, muhtemelen cihazınızın zaten bir vg'nin (ve muhtemelen lv (ler)) bir parçası olduğunu göreceksiniz, bu yüzden uzantılar ücretsiz değildir.

Şu kaynaktan çıktı sağlayabilir misiniz?

vgscan;pvscan;vgdisplay;vgs

uzantılarınızın boyutuna ve kaç tanesinin ücretsiz olduğuna bağlı olarak ek 400 MB alan alabilmeniz gerekir.


Evet, bu PV zaten bir LV'ye tahsis edilmiş 238367 PE'ye sahiptir. Bu 100 uzantı ücretsizdir çünkü cihaz haritacısı LVM tarafından talep edilen haritalamanın aralık dışında olduğundan şikayet ettikten sonra LV'yi küçülttüm. Benim sorunum LVM tarafından oluşturulan PV aslında fiziksel disk daha büyük olmasıdır . Söz konusu disk artık sistemin bir parçası değil, bu yüzden istediğiniz çıktıyı sağlayamıyorum.
Feuermurmel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.