Ü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
- Ağ: 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@pbsveya 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:
snapshotmodu 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.