Page 1 of 1

Ersteinrichtung für NAS4Free am Beispiel HP N54L

Posted: 31 Jul 2014 17:16
by crowi
Vorwort:

Da ich einen HP N54L als zukünftigen Backupserver/ ZweitNAS betreiben möchte, nutze ich die Gelegenheit ein HowTo zu schreiben. Ich gebe keine Garantie auf Vollständigkeit und nehme mir auch nicht das Recht heraus zu behaupten, dass dies hier der ultimativ richtige Weg ist, NAS4Free einzurichten. Ich möchte nur zusammenstellen wie ich es gemacht habe, um einige mögliche Fehlerquellen von vorneherein auszuschließen und das System optimal zu betreiben. Sämtliche Einstellung sind ohne Gewähr. 8-)
Wie immer ist jede Art von Feedback (auch kritisches) herzlich willkommen. 8-)

Also fangen wir an:

Hardware Komponenten:
- 1 x HP Proliant Microserver N54L
- 1 x Transcend TS512MLK72V3N PC3-10600 Arbeitsspeicher 4GB (1333 MHz, ECC, 240 polig, CL9) DDR3 RAM
- 4 x WD Green 4 TB WD40EZRX
- 1 x Sandisk Cruzer Fit 8GB USB-Stick 2.0
- 1 x USB Stick 1 GB

Einen sehr guten Thread zum HP Microserver gibt es übrigens hier:
http://www.hardwareluxx.de/community/f1 ... 52079.html


Software:
- NAS4Free LiveUSB 64 Bit
- Putty
- Win32diskimager
- Universal Boot CD (UBCD)
- Yumi
- BIOS für HP N54L (+ gemoddetes BIOS)


Arbeitsschritte:
1) RAM aufrüsten
2) BIOS Flashen (optional)
3) Festplatten einbauen
4) mit WDIDLE das lästige Headparking (Intellipark) der Festplatten einstellen (optional)
5) Memtest durchführen (über Nacht)
6) Die neuen Platten mittels dd ausnullen (optional)
7) NAS4Free installieren und optimal einrichten
8) Kosmetik

In der Grundkonfiguration sind die mitgelieferten 4 GB ECC RAM zu wenig, deshalb habe ich das System um 4 GB ECC RAM erweitert. Bei dieser Konfiguration (4 x 4 TB Festplatten) wären jedoch 16 GB RAM oder mehr optimal. :roll:
http://constantin.glez.de/blog/2010/04/ ... erformance

Nun geht es endlich los. :)

1. RAM aufrüsten:
Die 4GB sind etwas knapp bemessen, wenn mit ZFS gearbeitet wird. Im Betrieb mit Software RAID ist es mehr als ausreichend. Da ich aber einen RAIDZ1 Pool betreiben möchte, habe ich wenigstens einen zweiten Riegel mit 4 GB ECC RAM eingebaut. Wie gesagt 16 GB wären besser, aber es ist auch eine Budgetfrage.

Der Einbau ist etwas fummelig, da der N54L doch ziemlich eng verbaut ist:

- Die vordere Türe öffnen
- Die beiden blauen Rändelschrauben lösen
- Das Mainboard mit Halterung ein Stück herausziehen und sämtliche störenden Kabel von der Hauptplatine abziehen, dann lässt sich das Mainboard komplett herausnehmen.
- RAM Riegel in den freien Steckplatz stecken
- Mainboard zurückschieben, alle Kabel wieder einstecken und verstauen
- Rändelschrauben wieder anziehen

Soweit, so gut, nun bietet sich an, gleich das BIOS mit einer modifizierten Version zu flashen (Achtung es kann sein dass durch diesen Eingriff in das System die Garantie erlischt, bitte nur als erfahrener Benutzer das BIOS mit einer nicht offiziellen Version flashen!)

2) BIOS flashen

Für den HP N54L gibt es ein modifiziertes BIOS, das einige versteckte Einstellungen freischaltet. Die bringt vor allem den Vorteil, dass der externe SATA Port und der freie interne SATA Port damit portmultiplying-fähig wird und somit auch externe SATA Boxen angeschlossen werden können, um das System zu erweitern. Wer das nicht benötigt, kann diesen Schritt überspringen.

- BIOS von HP herunterladen
http://h20566.www2.hp.com/portal/site/h ... stem%20ROM
- das gemoddete BIOS herunterladen, z.B. hier:
http://www.hardwareluxx.de/community/f1 ... st21503128
- mit dem HP-Tool und dem 1GB USB Stick einen bootfähigen BIOS-Flash Stick erstellen und das HPO41100113.ROM durch die heruntergeladene Datei ersetzen
- den HP mit dem eben erstellten Stick booten und das BIOS flashen

3) Festplatten einbauen
- die Schrauben für die Festplatten und der Schraubenzieher befinden sich in der vorderen Tür des HP
- die Quick-out Rahmen für die Platten öffnen und herausziehen
- Schrauben aus der Halterung an der Unterseite der Tür lösen und je vier Schrauben für eine Fesplatte verwenden
- Festplatte mit Rahmen in das Bay einsetzen
- Am besten gleich die Seriennumer der Platten auf die Rahmen schreiben :)

nun sollte bei WD Platten (zumindest bei WD green und den neueren WD red) das Headparking modifiziert werden, warum das nötig ist steht beispielsweise hier:
http://forums.freenas.org/index.php?thr ... exe.18171/

4) WDIDLE ausführen
- am einfachsten geht es mit der Ultimate Boot CD oder Hiren's Boot CD, bei beiden ist WDIDLE schon im Sorglospaket dabei
- UBCD herunterladen http://www.ultimatebootcd.com/
oder http://www.chip.de/downloads/Ultimate-B ... 10773.html
- mit z.B. Yumi einen UBCD USB Bootstick erstellen http://www.pendrivelinux.com/yumi-multi ... b-creator/
- die erste Platte in den HP einbauen
- mit dem UBCD Stick Booten (a)
- unter /HDD/Device Info and Management -> wdidle auswählen (b)
- wdidle starten die Befehle sind: (c)

Code: Select all

WDIDLE3 [/S[<Timer>]] [/D] [/R] [/?]
/S[<Timer>] Timereinstellung Default=8.0 (8.0 Sekunden).
/D Timer abschalten
/R Zeigt die aktuellen Einstellungen
/? Zeigt die Hilfe
- wdidle3 /R ausführen um die aktuellen Einstellungen anzuzeigen (d)
- dann wdidle /S300 eingeben um den Timer auf 5 Minuten zu setzen (mehr geht nicht) (e)
(- wdidle3 /d führt bei neueren Platten (EZRX) zu Problemen und ist nicht empfehlenswert) http://lime-technology.com/forum/index. ... ic=15554.0
- nochmal wdidle3 /R ausführen zu überprüfen, ob die Einstellung funktioniert hat. (f)
- Server ausschalten, die erste Platte wieder herausnehmen (!) und die nächste Platte einsetzen
- Die Schritte (a)-(f) für alle Platten wiederholen
- danach alle Platten wieder in den HP stecken.


5) Memtest durchführen
- wieder mit der UBCD booten
- unter /Memory -> den Memtest86 wählen
- "c" drücken und auch die ECC Testfunktion aktivieren
- Test über mehrere Stunden laufen lassen, am besten über Nacht

Wenn der Test fehlerfrei durchläuft geht es weiter mit

6) Die neuen Platten ausnullen (mittels dd)
- der Einfachheit halber benutze ich hier eine graphische Oberfläche, PartedMagic
- UBCD starten
- unter /Others -> Parted Magic wählen
- Erase Disk wählen
- erste Option (external dd write zeroes) wählen, alle Festpaltten auswählen und starten
- (oder über die Kommandozeile:

Code: Select all

dd if=/dev/zero of=/dev/sdX | x=derName der Festplatte)
, wer viel Zeit hat und sich gerne bewegen möchte kann es auch mit

Code: Select all

 dd if=/dev/mouse of=/dev/sdX
machen :lol:
- dd sollte bei allen Platten zwischen 110 - 130 MB/s laufen und dauert bei 4TB Platten ca 9 Stunden
- wenn dd fertig ist, die SMART Werte der Festplatten mittels "Disk Health" checken.

In diesem Schritt wird eventuell erkannt, ob die Platten in Ordnung sind, oder nicht. Hierbei wird der komplette Platz mit Nullen gefüllt und dabei festgestellt, ob defekte Sektoren vorhanden sind. Generell ist es sinnvoll neue Platten ein bisschen zu stressen, bevor wichtige Daten darauf kopiert werden. Überstehen die Platten die ersten Tage fehlerfrei, sind die Chancen hoch, dass sie auch jahrelang ohne Probleme laufen.

Der Schritt kann übersprungen werden, falls man dem Hersteller vertraut. 8-)

Ist alles in Ordnung, dann kann es endlich mit N4F losgehen :)

7) NAS4Free installieren und optimal einrichten
- NAS4FRee auf USB Stick installieren: viewtopic.php?f=93&t=6558
- den USB Stick in einen der USB Ports stecken
- Zweiten USB Stick (in meinem Fall den neuen Sandisk Cruzer Fit 8GB) in den internen USB Port des Servers stecken
- Booten
- Im Konsolenmenü nun mit [9] die Option „Install/Upgrade NAS4Free from LiveCD/LiveUSB“ wählen
- Danach "embedded installation on CF/USB" wählen, Quelllaufwerk und Ziellaufwerk (USB Stick) wählen
- Wenn die Installation fertig ist, zurück zum Konsolenmenü gehen und den Rechner herunterfahren
- Den LiveUSB Stick abziehen und den Rechner wieder einschalten, er sollte jetzt vom internen USB Stick booten
- Im Konsolenmenü "Configure Network IP Address" wählen und entweder mit DHCP oder manuell die IP-Adresse konfigurieren
- die angezeigte IP Adresse merken oder aufschreiben
- An einem anderen Rechner im Netzwerk die IP-Adresse des NAS im Browser eingeben. Anmeldung als Benutzer "admin" mit dem Kennwort "nas4free".
- Unter System|General Setup kann der NTP aktiviert werden, um die Zeit abzugleichen
- Unter System|Advanced den Power Daemon aktivieren und dann den Power Mode auf "adaptive" (geringerer Stromverbrauch) oder "high adaptive" (höherer Stromverbrauch) stellen
- unter Services|SSH die Secure Shell aktivieren und Haken bei "Permit root login" setzen
- Disks|Management auf "Import Disks" drücken, kurz darauf sollten die Festplatten erscheinen
- Auf den Schraubenschlüssel links in der Liste drücken und jede Platte konfigurieren (z.B. Spindown festlegen und SMART aktivieren), anschliessend auf "Apply Changes" drücken.
- nun müssen die Platten formatiert werden, also unter Disks|Format jeweils die Platte und das Dateisystem auswählen, (ZFS storage pool device).
- Sind alle Platten formatiert, unter Disks|ZFS|Pools|Virtual device auf das "+" drücken und ein vdev erstellen: Name vergeben (zB HPvdev), Typ wählen (single-parity RAID-Z), Festplatten wählen (in diesem Fall alle), Haken bei "advanced format" setzen (!!), falls 4k Laufwerke verwendet werden und "add" drücken.
- Nun unter Disks|ZFS|Pools|Management auf das "+" drücken, einen Namen vergeben (z.B. HP-Pool), das vdev auswählen und auf "add" drücken"
- Jetzt kann das erste Dataset angelegt werden, dazu unter Disks|ZFS|Datasets|Dataset das "+" drücken, einen Namen vergeben (z.B. HP-Backup), weitere Einstellungen:
  • Access Time (atime): off
    Extended attributes: Haken weg
Den Rest auf den Defaultwerten belassen
- Jetzt noch einen Samba-Share einrichten, unter Services|CIFS/SMB|Settings, enable anhaken
- Folgende Werte sollten gesetzt werden:
Max Protocol: SMB2
Workgroup: Name der Workgroup/Domäne
Local Master Browser: Yes (oder No) ;)
Time server: No
Guest account: ftp
Map to guest: Bad User
Large read/write: Haken
EA support: kein haken
Store DOS attributes: kein Haken
Asynchronous I/O (AIO): Haken
Auxiliary parameters:

Code: Select all

getwd cache = yes
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE
- "Save and Restart drücken"
- Nur noch die Share hinzufügen, unter Services|CIFS/SMB|Shares das "+" drücken, Namen vergeben und unter "Path" das erstellte Dataset auswählen und auf "add" drücken

Nun haben wir ein funktionstüchtiges NAS und eine Netzwerkfreigabe eingerichtet und kommen zu einigen kosmetischen Änderungen:

8) Kosmetik & Tuning
- .nops entfernen. Mit Putty oder über die KOnsole in die Shell einloggen
- mit

Code: Select all

zpool status
den Pool aufrufen
- mit

Code: Select all

zpool export Poolname
den Pool exportieren
- dann

Code: Select all

gnop destroy ada0.nop
eingeben und für alle Platten (ada1, ada2, ada3) wiederholen
- mit

Code: Select all

zpool import Poolname
, den Pool wieder importieren
- mit

Code: Select all

zdb |grep ashift
das Alignment überprüfen. Bei 4k Platten sollte "ashift=12" angezeigt werden

- Zum Tuning für 8 GB RAM noch folgende Werte unter System|Advanced|loader.conf jeweils einzeln mit dem "+" Zeichen eingeben:

Code: Select all

vfs.zfs.arc_max  	6144M 
vfs.zfs.arc_min  	6144M  
vfs.zfs.no_write_throttle  	0  
vfs.zfs.prefetch_disable  	0  
vfs.zfs.txg.timeout  	5  	  
vfs.zfs.vdev.max_pending  	10 
vfs.zfs.vdev.min_pending  	4  
vfs.zfs.write_limit_override  	0  
vm.kmem_size  	7168M
Diese Tuningeinstellungen habe ich zum grossen Teil von einem anderen, sehr guten Thread übernommen, hier sind auch noch Parameter für andere Speicherkonfigurationen gelistet.
viewtopic.php?f=29&t=5787#p32277

Das war's viel Spaß mit dem NAS.

(Der Artikel is noch in der Entstehung und wird bei Gelegenheit erweitert und korrigiert, Fehler und Anregungen dazu per PN an mich - Stand 31. Juli Anno 2014, 17:15 Uhr)