Yedekleme Stratejisi: Proxmox Backup Server Kurulumu

Üretim ortamınızda bir şeyler ters gittiğinde, elinizde düzgün bir yedek yoksa o anın ne kadar kaotik olduğunu bilirsiniz. Proxmox ortamınızı yönetiyorsanız ve hâlâ “PBS mi, yoksa eski usul rsync mi?” diye düşünüyorsanız, bu yazıyı okuduktan sonra kafanız netleşecek. Proxmox Backup Server, özellikle değişen blokları yedekleyen artımlı yedekleme mimarisiyle hem disk alanından hem de zaman kaybından sizi kurtarıyor.

Proxmox Backup Server Nedir ve Neden Kullanmalısınız?

Proxmox Backup Server (PBS), Proxmox VE ortamlarındaki sanal makineleri, konteynerleri ve ham dosyaları yedeklemek için tasarlanmış açık kaynaklı bir yedekleme çözümüdür. Sıradan bir yedekleme aracından farkı, chunk tabanlı artımlı yedekleme kullanmasıdır. Yani her yedeklemede yalnızca değişen veri bloklarını saklar, bu da hem ağ trafiğini hem de depolama kullanımını dramatik biçimde düşürür.

Klasik Proxmox VE üzerindeki yerleşik yedekleme çözümü (vzdump) ile karşılaştırdığınızda PBS şu avantajları sunar:

  • Artımlı yedekleme: İlk tam yedekten sonra yalnızca değişen bloklar aktarılır
  • Veri tekilleştirme (deduplication): Aynı veri blokları tek seferinde saklanır
  • Sıkıştırma: Zstd algoritmasıyla verimli sıkıştırma
  • Doğrulama: Yedekler bozulmadan önce otomatik doğrulama yapılabilir
  • Web arayüzü: Proxmox VE ile benzer bir arayüzden yönetim
  • Prune kuralları: Eski yedekleri otomatik temizleme

Şimdi kuruluma geçelim.

Sistem Gereksinimleri ve Kurulum Ortamı

PBS’i genellikle ayrı bir fiziksel makineye ya da başka bir Proxmox VE node’unda çalışan bir sanal makineye kurarsınız. Üretim ortamında fiziksel makine veya ayrı bir host tercih edin. Yedekleme sunucunuz, yedeklediğiniz ortamla aynı host’ta çalışıyorsa, o host’un çökmesi durumunda hem VM’lerinizi hem de yedeklerinizi kaybedersiniz.

Minimum gereksinimler:

  • CPU: 2 çekirdek (4 önerilir)
  • RAM: 2 GB minimum, 4-8 GB önerilir
  • Boot diski: 32 GB SSD
  • Yedekleme diski: İhtiyacınıza göre, genellikle büyük kapasiteli HDD’ler
  • : 1 Gbps, mümkünse ayrı bir yönetim ağı

Bu örnekte PBS’i ayrı bir Debian tabanlı sistemde kuracağız. PBS, Debian 12 (Bookworm) üzerine inşa edilmiştir.

Kurulum Adımları

ISO ile Kurulum

PBS ISO dosyasını resmi Proxmox sitesinden indirin. Kurulum süreci Proxmox VE ile neredeyse aynıdır; disk seçimi, ağ konfigürasyonu ve root şifresi adımlarından oluşur. Kurulum tamamlandıktan sonra sisteme SSH ile bağlanın.

# Sistem güncellemesi yapın
apt update && apt full-upgrade -y

# Reboot öneririm, özellikle kernel güncellemesi geldiyse
reboot

Debian Üzerine PBS Kurulumu

Eğer mevcut bir Debian 12 sisteminiz varsa ve ISO kullanmak istemiyorsanız, paket deposunu ekleyerek kurabilirsiniz:

# Proxmox deposu için gerekli araçları kurun
apt install -y curl gnupg2

# PBS GPG anahtarını ekleyin
curl -fsSL https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg | 
  gpg --dearmor -o /usr/share/keyrings/proxmox-release-bookworm.gpg

# Community (ücretsiz) deposunu ekleyin
echo "deb [signed-by=/usr/share/keyrings/proxmox-release-bookworm.gpg] 
  https://download.proxmox.com/debian/pbs bookworm pbs-no-subscription" 
  > /etc/apt/sources.list.d/pbs-community.list

# Enterprise deposunu devre dışı bırakın (lisans yoksa)
# /etc/apt/sources.list.d/pbs-enterprise.list dosyasını yoruma alın

apt update
apt install -y proxmox-backup-server

Kurulum tamamlandıktan sonra PBS web arayüzüne https://PBS_IP:8007 adresinden ulaşabilirsiniz.

Depolama Alanı Yapılandırması

PBS’in kalbi datastore konseptidir. Yedeklerinizin saklandığı dizini bir datastore olarak tanımlarsınız. Bu dizin lokal bir disk, bir ZFS havuzu veya NFS mount noktası olabilir.

ZFS Havuzu Oluşturma (Önerilen)

Yedekleme sunucusu için ZFS kullanmanızı şiddetle tavsiye ederim. Veri bütünlüğü, snapshot desteği ve kolay yönetim açısından çok avantajlıdır.

# Diskleri listeleyin
lsblk

# Yedekleme için tek diskli basit ZFS havuzu (test/küçük ortam)
zpool create pbsdata /dev/sdb

# Veya RAID-Z1 ile (3 disk, 1 disk toleransı - üretim için)
zpool create pbsdata raidz1 /dev/sdb /dev/sdc /dev/sdd

# Havuz durumunu kontrol edin
zpool status pbsdata

# Sıkıştırmayı etkinleştirin (lz4 hızlı ve verimli)
zfs set compression=lz4 pbsdata

Datastore Oluşturma

Web arayüzü üzerinden datastore oluşturmak daha kolay olsa da komut satırından da yapabilirsiniz:

# Datastore için dizin oluşturun
mkdir -p /pbsdata/vm-backups

# PBS CLI ile datastore ekleyin
proxmox-backup-manager datastore create vm-backups /pbsdata/vm-backups

# Datastore listesini görüntüleyin
proxmox-backup-manager datastore list

Web arayüzünde Datastore > Add Datastore yolunu izleyerek de ekleyebilirsiniz. Datastore adını, yolunu ve isteğe bağlı olarak tuning parametrelerini burada belirlersiniz.

Proxmox VE ile PBS’i Entegre Etme

PBS kurulumu tamamlandıktan sonra Proxmox VE tarafında bu yedekleme sunucusunu tanımlamanız gerekiyor.

PBS’te API Token Oluşturma

Güvenlik açısından root şifresi yerine API token kullanmanızı öneririm:

# PBS'te yeni bir kullanıcı oluşturun
proxmox-backup-manager user create backup@pbs --password 'GucluBirSifre123!'

# Kullanıcıya datastore üzerinde yetki verin
proxmox-backup-manager acl update /datastore/vm-backups --auth-id backup@pbs --role DatastoreBackup

# API token oluşturun
proxmox-backup-manager user generate-token backup@pbs mytoken

# Oluşturulan token'ı not edin, bir daha gösterilmez!

Proxmox VE’de PBS Storage Tanımlama

Proxmox VE web arayüzünde Datacenter > Storage > Add > Proxmox Backup Server seçeneğine tıklayın. Açılan formda:

  • ID: PBS-Main gibi anlamlı bir isim verin
  • Server: PBS sunucusunun IP adresi
  • Datastore: Oluşturduğunuz datastore adı
  • Username: backup@pbs veya root@pam
  • Password / API Token: Oluşturduğunuz token

Alternatif olarak Proxmox VE komut satırından:

# Proxmox VE node'unda çalıştırın
pvesm add pbs pbs-main 
  --server 192.168.1.100 
  --datastore vm-backups 
  --username backup@pbs 
  --authid backup@pbs!mytoken 
  --fingerprint "BURAYA:PBS:SUNUCU:PARMAKIZI:GELECEK"

# PBS sunucusunun parmak izini almak için PBS'te:
# proxmox-backup-manager cert info | grep Fingerprint

PBS sunucusunun TLS parmak izini almayı unutmayın, Proxmox VE bu bilgiyi bağlantı güvenliği için kullanır.

Yedekleme Zamanlaması Oluşturma

Storage tanımlandıktan sonra yedekleme işlerini zamanlamanız gerekiyor.

Web Arayüzünden Zamanlama

Proxmox VE’de Datacenter > Backup > Add yolunu izleyin. Bu ekranda:

  • Storage: az önce tanımladığınız PBS storage’ı seçin
  • Schedule: Cron formatında zamanlama (örn. her gün 02:00 için 0 2 *)
  • Selection mode: Tüm VM’ler veya belirli tag/pool seçimi
  • Mode: snapshot modu tercih edin (VM kapatmadan yedek alır)
  • Max Protected Backups: Silinmemesini istediğiniz yedek sayısı

Prune ve Retention Politikası

Yedek saklarken disk dolmaması için retention (saklama) politikasını doğru kurun. PBS’te bu prune job olarak tanımlanır:

# PBS üzerinde prune job oluşturun
proxmox-backup-manager prune-job create job1 
  --store vm-backups 
  --schedule "daily" 
  --keep-last 3 
  --keep-daily 7 
  --keep-weekly 4 
  --keep-monthly 6

Bu yapılandırma şunu söylüyor:

  • –keep-last 3: Son 3 yedeği her koşulda tut
  • –keep-daily 7: Son 7 günün günlük yedeklerini tut
  • –keep-weekly 4: Son 4 haftanın haftalık en iyi yedeğini tut
  • –keep-monthly 6: Son 6 ayın aylık en iyi yedeğini tut

Web arayüzünden PBS panelinde Datastore > Prune & GC sekmesinden de bu ayarları yapabilirsiniz.

Yedek Doğrulama (Verification)

Yedek aldınız güzel. Ama o yedek gerçekten çalışıyor mu? PBS’in en değerli özelliklerinden biri otomatik doğrulamadır.

# Belirli bir datastore için doğrulama job'u oluşturun
proxmox-backup-manager verify-job create verify1 
  --store vm-backups 
  --schedule "weekly" 
  --ignore-verified true 
  --outdated-after 30

Bu yapılandırmayla:

  • –schedule “weekly”: Her hafta doğrulama çalıştır
  • –ignore-verified true: Zaten doğrulanmış yedekleri atla
  • –outdated-after 30: 30 günden eski doğrulama sonuçlarını geçersiz say

Doğrulama işlemi, yedeklerin chunk bütünlüğünü kontrol eder ve bozuk veri varsa sizi uyarır. Bu özelliği kesinlikle aktif edin. Geri yükleme anında bozuk yedekle karşılaşmak, hiç yedek yokken karşılaşmaktan daha kötüdür.

Geri Yükleme Senaryoları

VM veya CT Geri Yükleme

Proxmox VE üzerinden geri yükleme oldukça basittir. Backup sekmesinde ilgili VM’yi seçip Restore diyebilirsiniz. Ancak komut satırından yapmanız gereken durumlar da olabilir:

# VM 101'i belirli bir yedekten geri yükle
qmrestore pbs-main:backup/vm/101/2024-01-15T02:00:00Z 101 --storage local-lvm --force

# Konteyner geri yükleme
pct restore 200 pbs-main:backup/ct/200/2024-01-15T02:00:00Z --storage local-lvm --force

–force parametresini dikkatli kullanın; mevcut VM’nin üzerine yazar. Önce bir test VM’sine yüklemenizi tavsiye ederim.

Tek Dosya Geri Yükleme

Tam VM geri yüklemek yerine sadece birkaç dosyayı kurtarmanız gereken durumlar için PBS web arayüzü üzerinden “File Restore” özelliğini kullanabilirsiniz. Datastore’da ilgili yedeği seçin, File Restore butonuna tıklayın ve sanal bir dosya gezgini üzerinden istediğiniz dosyaları indirin.

Komut satırından da mümkündür:

# PBS proxy ile yedek içeriğini mount edin
proxmox-backup-client mount 
  [email protected]:vm-backups 
  vm/101/2024-01-15T02:00:00Z 
  /mnt/restore 
  --keyfile /etc/pbs/encryption.key

Şifreleme Yapılandırması

Özellikle yedekleri offsite bir lokasyona ya da bulut depolamaya gönderiyorsanız şifreleme kritik önem taşır.

# PBS client üzerinde şifreleme anahtarı oluşturun
proxmox-backup-client key create /etc/pbs/backup-encryption.key

# Anahtarı güvenli bir yerde yedekleyin!
# Bu anahtar olmadan yedeklerinize erişemezsiniz
cp /etc/pbs/backup-encryption.key /secure-location/backup-encryption.key.bak

# Şifreli yedek almak için (genellikle Proxmox VE storage tanımında belirtilir)
proxmox-backup-client backup vm.pxar:/mnt/data 
  --repository [email protected]:vm-backups 
  --keyfile /etc/pbs/backup-encryption.key

Uyarı: Şifreleme anahtarınızı kaybederseniz yedekleriniz sonsuza kadar erişilemez hale gelir. Anahtarı en az iki farklı güvenli lokasyonda saklayın. Biri fiziksel (USB veya kağıt çıktı), biri şifreli bulut depolama olabilir.

Uzak Yedekleme ve Senkronizasyon

PBS’in harika özelliklerinden biri de uzak PBS sunucusuyla senkronizasyon yapabilmesidir. Böylece yerel PBS’inizi başka bir lokasyondaki PBS’e “aynalayabilirsiniz”.

# Uzak PBS'e senkronizasyon job'u oluşturun
proxmox-backup-manager sync-job create offsite-sync 
  --store vm-backups 
  --remote offsite-pbs 
  --remote-store vm-backups-remote 
  --schedule "daily" 
  --remove-vanished false

# Uzak sunucu tanımlaması
proxmox-backup-manager remote create offsite-pbs 
  --host 10.10.0.50 
  --userid backup@pbs 
  --password 'RemotePassword!' 
  --fingerprint "REMOTE:SERVER:FINGERPRINT"

Bu yapılandırma, yerel yedeklerinizi otomatik olarak uzak sunucuya kopyalar. 3-2-1 yedekleme kuralını (3 kopya, 2 farklı medya, 1 offsite) uygulamak için bu özellik mükemmeldir.

İzleme ve Bildirimler

Yedekleme alındı güzel de başarılı mı oldu? Bunu takip etmek için PBS’te bildirim yapılandırması şarttır.

E-posta Bildirimleri

# Postfix veya benzer bir MTA kurulu olmalı
apt install -y postfix mailutils

# PBS bildirim yapılandırması
proxmox-backup-manager notification endpoint create smtp-alerts 
  --type smtp 
  --mailaddr [email protected] 
  --server mail.sirketiniz.com 
  --port 587 
  --mode starttls 
  --username [email protected] 
  --password 'MailSifresi'

# Bildirim kuralı oluşturun
proxmox-backup-manager notification matcher create backup-failures 
  --target smtp-alerts 
  --match-severity error,warning

PBS Task Log Kontrolü

Günlük rutininizde PBS görevlerini kontrol etmek için:

# Son görevlerin durumunu görüntüleyin
proxmox-backup-manager task list --limit 20

# Belirli bir görevin detaylarını görün
proxmox-backup-manager task log TASK_ID

# Hatalı görevleri filtreleyin
proxmox-backup-manager task list --typefilter backup | grep -i error

Garbage Collection ve Disk Alanı Yönetimi

PBS chunk tabanlı çalıştığı için, prune işlemi sonrası kullanılmayan chunk’lar hemen silinmez. Garbage Collection (GC) işlemi bu gereksiz chunk’ları temizler.

# Manuel GC başlatın
proxmox-backup-manager garbage-collection start vm-backups

# GC durumunu kontrol edin
proxmox-backup-manager garbage-collection status vm-backups

# Otomatik GC zamanlaması (genellikle haftada bir yeterli)
# Web arayüzünden Datastore > Prune & GC sekmesinden ayarlayabilirsiniz

Disk kullanım istatistiklerini web arayüzünden rahatlıkla görebilirsiniz. Datastore’a girdiğinizde toplam boyut, kullanılan alan ve tekilleştirme oranı gösterilir.

Gerçek Dünya Senaryosu: Küçük İşletme PBS Kurulumu

Birkaç Proxmox node’u, toplam 20-30 VM’si olan tipik bir küçük işletme senaryosunu ele alalım:

Altyapı:

  • 3 adet Proxmox VE node (toplam ~30 VM)
  • 1 adet PBS sunucusu (ayrı fiziksel makine, 4 TB RAID-Z1)
  • 1 adet uzak PBS (felaket kurtarma lokasyonu)

Yedekleme takvimi:

  • Her gece 01:00: Kritik VM’ler (veritabanı sunucuları)
  • Her gece 03:00: Diğer tüm VM’ler
  • Her hafta Pazar 05:00: Uzak PBS senkronizasyonu

Retention politikası:

  • Kritik VM’ler: 7 günlük + 4 haftalık + 3 aylık
  • Diğerleri: 3 günlük + 2 haftalık + 1 aylık

Bu yapılandırmayla toplamda 4 TB disk alanıyla yaklaşık 6 aylık yedek tutabilirsiniz çünkü PBS’in tekilleştirme ve sıkıştırma özelliği sayesinde gerçek veri boyutunun çok altında disk kullanımı elde edersiniz. Bir sistemde tekilleştirme oranının ortalama 3:1 ile 5:1 arasında olduğunu söylemek yanlış olmaz.

Sık Yapılan Hatalar ve Çözümleri

  • Yedekleme ve üretim aynı diskte: PBS verisini üretim diskiyle aynı depolamaya koymamalısınız. Donanım arızasında ikisini de kaybedersiniz.
  • Şifreleme anahtarını yedeklememek: Şifreleme aktifse anahtarınızı mutlaka güvenli şekilde yedekleyin.
  • GC’yi çalıştırmamak: Prune sonrası GC çalıştırmazsanız disk alanı beklenmedik şekilde dolmaya devam eder.
  • Yedek doğrulamasını atlamak: Verification job’ı kurmak zahmetli görünebilir ama bozuk yedeği önceden farketmek çok değerlidir.
  • Sadece bir lokasyonda yedek: Yangın, sel veya hırsızlık durumunda offsite yedeğiniz yoksa tüm yedekler gidebilir.
  • Ağ bant genişliğini hesaplamamak: PBS artımlı yedekleme yapar ama ilk tam yedek büyük olabilir. Bunu gece saatlerine planlayın.

Sonuç

Proxmox Backup Server, Proxmox ortamları için neredeyse vazgeçilmez bir araç haline geldi. Artımlı yedekleme mimarisi, yerleşik tekilleştirme, güçlü doğrulama araçları ve offsite senkronizasyon özellikleriyle kurumsal düzeyde bir yedekleme çözümünü ücretsiz olarak sunuyor.

Kurulumun teknik kısmından daha önemli olan şey, yedekleme stratejinizi net tanımlamanızdır. Hangi VM’lerin ne kadar sıklıkla yedekleneceğini, kaç kopyanın nerede tutulacağını ve geri yüklemenin nasıl test edileceğini önceden kararlaştırın. En iyi yedekleme sistemi, düzenli olarak test edilen yedekleme sistemidir. Her ay en az bir VM’yi test ortamına geri yükleyerek yedeklerinizin gerçekten çalıştığını doğrulayın.

PBS’i kurup unutmak yerine, izleme ve bildirim yapılandırmasına da zaman ayırın. Gece çalışan bir yedekleme işinin sessizce hata verdiğini sabah ilk iş mailden öğrenmek, felaketi son anda farketmekten çok daha iyidir.

Yorum yapın