ZFS Nedir?
ZFS klasik anlamda bir dosya sistemi değildir. Disk yönetimi, RAID yapısı, veri doğrulama ve hata kontrolü tek bir mimaride birleştirilmiştir. Bu yaklaşım sayesinde disk, RAID ve filesystem kavramları ayrı katmanlar olarak değerlendirilmez.
ZFS’in temel yaklaşımı şudur.
Veri yazılırken kontrol edilir, okuma sırasında doğrulanır ve disk arızalarından kaynaklanan bozulmalar erken aşamada belirlenir.
Bu rehberde Proxmox VE üzerinde ZFS altyapısını, veri güvenliği ve performans dengesi bozulmadan, şifreli ve sanal makinelere uygun şekilde kuracağız.

Fiziksel Disklerin Hazırlanması
ZFS, disklerin üzerinde herhangi bir eski yapı bulunmasını istemez. Daha önce partition içeren veya farklı RAID sistemlerinde kullanılmış diskler, kurulum sırasında metadata çakışmasına neden olabilir.
Önce Proxmox arayüzüne giriş yapalım ve ilgili node’u seçelim. Ardından disk listesine geçelim.
Node → Disks
Her bir diski ayrı ayrı seçerek Wipe Disk işlemiyle eski bölümleme ve RAID izlerini temizleyelim.
ZFS Havuzu Oluşturma Ekranını Açalım
Diskler hazırlandıktan sonra ZFS sihirbazını başlatalım.
Node → Disks → ZFS → Create ZFS
Bu ekran üzerinden havuz yapılandırmasını gerçekleştireceğiz.

ZFS Pool Oluşturma
Diskler temizlenip hazırlandıysa artık ZFS Pool katmanına geçelim. Pool, ZFS’in fiziksel diskleri birleştirerek oluşturduğu temel depolama yapısıdır.
Node → Disks → ZFS → Create: ZFS
Pool Name
Bu alan havuzun adını tanımlar. Havuz datastore olarak da kullanılacağı için açıklayıcı bir isim seçmek faydalı olacaktır.
RAID Level
Yapı en az 4 disk gerektirir. İki diskin aynı anda arızalanması durumunda bile veri kaybı oluşmaz.
Compression
Sıkıştırma, sistem kaynaklarını zorlamadan önemli ölçüde alan kazancı sağlar. Bu ayarın açık olması önerilir.
ashift
Güncel disklerin çoğu 4K sektör kullandığından ashift=12 ayarı, disk hizasını koruyarak performans sorunlarını önler.

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.
ZFS Dataset Mimarisi
ZFS’te veriler doğrudan pool seviyesinde tutulmaz. Pool fiziksel diskleri birleştirirken, asıl veri işlemleri dataset katmanında gerçekleşir.
Şimdi şifreleme destekli bir dataset oluşturalım. Bunun için ilk olarak anahtar dosyasını saklayacağımız 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/secureBu noktadan sonra yapılandırılan ZFS dataset, tek node sistemlerde olduğu gibi Proxmox VE Cluster ortamlarında da stabil şekilde kullanılabilir. Birden fazla node içeren bir yapı planlanıyorsa, ZFS tarafına geçmeden önce cluster kurulumunun düzgün tamamlanmış olması gerekir.
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.
Şifreli Dataset’i Datastore Olarak Kullanma
Ş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.

ZFS’te Disk Arızası Durumunda Ne Olur?
RAIDZ2 kullanılan bir ZFS havuzunda disk arızası durumunda havuz DEGRADED statüsüne geçer. Buna rağmen sistem kesintisiz çalışır ve veri bütünlüğü korunur.

Arızalı disk yerine disk geri takıldığında ZFS, resilver işlemini kendiliğinden başlatır. Sağlam disklerdeki veriler kullanılarak eksik bloklar yeniden yazılır.
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.