Proxmox’ta ZFS Depolama Altyapısı Nasıl Kurulur?

ZFS Nedir?

ZFS klasik anlamda bir dosya sistemi değildir. Disk yönetimi, RAID mantığı ve veri bütünlüğü süreçleri tek bir yapı altında birlikte çalışır. Bu yüzden ZFS kullanan sistemlerde bu kavramlar ayrı ayrı ele alınmaz.

ZFS’in temel yaklaşımı şudur.
Veri diske yazıldığı anda doğrulanır, okuma sırasında tekrar kontrol edilir ve disk kaynaklı hatalar erken aşamada tespit edilir.

Bu yazı kapsamında Proxmox VE üzerinde ZFS altyapısını, veri kaybı ve performans sorunu yaşamadan, şifreli ve VM uyumlu şekilde kuracağız.

Havuz Öncesi Disk Temizleme İşlemi

ZFS havuzu oluşturulmadan önce disklerin tamamen temiz olması gerekir. Daha önce bölümlendirilmiş veya farklı RAID yapılarına dahil edilmiş diskler metadata sorunlarına yol açabilir.

Önce Proxmox arayüzüne giriş yapalım ve node’u seçelim. Ardından disk listesine geçelim.

Node → Disks

Her diski ayrı ayrı seçerek Wipe Disk işlemiyle eski bölümleme ve metadata bilgilerini temizleyelim.

ZFS Havuzu Oluşturma Ekranını Açalım

Disk hazırlığı tamamlandığında ZFS sihirbazını başlatalım.
Node → Disks → ZFS → Create ZFS
Bu ekranda havuz ayarlarını yapılandıracağız.

ZFS Pool Oluşturma

Diskler hazırsa artık ZFS Pool katmanına geçelim. Pool, ZFS’in fiziksel diskleri birleştirdiği temel yapıdır.

NodeDisksZFS → Create: ZFS

Pool Name ZFS havuzumuzun adı olacak. Sonradan datastore olarak da kullanacağımız için anlamlı bir isim seçelim.

RAID Level en az 4 disk gerektirir. 2 disk aynı anda bozulsa dahi veri kaybı yaşanmaz

Compression işlemciye yük bindirmeden ciddi yer kazancı sağlar. Mutlaka açık bırakılmalıdır.

ashift güncel SSD ve HDD’lerin çoğu 4K sektör kullanır. ashift=12 ayarı, disk sektörleri ile dosya sistemini hizalayarak performans kaybını önler.

Kurulum Sonrası Kontrolleri Yapalım

Havuz oluşturulduktan sonra shell açalım ve kontrollerimizi yapalım.

NodeShell

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.

Dataset Katmanına Geçiş

ZFS’te veriler doğrudan pool’a yazılmaz. Veri yönetimi dataset katmanı üzerinden yapılır. Bu katman, şifreleme, kota ve performans ayarlarının ayrı ayrı uygulanmasını sağlar.

Bu adımda şifreli bir dataset oluşturacağız. İşleme başlamadan önce şifreleme anahtarının tutulacağı dizini hazırlayalı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

Oluşturulan ZFS dataset yapısı, standalone node kurulumlarının yanı sıra Proxmox VE Cluster kullanılan ortamlarda da problemsiz çalışır. Eğer altyapı birden fazla node üzerinden çalışacaksa, Proxmox VE Cluster kurulumunun önceden doğru ş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/vmdata

tank/secure şifreliyse, vmdata otomatik olarak şifreli olur. Ek ayar yapmamıza gerek kalmaz.

ZFS Dataset’in Proxmox’a Entegrasyonu

Şimdi tekrar arayüze dönelim.

DatacenterStorageAddZFS

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.

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

RAIDZ2 ve Havuzun Çalışma Sürekliliği

RAIDZ2 yapılandırması, bir disk arızasında havuzun DEGRADED duruma düşmesini sağlar ancak çalışmayı durdurmaz. Bu senaryoda veri kaybı oluşmaz.

Disk tekrar sisteme takıldığında ZFS, herhangi bir manuel müdahaleye gerek kalmadan resilver sürecini otomatik olarak başlatır. Bu süreçte eksik bloklar sağlam diskler üzerinden yeniden oluşturulur.

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