İçeriğe geçmek için "Enter"a basın

Debian Bullseye ZFS Dosya Sistemi Kurulumu

Son güncelleme tarihi 10 Nisan 2022

Bir önceki yazımda, dosya sistemi nedir, ZFS dosya sistemi nedir, RAID nedir, ZFS ile RAID çeşitleri nelerdir, ZFS özellikleri nelerdir kısaca değinmiştim, installer ile sistemi kurma, kullanma üzerine de yazılar hazırlayacağımı belirterek yazıyı bitirmiştim, bu yazı işte o yazıların ilki.

Sanallaştırma sistemi üzerine ( QEMU/KVM ), ihtiyaca göre VM hazırlamaya yönelik giriş seviye bir dökümanı da bu yazıda bulabilirsiniz, daha detaylı şekilde Sanallaştırma sistemleri nedir? ne yapar incelediğim yazıları da buradan takip edebilirsiniz, yazı yoksa merak etmeyin yakında eklenecektir, takipte kalın.

Ağırlıklı olarak ZFS ile RAID uygulamalarını tanıtmaya uğraştığım yazıyı aşağıdaki linkten okuyabilirsiniz.

Önceki yazımda tanıttığım installer script bu yazımızın ana konusu dedik, kısaca özetlemek gerekirse,

Yapacağımız şey sistemi Live DVD ile açıp ssh erişimi kurup çoğunlukla Enter, Enter yapıp ZFS kök dosya sistemine sahip Debian Bullseye sistemimizi kurmak.

Yazı İçeriği

Kullandığım Test Ortamı ve Uygulamalar

  • Debian Bullseye GNU/Linux Host İşletim Sistemi
  • DELL Precision M4800 Workstation Notebook, e-sata ile birlikte 4 adet fiziki SSD disk.
  • QEMU/KVM Sanallaştırma altyapısı, Virt Manager GUI. (UEFI destekli sistemlerde aynı işlemler benzer şekilde yapılabilir, VirtualBox veya, VMWare veya abisi ESXi farketmez.)
  • VM (Sanal Makine)
    • SCSI controller,
    • 4 adet SCSI olarak ekli sanal disk
    • 4 core CPU paylaşımı
    • 4 GB ram paylaşımı
    • UEFI boot aktive edilmiş (EFI kullanımı tavsiye edilmediğinden yalnızca UEFI kurulumu yaptım, aynını tavsiye ederim.)
    • 1 adet SATA olarak ekli CD Sürücü (Live ISO için kurulum sonrası kaldırılabilir)
  • Debian Bullseye Live DVD
  • bash, debootstrap, ssh, scp, … bolca shell
  • Doğal olarak hazırladığım installer.sh script.

Ön Hazırlık

Debian Bullseye Live DVD edinme

https://cdimage.debian.org/mirror/cdimage/release/current-live/amd64/

Yukarıdaki adrese girildiğinde güncel download edilebilir live ISO CD/DVD imajlarına erişiliyor. Ben KDE masaüstü ortamına sahip olanı indirdim ancak hangisini indirdiğiniz önemli değil, işlemleri konsol üzerinden yapacağımızdan GUI tercihinize bağlı.

Live DVD

installer.sh edinme

https://gist.github.com/unique1984/fabcead63e0ff999a158a6e360f70220

Bu link üzerinden scripte erişebilirsiniz, ara sıra karşılaştığım veya bildirilen hatalar için eklemeler yapabilirim, güncel kalın.

# wget ile
yasin@uxn-workstation:~$ wget -q https://gist.githubusercontent.com/unique1984/fabcead63e0ff999a158a6e360f70220/raw/e374a5d1f22ccaa3552b614ef8a692c28dd26ab8/installer.sh

# Veya git kullanarak
yasin@uxn-workstation:~$ git clone https://gist.github.com/unique1984/fabcead63e0ff999a158a6e360f70220 zfs-installer

# çalıştırılabilir yapalım
yasin@uxn-workstation:~$ chmod +x installer.sh

VM Hazırlama İşlemi

Burada VM üzerinden işlemleri anlatıyorum ancak Live DVD imajı bir usb diske yazıp, internete bağlı fiziksel bir sistemi kullanarak ta aynı sonucu elde edersiniz. Test ettiğim için rahatlıkla söyleyebiliyorum.

Başlangıçta da söylediğim gibi Virtual Manager kullanarak işlem adımlarını anlatacağım, hangi sanallaştırma sistemini kullanıyorsanız ona göre adımları uyarlayın.

VM Eklemek.
İşletim Sistemi Sürümünü Belirlemek
İşlemci ve Bellek Miktarlarını Ayarlamak
Depolama Alanı Belirlemek

Başlangıçta depolama alanı belirlemeyişimin sebebi varsayılan olarak SCSI disk ataması gerçekleştirilmeyişi ve kurulum senaryom 4 disk ile RAID10 şeklinde.

Sistem İsmi ve Kurulum Öncesi Yapılandırma Onayı

Dikkat! Sistem kurulumuna başlamadan önce VM yapılandırması, UEFI ve disk yapılandırmamız için gerekli adımlar.

UEFI desteğini açmak
SCSI controller eklemek
Disk Eklemeden Önce Depolama Yöneticisine Erişmek
Depolama Yöneticisi İle Diskleri Oluşturmak.

Mavi kutu içerisine aldığım her bir alan sistemime bağlı olan fiziki SSD disklerin içerisindeki klasörler, her birinde 1 adet qcow2 disk imajı oluşturdum.

Dikkat! Kendi sisteminizde aşırı bir yavaşlık yaşamak istemiyorsanız eğer 4 sanal diski aynı fiziksel disk üzerinde oluşturmayın (nvme2 diski olanlar görmezden gelebilir) Disk konusunda sıkıntılı bir bilgisayar üzerinde uygulama yapıyorsanız yalnızca stripe/single yapılandırmasını test etmeniz tavsiyemdir.

Sanal Diski VM üzerine eklemek.

Bu işlemi her disk için tekrarladıktan sonra başlamaya yakınız.

CD Rom Sürücü ve Live DVD imajını Eklemek
VM Sistemimizin son halini görebiliyoruz, Boot Yapılandırması sonrasında başlayabiliriz.
Kuruluma Başla (Begin Installation) Butonuna Basarak Sistemimizi Açıyoruz.

Herhangi bir hata ile karşılaşmadıysanız Live sistem açılmış olmalı, başlat menüsüne basın, konsole yazın ve uygulamayı çalıştırıp terminal ekranına geçin.

Live Sistem için kullanıcı adı ve parola bilgileri.

user: user
pass: live

Paket Yöneticisi Güncelleme apt update

Live DVD içerisinde apt cache temizlenmiş şekilde geldiğinden bir defa olsun güncelleme işlemini yapmamız gerekiyor, upgrade işlemine gerek yok, yalnızca paket listesini güncellemek yeterli.

Varsayılan klavye en_US olduğundan öncelikle klavye türümüzü tr yaparsak karakter sorunu yaşamayız.

Güncelleme işleminden sonra eğer sisteme uzak erişim sağlayacaksak openssh-server paketini kuruyoruz, VM içerisinden işlemlerimizi yapacaksak kurulmasa da olur, iki koşulu da anlatacağım.

# Terminalimizin Türkçe karaktere göre çalışmasını sağlayalım
user@debian:~$ setxkbmap tr

user@debian:~$ sudo apt update

user@debian:~$ sudo apt install openssh-server

ssh server kurulduktan sonra root olarak erişim sağlayabilmemiz için 3 adım atmalıyız.

  1. /etc/ssh/sshd_config içerisinde:

    #PermitRootLogin prohibit-password
    PermitRootLogin yes

    olarak değiştiriyoruz ve;
    sudo systemctl restart sshd
    komutu ile ssh server yeniden başlatıyoruz.
  2. echo “root:live” | chpasswd
    komutu ile root kullanıcımıza live parolamızı atıyoruz.
  3. ip addr komutu ile ip adresimizi öğreniyoruz,

Bu adımlardan sonra artık uzak bir sistemden ssh ile root konsoluna giriş yapabiliriz.

ssh kullanarak installer.sh scriptini Live sisteme yüklemek.

yasin@uxn-workstation:~$ scp installer.sh root@192.168.122.231:/root

Live Sistem içerisinden installer.sh dosyasını edinmek

root@debian:~# wget -q https://gist.githubusercontent.com/unique1984/fabcead63e0ff999a158a6e360f70220/raw/e374a5d1f22ccaa3552b614ef8a692c28dd26ab8/installer.sh

root@debian:~# chmod +x installer.sh

Sistemimiz ve kurulum scriptimiz hazır durumda, buradan sonra genel olarak Enter ve arada bir istenen bilgileri girerek sistem kurulumu gerçekleştireceğiz.

Kurulum İşlemi

root@debian:~# ./installer

Yukarıdaki komut ile kurulum başlayacaktır.

Dikkat! Fiziksel bir sistemde bu işlemi yapıyorsanız kullandığınız disklerin üzerinde kaybedeceğiniz bir veri varsa yedeğini alın. Sorumluluk her zaman size ait.

Bu ekranı gördükten sonra kurulum başlamış demektir, Enter

Buradan sonra alıntı yapacağım ekran görüntüleri genel olarak işimize yarayan ve açıklama getirmek istediklerim üzerine olacak, burada açıklamadığım, yer almayan bir ekran görüntüsü ile karşılaşırsanız, Enter

İlk olarak Live Sistem ile kurulum işlemi yapabilmemiz için ihtiyaç olan uygulamalar kuruluyor.
ZFS dosya sistemi ile işlem yapabilmemiz için kurulan paketler lisans uyumsuzluğundan bahsediyor, GPL2 ve CDDL arasındaki bu uyumsuzluk bizi bağlamadığından Enter

Kurulacak olan sistemdeki boot pool ve root pool için isim belirtebileceğimiz bir ekranımız var, varsayılan isimler bpool ve rpool varsayılanı kullanmak için Enter

Eğer sistemde aynı isimde pool tespit edilirse script yeni isim vermelisin diye bizi uyarabiliyor.

Sistem diskimizi seçelim, bu adımda sonraki adımlarda kullanılacak diskler ile çakışma yaşanmasın diye sistem diskimizi belirtiyoruz, eğer Live bir sistemde değil, fiziksel bir sistemde kurulum yapıyorsak sistemin kurulu olduğu diski belirtmeliyiz. Merak etmeyin hangi disklere kurulum yapılacağını manuel de seçebiliyoruz.
RAID yapılandırma türünü seçelim, bu ekranda 9 adet seçeneğimiz var ben mirror olanı kullanacağım. Her bir seçenekte kaç adet disk ve array kullanılacaksa ona göre yönlendirmeler mevcut.

Bu ekranlarda iki adet değişkenimiz var, n ve X

n değişkeni eğer sistemde ekleyebileceğimiz fazladan disk varsa bize bildiriyor ve istersek ekleyebileceğimizi belirtiyor.

X değişkeni eğer RAID türü seçiminde 5 – 8 arasında seçim yaptıysak ve elimizde fazladan array oluşturabilecek kadar disk varsa ekleyebilmemiz için seçenekler sunuyor.

Sistemimizde zaten 4 adet disk vardı, mirror+stripe (RAID 10) yapılandırma kullanıyoruz, yani Enter

Disklerimiz fiziksel sistemleri de düşünerek controller üzerinde hangi noda bağlıysa o sıralamaya göre bize gösteriliyor.

Bu adımdan sonra sırasıyla, zfs labelclear, wipefs, sgdisk uygulamaları çalıştırılarak seçilen disk yüzeyleri temizlenip kuruluma hazır partition yapısı oluşturuluyor.

Partition yapımızda mirror 2 adet boot bölümü içeren 2 adet stripe eklenecek 4 disk var. Son bölümlenmiş hali aşağıdaki gibi.

İlave not düşmek gerekirse, sda, sdb, sdX gibi isimleri sadece bize kolaylık olsun diye kurulum scriptinde giriş için kullandım, arkaplanda PARTUUID gibi değişmez bir değer ile pool oluşturulmakta, yani sistemdeki disklerin bağlı bulunduğu socket/slot değişse bile uefi boot ekliyse veya düzenlendiyse çalışmaya devam edecektir…

Dikkat! sdX aygıt isimleri değişkendir ve her sistem açılışında farklı bir diski işaret edebilir.

Enter

Boot Pool ve Root Pool oluşturma işlemleri Enter

Buraya kadar olan işlemlerde önemli olanları ekran görüntüsü ile aktardım, uyarıları takip edin derim, yazdığım programlar genellikle kendisini nasıl kullandıracağını bilir.

Buradan itibaren yapılan işlemler chroot olarak kurulumu yapılan sistem içerisinde gerçekleşecek.

dpkg-reconfigure işleminde en_US.UTF-8, tr_TR ISO8859-9, tr_TR.UTF-8 benim eklediklerim, hangisini kullanayım diye sorduğunda en_US.UTF-8 seçerseniz sıkıntı yaşatmaz, zaman dilimi olarak Europe/Istanbul, klavye yapılandırmasında da Türkçe.

Bu adımdan sonra kernel image ve kernel headers ve zfs-dkms yapılandırması var işlem süresi internet hızınız ve makinenin kuvvetine göre değişkenlik gösterecektir.

Dikkat! Eğer işaretli alanda zfs yazısını görmüyorsanız bir sıkıntı vardır, zfs modulü kernelde çalışmıyordur, manuel kontrol edin, modprobe zfs komutunu girin ve modinfo zfs komutunun çıktısına bakın, hiç başıma gelmedi ama bilmek gerek, halen daha çözüm yoksa devam etmenizin bir manası yok! Ctrl + C ardından yeniden başlayın.

mkfs.fat ile EFI boot part oluşturuluyor, /boot/efi dizini hazırlanıyor ve mount ediliyor ki grub install yapılabilsin, /etc/fstab içerisine gerekli satır ekleniyor ki sistem açılışında boot disk sistemde gözüksün, /etc/grub/default düzenlenip grub install işlemi de tamamlandığında bootable disk hazır…

Chroot ZFS list caches kısmına geldiğinizde cache oluşumunu beklemek gerekiyor, burada bpool ve rpool için sırasıyla watch komutunu kullanarak ekrana bas şeklinde bir kilit koydum, bende yaklaşık 30sn sürdü değişikliklerin görünmesi, ekranda değişiklik gördüğünüzde Ctrl + C ile (YALNIZCA 1 DEFA) kuruluma devam edebilirsiniz. 2 defa Ctrl + C yapacak olursanız kuruluma sil baştan başlarsınız.

Sistemi yeniden başlattığımızda kullanılması için after-reboot.sh script tarafından otomatik olarak oluşturulmakta. Bu script eğer sistemde mirror konumda birden fazla disk varsa clonlama işinden de sorumlu, bu sebepten sistem ilk açıldıktan sonra mutlaka çalıştırın.

O kadar da önemsenecek bir uyarı değil şu aşamada.

Sistemi yeniden başlata bilirsiniz ancak ben poweroff komutu ile kapatacağım için n diyerek yoluma devam ettim. CD Rom sürücüyü sileceğim.

Ardından VM yeniden açılış yapabiliriz.

!!! Kurulum tamamlandıktan sonra !!! Kurulum UEFI boot ile hazırlandığından ilk açılışta muhtemelen UEFI interactive shell ekranına düşeceksiniz, paniklemeye gerek yok boot kaydı eklemek yeterli olacaktır. Ekranlar genel olarak benzer özelliklere sahip

Virt Manager ile sanal makine hazırlarken UEFI aktive etmelisiniz, Yukarıdaki ekrana düştüğünüzde;

FS0:	# ENTER
CD EFI\debian	# ENTER
shimx64.efi		# ENTER

Yazmanız yeterli, ardından System setup satırından BIOS ekranına geçip UEFI Add Boot menüsünü bulup bu dosyayı açılış kaydı olarak ekliyoruz ki VM açıldığında birdaha nereden açılış yapacağını bilsin.

EFI > debian klasörlerini seçtikten sonra:

Input the description satırında Enter > sistem ismini gir,

Son olarak Commit Changes > Esc > F10 > Y > Esc > Reset adımlarını izleyerek sistemi yeniden başlatacaksınız!

Sistem yeniden açıldığında UEFI boot ekranı ile karşılaşmadıysanız bile initramfs satırına düşeceksiniz 🙂 ZFS dosya sistemi önceki açılışında başka bir makinedeyse bu satıra düşüyor ve kendisini import etmenizi istiyormuş…

Gördüğünüz ekran buna benzerse sorun yok demektir.

zpool import -f rpool
Ctrl + D

Bu iki komutu vermeniz yeterli. Hayırlı olsun.

after-reboot.sh

Sisteme yeni kullanıcı ekleyelim

tasksel otomatik olarak başlatılıyor, en sevdiğiniz masaüstü uygulaması ve araçlarınızı seçip kurulumu bitirebilirsiniz. Buradan sonrası aslında standart kurulum işlemi, hızlı olsun diye XFCE seçip devam ettim.

ZFS + Debian Bullseye + XFCE

Sonuç olarak bir sayfalık bir dökümanın aslında uygulamaya dökülmek istenildiğinde nekadar uğraştırabildiğine bizzat şahit olduk.

Bir sonraki yazım ise tümüyle hazırladığımız bu sistemin kullanımı ve ZFS dosya sisteminin gücünü tanıtmaya dayalı olacak.

Allah’a emanet olun, şu mübarek günlerde duanıza muhtacım.

2 Yorum

Yorumlar kapatıldı ancak, geri izlemeler ve pingback'ler açık.