Ich baue einen Home FreeBSD-Dateiserver mit ZFS.
Es ist ein AMD X2 3200+ mit 3 GB RAM. Es hat einen PCI Express Gig-E. Das Boot-Laufwerk ist ein altes 400-GB-Laufwerk und ich habe 4 750-GB-Seagte-Laufwerke (eines mit einer anderen Firmware-Version, nur für den Fall).
Das Booten von ZFS wäre schön gewesen (es würde die Installation vereinfachen), aber ich habe die ZFSOnRoot-Anweisungen verwendet, um das Root / OS-Laufwerk mit ZFS einzurichten (wenn alle Partitionen ZFS sind, muss beim Booten kein fsck ausgeführt werden um die UFS-Dateisysteme zu überprüfen). Der Grund, warum Sie dies möchten, ist, dass Sie dann alle Ihre Partitionen (/ var, / usr, / tmp usw.) mit verschiedenen Optionen nach Bedarf einrichten können (z. B. noatime und async für / usr / obj, wodurch der Kernel beschleunigt wird kompiliert), aber alle teilen sich den Speicherplatz aus einem gemeinsamen Pool. Anschließend können Sie ein Datenlaufwerk einrichten und jedem Benutzer eine eigene Partition zuweisen (mit unterschiedlichen Anführungszeichen und Einstellungen). Sie können dann Schnappschüsse machen (die für ZFS kostengünstig sind).
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
In Bezug auf die Leistung ist das Kopieren von Dateien sehr schnell. Das einzige, was ich bemerken würde, ist, dass ich ZFS auf FreeBSD AMD64-Systemen mit 3-4 GB verwendet habe und es gut funktioniert hat, aber nach meiner Lektüre würde ich mir Sorgen machen, es auf einem i386-System mit 2 GB oder mehr auszuführen weniger Speicher.
Ich habe keine SATA-Anschlüsse mehr auf dem Motherboard, daher habe ich nicht versucht, neue Laufwerke hinzuzufügen. Die anfängliche Einrichtung war einfach, ein Befehl zum Erstellen des RAIDZ und dann der Befehl zum Erstellen / Home, der in Sekunden (IIRC) formatiert wurde. Ich verwende immer noch die ältere Version von ZFS (v6), daher gibt es einige Einschränkungen (es sind keine Laufwerke gleicher Größe erforderlich, aber im Gegensatz zu einem Drobo, wenn Sie 3 750-GB-Laufwerke und ein 1-TB-Laufwerk hatten, ist das Endergebnis wird so sein, als ob Sie 4 750 GB Laufwerke hätten).
Einer der Hauptgründe, warum ich ZFS mit RAIDZ verwendet habe, waren die End-to-End-Prüfsummen. Das CERN veröffentlichte ein Papier, in dem ein Test dokumentiert wurde, bei dem über 200 unkorrigierte Lesefehler festgestellt wurden, während ein R / W-Test über einen Zeitraum von einigen Wochen durchgeführt wurde (es wird erwartet, dass die ECC in Einzelhandelslaufwerken alle 12 TB einen Fehler aufweist). Ich möchte, dass die Daten auf meinem Server korrekt sind. Ich hatte einen schweren Absturz aufgrund eines Stromausfalls (jemand hat die USV überlastet, indem er eine Raumheizung daran angeschlossen hat), aber als das System zurückkehren kann, kam ZFS schnell zurück, ohne die Standardprobleme mit fsck.
Ich mag es, weil ich dann Samba CUPS hinzufügen könnte, um einen Druckserver zu erhalten. Ich habe einen DNS-Cache hinzugefügt und kann nach Belieben andere Software hinzufügen (ich denke darüber nach, den Desktops in meinem Haus eine SNMP-Überwachung hinzuzufügen, um die Bandbreitennutzung zu messen). Ich bin mir sicher, dass ich für das, was ich für das System ausgegeben habe, eine billige NAS-Box hätte kaufen können, aber dann hätte ich keine lokale 64-Bit-Unix-Box zum Spielen. Wenn Sie FreeBSD mögen, würde ich sagen, machen Sie mit. Wenn Sie Linux bevorzugen, würde ich eine Linux-Lösung empfehlen. Wenn Sie keine Administration durchführen möchten, würde ich mich für die eigenständige NAS-Box entscheiden.
Bei meiner nächsten Runde von Hardware-Upgrades plane ich, die Hardware zu aktualisieren und dann die aktuelle Version von FreeBSD mit ZFS v13 zu installieren. V13 ist cool, weil ich eine batteriegepufferte RAM-Disk habe, die ich für das ZIL-Protokoll verwenden kann (dies bringt Schreibvorgänge zum Schreien). Es wird auch die Verwendung von SSDs zur Beschleunigung des Dateiservers unterstützt (die Spezifikationen auf den neuen Sun-Dateiservern sind sehr gut und werden von einem ZFS-System bezogen, das SSD verwendet, um das System sehr schnell zu machen).
EDIT: (Kann noch keine Kommentare hinterlassen). Ich habe die Anweisungen unter http://www.ish.com.au/solutions/articles/freebsdzfs ziemlich genau befolgt . Die einzige wichtige Änderung in 7.X seit dem Schreiben dieser Anweisungen war, dass 7.2 herauskam. Wenn Sie über 2+ GB verfügen, sollten Sie die folgenden drei Zeilen nicht in /boot/loader.conf hinzufügen müssen:
vm.kmem_size_max="1024M"
vm.kmem_size="1024M"
vfs.zfs.arc_max="100M"
In den Anweisungen wird auch erläutert, wie Sie einen Spiegel erstellen und das System wieder in den Wiederherstellungsmodus versetzen (Mounten mit ZFS). Nachdem ich ein- oder zweimal mit seinen Anweisungen gespielt hatte, benutzte ich das ZFS-Administratorhandbuch von Sun http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf , um besser zu verstehen, was ZFS ist. Zum Erstellen meines Datenspeichers habe ich eine geänderte Version des Befehls auf Seite 91 verwendet, um ZFS-Pools zu erstellen. Da es sich um FreeBSD handelt, musste ich eine kleine Änderung vornehmen:
zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10
Wo ad4-ad10 durch Ausführen von dmesg | grep 'ata. * Master' gefunden wurde, sind dies die Namen der SATA-Festplatten auf dem System, die für die Big-Data-Partition verwendet werden. Auf meinem Motherboard, den ersten drei ata-Ports (ad0-3), an denen sich die 4 PATA-Ports befinden, und da jeder SATA-Port ein Master ist, gibt es keine alten Nummern.
Um das Dateisystem zu erstellen, habe ich gerade Folgendes getan:
zfs create dozer/data
zfs set mountpoint=/data dozer/tank
Der zweite Befehl ist erforderlich, da ich Standard-Mountpunkte für Freigaben deaktiviert habe.
Einführung: Ich habe endlich mein System gebaut und hier sind meine Notizen, falls es jemand anderem hilft.
Tore:
Spezifikationen:
Design:
Wir verwenden ZFS als Dateisystem, da es so positive Bewertungen erhalten hat. ZFS erfordert ziemlich viel, dass wir ein 64-Bit-Betriebssystem ausführen und viel Speicher mögen, also sollte ich ein Minimum von 4 GB bekommen
Hardware:
ABS Aplus ABS-CS-Monolith Schwarz SECC Stahl ATX Full Tower Computergehäuse - 1 @ $ 69.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16811215009
Western Digital Caviar Green WD5000AADS 500 GB SATA 3,0 Gbit / s 3,5-Zoll-Festplatte 6 @ 347,94 USD (57,99 USD pro Stück) http://www.newegg.com/Product/Product.aspx?Item=N82E16822136358
XIGMATEK XLF-F1253 120 mm 4 weißer LED-LED-Gehäuselüfter - 1 @ 8,99 USD http://www.newegg.com/Product/Product.aspx?Item=N82E16835233015
Schwarzes IDE-DVD-ROM-Laufwerk LITE-ON Modell iHDP118-08 - 1 @ $ 19.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16827106275
Entscheidende 4 GB (2 x 2 GB) 240-Pin-DDR2-SDRAM DDR2 800 (PC2 6400) CT2KIT25664AA800 - 1 @ $ 45.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16820148160
GIGABYTE GA-MA74GM-S2 AM2 + / AM2 AMD 740G Micro-ATX-AMD-Motherboard - 1 @ $ 54.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16813128342
OKGEAR 18 "SATA II-Kabelmodell GC18ATASM12 - 6 @ 11,94 USD (1,99 USD pro Stück) http://www.newegg.com/Product/Product.aspx?Item=N82E16812123132
AMD Athlon 64 X2 5050e Brisbane 2,6-GHz-Sockel AM2 45-W-Dual-Core-Prozessormodell ADH5050DOBOX - 1 @ $ 62.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16819103298
KINGWIN Mach 1 ABT-1000MA1S 1000 W ATX / BTX-Netzteil - 1 @ $ 199.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16817121037
Seagate 400 GB IDE-Laufwerk - 1 @ (im Schrank), aber ein 80 GB IDE-Laufwerk kostet etwa 37,00 USD, und 80 GB sind mehr als genug.
Adapterhalterung für IDE-Festplatte für einen 5-Zoll-Schacht - 1 @ ~ $ 17.00
Versand - 1 @ ~ $ 35.00
Software: FreeBSD 7.2 - 1 @ $ 0.00 http://www.freebsd.org/
Gesamtkosten: 874,81 USD
Hardware-Setup: Ein grundlegender Computer-Build mit drei kleineren Problemen.
Das von mir gekaufte Gehäuse hatte Steckplätze für 6 Festplatten und zwei 3,5-fach-Steckplätze. Ich nahm an, dass die IDE in eines der 3,5 Felder passen könnte. Dies war eine schlechte Annahme, und es gab keinen vernünftigen Weg, um es zum Laufen zu bringen. Ich ging und kaufte einen Adapter bei Fry's für ~ $ 17.00, und es funktionierte gut.
Die Sata-Kabel, die ich gekauft habe, hatten die 90-Grad-Anschlüsse, was sehr schön war, außer dass es mit sechs Laufwerken keine Möglichkeit gab, die Arbeit zu erledigen. Durch Einstecken eines Kabels hing der unflexible Teil des Steckers über der nächsten Festplatte. Ich musste zu Fry's und mit 5 normalen SATA-Kabeln gehen. Leider waren die, die ich bei Newegg gekauft habe, so billig, dass es sich nicht lohnt, sie zurückzuschicken.
Das Gehäuse zeigt die Rückseite der Festplatten zur Seite des Gehäuses, und die Stromkabel vom Netzteil haben einen steifen Stecker, der über den Rand des Gehäuses hinausragt. Dadurch konnte ich die Seitenabdeckung nicht wieder einschieben. Ich musste ein wenig damit herumspielen, um es zum Laufen zu bringen, und schließlich endeten die beiden modularen Stromkabel (sie haben jeweils vier SATA-Stecker) zwischen den Laufwerken, so dass die ersten kabelbetriebenen Laufwerke 0, 2 und 4 und die zweite angetriebene 1, 3 und 5. Dies ermöglichte genug Flex, dass ich sie mit einem Reißverschluss aus dem Weg binden konnte.
Betriebssystem-Setup:
Brannte die FreeBSD 7.2 ISOs auf CD. Ich hätte die einzelne DVD benutzen können, aber ich hatte keine herumliegen.
Memtest86 + ( http://www.memtest.org/ ) wurde auf eine CD gebrannt .
Schaltete den frisch gebauten Computer ein und ging ins BIOS, um sicherzustellen, dass alle 7 Laufwerke und die DVD-ROM angezeigt wurden. Es tat es. Die Startreihenfolge wurde geändert, um zuerst die CD-ROM zu erstellen.
Legen Sie die memtest86 + -CD in den frisch gebauten Computer ein, starten Sie sie neu und lassen Sie sie über Nacht laufen. Ohne Fehler bestanden.
Installiertes FreeBSD 7.2. Wenn Sie damit nicht vertraut sind, empfehle ich Folgendes zu lesen: http://www.freebsd.org/doc/en/books/handbook/install.html Es ist viel besser zu erklären, was zu tun ist als ich kann. Hier sind meine spezifischen Einstellungen:
Nach der Installation und dem Neustart stellte ich fest, dass nur 4 der 6 SATA-Laufwerke erkannt wurden. Ich ging ins BIOS und änderte unter Integrierte Peripheriegeräte den OnChip-SATA-Typ in AHCI und den OnChip-SATA-Port 4/5 in "SATA". Gespeicherte Einstellungen und Neustart.
Zu diesem Zeitpunkt erkannte FreeBSD alle sechs Laufwerke als: ad4 ad6 ad8 ad10 ad12 ad14
Holen Sie sich das Neueste von cvs mit csup: csup -g -L 2 Stable-Supfile Ich hatte die Datei bereits bearbeitet, um den Host zu verwenden: cvsup11.us.FreeBSD.org, wobei alle anderen Informationen unverändert bleiben.
Den neuesten Kernel und die neueste Welt wie hier beschrieben neu erstellt und installiert: http://www.freebsd.org/doc/en/books/handbook/makeworld.html Mein Kernel wurde angepasst (siehe ZFSNAS). Ich habe eine große Anzahl von Geräten deaktiviert, da ich nie vorhabe, SCSI, USB, PCMCIA, Seriell, Parallel usw. zu verwenden. Ich habe /etc/make.conf Folgendes hinzugefügt: CPUTYPE = athlon64 CFLAGS = -O2 -fno-strict-aliasing -pipe make -j8 buildworld
NAS-Setup:
Erstellen Sie den ZFS-Pool für unseren Speicher: zpool create storage raidz2 ad4 ad6 ad8 ad10 ad12 ad14
Erstellen Sie das Home-Dateisystem auf dem neu erstellten Speicher:
Bearbeiten Sie /etc.rc/conf und fügen Sie Folgendes hinzu:
Dadurch werden die ZFS-Dateisysteme beim Booten bereitgestellt.
Erstellt Root-, Samba- und Perforce-Verzeichnisse
Wenn Sie nicht mehr Dateisysteme in Ihrem Pool benötigen, sind Sie mit dem ZFS-Teil ziemlich fertig. Weitere Informationen finden Sie im Folgenden: http://www.freebsd.org/doc/en/books/handbook/filesystems-zfs.html http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf
Installierte Ports:
Benutzer hinzugefügt:
Gruppen erstellt:
Samba-Konfiguration:
quelle
Ich sehe keinen Grund, warum Sie möchten. Ich würde denken, dass die Snapshot-Unterstützung in OpenSolaris nur ausgereift genug ist, damit Sie zu einer älteren Version zurückkehren und diese starten können (aber das ist eigentlich nur eine wilde Vermutung).
Hinzufügen wie beim Erweitern eines gestreiften Pools? Fügen Sie einfach eine Fahrt zum Pool hinzu, das war's auch schon. Betrachten Sie die Auswirkungen Ihrer nächsten Frage.
Sie können es als Streifen verwenden und ZFS anweisen, n Kopien einer Datei aufzubewahren. So können Sie die volle Speicherverfügbarkeit nutzen, die Sie haben, und trotzdem eine angemessene Redundanz erhalten
Ersetzen von Geräten in einem Speicherpool Ich denke, dies ist die empfohlene Lösung. Der einfachste Weg, um herauszufinden, wie gut dies unter FreeBSD funktioniert, besteht wahrscheinlich darin, es auszuprobieren.
Haben Sie schon einmal darüber nachgedacht, dass FreeNAS (Roadmap) 0.70 bald veröffentlicht wird und ZFS unterstützen wird?
Sie sparen sich den Aufwand des gesamten Frameworks und erhalten damit eine relativ gut zu bedienende GUI.
quelle
Ich habe Server mit FreeBSD + ZFS (auf 7.2-STABLE und 8.0-CURRENT), die nicht in Produktion sind.
Das Booten von ZFS wird hier beschrieben: http://lulf.geeknest.org/blog/freebsd/Setting_up_a_zfs-only_system/
Das Hinzufügen von Laufwerken im laufenden Betrieb ist so einfach wie das Eingeben von "zpool add mypool da7". Ein neues Laufwerk kann direkt danach verwendet werden. Sie können auch eine ganze Reihe von Laufwerken in Stripe, Mirror, Raidz (verbessertes Raid-5) oder Raidz2 (verbessertes Raid-6) hinzufügen.
Laufwerke unterschiedlicher Größe können im Pool abgelegt werden, aber nicht in Spiegel / Streifen / Schlachtzug (wenn ich mich richtig erinnere, kann dann nur der kleinste Festplattenspeicher verwendet werden).
(Offen) Solaris unterstützt ZFS sofort
quelle
Es gibt einen schönen Thread zum Aufbau eines Heim-ZFS-NAS bei ArsTechnica.
quelle
Ich habe keine Erfahrung mit ZFS, aber ich habe dies gerade in meinem RSS-Feeder gesehen:
http://www.freebsdnews.net/2009/06/10/zfs-version-13-freebsd-current/
Was darauf hindeutet, dass es reift, aber noch nicht produktionsbereit ist (unter FreeBSD).
quelle