Proxmox VE Üzerinde ZFS Altyapısı Nasıl Kurulur?
ZFS Nedir?
ZFS klasik anlamda bir dosya sistemi değildir. Disk yönetimi ile RAID mantığı ve veri bütünlüğü mekanizmaları tek bir yapı halinde çalışır. Bu nedenle ZFS kullanılan ortamlarda disk, RAID ve dosya sistemi ayrı ayrı planlanmaz.
ZFS’in temel yaklaşımı şudur.
Veri yazım aşamasında kontrol edilir, okuma sırasında doğrulanır ve donanım kaynaklı hatalar mümkün olan en erken aşamada tespit edilir.
Bu yazıda Proxmox VE üzerinde ZFS altyapısını, veri kaybı riski oluşturmadan ve performans hatasına düşmeden, şifreli ve VM uyumlu biçimde kuracağız.

ZFS Öncesi Fiziksel Disk Temizliği
ZFS, disklerin üzerinde herhangi bir eski yapı bulunmasını istemez. Önceden partition oluşturulmuş ya da başka bir RAID yapısında kullanılmış diskler, havuz kurulumunda sorun oluşturabilir.
İlk olarak Proxmox arayüzüne giriş yapalım ve ilgili node’u seçelim. Sonrasında disk listesine geçelim.
Node → Disks
Her bir diski seçip Wipe Disk işlemi uygulayarak eski bölümleme tablolarını ve metadata kalıntılarını temizleyelim.
ZFS Havuzu Oluşturma Ekranını Açalım
Diskler hazır hale geldikten sonra ZFS sihirbazını başlatalım.
Node → Disks → ZFS → Create ZFS
Bu ekranda havuz yapılandırmasını adım adım yapacağız.

ZFS Pool Oluşturma
Diskler hazırsa artık ZFS Pool katmanına geçelim. Pool, ZFS’in fiziksel diskleri bir araya getirerek tek bir depolama alanı oluşturduğu temel yapıdır.
Node → Disks → ZFS → Create: ZFS
Pool Name
Bu alan ZFS havuzunun adını belirler. Havuz daha sonra datastore olarak da kullanılacağı için anlamlı ve ayırt edilebilir bir isim seçilmelidir.
RAID Level
Bu yapılandırma en az 4 disk gerektirir. Aynı anda iki disk arızalansa bile sistem veri kaybı yaşamadan çalışmaya devam eder.
Compression
Sıkıştırma, işlemciye ciddi bir yük bindirmeden önemli ölçüde alan tasarrufu sağlar. Bu nedenle açık bırakılması önerilir.
ashift
Güncel SSD ve HDD’lerin büyük çoğunluğu 4K sektör kullanır. ashift=12 ayarı, disk sektörleri ile dosya sistemi hizasını sağlayarak performans kaybı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.
Dataset Yapısının Oluşturulması
ZFS mimarisinde veriler pool’a değil dataset katmanına yazılır. Bu yapı, verilerin daha kontrollü ve güvenli şekilde yönetilmesini sağlar.
Şimdi şifreleme kullanılan bir dataset oluşturacağız. İlk adım olarak anahtar dosyası için bir dizin 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 aşamadan sonra oluşturulan ZFS dataset yapısı, tek node kullanılan sistemlerde olduğu gibi Proxmox VE Cluster ortamlarında da sorunsuz biçimde çalışır. Birden fazla node içeren bir mimari planlanıyorsa, ZFS yapılandırmasına geçmeden önce Proxmox VE Cluster kurulumunun doğru ve eksiksiz şekilde yapılmış 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.
Dataset’i Proxmox Storage Olarak Tanımlayalım
Ş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.

Disk Arızasında ZFS Havuzunun Tepkisi
RAIDZ2 yapılandırması sayesinde bir disk arızalandığında havuz DEGRADED olarak işaretlenir. Sistem çalışmayı sürdürür ve veriler erişilebilir kalır.

Disk tekrar takıldığında ZFS tarafında manuel bir işlem gerekmeksizin resilver işlemi başlatılır. Sağlam diskler referans alınarak eksik bloklar yeniden inşa edilir.
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