Proxmox Sunucuda ZFS Altyapısı Nasıl Kurulur?
ZFS Nedir?
ZFS klasik anlamda bir dosya sistemi değildir. Disklerin yönetimi, RAID yapısı, veri doğrulama ve hata tespiti tek bir mimari içinde birlikte çalışır. Bu yapı sayesinde disk, RAID ve filesystem kavramları ayrı katmanlar olarak ele alınmaz.
ZFS’in temel yaklaşımı şudur.
Yazılan veri anında denetlenir, okuma sırasında tekrar doğrulanır ve diskten kaynaklanan bozulmalar erken aşamada ortaya çıkarılır.
Bu yazı, Proxmox VE üzerinde ZFS altyapısını güvenli, performanslı, şifreleme destekli ve VM uyumlu olacak şekilde kurmayı hedefler.

ZFS Kurulumu Öncesi Disk Hazırlığı
ZFS, disklerin üzerinde önceden tanımlı herhangi bir yapı olmadan kullanılmasını ister. Daha önce partition bulunan veya RAID yapılarında kullanılmış diskler, havuz oluşturma sırasında sorun çıkarabilir.
Bu yüzden önce Proxmox arayüzüne giriş yapalım ve ilgili node’u seçelim. Ardından disk listesine geçelim.
Node → Disks
Kullanılacak tüm diskleri seçerek Wipe Disk işlemi ile eski bölümleme tablolarını ve metadata kalıntılarını temizleyelim.
ZFS Havuzu Oluşturma Ekranını Açalım
Disk temizliği tamamlandıysa ZFS sihirbazını başlatalım.
Node → Disks → ZFS → Create ZFS
Bu ekranda havuzun temel ayarlarını birlikte yapılandıracağız.

ZFS Pool Oluşturma
Fiziksel diskler hazırsa ZFS Pool oluşturma aşamasına geçebiliriz. Pool, ZFS’in diskleri tek bir mantıksal yapı altında topladığı katmandır.
Node → Disks → ZFS → Create: ZFS
Pool Name
ZFS havuzunun adıdır. Daha sonra datastore olarak da kullanılacağı için okunabilir ve anlamlı bir isim tercih edilmelidir.
RAID Level
Bu konfigürasyon minimum 4 disk ile çalışır. Aynı anda iki disk bozulsa bile veri kaybı yaşanmaz.
Compression
Sıkıştırma özelliği, işlemciyi zorlamadan disk kullanımını azaltır. Açık bırakılması tavsiye edilir.
ashift
4K sektör kullanan diskler için ashift=12 ayarı, performans düşüşlerinin önüne geçmek için gereklidir.

Kurulum Sonrası Kontrolleri Yapalım
Havuz oluşturulduktan sonra shell açalım ve kontrollerimizi yapalım.
Node → ShellZpool durumunu görelim
zpool statusSıkıştırma oranını kontrol edelim
zfs get compressratio tankDosya sisteminin mount edildiğini doğrulayalım
df -hBu kontroller sonunda havuzumuzun sağlıklı şekilde çalıştığından emin olalım.
Pool’dan Dataset Katmanına Geçiş
ZFS’te veri yazımı doğrudan pool üzerinde yapılmaz. Pool yalnızca altyapıyı sağlar, veri yönetimi dataset yapısı üzerinden yürütülür.
Bu aşamada şifreli bir dataset oluşturacağız. Devam etmeden önce şifreleme anahtarının bulunacağı dizini oluşturalım.
mkdir -p /root/zfskeys<br>chmod 700 /root/zfskeysAnahtar dosyasını üretelim
head -c 32 /dev/urandom > /root/zfskeys/secure.key<br>chmod 600 /root/zfskeys/secure.keyŞifreli dataset’i oluşturalım
zfs create \<br>-o encryption=on \<br>-o keyformat=raw \<br>-o keylocation=file:///root/zfskeys/secure.key \<br>tank/secureDurumunu kontrol edelim
zfs get encryption,keystatus tank/secureOluşturulan ZFS dataset yapısı, hem tek node kurulumlarda hem de Proxmox VE Cluster kullanılan yapılarda doğrudan kullanılabilir. Çoklu node ile çalışan bir altyapı hedefleniyorsa, öncelikle Proxmox VE Cluster yapısının doğru şekilde kurulmuş olması şarttır.
VM’ler İçin Alt Dataset Oluşturalım
VM disklerini doğrudan parent dataset’e yazmayalım. Alt dataset kullanalım.
zfs create tank/secure/vmdatatank/secure şifreliyse, vmdata otomatik olarak şifreli olur. Ek ayar yapmamıza gerek kalmaz.
ZFS Dataset’i Storage Katmanına Ekleyelim
Şimdi tekrar arayüze dönelim.
Datacenter → Storage → Add → ZFSBu ekranda
- Storage ID: secure-zfs
- Pool: tank
- Content: Disk image, Container
- Nodes: ilgili node
Kaydedelim. Artık Proxmox bu alanı VM diskleri için kullanabilir.
VM Disklerini Şifreli Alana Taşıyalım
Mevcut VM’ler varsa disklerini taşıyalım.
VM → Hardware → Disk → Move StorageTarget Storage olarak secure-zfs seçelim ve işlemi başlatalım. Bu işlem sırasında VM çalışmaya devam eder. Disk yeni şifreli dataset üzerine taşınır.

RAIDZ2 Yapısında Arıza Senaryosu
RAIDZ2 tercih edildiği için tek disk arızası havuzun durmasına neden olmaz. Havuz DEGRADED moda geçer ancak veri kaybı yaşanmadan sistem çalışmaya devam eder.

Disk sisteme yeniden eklendiğinde ZFS, otomatik olarak resilver sürecine girer. Bu aşamada eksik veri blokları diğer disklerden yeniden oluşturulur.
zpool statusResilver işlemi tamamlandığında havuz durumu tekrar ONLINE olur.

Sistem reboot edildiğinde, dataset şifrelemesi keyfile ile yapılandırıldığı için ZFS dataset otomatik olarak açılır. Ek bir zfs load-key komutuna gerek kalmaz
