# önder online
Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri Yapay zekâ ve otomasyonun güvenliğe etkileri Microsoft 365 ve Active Directory güvenlik rehberleri Yazılım geliştirmede güvenlik odaklı yaklaşımlar Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri

Menu

LVM (Logical Volume Management) Nedir?

LVM (Logical Volume Management) Nedir?

LVM (Logical Volume Management), Linux sistemlerinde disk depolama alanlarını esnek ve dinamik bir şekilde yönetmenizi sağlayan bir mantıksal hacim yöneticisidir. Klasik disk böl&uuml...

LVM (Logical Volume Management), Linux sistemlerinde disk depolama alanlarını esnek ve dinamik bir şekilde yönetmenizi sağlayan bir mantıksal hacim yöneticisidir.

Klasik disk bölümleme (partitioning) yöntemlerinde, bir disk belirli boyutlarda parçalara ayrılır ve bu alanlar sonradan değiştirilmek istendiğinde genellikle zorluklarla (veri kaybı riski, yeniden boyutlandırma kısıtlamaları vb.) karşılaşılır. LVM ise fiziksel diskler ile işletim sisteminin gördüğü dosyalar arasına bir soyutlama katmanı ekleyerek bu sınırları ortadan kaldırır.

LVM'in Temel Bileşenleri

LVM mimarisi üç ana katmandan oluşur:

  • 1. Fiziksel Birimler (Physical Volumes - PV):

    • Sisteme takılı olan fiziksel diskler veya disk bölümleridir (Örn: /dev/sdb1 veya /dev/nvme0n1). LVM kullanılabilmesi için bu disklerin PV olarak etiketlenmesi gerekir.
  • 2. Fiziksel Havuz / Grup (Volume Groups - VG):

    • Fiziksel birimlerin (PV) bir araya gelerek oluşturduğu depolama havuzudur. Birden fazla fiziksel disk birleştirilerek tek ve büyük bir depolama alanı (VG) elde edilebilir.
  • 3. Mantıksal Birimler (Logical Volumes - LV):

    • Volume Group (VG) havuzundan ihtiyaca göre oluşturulan ve kullanıcıların/işletim sisteminin dosya sistemi kurarak (ext4, xfs vb.) kullandığı sanal bölümlerdir. Klasik disk bölümlerinin LVM karşılığıdır.

LVM'in Sağladığı Başlıca Avantajlar

  • Dinamik Boyutlandırma: Dolmak üzere olan bir alanı, sistemi kapatmaya gerek kalmadan (online olarak) anında büyütebilirsiniz. Havuzda boş yer olduğu sürece birkaç komutla alan artırılabilir.
  • Disk Birleştirme (Aggregation): Küçük boyutlu birden fazla diski tek bir büyük mantıksal birimde toplayabilirsiniz.
  • Anlık Görüntü (Snapshot): Belirli bir andaki verilerin yedeğini (kopyasını) hızlıca alarak güvenli testler veya yedeklemeler yapabilirsiniz.
  • Esneklik: Fiziksel donanım değişimlerinde (örneğin eski bir diski söküp daha büyük bir disk takarken), verileri canlı sistemde başka bir diske taşıyabilir ve kesinti süresini minimuma indirebilirsiniz.

Ne Zaman Kullanılmalıdır?

  • Depolama alanının gelecekte ne kadar büyüyeceğini kestiremediğiniz sunucularda,
  • Birden fazla diskin tek bir havuz altında yönetilmesinin gerektirdiği durumlarda,
  • Kesintisiz çalışması gereken (uptime kritik olan) kurumsal sistemlerde LVM kullanımı standart bir En İyi Uygulama (Best Practice) olarak kabul edilir.
LVM üzerinde yeni bir disk ekleme, mevcut alanı büyütme (resize) ve temel komut satırı işlemlerini adım adım aşağıda bulabilirsiniz.

Bu rehberde, sisteme yeni bir disk ekleyip bunu mevcut Volume Group (VG) alanına dahil edeceğiz ve ardından bir Logical Volume (LV) alanını büyüteceğiz.

Temel LVM Komutları ve İş Akışı

LVM işlemlerini gerçekleştirirken üç temel aşama izlenir: PV işlemleri, VG işlemleri ve LV işlemleri.

1. Fiziksel Birim (PV) İşlemleri

Yeni bir disk eklediğinizde veya mevcut bir diski LVM'e hazırladığınızda kullanılır.

  • Sisteme yeni diskin geldiğini tarama (Gerekirse):

     
    echo "- - -" > /sys/class/scsi_host/host0/scan
    
  • Diski LVM Fiziksel Birimine (PV) dönüştürme:

     
    pvcreate /dev/sdb
    
  • Fiziksel birimleri listeleme ve durumunu görme:

     
    pvs
    # Veya detaylı görünüm için:
    pvdisplay
    

2. Fiziksel Grup (VG) İşlemleri

PV'leri bir araya getiren havuz yönetimi için kullanılır.

  • Yeni PV'yi mevcut Volume Group'a ekleme (Alan büyütme):

     
    vgextend centos_vg /dev/sdb
    
    (Burada centos_vg mevcut havuzunuzun adıdır, /dev/sdb ise yeni eklediğiniz ve PV yaptığınız disktir.)
  • Volume Group'ları listeleme ve boş alanları görme:

     
    vgs
    # Veya detaylı görünüm için:
    vgdisplay
    

3. Mantıksal Birim (LV) ve Dosya Sistemi (Filesystem) İşlemleri

Kullanıcının veri depoladığı sanal alanın büyütülmesi ve dosya sisteminin genişletilmesi aşamasıdır.

  • Mantıksal Birimi (LV) ve Dosya Sistemini Tek Komutla Büyütme:
    LVM'de alanı büyütürken hem LVM katmanını (lvextend) hem de üzerindeki dosya sistemini (resize2fs veya xfs_growfs) büyütmek gerekir. -r parametresi bu ikisini aynı anda yapar:

     
    lvextend -r -L +50G /dev/centos_vg/root
    
    (Bu komut root adlı mantıksal birime 50 GB daha ekler ve dosya sistemini otomatik olarak genişletir.)
    Alternatif olarak havuzdaki tüm kalan boş alanı vermek için:

     
    lvextend -r -l +100%FREE /dev/centos_vg/root
    
  • Mantıksal birimleri listeleme:
  • lvs # Veya detaylı görünüm için: lvdisplay

Adım Adım Senaryo: Yeni Disk Ekleme ve Alan Büyütme

Diyelim ki sunucunuza yeni bir 100 GB'lık disk (/dev/sdb) eklediniz ve bu alanı /home dizininin olduğu mantıksal birime dahil etmek istiyorsunuz:

  1. Yeni diski PV yapın:

     
    pvcreate /dev/sdb
    
  2. Diski mevcut Volume Group'a (vg_data) dahil edin:

     
    vgextend vg_data /dev/sdb
    
    (Artık havuzunuzun boyutu yeni disk kadar büyüdü. vgs komutu ile boş alanı görebilirsiniz.)
  3. /home dizininin bulunduğu LV alanını ve dosya sistemini büyütün:

     
    lvextend -r -L +100G /dev/vg_data/lv_home
    

Kritik İpuçları ve En İyi Uygulamalar

  • Dosya Sistemi Türü Önemlidir:

    • Eğer dosya sisteminiz Ext4 ise büyütme işleminden sonra resize2fs /dev/vg/lv_name komutu kullanılır (-r parametresi bunu otomatik yapar).
    • Eğer dosya sisteminiz XFS ise (RHEL/CentOS varsayılanıdır) xfs_growfs /mount/point komutu kullanılır. XFS dosya sistemleri küçültülemez, sadece büyütülebilir.
  • Güvenlik: Kritik işlemlerde (özellikle küçültme veya taşıma işlemlerinde) her zaman verilerinizin güncel bir yedeğini (backup) alın. LVM esnektir ancak yanlış bir disk adı (/dev/sda vb.) tüm sistemi uçurabilir.
    Harika bir pratik senaryo üzerinden gidelim. Bu senaryo, gerçek hayatta sistem yöneticilerinin en sık karşılaştığı durumlardan biridir: "Root (/) alanı dolan bir sunucuya yeni disk ekleyip alanı güvenle büyütme."

    Senaryo: Dolmak Üzere Olan Root Alanını Genişletme

    • Mevcut Durum: Sunucunuzdaki kök dizin (/) neredeyse tamamen doldu (%95 kullanımda).
    • Çözüm: Sanallaştırma platformunuzdan (VMware, Proxmox, AWS vb.) veya fiziksel sunucunuza 50 GB'lık yeni bir disk eklediniz. Linux çekirdeği bu diski otomatik olarak /dev/sdb olarak algıladı.
    Şimdi adım adım bu alanı canlı sistemde nasıl büyüteceğimize bakalım:

    1. Adım: Yeni Diski Kontrol Etme

    Sistemin yeni diski görüp görmediğini ve adını doğrulamak için lsblk komutunu çalıştırırsınız:

     
    lsblk
    
    Çıktı örneği:

     
    NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda               8:0    0  100G  0 disk 
    ├─sda1            8:1    0    1G  0 part /boot
    └─sda2            8:2    0   99G  0 part 
      ├─vg_root-lv_root 253:0  0  89G  0 lvm  /
      └─vg_root-lv_swap 253:1  0   10G  0 lvm  [SWAP]
    sdb               8:16   0   50G  0 disk   <-- Yeni eklediğimiz 50 GB'lık disk
    
    (Gördüğünüz gibi /dev/sdb diski sistemde hazır duruyor, henüz LVM yapısına dahil edilmemiş.)

    2. Adım: Diski LVM Fiziksel Birimine (PV) Dönüştürme

    Yeni diski LVM havuzuna katabilmek için önce PV formatına çevirmeliyiz:

     
    pvcreate /dev/sdb
    
    Başarılı Çıktı:

     
      Physical volume "/dev/sdb" successfully created.
    

    3. Adım: Mevcut Volume Group (VG) Alanını Büyütme

    Mevcut havuzumuzun adının vg_root olduğunu lsblk çıktısından biliyoruz. Yeni oluşturduğumuz PV'yi bu havuzun içine dahil ediyoruz:

     
    vgextend vg_root /dev/sdb
    
    Başarılı Çıktı:

     
      Volume group "vg_root" successfully extended
    
    (Artık vg_root havuzumuz eski boyutuna ek olarak 50 GB daha alan kazandı. vgs komutu ile toplam boş alanı kontrol edebilirsiniz.)

    4. Adım: Mantıksal Birimi (LV) ve Dosya Sistemini Büyütme

    Kök dizinin bağlı olduğu mantıksal birim (/dev/vg_root/lv_root) için yeni gelen 50 GB'ın tamamını oraya aktarıyoruz. -r parametresi hem LVM boyutunu büyütecek hem de dosya sistemine (ext4 veya xfs) uyumlu hale getirmesini söyleyecektir:

     
    lvextend -r -l +100%FREE /dev/vg_root/lv_root
    
    Başarılı Çıktı:

     
      Size of logical volume vg_root/lv_root changed from <89.00 GiB to <139.00 GiB.
      Logical volume vg_root/lv_root successfully resized.
      meta-data=/dev/mapper/vg_root-lv_root isize=512    agcount=4, agsize=5833216 blks
             =                       -f CI=0
      data     =/dev/mapper/vg_root-lv_root bsize=4000   blocks=23332864, imax-pct=25
             =                       -s logbufs=8, logsize=2560 blks, version=2
             =                       -n version=2, ciopts=1
      data     =サイズの büyütme mesajları (XFS veya Ext4 dosyasına göre değişir)...
    

    5. Adım: Sonucu Doğrulama

    İşlemin başarıyla tamamlanıp tamamlanmadığını ve disk alanının rahatlayıp rahatlamadığını kontrol etmek için:

     
    df -h /
    
    Çıktı: Kök dizininizin boyutunun arttığını ve doluluk oranının düştüğünü (örneğin %95'ten %60'a düştüğünü) görürsünüz.

    Karşılaşılabilecek Olası Bir Hata Mesajı ve Çözümü

    Eğer lvextend komutunu çalıştırırken -r parametresini unuttuysanız veya dosya sistemi otomatik büyümediyse, df -h çıktısında diskin hala eski boyutunda kaldığını görürsünüz.

    • Eğer dosya sisteminiz XFS ise:

       
      xfs_growfs /
      
    • Eğer dosya sisteminiz Ext4 ise:

       
      resize2fs /dev/vg_root/lv_root
      
    komutlarını çalıştırarak dosya sisteminin yeni alanı "fark etmesini" sağlayabilirsiniz.