Proxmox: Linux CLI aracılığıyla Proxmox Disk Alanını Geri Kazanma

Proxmox VE’de depolamayı yönetmek, özellikle disk alanı kullanımı beklentileri karşılamadığında zor olabilir. Bu kılavuz, Proxmox ortamınızı optimize etmeye yardımcı olmak için Linux komut satırından Proxmox depolamayı analiz etmek, sanal makineler ve kapsayıcılar tarafından alan kullanımını belirlemek, hesaplanmamış depolama alanını algılamak ve yaygın depolama sorunlarını gidermek için pratik komutlar sağlar.

 

Yazılım Gereksinimleri ve Linux Komut Satırı Kuralları

 
KategoriGereksinimler, Kurallar veya Kullanılan Yazılım Sürümü
SistemProxmox VE 8.x (komutlar eski sürümlerde çalışabilir)
YazılımStandart Linux komut satırı araçları (df, du, find), Proxmox CLI araçları
DiğerProxmox ana bilgisayarına kök veya sudo erişimi
Kural# – Komutların doğrudan kök olarak veya sudo kullanılarak kök ayrıcalıklarıyla yürütülmesini gerektirir.
$ – Komutların ayrıcalıksız normal bir kullanıcı olarak yürütülmesini gerektirir.

Proxmox Depolama Mimarisini Anlama

DEPOLAMA MIMARISINE GENEL BAKIŞProxmox VE, her biri analiz için belirli komutlara sahip farklı depolama arka uçları kullanır. Yaygın depolama türleri arasında yerel dizinler, LVM-thin, ZFS, Ceph ve ağ depolaması bulunur. Özel depolama yapılandırmanıza aşina olmak, doğru analiz için çok önemlidir.

Komutlara dalmadan önce, Proxmox’un tipik olarak depolamayı nasıl düzenlediğini anlamak önemlidir. Proxmox sürümünüze bağlı olarak, depolama birkaç önemli konumda bulunabilir:

  • /var/lib/vz/images/ – VM kimliğine göre düzenlenmiş VM disk görüntülerini (qcow2, raw) içerir
  • /var/lib/lxc/ – Konteyner kimliğine göre düzenlenmiş LXC konteyner verilerini içerir
  • /var/lib/vz/template/iso/ – ISO görüntülerini depolar
  • /var/lib/vz/template/cache/ – Konteyner şablonlarını depolar
  • /var/lib/vz/dump/ – VM ve konteyner yedeklemelerini içerir

Depolama yapılandırması, Proxmox depolama yöneticisi komutu kullanılarak görüntülenebilir:

# pvesm statusAdım Adım Talimatlar
  1. Proxmox depolama yapılandırmasını görüntüleyin: Depolama havuzlarına genel bir bakış edinin.
    # pvesm status

    Bu komut, Proxmox ortamınızdaki tüm yapılandırılmış depolama havuzlarını görüntüleyerek türlerini, durumlarını, toplam kapasitelerini, kullanılan alanı, kullanılabilir alanı ve kullanım yüzdesini gösterir. Örnek çıktı:

    View Proxmox storage configuration
    Proxmox depolama yapılandırmasını görüntüleyin

    Bu örnekte dizin tabanlı depolama %87 kapasitede, LVM ölçülü kaynak sağlamalı depolama ise %33 kapasitede gösterilmektedir. Yüksek yüzdeler (%80’in üzerinde) soruşturmayı garanti eder.

  2. Genel disk alanı kullanımını kontrol edin: Dosya sistemi kullanımını görüntüleyin.
    # df -h

    Bu komut, bağlı tüm dosya sistemleri için disk alanı kullanımını kolay anlaşılaiblir bir biçimde gösterir. Örnek çıktı şunları gösterebilir:

    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/pve-root   94G   82G  7.4G  92% /

    Yüksek kullanım yüzdeleri (%85’in üzerinde), dikkat edilmesi gereken dosya sistemlerini gösterir. En iyi performans için çoğu dosya sistemi en az %10-15 boş alana sahip olmalıdır.

  3. Tüm sanal makineleri listele: Sistemdeki tüm VM’leri görün.
    # qm list

    This command lists all virtual machines with their IDs, names, status, memory allocation, and disk size. Here’s an example output:

    VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID       
    100 VM1                  stopped    2048              32.00 0         
    101 VM2                  running    1024              15.00 1119524   
    102 VM3                  running    8192             150.00 309833    
    106 VM4                  running    2048              32.00 3812960   
    107 VM5                  running    6000              32.00 3839516   
    108 VM6                  running    4000              50.00 1743913   
    109 VM7                  stopped    8192              60.00 0

    Bu çıkış, tüm VM’leri ayrılmış disk boyutlarıyla birlikte gösterir ve hangi VM’lerin iyileştirme için aday olabilecek büyük depolama ayırmalarına sahip olduğunu belirlemenize yardımcı olur.

  4. Tüm konteynerleri listele: LXC konteynerlerini görüntüleyin.
    # pct list

    Bu komut, sistemdeki tüm LXC konteynerlerini gösterir. Örnek çıktı:

    VMID       Status     Lock         Name                
    103        running                 CT1

    Bu, depolama kullanımı için hangi konteynerlerin inceleneceğini belirlemek için yararlı olan konteyenr kimliklerini, durumunu ve adlarını görüntüler.Büyük VM disk görüntülerini bulma: VM görüntülerini boyuta göre bulun.

  5. # find /var/lib/vz/images -type f -name "*.qcow2" -o -name "*.raw" | xargs du -h | sort -hr

    Bu komut, VM depolama konumundaki tüm QCOW2 ve RAW disk görüntülerini bulur ve bunları boyuta göre sıralar (önce en büyüğü). Önceki çıktıya bağlı olarak şuna benzer bir şey bulabilirsiniz:

    62G     /var/lib/vz/images/109/vm-109-disk-0.qcow2

    Bu, VM7’nin (ID 109) depolama alanınızın önemli bir bölümü olan 62 GB’lık bir disk görüntüsüne sahip olduğunu gösterir.

  6. LXC konteyner depolamasını kontrol edin: Konteyner disk kullanımını bulun.
    # du -sh /var/lib/lxc/*

    Bu komut, tüm LXC konteyner tarafından kullanılan disk alanını denetler. Çoğu Proxmox kurulumu, kapsayıcıları /var/lib/lxc/ dizininde depolar.

  7. VM anlık görüntülerini inceleme: Yer kaplayan anlık görüntüleri bulun.
    # for VM in $(qm list | tail -n +2 | awk '{print $1}'); do
        echo "VM $VM:";
        qm listsnapshot $VM 2>/dev/null;
    done

    Bu komut, tüm VM’ler için anlık görüntüleri listeler. Belirli bir VM için örnek çıktı şöyle görünebilir:

    `-> fresh-install               2025-01-23 11:28:52     no-description
     `-> LXready                    2025-03-28 11:45:52     no-description
      `-> current                                           You are here!

    Bir zincirdeki birden çok anlık görüntü, özellikle yüksek disk etkinliğine sahip VM’ler için önemli ölçüde alan tüketebilir. Anlık görüntüler düzenli olarak gözden geçirilmeli ve gereksiz olanlar kaldırılmalıdır.

  8. Yedeklemeleri kontrol edin: Büyük yedekleme dosyalarını bulun.
    # find /var/lib/vz/dump -type f -name "*.tar" -o -name "*.vma" | xargs du -h | sort -hr

    Bu komut, standart yedekleme konumundaki yedekleme dosyalarını bulur ve boyuta göre sıralar. Yedeklemeler önemli ölçüde yer kaplayabilir ve eskiyse veya artık gerekli değilse temizleme için aday olabilir.

  9. ISO görüntülerini kontrol edin: Büyük ISO dosyalarını bulun.
    # find /var/lib/vz/template/iso -type f -name "*.iso" | xargs du -h | sort -hr

    Bu komut, boyuta göre sıralanmış tüm ISO görüntülerini listeler. ISO görüntüleri oldukça büyük olabilir ve VM kurulumundan sonra genellikle unutulur ve değerli yer kaplar.

  10. Konteyner şablonlarını kontrol edin: Kullanılmayan şablonları bulun.
    # find /var/lib/vz/template/cache -type f | xargs du -h | sort -hr

    Bu komut, konteyner şablonlarını boyuta göre listeler. Artık ihtiyaç duyulmayan şablonlar, alanı geri kazanmak için kaldırılabilir.

  11. Dosya sistemini ve dizin boyutunu karşılaştırıns: “Hayalet alan” ı bulun.
    # df -h /
    # du -sh --exclude=/proc --exclude=/sys --exclude=/run --exclude=/dev /

    Tutarsızlıkları belirlemek için bu çıktıları karşılaştırın. df, du raporlarından önemli ölçüde daha fazla kullanılan alan gösteriyorsa, silinen ancak işlemler veya alan tüketen diğer dosya sistemi meta verileri tarafından hala açık tutulan dosyalar olabilir.

  12. Açık ancak silinmiş dosyaları kontrol edin: Gizli alan tüketimini bulun.
    # lsof | grep deleted | grep -E '(vz|lxc)'

    Bu komut, silinmiş ancak işlemler tarafından hala açık tutulan dosyaları gösterir ve bu da normal dizin listeleri aracılığıyla “hayalet alana” neden olabilir.

DEPOLAMA ÇEŞİTLERİ VE ANALİZ YAKLAŞIMI
Farklı Proxmox depolama türleri, farklı analiz yaklaşımları gerektirir. Dizin tabanlı depolama için df ve du gibi standart Linux komutları iyi çalışır. LVM ölçülü provizyonlama için belirli LVM komutlarına ihtiyacınız olacaktır. ZFS depolama, ZFS’ye özel komutlar gerektirirken, Ceph depolama, Ceph araçlarını kullanır. Analize devam etmeden önce her zaman depolama türünüzü pvesm durumuyla tanımlayın.

Proxmox’ta Depolama Alanını Geri Kazanma

ÖNEMLİ UYARIAlanı geri kazanmak için işlemleri gerçekleştirmeden önce her zaman yedekler oluşturun. Anlık görüntüleri kaldırma veya disk görüntülerini silme gibi bazı eylemler geri alınamaz ve yanlış gerçekleştirilirse veri kaybına neden olabilir.

Proxmox ortamınızı yukarıdaki komutlarla analiz ettikten sonra, çoğu Proxmox kurulumu için geçerli olan alanı geri kazanmanın etkili yöntemleri şunlardır:

  1. Gereksiz VM anlık görüntülerini kaldırın: Artık gerekli olmayan anlık görüntüleri silin.
    # qm listsnapshot VMID
    # qm delsnapshot VMID SNAPNAME

    İlk komut belirli bir VM için anlık görüntüleri listeler ve ikinci komut adlandırılmış bir anlık görüntüyü siler. Anlık görüntüler, özellikle büyük VM’ler veya yüksek disk yazma etkinliğine sahip VM’ler için önemli ölçüde alan tüketebilir. Bir zincirdeki birden çok anlık görüntü, zaman içinde önemli miktarda disk kullanımı biriktirebilir.

  2. ISO depolamayı temizleme: Kullanılmayan ISO görüntülerini kaldırın.
    # find /var/lib/vz/template/iso -type f -name "*.iso" | xargs du -h | sort -hr
    # rm /var/lib/vz/template/iso/unused-iso.iso

    Önce ISO’ları boyuta göre listeleyin, ardından artık ihtiyaç duyulmayanları kaldırın. ISO görüntüleri genellikle VM kurulumundan sonra unutulur ve gigabaytlarca alan tüketebilir. Bir ISO’yu kaldırmadan önce her zaman herhangi bir VM tarafından kullanılmadığını doğrulayın.

  3. Eski yedeklemeleri silin: Artık gerekli olmayan yedeklemeleri kaldırın.
    # find /var/lib/vz/dump -type f -mtime +30 | xargs du -h | sort -hr
    # rm /var/lib/vz/dump/old-backup.vma

    İlk komut, 30 günden daha eski yedekleme dosyalarını bulur ve boyutlarını görüntüler. Düzenli yedeklemeler önemlidir, ancak eski yedeklemeler genellikle saklama politikanıza göre güvenli bir şekilde kaldırılabilir. Belirli bir yaştan sonra daha sık yedeklemeleri kaldırırken aylık yedeklemeleri daha uzun süre tutmayı göz önünde bulundurun.

  4. Kullanılmayan kapsayıcı şablonlarını kaldırın: Artık ihtiyacınız olmayan şablonları silin.
    # find /var/lib/vz/template/cache -type f | xargs du -h | sort -hr
    # rm /var/lib/vz/template/cache/unused-template.tar.xz

    Kapsayıcı şablonları, yeni kapsayıcılar oluşturulurken indirilir, ancak daha sonra nadiren kaldırılır. Aynı türde kapsayıcıları yeniden oluşturmayı planlamıyorsanız, alanı geri kazanmak için bu şablonlar güvenli bir şekilde kaldırılabilir.

  5. Kompakt qcow2 görüntüleri: VM disk görüntülerindeki alanı geri kazanın.
    # qm stop VMID
    # cd /var/lib/vz/images/VMID/
    # cp vm-VMID-disk-0.qcow2 vm-VMID-disk-0.qcow2.bak
    # qemu-img convert -O qcow2 vm-VMID-disk-0.qcow2 vm-VMID-disk-0-new.qcow2
    # mv vm-VMID-disk-0-new.qcow2 vm-VMID-disk-0.qcow2
    # qm start VMID

    Bu yordam, VM içindeki silinmiş dosyalardan alan kazanmak için bir qcow2 görüntüsünü sıkıştırır. Bir VM içindeki dosyalar silindiğinde, disk görüntüsü otomatik olarak küçülmez. Bu dönüştürme işlemi, kullanılmayan blokları atlayarak görüntüyü yeniden oluşturur. Bu işlemi denemeden önce her zaman VM’yi durdurun ve bir yedekleme yapın.

  6. Günlük dosyalarını temizleme: Büyük günlük dosyalarını kaldırın veya döndürün.
    # find /var/log -type f -name "*.log" -o -name "*.gz" | xargs du -h | sort -hr | head -n 20
    # journalctl --vacuum-time=30d

    İlk komut büyük günlük dosyalarını bulurken, ikincisi systemd günlük günlüklerini son 30 günle sınırlar. Günlük dosyaları zamanla birikebilir ve özellikle meşgul sistemlerde veya günlük döndürme düzgün yapılandırılmamışsa önemli ölçüde yer kaplayabilir.

  7. Kullanılmayan sanal makineleri kaldırın: Artık gerekli olmayan VM’leri silin.
    # qm list
    # qm destroy VMID --purge

    Önce kaldırılacak adayları belirlemek için tüm VM’leri listeleyin, ardından bir VM’yi ve ilişkili disklerini tamamen kaldırmak için temizleme seçeneğiyle birlikte destroy komutunu kullanın. Bunu yalnızca artık gerçekten ihtiyaç duyulmayan VM’ler için yapın.

  8. ZFS depolamayı optimize edin: Varsa, ZFS havuzlarında yer geri kazanın.
    # zpool list
    # zfs list
    # zpool trim poolname

    Proxmox sisteminiz ZFS depolama kullanıyorsa, trim komutu SSD’lerdeki silinen dosyalardan alanın geri kazanılmasına yardımcı olur. Ek olarak, veri bütünlüğünü doğrulamak için sıkıştırma ayarlarını değiştirmeyi veya bir temizleme işlemi çalıştırmayı düşünün.

 

 

 

Yazının orijiinalinin buradan okuyabilirsiniz.