NAS kutusu olarak FreeBSD üzerinde ZFS ile ilgili öneriler?


9

Lütfen bu sayfadaki cevapların 2009'dan geldiğini ve müjde olarak kullanılmaması gerektiğini unutmayın. Hakkında özel bir sorunuz varsalütfen Soru Sor düğmesini tıklayın ve belirli bir soru sorun.

FreeBSD 7.2 ve ZFS dosya sistemini kullanarak bir ev yedekleme sistemi kurmayı düşünüyordum. Herkes bu dosya sistemi ile herhangi bir deneyim oldu mu?

özellikle:

  • ZFS'den önyükleme yapmak mümkün müdür? (Yapmak ister miyim?)
  • Sürücü eklemek ne kadar kolay?
  • Farklı boyutlardaki sürücüleri ne kadar iyi işler?
  • Anında yeni sürücüler ekleyebilir misiniz (veya en azından bir yeniden başlatma ile)?
  • Raftan bir şey tarafından daha iyi servis edilir miydim?

Diğer düşünce ve öneriler memnuniyetle karşılanacaktır.

Düzenle:

Açıkçası, ZFS'deki FreeBSD sayfasını okudum . İstediğime benzer bir kurulumla pratik deneyime sahip insanlardan öneriler arıyorum.

Yanıtlar:


13

ZFS kullanarak bir ev FreeBSD dosya sunucusu oluşturuyorum.

3GB RAM'e sahip bir AMD X2 3200+. PCI Express Gig-E'ye sahiptir. Önyükleme sürücüsü eski bir 400GB ve 4 750GB Seagte sürücüsüne sahibim (biri her durumda farklı bir bellenim sürümüne sahip).

ZFS'den önyükleme güzel olurdu (kurulumu daha basit hale getirir), ancak ZFS ile Root / OS sürücüsünü kurmak için ZFSOnRoot talimatlarını kullandım (tüm bölümler ZFS ise, o zaman önyüklemede bir fsck yapmasına gerek yoktur UFS dosya sistemlerini kontrol etmek için). Daha sonra tüm bölümlerinizi (/ var, / usr, / tmp, vb.) Gerektiği gibi farklı seçeneklerle (/ usr / obj için noatime ve async gibi) çekirdeği ayarlayabilmenizi istemenizin nedeni derler), ancak hepsi ortak bir havuzdan alan paylaşır. Daha sonra bir veri sürücüsü kurabilir ve her kullanıcıya kendi bölümlerini (farklı teklifler ve ayarlarla) verebilirsiniz. Daha sonra (ZFS'de düşük maliyetli olan) anlık görüntüler alabilirsiniz.

My home server has a df that looks like:
/dev/ad0s1a           1.9G    744M    1.1G    41%    /
devfs                 1.0K    1.0K      0B   100%    /dev
dozer/data            1.8T     62G    1.7T     3%    /data
dozer/home            1.7T    9.6G    1.7T     1%    /home
dozer/home/walterp    1.9T    220G    1.7T    11%    /home/walterp
tank/tmp              352G    128K    352G     0%    /tmp
tank/usr              356G    4.4G    352G     1%    /usr
tank/var              354G    2.2G    352G     1%    /var

Performans açısından, dosyaları kopyalamak çok hızlı. Dikkat edeceğim tek şey, 3-4GB'a sahip FreeBSD AMD64 sistemlerinde ZFS kullanıyorum ve iyi çalıştı, ancak okumadan 2GB veya i386 sistemde çalıştığından endişe ediyorum daha az bellek.

Anakarttaki SATA bağlantı noktalarından bitti, bu yüzden yeni sürücü eklemeye çalışmadım. İlk kurulum basitti, RAIDZ'yi oluşturmak için bir komut ve daha sonra saniyeler içinde biçimlendirilen (IIRC) oluşturulmuş / home komutu. Hala ZFS (v6) 'nın eski sürümünü kullanıyorum, bu yüzden bazı sınırlamaları var (Eşit boyutta sürücüler gerektirmez, ancak 3 750GB sürücü ve 1 TB sürücünüz varsa, bir Drobo'nun aksine, sonuç 4 750GB sürücünüz varmış gibi görünür).

RAIDZ ile ZFS'yi kullanmamın en büyük nedenlerinden biri uçtan uca sağlama toplamlarıydı. CERN, birkaç haftalık bir süre boyunca bir R / W testi gerçekleştirirken 200'den fazla düzeltilmemiş okuma hatası buldukları bir testi belgeleyen bir makale yayınladı (perakende sürücülerdeki ECC'nin her 12 TB'da bir kez okuması bekleniyor). Sunucumdaki verilerin doğru olmasını istiyorum. Bir elektrik kesintisi nedeniyle zor bir kaza geçirdim (birisi bir boşluk ısıtıcı takarak UPS'i aşırı yükledi), ancak sistem geri döndüğünde, standart fsck sorunları olmadan hızlı bir şekilde geri döndü.

Sevdim, çünkü daha sonra bir baskı sunucusu almak için Samba'ya CUPS ekleyebilirim. Bir DNS önbelleği ekledim ve istediğim gibi başka yazılımlar ekleyebilirim (bant genişliği kullanımını ölçmek için evimdeki masaüstlerine SNMP izleme eklemeyi düşünüyorum). Sisteme harcadığım şey için, ucuz bir NAS kutusu satın alabileceğime eminim, ancak oynamak için 64 bit yerel Unix kutusuna sahip olmazdım. FreeBSD isterseniz Ben onunla gitmek söyleyebilirim. Linux'u tercih ediyorsanız, bir Linux çözümü öneriyorum. Herhangi bir yönetim yapmak istemiyorsanız, o zaman tek başına NAS kutusunu tercih ediyorum.

Bir sonraki donanım yükseltmelerimde, donanımı yükseltmeyi ve ardından ZFS v13 olan FreeBSD'nin geçerli sürümünü yüklemeyi planlıyorum. V13 serin çünkü ZIL günlüğü için kullanabileceğim bir pil destekli RAM diskim var (bu da yazmaları çığlık atıyor). Ayrıca dosya sunucusunu hızlandırmak için SSD'leri kullanma desteğine sahiptir (yeni Sun Dosya Sunucularındaki özellikler tatlıdır ve sistemi çok hızlı hale getirmek için SSD kullanan bir ZFS sisteminden alırlar).

EDIT: (Henüz yorum bırakamıyorum). Http://www.ish.com.au/solutions/articles/freebsdzfs adresindeki talimatları hemen hemen takip ettim . Bu talimatlar yazıldığından beri 7.X'te varolan en büyük değişiklik 7.2 çıktı ve 2+ GB'ye sahipseniz, /boot/loader.conf dosyasına aşağıdaki üç satırı eklemeniz gerekmiyordu:

vm.kmem_size_max="1024M"
vm.kmem_size="1024M"  
vfs.zfs.arc_max="100M"

Talimatlar ayrıca bir aynanın nasıl oluşturulacağını ve sistemin kurtarma moduna nasıl geri alınacağını da açıklar (ZFS'ye monte edin). Talimatlarını bir veya iki kez oynadıktan sonra, ZFS'nin ne olduğunu daha iyi anlamak için Sun http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf adresindeki ZFS Yönetici kılavuzunu kullandım . Veri depomu oluşturmak için ZFS havuzları oluşturmak amacıyla komutun değiştirilmiş bir sürümünü kullandım. Bu FreeBSD olarak, küçük bir değişiklik yapmak zorunda kaldım:

zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10

Ad4-ad10'un dmesg | grep 'ata. * Master' kullanılarak bulunduğu yerde, bu, büyük veri bölümü için kullanılacak sistemdeki SATA sabit sürücülerinin adlarıdır. Anakartımda ilk üç ata portu (ad0-3), burada 4 PATA portu ve daha sonra her SATA portu bir master olduğu için eski sayılar yok.

Dosya sistemi oluşturmak için yaptım:

zfs create dozer/data
zfs set mountpoint=/data dozer/tank

İkinci komut, paylaşımlar için varsayılan bağlama noktalarını kapattığım için gerekli.


Şans eseri yaptığınız her şeyin notları var mı? Onları yayınlamak ister misiniz? :)
üzülmek

FreeNAS + ZFS'de harika yayın. Bunu kendim merak ettim. Bilgi için teşekkürler!
osij2is

11

Giriş: Sonunda sistemimi kurdum ve başkalarına yardımcı olması durumunda notlarım burada.

Hedefler:

  • Kaynak kontrolüm ve dahili web sunucum olarak da ikiye katlanabilen bir ev NAS kutusu oluşturun.
  • Maliyeti 1000 $ 'ın altında tutun

Özellikler:

  • En az bir terabayt depolama alanı olmalıdır
  • Veri yedekliliği olmalıdır (RAID veya benzeri bir şey)
  • Mevcut yaşlanan kaynak kodu kontrol sunucumu değiştirebilmeliyim

Tasarım:

  • FreeBSD 7.2 (sonunda 8.0 sürümüne yükseltilecek).
  • İşletim sistemi kendi önyükleme sürücüsünde, bu durumda bir IDE sürücüsü
  • Veriler altı SATA sürücüsünde saklanır.

Bu olumlu değerlendirmeleri aldığı için ZFS'yi dosya sistemi olarak kullanıyoruz. ZFS, 64 bit işletim sistemi çalıştırmamızı gerektiriyor ve çok fazla bellek seviyor, bu yüzden minimum 4Gb almalıyım

Donanım:

Yazılım: FreeBSD 7.2 - 1 @ $ 0.00 http://www.freebsd.org/

Toplam Maliyet: 874,81 $

Donanım Kurulumu: Üç küçük sorunla temel bir bilgisayar yapısı.

  1. Satın aldığım kasada 6 sabit disk yuvası ve iki adet 3,5 bölme vardı. IDE'nin 3,5 bölmeden birine sığabileceğini düşündüm. Bu kötü bir varsayımdı ve işe yaraması için makul bir yol yoktu. Gittim ve ~ 17,00 $ Fry'ın bir adaptör satın aldı ve iyi çalıştı.

  2. Satın aldığım Sata kabloları 90 derece konektörlere sahipti, bu da güzeldi, altı sürücü hariç, işi yapmanın bir yolu yoktu. Bir kablonun takılması, konnektörün esnek olmayan kısmının bir sonraki sabit sürücünün üzerine takılmasına neden oldu. Fry ve 5 normal SATA kablo ile gitmek zorunda kaldı. Ne yazık ki Newegg'de satın aldığım o kadar ucuzdu ki, onları geri göndermeye değmez.

  3. Kasa, sabit sürücülerin arkasını kasanın yanına doğru yönlendirir ve güç kaynağından gelen güç kablolarında kasanın kenarına yapışmış sert bir konektör bulunur. Bu, yan kapağı yerine kaydırmamı sağladı. Çalışması için biraz onunla oynamak zorunda kaldım ve sonunda modüler güç kablolarının ikisi (her birinde dört SATA fişi var) ile aralarında araya girdi, böylece ilk kablo ile çalışan sürücüler 0, 2, 4 ve ikinci enerjili 1, 3 ve 5.

İşletim Sistemi Kurulumu:

  1. FreeBSD 7.2 ISO'larını CD'ye yazdı. Tek DVD'yi kullanabilirdim, ama etrafta yalan yoktu.

  2. Bir CD'ye memtest86 + ( http://www.memtest.org/ ) yazdı .

  3. Yeni inşa edilen bilgisayarı çalıştırdı ve 7 sürücünün ve DVD-ROM'un tamamını gördüğünden emin olmak için bios'a gitti. O yaptı. CDROM'u ilk yapmak için önyükleme sırasını değiştirdi.

  4. Memtest86 + CD'sini yeni yapılmış bilgisayara yerleştirdi, yeniden başlattı ve gece boyunca çalışmasına izin verdi. Hatasız geçti.

  5. Yüklü FreeBSD 7.2, buna aşina değilseniz aşağıdakileri okumanızı tavsiye ederim: http://www.freebsd.org/doc/en/books/handbook/install.html Ne yapacağımı açıklamaktan çok daha iyi bir iş çıkar Yapabilmek. İşte benim özel ayarlarım:

    • Standart kurulum yaptı mı
    • İşletim sistemi için tüm IDE sürücüsünü kullandım
      • varsayılan dosya sistemi düzenini kullandı
      • 6 SATA sürücüsüne dokunulmadı
    • Kutu başsız olacağından X-Windows olmadan geliştirici kurulumu
    • Sistem bir NFS İstemcisi veya Sunucusu değil
    • FTP ve inetd devre dışı
    • SSH'ye izin verildi
    • Hiçbir paket eklenmedi (bunlar daha sonra eklenecek).
    • Bir kullanıcı eklendi
  6. Yükleme ve yeniden başlatma işleminden sonra 6 SATA sürücüsünün yalnızca 4 tanesinin algılandığını fark ettim. BIOS'a girdim ve Tümleşik Çevre Birimleri Altında OnChip SATA Türünü AHCI olarak ve OnChip SATA bağlantı noktası 4/5 Türünü "SATA" olarak değiştirdim Kaydedilen ayarlar ve yeniden başlatıldı.

  7. Bu noktada FreeBSD altı sürücünün tümünü şu şekilde tespit etti: ad4 ad6 ad8 ad10 ad12 ad14

  8. Csup: csup -g -L 2 istikrarlı supfile kullanarak cvs en son alın Dosyayı zaten ana bilgisayar kullanmak için düzenlenmişti: cvsup11.us.FreeBSD.org diğer tüm bilgileri olduğu gibi bırakarak.

  9. En son çekirdeği ve dünyayı burada açıklandığı gibi yeniden oluşturun ve yükleyin : http://www.freebsd.org/doc/en/books/handbook/makeworld.html Çekirdeğimi özelleştirin (bkz. ZFSNAS). SCSI, USB, PCMCIA, Seri, Paralel vb. Kullanmayı asla planlamadığım için çok sayıda cihazı devre dışı bıraktım. -pipe yapmak -j8 buildworld

NAS Kurulumu:

  1. Depolama alanımız için ZFS havuzunu oluşturun: zpool depolama alanı oluştur raidz2 ad4 ad6 ad8 ad10 ad12 ad14 ad14

  2. Yeni oluşturulan depolama biriminde ev dosya sistemini oluşturun:

    zfs create storage/home
    cp -rp /home/* storage/home
    rm -rf /home /usr/home
    zfs set mountpoint=/home storage/home
    
  3. /etc.rc/conf dosyasını düzenleyin ve aşağıdakileri ekleyin:

    zfs_enable="YES"
    

    Bu, ZFS dosya sistemlerini önyüklemeye bağlar.

  4. Oluşturulan kök, samba ve performans dizinleri

    zfs create storage/root
    cp -rp /root/* storage/root
    rm -rf /root 
    zfs set mountpoint=/root storage/root
    zfs create storage/fileshare
    zfs create storage/perforce
    

    Havuzunuzda daha fazla dosya sistemine ihtiyacınız olmadığı sürece, ZFS kısmı ile işiniz bitti. Daha fazla ayrıntı için aşağıdakilere bakın: http://www.freebsd.org/doc/en/books/handbook/filesystems-zfs.html http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf

Kurulu portlar:

/usr/ports/shells/bash
    make install
/usr/ports/editors/vim
    make install
/usr/ports/net/samba33
    make
    make install
    // Use all defaults un-check cups.
/usr/ports/devel/perforce
    make
    make install PERFORCE_PORT=XXXX PERFORCE_USER=p4user PERFORCE_GROUP=p4
    rm -rf /usr/local/perforce
    cd /storage/perforce/
    mkdir root
    mkdir log
    chown p4user:p4user *
    cd /storage
    chown p4user:p4user perforce 

Edited /usr/local/etc/perforce.conf as follows:
    #
    # Perforce FreeBSD configuration file
    #
    #
    # $FreeBSD: ports/devel/perforce/files/perforce.conf.in,v 1.3 2005/01/18 15:43:36 lth Exp $

    #
    # Perforce ROOT
    #
    PERFORCE_ROOT="/storage/perforce/root"

    #
    # Perforce user (it is recommended to run p4d as a non-root user)
    #
    PERFORCE_USER="p4user"

    #
    # p4d/p4p port (default: 1666)
    #
    PERFORCE_PORT="XXXX"

    #
    # p4p cache directory
    #
    PERFORCE_PROXY_CACHE="/usr/local/perforce/cache"

    #
    # p4p target server (default: perforce:1666)
    #
    PERFORCE_PROXY_TARGET="perforce:1666"

    #
    # p4d options (see man p4d)
    #
    PERFORCE_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L /storage/perforce/logs/p4d.log"

    #
    # Uncomment this line to have the server started automatically
    #
    PERFORCE_START=yes

Eklenen Kullanıcılar:

user1
user2

Oluşturulan gruplar:

sambashare
    Added user1 and user2 as members

chgrp sambashare /storage/fileshare
chmod 775 /storage/fileshare
chmod g+s /storage/fileshare

Samba Yapılandırması:

Samba configuration file:
#################
    [global]
       workgroup = USERLAN
       server string = ZFS NAS
       security = user
       hosts allow = 192.168.1. 127.
       log file = /usr/local/samba/var/log.%m
       max log size = 50
       passdb backend = tdbsam
       dns proxy = no

    [user1share]
       comment = user1 share
       path = /storage/fileshare
       valid users = user1 user2
       public = no
       writable = yes
       printable = no
       create mask = 0765
#################

pdbedit -a -u user1 
    # followed prompts
pdbedit -a -u user2 
    # followed prompts

Harika bir cevap! Olumlu oy ... check!
Mei

5
  • ZFS'den önyükleme yapmak mümkün müdür? (Yapmak ister miyim?)

Neden istemek için bir neden görmüyorum ki, Anlık Görüntü desteğinin OpenSolaris'te yalnızca yeterince olgun olduğunu düşünüyorum, böylece daha eski bir sürüme geri dönebilir ve önyükleyebilirsiniz (aslında sadece vahşi tahmin).

  • Sürücü eklemek ne kadar kolay?

Çizgili bir havuzu genişletmek gibi? Sadece havuza bir sürücü ekleyin, hepsi bu. Bir sonraki sorunuzun sonuçlarını düşünün.

  • Farklı boyutlardaki sürücüleri ne kadar iyi işler?

Bunu şerit olarak kullanabilir ve ZFS'ye bir dosyanın n kopyasını saklamasını söyleyebilirsiniz. Böylece, sahip olduğunuz tam depolama kullanılabilirliğini kullanabilir ve yine de iyi bir yedeklilik elde edebilirsiniz.

  • Anında yeni sürücüler ekleyebilir misiniz (veya en azından bir yeniden başlatma ile)?

Depolama Havuzundaki Aygıtların Değiştirilmesi Sanırım bu önerilen çözümdür, bunun FreeBSD'de ne kadar iyi çalıştığını bulmanın muhtemelen en kolay yolu muhtemelen denemektir.

  • Raftan bir şey tarafından daha iyi servis edilir miydim?

FreeNAS (Yol Haritası) 0.70'ın piyasaya sürülmek üzere olduğunu düşündünüz mü ve ZFS'yi destekleyecek.

Kendinizi tüm çerçevenin zorluklarından kurtaracak ve bununla birlikte GUI'yi ücretsiz olarak kullanmak için nispeten güzel olacaksınız.


FreeNAS 0.7RC1 kullanıyorum ve ZFS ile kurulum çok kolay oldu.
Joseph

3

Üretimde değil, FreeBSD + ZFS (7.2-STABLE ve 8.0-CURRENT üzerinde) sunucularım var.

ZFS'den önyükleme burada açıklanmaktadır http://lulf.geeknest.org/blog/freebsd/Setting_up_a_zfs-only_system/

Anında sürücüler eklemek, "zpool add mypool da7" yazmak kadar kolaydır; bundan sonra yeni sürücü kullanılabilir; ayrıca şerit, ayna, raidz (geliştirilmiş raid-5) veya raidz2 (geliştirilmiş raid-6) sürücülerinin tamamını ekleyebilirsiniz

Farklı boyutlardaki sürücüler havuza yerleştirilebilir, ancak ayna / şerit / baskında kullanılamaz (doğru hatırlarsam, o zaman sadece en küçük hdd alanı kullanılabilir)

(Open) Solaris'in kutudan çıktığı anda ZFS desteği var



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.