ZFS Disk Hiyerarşisi
ZFS Disk Hiyerarşisinde Temel İşlemler
Verilerinizi depolamak için bir depolama havuzu oluşturduktan sonra, dosya sistemi hiyerarşinizi oluşturabilirsiniz. Hiyerarşiler, bilgiyi organize etmek için basit ama güçlü mekanizmalardır. Bir dosya sistemi kullanmış olanlara da çok aşinadırlar.
Aslında ZFS geleneksel disk yönetim sistemi kullananlar için biraz karmaşık bir yapıya sahip. Ancak basitleştirmek gerekirse ZFS, dosya sistemlerinin, her dosya sisteminin yalnızca tek bir ana öğeye sahip olduğu hiyerarşiler halinde düzenlenmesine izin verir. Hiyerarşi aslında UNIX kök dosya yapısına benzemektedir. Hiyerarşinin kökü her zaman havuz adıdır. ZFS, özellik mirasını destekleyerek bu hiyerarşiden yararlanır, böylece ortak özellikler, tüm dosya sistemleri ağaçlarında hızlı ve kolay bir şekilde ayarlanabilir.
ZFS, dosya sistemlerinde hiyerarşiler geleneksel disk yönetim sistemlerinden biraz daha farklı işler. İlk olarak, depolama için LVM yaklaşımı oluşturmaya gerek yoktur.Başka bir yığın yapısına gerek duyulmaz.
Hiyerarşiler, dosya sisteminde bir veri kümesi oluşturarak yapılır. Varsayılan olarak, bu veri kümesinin tüm depolama havuzuna tam erişimi olacaktır. Depolama havuzumuz daha önce de belirtildiği gibi 5 TB büyüklüğünde ise, ilk veri setimiz havuzdaki 5 TB'nin tamamına erişebilecektir. İkinci bir veri kümesi oluşturursam, bu da havuzdaki 5 TB'nin tamamına tam erişime sahip olacaktır. Sonuç olarak hepsi aynı havuzdan beslense bile bütün bir havuzu aynı anda bağlamaya gerek kalmadan parça parça havuz verilerine erişebiliriz ve bu erişimi sağlarken her bir veri kümesi diğer bir veri kümesini manüple etmeden bunu başarabiliriz. Her veri kümesi, havuz dolana kadar havuza dosya yerleştirmeye izin verecektir. Bir diğer yandan, veri kümelerine kota koyulabilir, boyutları sınırlandırılabilir veya daha sonra dışa aktarabilirsiniz.
ZFS Dosya Sistemi Hiyerarşini Belirleme
ZFS dosya sistemleri, merkezi yönetim noktasıdır. Hafiftirler ve kolayca oluşturulabilirler. Kullanılacak iyi bir model, kullanıcı veya proje başına bir dosya sistemi oluşturmaktır, çünkü bu model özelliklerin, anlık görüntülerin ve yedeklemelerin kullanıcı başına veya proje bazında kontrol edilmesine izin verir.
ZFS, dosya sistemlerinin hiyerarşiler halinde düzenlenmesine izin verir, böylece benzer dosya sistemleri gruplanabilir. Bu model, özellikleri kontrol etmek ve dosya sistemlerini yönetmek için merkezi bir yönetim noktası sağlar. Benzer dosya sistemleri ortak bir isim altında oluşturulmalıdır.
Çoğu dosya sistemi özelliği, özellikler tarafından kontrol edilir. Bu özellikler, dosya sistemlerinin nereye monte edileceği, nasıl paylaşılacağı, sıkıştırma kullanıp kullanmadıkları ve herhangi bir kotanın geçerli olup olmadığı gibi çeşitli davranışları kontrol eder.
ZFS Dosya Sistemleri, NFS kullanılarak paylaşılabilir ve sıkıştırma etkinleştirilebilir. Ek olarak, kullanıcı veya projeler için için kotalar uygulanabilir.
ZFS dosya sistemi komutları, zfs
komutu ile yönetilir.
ZFS Dosya Sistemi Hiyerarşi Oluşturma
ZFS'de dosya sistemi zfs create
komutu ile oluşturulur. Parametre olarak da ZFS disk havuzunu ve disk yolunu belirtmeniz yeterlidir.
~# zfs create tank/home
Oluşturulan dosya sistemi otomatik olarak kök dizinde yer alan havuzumuzun bağlandığı klasör altına bağlanır (yine siz aksini belirtmedikçe).
Ayrıca ZFS'de recursive olarak dosya hiyerarşisi oluşturabiliriz.
~# zfs create tank/home/zaryob
~# zfs create tank/home/sulo
ZFS Dosya Sistemi Hiyerarşilerini Görüntülemek
ZFS'de zfs list
komutu ile dosya sisteminin detaylarını görüntülemek için kullanılır.
~# zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank 100.0K 67.0G 19K /tank
tank/home 18.0K 67.0G 6K /tank/zfs
ZFS Dosya Sistemi Hiyerarşilerini Bağlamak
Hiyerarşileri oluştururken, varsayılan olarak dışa aktarılabilir blok aygıtları oluşturmadığınızı anlamak önemlidir. Çünkü dışa aktarılabilir blok aygıtları, doğrudan kök sistemine bağlanabilmeyi engeller. Ayrıca, hiyerarişlerin yeniden başlatmalarda bağlanma noktasının kalıcılığını sağlamak için /etc/fstab
dosyanıza ekleneme yapmanıza gerek yoktur.
Öyleyse, /etc/fstab
dosyasına eklemeye gerek yoksa, dosya sistemleri nasıl bağlanır? ZFS hiyerarşileri bütün bu bağlama noktalarını kendi içerisinde tutar ve başlatma esnasında ZFS servisinin çalıştırılması ve havuzun tespit edilmesinden itibaren otomatik olarak bağlanır. Gerekirse havuzu içe aktardıktan sonra "zfs mount
" komutunu çalıştırmak ZFS dosya hiyerarşisini bağlayabilirsiniz. Benzer şekilde, hiyerarşileri ayırmak için bir "zfs unmount
" komutunu kullanabilir veya standart "umount
" yardımcı programını kullanabilirsiniz:
ZFS Dosya Sistemi Hiyerarşinin Özelliklerini Belirtmek
ZFS'de zfs set
komutu ile dosya sisteminin özelliklerini belirlemek için kullanılır. Aslında özellikleri tek tek açıklamak çok uzun sürecektir çünkü pek çok özellik var ve hepsini zfs set --help
komutu ile görebilirsiniz.
Bir diğer yandan temel bazı özellikleri değiştirelim.
~# zfs set mountpoint=/mnt/zfs/home tank/home
mountpoint
parametresi belirttiğimiz dosya sisteminin belirttiğimiz klasöre bağlanmasını sağlar. Bu örnek için tank/home
dosya sistemi /mnt/zfs
yoluna bağlanacaktır.
~# zfs set sharenfs=on tank/home
sharenfs
parametresi belirtilen dosya sistemini NFS üzerinden paylaşılmasını sağlar.
~# zfs set compression=on tank/home
compression
parametresi ise dosya sistemini sıkıştırarak kaydetmeyi sağlar.
~# zfs set quota=10G tank/home
quota
parametresi ise dosya sistemine bir sanal bir kota verir. Bu sayede dosya sistemini limitleyebiliriz.
Bütün bu özellikleri ise zfs get
komutu ile öğrenebiliriz.
~# zfs get compression tank/home
NAME PROPERTY VALUE SOURCE
tank/home compression on local
ZFS Dosya Sistemi Hiyerarşi Yeniden Adlandırma
Bir ZFS dosya sistemini yeniden adlandırmak için zfs rename
komutu kullanılır.
~# zfs rename tank/home/zaryob tank/home/zaryob_old
Bu bir hiyerarşiyi başka bir dizine taşımayı da sağlar.
~# zfs rename tank/home/zaryob tank/zaryob/
ZFS Dosya Sistemi Hiyerarşi Yok Etme
Bir ZFS dosya sistemini yok etmek için zfs destroy
komutu kullanılır. İmha edilen dosya sistemi otomatik olarak ayrılır ve paylaştırılmaz.
~# zfs destroy tank/home
İmha edilecek dosya sistemi meşgulse ve bağlantısı kesilemezse, zfs destroy
komutu başarısız olur. Aktif bir dosya sistemini yok etmek için -f
seçeneğini kullanın. Etkin dosya sistemlerini kaldırabileceği, paylaşımını kaldırabileceği ve yok ederek beklenmedik uygulama davranışına neden olabileceği için bu seçeneği dikkatli kullanın.
~# zfs destroy -f tank/home
Eğer ki tank/home
dosya sistemi alt başka sistemlere de sahipse bu durumda -R
parametresi gerekmektedir.
~# zfs destroy -R tank/home