Proxmox Ortamında ZFS Altyapısı Kurulumu

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 → Shell

Zpool durumunu görelim

zpool status

Sıkıştırma oranını kontrol edelim

zfs get compressratio tank

Dosya sisteminin mount edildiğini doğrulayalım

df -h

Bu 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/zfskeys

Anahtar 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/secure

Durumunu kontrol edelim

zfs get encryption,keystatus tank/secure

Bu 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/vmdata

tank/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 → ZFS

Bu 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 Storage

Target 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 status

Resilver 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.

Yorum yapın