fbpx
Anasayfa » Solaris Zfs Pool – Volume Oluşturma ISCSI ile Windows Disk Atama

Makaleyi Paylaş

Oracle

Solaris Zfs Pool – Volume Oluşturma ISCSI ile Windows Disk Atama

Konumuz ZFS’de pool yaratmak, istenilen özellikler ile set etmek ve iscsi lunu pool altında oluşturarak windows bir client’a bağlamak. Kısaca zfs’den bahsedeyim, Oracle Sun’ın geliştirdiği ZFS dosya sistemi mimarisi birçok kullanışlı özelliğe sahiptir. Örnek vermemiz gerekirse yüksek kapasiteli storagelar için management, snapshotlar, cow yani copy on write clone lari, sürekli integrity check, raidz, raidz2, nfs4 acl desteği, iscsi desteği, dinamik striping gibi birçok özelliğin yanında, açık kaynak bir lisans modeli ile çok tercih edilen bir dosya sistemidir. Bir zfs pool’unun maximum storage boyutu 256 Zetta Byte’tır.

Bu arada opensolaris projesinin bittiğini de göz önünde bulunduralım. Fakat ben bu durumun zfs’e etkisinin oracle sun tarafından minimum’a indirgeneceği düşüncesindeyim. Bence solaris 11 ile ZFS artık primary filesystem olacaktır kanaatindeyim. Ayrıca Ben Rockwood’un son blog postunda gördüğüm kadarı ile solaris 11 in nasıl şekilleneceğini belirtiliyor.

İlgilenen arkadaşlar için; “http://www.cuddletech.com/blog/”

Öncelikle test sistemimizi inceleyelim, solaris 10 default install ile gelen zfs filesystem sürüm 4 ve zpool sürüm 15 ile çalışıyoruz.

Sponsor

image001

image002

image003

Şuan ki son zpool dev relase sürümü 24 dür (Nevada build 137). Daha ileriki sürümler ile çok kullanışlı ve daha fazla özelliklerde zfs’e dâhil edilecektir diye düşünüyorum.  Deduplication gibi, zero byte compression gibi özellikler dev relese’de çalışmaktadır. Fakat halen production için stable hali ile release edilmemiştir. (Bir storage ürünü şuanda Osolaris nevada build 134 ile Deduplication özelliği kullanarak çalışmaktadır.)Şimdi teknik kısma başlayalım. Elimizde şuanda birçok fiziksel disk olmadığından dosyalar yaratacağız ve bunları, fiziksel disk gibi kullanacağız.  Bunun için “mkfile” komutunu kullanarak 15 disk gibi 15 file yaratıyoruz.

image004

Öncelikle; ilk 6 diskimiz ile bir pool oluşturalım. Poolumuz ilk 6 file’ı kullanıyor, raidz2 özelliği ile oluşturuyoruz.

image005

6 tane 100 mb tan bize 350 mb kullanılır alan veriyor raidz2 ile. Şimdi raidz2 setli poolumuza, 2 adet spare disk ekliyoruz ve poolun son durumuna bakıyoruz.

Not: Burada disk6’yı atladım disk6 ne olur ne olmaz diye kenarda duruyor logging(ZIL) | caching ya da 3’üncü spare için kullanılabilir

image006

win_vol isimli poolumuz 6 disk 2 spare ve raidz2 ile hazır durumdadır. Eğer sonradan storage yetersizliği olurda disk eklemek istersek. İlk bölümü 6 adet disk ile oluşturduğumuzdan takip eden eklemelerde 6 şar disk ile oluşturulmalıdır. ZFS Administration guide’da belirttiği gibi bölümler 8 diskten fazla olmamalıdır. Aksi halde performans sıkıntılarına yol açmaktadır. Şimdi diğer kalan 6 diskide Pool’u genişletmek için ekleyelim.

image007

Gördüğünüz gibi pool’umuz 730mb’a çıkmış durumda aynı zamanda artık poolumuz 12 disk ve 2 spare den oluşmaktadır.

image008

Şimdi iscsi lun için kullanacağımız volume’ü yaratalım. win_vol poolu altında 700mb lık bir volume oluşturuyoruz.

image009

Şimdi yeni yarattığımız bu volume’ü shareiscsi on konumuna getirelim ve iscsi target olarak set edildiğini kontrol edelim.

image010

Target imiz hazır, şimdi Windows sunucumuzdan iqn adresini alıp initiatorımızı tolga_win adı ile oluşturalım.

image011

image012

Auth için birşey vermedik. Eğer istenirse chap bazli auth configlenebilir. Şimdi windows tarafından, alanımızı alalım. Windows tarafında iscsi initiator’da discovery kısmına sun sunucumuzun ip adresini ekledik. Daha sonrada targets kısmında logon iqn ile connect(log on) olduk.

Sonrada / disk alanına gidip yeni volume’ümüzü ntfs dosya sistemi ile formatlayarak kullanıma hazırlayalım.

image013

Volume hazır. Şimdi bazı dosyalar kopyalayalım ve silelim. Not: işlemler ağır olacaktır. Disk yerine file kullandık bunu da raidz2 ile yaptığımızdan siz fiziksel disk kullanırsanız. Son derece hızlı şekilde çalışacaktır.

image014

Şimdi zfs tarafına bakalım.

image015

Şuanda sorunsuz çalışıyor. Bu yapıda bir tek sorun var. Onu’da şöyle açıklıyım.

Zfs “ntfs” dosya sistemin yapısını tam algılayamadığından, dosyaları sildiğinizde bunları hesaplayıp total kullanılabilir alana eklemez ya da kullanılan alandan çıkarmaz. Dolayısı ile yukarıda görüldüğü gibi, 4 dosya olan volume’den 3 ünü silsek dahi Windows tarafı doğru rakamları gösterirken zfs tarafı halen 110m dolu gibi gösterecektir.

İleriki sürümlerde, Bu problemi “zero byte compression” ile aşıyoruz. Volume üstünde zero byte compression aktif edildikten kısa bir süre sonra ya da ilk volume oluştururken aktive etti iseniz. Bu sorun ile artık karşılaşmıyorsunuz. 

Not: Daha ileriki sürümler stable release edilene dek, iscsi volume oluşturacağınız pool altında birden fazla volume oluşturmayın, böylece pool dolarsa diğer volume’ün işleyişine etki etmezsiniz.

Şuan ki sürüm ve durum itibari ile de bu durumu düzeltmenin 2 yolu var.

1.      Zfs tarafından Compression’ı açıp. Windows tarafından volume’e defrag yapmak.

2.      Zfs tarafından compression’ı açıp. Windows tarafından sdelete kullanmak.

#    zfs set compression=on win_vol/iscsi

#    sdelete –z (ya da –c) sürücü adı:

image016

Info Kaynak: wikpedia- “http://en.wikipedia.org/wiki/ZFS”

Teknik Kaynak: ZFS Administration Guide – “http://docs.sun.com/app/docs/doc/819-5461”

Zfs – Ntfs sorular&cevapları: irc openprojects / developers /  #zfs  “irc.openprojects.net/zfs”

Makaleyi Paylaş

Cevap bırakın