Lvm2 mantıksal birim ve dosya sistemini yeniden boyutlandırma: Tam boyutlar?


10

İntranet sunucumda, lvm2 için fiziksel bir birim olarak kullandığım 100.00 GiB bölümü / dev / sda5 var.

  • Cilt grubum vg01'deki tek fiziksel hacim.
  • vg01 şu anda tam 100.00 GiB'yi kullanan bir mantıksal hacim lv01 içeriyor - aslında, bazı yuvarlama nedeniyle 99.99 GiB (sorunun başladığı yer).
  • lv01 tüm alanı kullanan bir ext3 dosya sistemi içerir.

LV01'i yaklaşık 97 GiB'ye düşürmek istiyorum, bu yüzden yaklaşık olarak lv02 oluşturabilirim. 3 GiB (Ben lvm anlık görüntüleri almak için ihtiyacım var).

Şimdiye kadar ne yaptım:

e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G

Bu iyi çalıştı. Ama şimdi kaçmam gerekecek

lvreduce --size ? /dev/mapper/vg01-lv01

Ve tam olarak hangi değeri belirtmem gerektiğinden emin değilim . lvreduceAdam sayfa Oluşan boyutu dosya sistemi daha küçük olamaz gerektiğini açıkça uyarıyor. Ayrıca olması gerekenden daha büyük yapmak istemiyorum. Ama şimdi farklı sayılar var:

  • 97GResize2fs içinde belirledim .
  • df -h diyor ki, 96 G.
  • df diyor ki, 100115936 1K blok.
  • lvdisplay (tabii ki) hala mantıksal hacim için 99.99 GiB rapor ediyor.

Ne için belirtmem gerekecek lvreduce?

Düzenle:

Şu anda kabul edilen cevap güzel bir çözüm sunuyor. Bununla birlikte, bu tür şeyleri katı komut dosyalarına vb. Entegre etmek için genellikle bunun yerine kesin ölçümler kullanmayı tercih ederim. Ya da tüm yeniden boyutlandırma prosedürünü tek adımda gerçekleştiren güvenilir (!) Bir komut dosyası veya araç zaten var mı?


3
resize2fsDosya sistemini 90GiB'ye kadar düşürmek için kullanabilirsiniz ve sonra neyin en iyi olduğunu görmek için lvreduce(ardından gelen resize2fs) argümanlarıyla uğraşabilirsiniz .
larsks

@larsks: Harika bir fikir (çünkü resize2fs bölüm boyutuna otomatik olarak ayarlanabilir, oysa lvreduce otomatik olarak fs boyutuna ayarlanamaz). Kimse sorumun kesin cevabını bilmiyorsa, bunun çözüm olacağını düşünüyorum.
Chris Lercher

Neden sadece aynı boyutta lvreduce'a geçmiyorsun? Bir yazım hatası yapmazsanız, aynı boyutta olduğunu fark etmeli ve tekrar boyutlandırmamalıdır. Ve bir yazım hatası yaparsanız, en azından dosya sisteminizi yok etmekten kaçındınız. lvreduce -r -L 97G / dev / haritacı / vg01-lv01
Bill

Yanıtlar:


5

Deneyimlerime göre, LVM ve resize2fs "97G" nin anlamı hakkında aynı fikirlere sahiptir, bu nedenle her iki yerde de aynı boyutun belirtilmesi iyi olmalıdır. Ancak, paranoyakım ve mümkün olduğunda her zaman soru yorumlarında larsks tarafından önerilen stratejiyi kullanın ve istediğimden bir GB daha küçük olarak yeniden boyutlandırıldı, lvresize'i istediğim boyuta getirin ve sonra resize2fs'yi ( boyut) tüm LV doldurmak için geri genişletin.


Bence, burada "paranoyak" olmak önemlidir - çünkü sadece mevcut dosyaların hasar görme olasılığı yoktur: Dosya sistemi LV'den büyükse, herhangi bir zamanda aşağıdaki birimlerle tahribat yapabileceğini varsayıyorum. gelecekte.
Chris Lercher

Hayır, LVM, LV'nin sonunun ötesinde yazma girişimlerini yasaklayacaktır, böylece başka LV'ler zarar göremez. Dosya sistemi kısaltılırsa, oldukça yıkıcı sonuçlara neden olur.
womble

Bu ilginç - her yazıyı kontrol ettiğini bilmiyordum! Bunu bildiğim iyi oldu.
Chris Lercher

14

Bu en iyi lvreduce / lvresize --resizefs seçeneği kullanılarak yapılır düşünüyorum:

   -r, --resizefs
          Resize underlying filesystem together with the logical volume using fsadm(8).

Kuşkusuz, bu size şimdi yardımcı olmuyor , ancak gelecekte olabilir.


Aradığım şey buydu! Yine de yeni bir seçenek gibi görünüyor: 2.02.74 (2) -RHEL sürümünde ama LVM araçlarının 2.02.66 sürümünde eksik .
Chris Lercher

1
Diğer araçları kullanarak fs'yi yeniden boyutlandırdığımda, bu seçenek olağan uyarıyı bastırdı ve "Dosya sistemi zaten 3932160 blok uzunluğunda. Yapacak bir şey yok!" Tam istendiği gibi.
D Coetzee

2020'de bile, Google tarafından ilk arama sonuçları sayfasında önerilen lvm hacimlerini genişletme / daraltma ile ilgili birkaç öğreticiden hiçbiri bu seçenekten bahsetmiyor. Çok teşekkürler!
Ivan Shatsky
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.