Sanallaştırma Teknolojileri

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

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/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ı, 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/vmdata

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

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

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir