Bu makalede8 bölüm
- Teknoloji
- LVM2, XFS, ext4, growpart, util-linux
- Konu
- Linux sunucuda dolan birimi LVM ile çevrim içi büyütme
- Seviye
- Başlangıç–orta
- Ön koşullar
- Linux komut satırı ve root/sudo yetkisi
- Sanal disk büyütme yetkisi (hipervizör veya bulut konsolu)
- Güncel ve doğrulanmış yedek
“Disk doldu” alarmı Linux sunucularda en sık gelen operasyon işidir ve genellikle en kötü saatte gelir: log yazamayan uygulama durmuş, veritabanı salt okunur moda geçmiştir. Kök dosya sistemi LVM üzerindeyse bunu çoğu zaman yeniden başlatmadan, hizmet çalışırken çözersiniz. Aşağıdaki adımlar sanal diskin büyütülmesinden dosya sisteminin genişletilmesine kadar sırayla gider; XFS ile ext4 farkını, yeni disk ekleme yöntemini ve LVM snapshot’ın neyi kurtarıp neyi kurtarmadığını da kapsar. Komutlar RHEL/Rocky/Alma ve Debian/Ubuntu dağıtımlarında aynı şekilde çalışır.
LVM katmanları: PV, VG, LV
LVM, fiziksel disk ile dosya sistemi arasına esnek bir katman koyar:
| Katman | Ne temsil eder | Örnek |
|---|---|---|
| PV (Physical Volume) | LVM’e verilmiş disk veya bölüm | /dev/sdb, /dev/sda3 |
| VG (Volume Group) | Bir veya daha fazla PV’den oluşan alan havuzu | vg_data |
| LV (Logical Volume) | Havuzdan ayrılan, üzerine dosya sistemi kurulan birim | /dev/vg_data/lv_data |
Genişletme her zaman alttan üste yapılır: önce PV büyür ya da VG’ye yeni PV eklenir, sonra LV büyütülür, en son dosya sistemi LV’nin yeni boyutuna genişletilir. Sıra bozulursa sonraki adım “boş alan yok” hatası verir ya da dosya sistemi eski boyutunda kalır. Sıra şaşmaz.
Mevcut durumu okuma: lsblk, pvs, vgs, lvs
Hiçbir değişiklikten önce yapının tam resmini çıkarın ve çıktıyı bir yere kaydedin:
lsblk -f # diskler, bölümler, LV'ler ve dosya sistemi türleri
df -hT # bağlı dosya sistemleri, tür ve doluluk
pvs # PV'ler, ait oldukları VG ve boş alan (PFree)
vgs # VG'ler ve havuzdaki boş alan (VFree)
lvs # LV'ler ve boyutları
findmnt /data # bir bağlama noktasının hangi aygıttan geldiği
Konsolda ilk bakılacak değer vgs çıktısındaki VFree sütunudur. VG’de zaten boş alan varsa disk büyütmeye gerek yoktur; doğrudan LV ve dosya sistemi genişletilir. Bu durum Ubuntu Server kurulumlarında sık görülür: kurulum sihirbazı kök LV’ye VG’nin tamamını vermeyebilir, sunucu “dolu” görünürken havuzda ayrılmamış alan bekler. Hipervizörde disk büyütme talebi açmadan önce bu sütuna bakmak, bir değişiklik kaydını gereksiz kılabilir.
PV’nin bir bölüm (/dev/sda3) mi, yoksa bölümlenmemiş disk (/dev/sdb) mi olduğunu da not edin; sanal disk büyütme sonrası adımlar buna göre değişir. Kök diskte PV genellikle bölüm üzerindedir; sonradan eklenen veri diskinde çoğu zaman tüm disk PV olarak kullanılır.
Sanal disk büyütme sonrası genişletme
VMware, Hyper-V, Proxmox veya bulut konsolunda sanal disk büyütüldükten sonra Linux çekirdeği yeni boyutu her zaman kendiliğinden görmez. Sahada en sık takılınan nokta budur: disk büyütülmüş, lsblk eski boyutu gösteriyor, ekip hipervizörde işlemin başarısız olduğunu sanıyor. Aşağıdaki akış, PV’nin bölüm üzerinde olduğu tipik kök disk senaryosu içindir:
# 1. Çekirdeğe diskin yeni boyutunu okut (sda için)
echo 1 > /sys/class/block/sda/device/rescan
lsblk /dev/sda # yeni boyut görünmeli
# NVMe disklerde (bazı bulut VM'leri): nvme ns-rescan /dev/nvme0 (nvme-cli)
# 2. Bölümü diskin sonuna kadar büyüt (bölüm 3)
growpart /dev/sda 3 # RHEL: cloud-utils-growpart, Debian/Ubuntu: cloud-guest-utils
# 3. PV'yi bölümün yeni boyutuna genişlet
pvresize /dev/sda3
vgs # VFree artmış olmalı
# 4. LV'yi ve dosya sistemini birlikte büyüt
lvextend -r -l +100%FREE /dev/rhel/root # Ubuntu varsayılanı: /dev/ubuntu-vg/ubuntu-lv
NVMe aygıtlarda bölüm adları farklıdır: disk /dev/nvme0n1, üçüncü bölüm /dev/nvme0n1p3 olur; growpart yine disk yolu ve bölüm numarasıyla çağrılır (growpart /dev/nvme0n1 3). LV yolunu tahmin etmeyin; lvs veya findmnt / çıktısından alın.
PV doğrudan disk üzerindeyse (bölüm yoksa) ikinci adım atlanır ve pvresize /dev/sdb yeterlidir. Veri disklerini bölümsüz PV olarak kullanmanın pratik avantajı budur: bir adım ve bir hata ihtimali eksik.
lvextend komutundaki -r (--resizefs) seçeneği LV büyütüldükten sonra dosya sistemini de fsadm aracılığıyla genişletir. -l +100%FREE VG’deki tüm boş alanı verir; belirli bir miktar için -L +20G kullanılır. Tüm alanı tek LV’ye vermek yerine bir miktar boş bırakın. İleride snapshot almak veya gece yarısı başka bir LV’yi acil büyütmek için o pay lazım olur.
Yeni disk ekleyerek alan artırma
Mevcut diski büyütmek mümkün değilse (MBR bölüm tablosunun 2 TiB sınırı veya depolama tarafı kısıtı gibi) ya da veriyi farklı bir depolama katmanına yaymak istiyorsanız VG’ye yeni disk eklenir:
# Yeni SCSI diski algılat (host numarası sistemden sisteme değişir)
for h in /sys/class/scsi_host/host*/scan; do echo "- - -" > "$h"; done
lsblk # yeni disk, örn. /dev/sdc
pvcreate /dev/sdc
vgextend vg_data /dev/sdc
lvextend -r -L +200G /dev/vg_data/lv_data
Bu yöntemin bedeli var: LV artık iki diske yayılmıştır ve disklerden birinin kaybı LV’nin tamamını etkiler. İki disk, iki arıza noktası. Sanal ortamda iki sanal disk aynı veri deposunda durduğu sürece fark pratikte küçüktür; fiziksel sunucu altyapısında ise her PV’nin altında RAID olduğundan emin olun. Hipervizör düzeyindeki yedekleme işinin yeni diski de kapsadığını ayrıca kontrol edin. Bazı yedekleme işleri disk bazında seçim yapar ve sonradan eklenen disk sessizce dışarıda kalır.
Dosya sistemine göre büyütme: XFS ve ext4
lvextend -r kullanılmadıysa dosya sistemini ayrıca genişletmeniz gerekir. Komut dosya sistemi türüne göre değişir:
| Özellik | XFS | ext4 |
|---|---|---|
| Çevrim içi büyütme | Evet | Evet |
| Büyütme komutu | xfs_growfs /data (bağlama noktası) |
resize2fs /dev/vg_data/lv_data (aygıt) |
| Küçültme | Desteklenmez | Yalnızca bağlı değilken (çevrim dışı) |
| Varsayılan olduğu dağıtımlar | RHEL ve türevleri | Debian, Ubuntu |
XFS’in küçültülememesi bir tasarım kısıtıdır: bir XFS birimine fazla alan verdiyseniz geri almanın tek yolu yeni, küçük bir birim oluşturup veriyi taşımaktır. Bu yüzden XFS birimlerini ihtiyaçtan fazla büyütmek yerine kademeli büyütün. ext4 küçültülebilir ama birim bağlı olmamalı ve önce e2fsck -f çalıştırılmalıdır; kök dosya sisteminde bu, kurtarma ortamından açılış demektir. Yani bakım penceresi.
Doğrulama için df -hT ile yeni boyutu, lvs ile LV boyutunu karşılaştırın. LV büyük ama df eski boyutu gösteriyorsa dosya sistemi genişletme adımı atlanmıştır. Bu, “genişlettim ama disk hâlâ dolu” şikâyetinin en yaygın sebebidir.
LVM snapshot ve sınırları
Klasik (thick) LVM snapshot, bir LV’nin belirli andaki görüntüsünü copy-on-write yöntemiyle tutar. Orijinal LV’de değişen her blok, değişmeden önce snapshot alanına kopyalanır. Tipik kullanım: riskli bir güncelleme öncesinde geri dönüş noktası oluşturmak veya tutarlı bir yedek için veriyi dondurmak.
# 10 GB değişikliğe yer ayıran snapshot
lvcreate -s -L 10G -n lv_data_snap /dev/vg_data/lv_data
# Durumu izleyin: Data% sütunu snapshot alanının doluluğudur
lvs vg_data
# Geri dönmek gerekirse: snapshot'ı orijinale birleştir
lvconvert --merge /dev/vg_data/lv_data_snap
# Gerek kalmadıysa kaldırın
lvremove /dev/vg_data/lv_data_snap
Snapshot’ın sınırlarını bilmeden kullanmayın:
- Dolarsa geçersiz olur: Ayrılan alan değişikliklerle dolduğunda snapshot kullanılamaz hale gelir. Boyutu, snapshot süresince beklenen değişiklik miktarına göre seçin ve doluluğu izleyin.
- Yazma performansını düşürür: Her ilk yazma ek bir kopyalama işlemi doğurur; snapshot’ı uzun süre tutmayın.
- VG’de boş alan gerektirir: VFree sıfırsa snapshot oluşturulamaz. Tüm alanı LV’lere dağıtmamanın bir başka gerekçesi.
- Yedek değildir: Snapshot aynı disklerde durur; disk veya VG kaybında birlikte kaybolur.
- XFS bağlama: XFS snapshot’ını orijinalle aynı anda bağlamak için aynı UUID nedeniyle
-o nouuidseçeneği gerekir. - Kök birimde birleştirme: Bağlı ve kullanımda olan bir LV’ye merge, bir sonraki etkinleştirmede (genellikle yeniden başlatmada) tamamlanır.
Thin provisioning kullanan LV’lerde snapshot davranışı farklıdır: ayrı boyut ayrılmaz, havuzdan tüketir. Havuzun dolması bu kez tüm thin LV’leri birden etkiler; thin havuz doluluğunu ayrıca izleyin. Kalıcı koruma için bağımsız bir yedek gerekir; ilkeleri 3-2-1-1-0 yedekleme kuralı yazısında.
Güvenli uygulama kontrol listesi
- Son başarılı yedeğin tarihi kontrol edildi; kritik sunucularda geri yüklenebilirlik biliniyor.
lsblk -f,pvs,vgs,lvsvedf -hTçıktıları işlem öncesinde kaydedildi.- Doğru disk ve doğru bölüm numarası iki kez doğrulandı; aygıt adları (
sdb,sdc) yeniden başlatmalar arasında değişebilir. /etc/fstabkayıtları aygıt adı yerine UUID veya LV yolu (/dev/mapper/…) kullanıyor.- Genişletme sonrası
df -hTyeni boyutu gösteriyor; uygulama loglarında G/Ç hatası yok. - Hipervizör snapshot’ı işlem sonrası kaldırıldı; LVM snapshot’ı kullanılmıyorsa silindi.
- İzleme sistemindeki disk eşiği ve kapasite raporu yeni boyuta göre güncellendi.
Genişletme ihtiyacını son dakikada fark etmemek için disk büyüme hızını izleyip tükenme tarihini önceden hesaplayın; yöntem sunucu izleme metrikleri ve eşik değerleri yazısında. Sunucu Azure’da çalışıyorsa disk türü ve boyut kademesinin maliyete etkisi için Azure’da sanal sunucu işletimi yazısına bakın. Komutların tüm seçenekleri lvextend(8) ve xfs_growfs(8) kılavuz sayfalarında. Linux sunucuların depolama ve kapasite yönetimi Linux ve açık kaynak platform hizmetleri kapsamındadır.
Sık sorulan sorular
LVM ile disk genişletmek için sunucuyu yeniden başlatmak gerekir mi?
Çoğu durumda gerekmez. Diskin yeni boyutu rescan ile okutulur; ardından pvresize, lvextend ve dosya sistemi büyütme işlemleri hizmet çalışırken yapılır. XFS ve ext4 çevrim içi büyütmeyi destekler.
lvextend sonrası df neden eski boyutu gösteriyor?
LV büyümüş ama dosya sistemi genişletilmemiştir. XFS için bağlama noktasıyla xfs_growfs, ext4 için aygıt yoluyla resize2fs çalıştırın. lvextend komutunda -r seçeneği kullanılırsa bu adım otomatik yapılır.
XFS dosya sistemi küçültülebilir mi?
Hayır. XFS yalnızca büyütülebilir. Fazla alan verilmiş bir XFS birimini küçültmek için yeni ve daha küçük bir birim oluşturup veriyi taşımak gerekir; ext4 ise bağlı değilken küçültülebilir.
LVM snapshot yedek yerine kullanılabilir mi?
Kullanılamaz. Snapshot aynı disklerde tutulur, ayrılan alan dolduğunda geçersiz olur ve disk kaybında orijinalle birlikte kaybolur. Riskli bir değişiklik öncesinde kısa süreli geri dönüş noktası olarak kullanın.
- Etiketler sunucu bakımı
- Teknoloji
- LVM2, XFS, ext4, growpart, util-linux
- Konu
- Linux sunucuda dolan birimi LVM ile çevrim içi büyütme
- Seviye
- Başlangıç–orta
- Ön koşullar
- Linux komut satırı ve root/sudo yetkisi
- Sanal disk büyütme yetkisi (hipervizör veya bulut konsolu)
- Güncel ve doğrulanmış yedek
Sistem Destek