• Okuduklarımdan, seyrettiklerimden aldığım notlar, izlenimler, incelemeler…

FreeNAS Yazılımı (1/2)

Önceki yazımda “Kendin-Yap NAS Projesi”nin donanım özelliklerini aktarmıştım. Şimdi iki bölüm halinde FreeNAS yazılımından bahsedeceğim. Bu ilk bölüm (1/2), giriş, FreeNAS özelliklerin tanıtılması ve bazı pratik bilgiler içeriyor. İkinci bölümde (2/2) ise özellikleri ekran kopyaları üzerinden örneklendireceğim. ZFS dosya sisteminden ise ayrı bir blog yazısında bahsediyorum.

Giriş

Müzik arşivimi bir süredir, dinleme amaçlı kullandığım bilgisayarın ve odanın dışındaki, Ubuntu Server yüklü bir bilgisayardan tutuyordum. 2016 Ocak ayı başından itibaren müzik arşivimi, kendi oluşturduğum, FreeNAS yazılımına dayalı bir depolama çözümüne taşıdım.  Bütün bunların sebepleri var:

  1. Yaptığım dinleme testlerinden sonra, müzik dinlediğim (USB ile DAC’a bağlı) bilgisayar içindeki mekanik hard disklerin; (a) kasa içinde elektronik kirlilik yaratarak ses kalitesini olumsuz etkilediğini – SSD bu açıdan çok daha iyi ama fiyat/kapasite oranı yüksek – (b) disklerin fiziksel gürültüsü nedeni ile kritik dinleme zamanlarında dinleme deneyimimi olumsuz etkilediğini düşünmeye başladım. Hızlı çözüm olarak, elimdeki eski bir bilgisayara Ubuntu Server yükleyerek bir dosya sunucu oluşturdum. Bu server başka bir odada durdu, Gigabit Ethernet ile müzik bilgisayarıma bağlandı. Neden Ubuntu Server? Çünkü, kullanmayacağım özellikler için bir işletim sistemine lisans ücreti ödemeden, basit açık kaynak kodlu bir çözümü tercih ettim. Örneğin, Ubuntu Server sisteminin – grafiksel kullanıcı arayüzü bir yana – bir ekranı ve klavyesi bile olmadı. Düğmeye basınca açılır, tekrar basınca kapanırdı. Müzik çalma bilgisayarı müzik dosyalarını bu sunucu üzerinden okurdu.
  2. Donanım tarafında kullandığım eski bilgisayar; (a) planladığım disk kapasitesini desteklemiyordu, (b) kullandığım eski bilgisayar 7×24 çalışmaya uygun sunucu niteliklerine ve hata düzeltme özelliklerine sahip değildi. Önceki yazımda NAS donanım bileşenlerini inceleyebilirsiniz.
  3. Yazılım tarafında “daha iyi” bir dosya sistemi araştırması başladı ve ZFS tabanlı FreeNAS işletim sisteminde karar kıldım. Neden “daha iyi”? sorusunun yanıtı devam eden satırlarda ve sonraki ZFS yazısında.

Açık kaynak olduğu için, herkes FreeNAS yazılımını internetten indirip bir çözüm üretebilir. Bu işi biraz daha profesyonelce yapan, sunucu ve açık kaynaklı depolama yazılımları konusunda uzman firma iXsystems, FreeNAS yazılımını geliştirirken, bir yandan da, FreeNAS tabanlı ürünler üreterek satışını yapıyor, sertfikalı FreeNAS eğitimleri sunuyor. Bu bakımdan, FreeNAS, benzerleri içinde oldukça olgun sayılabilecek bir yazılım. Ama yine de çeşitli “bug”lar mevcut.

FreeNAS Özellikleri

FreeNAS, FreeBSD yazılımına dayalı ve ZFS dosya sistemini kullanıyor.

“Free” çünkü ücretsiz bir açık kaynak yazılımı. “NAS” (Network Attached Storage) çünkü iletişim ağına bağlı veri depolama odaklı bir işletim sistemi. FreeNAS projesi 2005 yılında, veri depolamanın, ücretsiz ve lisans kısıtlamalarına maruz kalınmadan yapılabilmesi ilkesi ile başlamış. FreeNAS, halen geniş bir geliştirici ve destek kitlesine sahip. FreeNAS ile ilgili bilgi edinirken en dikkat çekici unsur “kendini onarabilen” bir sistem oluşu. Bunu şöyle açıklayabilirim. Verilerinizin ne kadar yedeğini tutarsanız tutun, yedekleme esnasında oluşabilecek bir yazma hatası kalıcı olabilmektedir. İşte, ZFS bu tür hataları keşfederek düzeltme özelliğine sahip. Bunu “yazma esnasında kopya” (CoW – Copy on Write) ve “anlık fotoğraf” (snapshot) gibi çeşitli özelliklerine borçlu. Aşağıda temel bazı FreeNAS özelliklerini özetledim (açıkçası bu bölümün çoğu FreeNAS web sitesinden alınma).


DataProtection_100x95Veri Koruma: ZFS işletim sisteminin temel tasarım kriteri tümden veri bütünlüğü sağlanmasıdır. ZFS’in bir parçası olan ve yazılım temelli bir RAID uygulaması olan RAID-Z, RAID-5 gibi “single parity” koruma sağlar. Geleneksel RAID sistemleri, düşük bir olasılık da olsa, yazma hatalarına maruz kalabilir. RAID-Z’de bu olasılık ortadan kaldırılmıştır. Ayrıca, RAID-Z2 ve RAID-Z3 ile çift ve üçlü parite koruma da sağlanmıştır. Yazılımsal olarak aynalama (mirror) seçeneği de mevcuttur. Dosya sisteminde, sağlama toplamları (checksum) alınarak baştan sona veri bütünlüğü sağlanır.Eğer bütünsellik ile ilgili bir hata bulunursa, parite (denklik) blokları kullanılarak bozuk veri düzeltilir. Hata düzeltme işlevinin düzenli olarak yapılabilmesi için web arayüzünden “Scrub” (fırçalamak, ovalamak, temizlemek, tasviye etmek) adı verilen otomatik görevler tanımlanabilir.


Encryption_100x95Şifreleme (Encryption): FreeNAS, ZFS volümleri üzerinde şifreleme sağlayan bir açık kaynak projesi. Veri hacimleri (volume) oluşturulurken endüstri standardı AES-XTS şifreleme seçeneği mevcut. Eğer kullanılan işlemci AES-NI özelliğini destekliyorsa donanımsal hızlandırma da mümkün. Şifrelenmiş veriler ancak ilgili şifre anahtarına sahip FreeNAS sistemleri tarafından okunabilir.  Böylece, bir disk emekliye ayrılacağı zaman içindeki veriyi silmek için ayrıca uğraşmanıza da gerek kalmıyor


FileSharing_100x95

Veri Paylaşımı: FreeNAS, SMB/CIFS (Windows), NFS (Unix), AFP (Apple), FTP, iSCSI (blok bazında) ve WebDAV gibi çeşitli iletişim ağı paylaşımlarını destekliyor. iSCSI ile VMware VAAI, Microsoft ODX, Microsoft Windows Server 2008 ve 2012 R2 Clustering de destekler.


Plugins

Eklentiler (Plug-ins): FreeNAS yazılımına sonradan eklenti (plug-in) olarak yeni özellikler ilave etmek mümkün. FreeNAS, eklenti sistemi, ilave yazılımları, ana işletim sistemi unsurlarından izole eder. Ancak, bu eklentiler, dosya sisteminin kullanıcı tarafından belirlenmiş bölümlerine erişebilir. Eklentilerin tümünü burada listelemek yerine (detayı burada) konu olarak özetleyelim: veri yedekleme, torrent istemcisi, HTPC yöneticisi, DLNA/UPnP-AV sunucusu, bulut uygulaması, medya sunucu, …


Replication_100x95

Uzak Kopya Oluşturma (Replication): “Yedekleme” diyemedim; Türkçe karşılık bulmak bazen zorlaşıyor. ZFS sisteminin anlık fotoğraf (snapshot) özelliği yerel bir yedeklemeden fazlasını sunuyor – uzak yedekler alınmasını da sağlıyor. Anlık fotoğrafların, uzak bir ZFS dosya sisteminde kopyasının oluşturulması, uzakta tam bir yedek oluşturulması anlamına gelmektedir. Ayrıca, anlık fotoğraflar ilaveler halinde (incremental) uzak sisteme gönderilerek, yedek hacminin düşük tutulmasını sağlar. Yerel sistemde, disk arızası gibi ciddi bir sorun oluştuğunda, uzak sistemdeki yedek anlık fotoğraflar sayesinde tüm verinin kurtarılması mümkün olabilmektedir.


Snapshots_100x95

Snapshots (Anlık Fotoğraflar): ZFS ile dosya sisteminin anlık fotoğraflarını herhangi bir zamanda çekmek ve saklamak mümkündür. Böylece, herhangi bir dosyanın, fotoğraf çekme anındaki durumuna sonradan geri dönmek mümkün. Web arayüzü üzerinden, anlık fotoğrafların çekilmesi periyodik bir görev olarak tanımlanabilir. Herhangi bir zamanda tüm dosya sistemi, en son fotoğrafın çekildiği duruma döndürülebilir. Doğal olarak “anlık fotoğraf çekimleri” diskler üzerinde yer kaplar. Web arayüzü yardımı ile bu kaplanan yer görülebilir, anlık fotoğrafın bir kopyası yedeklenebilir, silinebilir veya gerekiyorsa on “an”a geri dönülebilir.


WebInterface_100x95

Web Arayüzü: FreeNAS sisteminin tüm özelliklerini grafiksel bir web arayüzünden yönetmek mümkün. Sistemi ilk açtığınızda, konsol ekranından bir IP adresi verilir. Bu adrese, aynı IP ağındaki bir başka bilgisayardaki bir web tarayıcıdan eriştiğinizde karşınıza FreeNAS web arayüzü çıkar. Bu arayüzden erişilebilen bir kurulum sihirbazı birçok ayarı basitleştirir. Volüm’lerin yaratılması, paylaşım alanları için erişim haklarının tanımlanması, yazılım güncellemeleri, sistem alarmları gibi bir çok işleve bu web arayüzü yardımı ile erişmek mümkün. Web arayüzüne ilaveten sisteme bağlı ekran portundan erişilebilen SSH (Secure Shell) komut ortamından çok sayıda ileri düzey görev gerçekleştirek mümkün. Web arayüzünden de bir “Shell” penceresi açılabiliyor.


Bazı Pratik Öneriler

Şu an için FreeNAS deneyiminin çok başlarındayım. Ama, bazı konulara dikkat çekebilirim.

Yazılımın kurulumu – burada detayına girmeyeceğim – oldukça basit. İşletim sisteminin açılışı ana kart üzerindeki bir “USB header”a bağlı bir USB bellek üzerinden yapılması tavsiye ediliyor. Yani illa bir SSD veya HDD gerekmiyor.

FreeNAS bellek bakımından oldukça aç gözlü. Örneğin 9.3 sürümü için en az 8GB bellek tavsiye ediliyor. 16GB daha iyi.

Sistemin açılması “dakikalar” alıyor, sistem konsol ekranından yüzlerce satır geçiyor. Öyle, “işletim sistemini SSD’ye yükledim, sistem uçtu…” gibi bir durum söz konusu değil.

Windows bazlı bir PC’de kullanıdığım web arayüzü bazen “halen geliştirilmekte olan bir yazılım” hissini veriyor. Ufak tefek bazı “bug”larla karşılaşmak olası. O zaman mecburen “Shell” komutları ile tanışıyorsunuz 🙂 Veri kopyalama, yerini değiştirme, eşitleme vb işlevler için “shell” ortamından komut girmeyi mutlaka öğrenmeniz gerekiyor.

FreeNAS içinde çeşitli kavramlar önemli. Örneğin “Volume” bir disk topluluğundan oluşan veri hacmi anlamına geliyor. Söz konusu disk topluluğu kendi arasında “stripe” ve/veya “mirror” veya RAID-Z seviyeleri halinde ayarlanabiliyor. Bundan sonra “dataset”ler (veri toplulukları) oluşturmak durumundasınız. Dataset, paylaşım hakları ve paylaşımda kullanılan dosya sistemi bakımından birbirinden ayrılan grupları tanımlıyor. Dataset’ler, yukarıda bahsettiğim ortamlarda paylaşılabiliyor. Tabi paylaşım ile ilgili kullanıcı hesapları önceden tanımlanmalı.

Disklerin doluluğunun hiçbir zaman %80’lerın üzerine çıkmaması öneriliyor. Çünkü arta kalan bu alanda dosya sisteminin sağlıklı çalışması için gerekli bazı işlevler yürütülüyor. ZFS dosya sistemi, doluluk %90’a erişince “performans odaklı” çalışmadan, “depolama yeri optimizasyonu”na odaklı çalışmaya geçiyor. Bunun da performansa olumsuz etkisi olduğu belirtiliyor. Herhangi bir disk %100 doluluğa ulaştığında, örneğin bir Windows paylaşımından disklere erişemez, dolu diski boşaltmak için konsoldan copy, move gibi komutlar veremez hale gelebiliyorsunuz. Benim başıma geldi; bazı “snapshot” dosyalarını sildikten sonra dosya sistemin erişebildim ve temizlik yapabildim. Bunun için disklerin doluluk oranını sürekli gözetlemelisiniz. FreeNAS’ta bu tür durumlarda üretilen alarmları bir e-posta adresine gönderme işlevi de mevcut.

Daha önce de belirtmiştim; işe boş disklerle başlamak gerekiyor. ZFS’e göre formatlanması gerektiğinden eski diskleri olduğu gibi kullanamıyorsunuz.

Bir “volume” veya “dataset”ten diğerine doğrulamalı (verify özelliği ile) bir kopyalama işlemi yapmak istiyorsanız, doğrudan konsoldan “rysnc” komutu ile yapmak mantıklı. Örneğin Windows PC üzerinden “Total Commander” gibi bir yazılım ile de doğrulamalı kopya yapmak mümkün ama işlem Windows üzerinden geçtiği için çok daha fazla zaman alıyor.

Sonuçta, FreeNAS bir açık kaynak yazılımı olduğu için bazı bug’lar ile karşılaşabilirsiniz. Ancak, çok iyi bir FreeNAS destek topluluğu olduğu için biraz araştırma ile sorularınızın yanıtlarını bulmak mümkün.

FreeNAS kutumun (220v) güç kablosuna bir ölçüm cihaz bağladım. İki disk arasında veri kopyalarken işlemi ölçüm cihazında yaklaşık 0,290-0,335 Amper aralığında akım çekildiğini ve yaklaşık 60-70 Watt aralığında güç harcandığını görüyorum. Örneğin sistem şu anda boşta çalışırken 0,30A ve 60,93W ölçüyorum.

Bakım ve destek için, FreeNAS Kullanıcı Rehberi (benim durumumda 9.3) ve  FreeNAS destek Forumu en yakın arkadaşınız olacaktır.

Haa, bir de konsoldan veya web arayüzünden gelen alarmları hiç bir zaman savsaklamayın. Ne anlama geldiğini anlamadıysanız araştırın ve mutlaka önlem alın. Çünkü”bela geliyorum” diyor;  bir süre sonra bir sorun ile karşılaşabiliyorsunuz!

Yorum yapın:

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.