NAS - Fertig vs. Eigenbau? - Seite 2

Seite 2 von 2 - Forum: Desktops auf overclockers.at

URL: https://www.overclockers.at/desktops/nas-fertig-vs-eigenbau_245893/page_2 - zur Vollversion wechseln!


chriswahl schrieb am 06.04.2016 um 13:05

HP Microserver geht. Raspi 2 hat kein GBLAN, USB3 und DVI/VGA.

Die Archive hdd's funktionieren scheinbar mit raid 0 und 1, jedoch nicht mit 5 und 6 da sie andauernd aus dem verbund fliegen. gibt aber auch bsp wo das funktioniert. Probleme machen speziell Rebuild and Erstbefüllung mit Datenmengen im TB Bereich.

Gefunden habe ich das mit intensiver google suche auf diversen englischsprachigen webseiten.


Master99 schrieb am 06.04.2016 um 14:22

Zitat von chriswahl
HP Microserver geht. Raspi 2 hat kein GBLAN, USB3 und DVI/VGA.

Die Archive hdd's funktionieren scheinbar mit raid 0 und 1, jedoch nicht mit 5 und 6 da sie andauernd aus dem verbund fliegen. gibt aber auch bsp wo das funktioniert. Probleme machen speziell Rebuild and Erstbefüllung mit Datenmengen im TB Bereich.

Gefunden habe ich das mit intensiver google suche auf diversen englischsprachigen webseiten.

der raspi war ja nicht als empfehlung gedacht sondern als erläuterung das ein dual-core celeron wohl mehr als genug power haben sollte für dein aufgabengebiet.

und nochmal: 5 wd red 8tb ergeben die selbe netto-kapazität von 32TB und kosten weniger als 8x Seagate Archive v2. Also wieso sollt man sich das dann antun mit 4 separaten raid1 und diesen fragwürdigen platten?

strom, aufrüsttechnisch und ausfallsicherheit (im sinne von 5 vs 8 platten) ist alles besser. und wenn du 2 weitere platten hinzukaufst später hättest 48TB wohingegen ein 5ter Raid1 verbund es 'nur' auf 40TB schafft. und das bei 7 statt 12 platten!


Valera schrieb am 06.04.2016 um 21:23


Anleitung (the Debian way..):

  1. So stromsparende Hardware wie möglich
  2. So viel ECC RAM in GB wie man TB Speicher zur Verfügung stellen will
  3. Debian oder anderes Linux welches zfsonlinux unterstützt.
  4. USB Stick herrichten --> je nachdem aus welchen OS man das macht.
  5. ZFS Support installieren --> Siehe: http://zfsonlinux.org
  6. ZFS bei Systemstart mounten --> Siehe Anleitung für das gewählte OS
  7. ZFS einrichten: Platten mit realen 4K (also ZB auch emulierte 512): Use "zpool create -o ashift=12 Siehe https://pthree.org/2012/12/13/zfs-a...es-and-caveats/
    Beispiel um aus 5 Platten ein raidz Pool mit dem Namen storage zu machen
    Code:
    zpool create -f -o ashift=12 storage raidz sda sdb sdc sdd sdf
  8. Dateisystem mit Namen dataset1 im Pool storage erstellen:
    Code:
    zfs create storage/dataset1 
  9. ZFS Tuning: Siehe http://unicolet.blogspot.co.at/2013...s-on-linux.html
    Code:
    zfs set xattr=sa storage
    zfs set atime=off storage
  10. Kompression aktivieren
    Code:
    zfs set compression=lz4 storage
    ODER geht auch einzeln für die Datasets
    Code:
    zfs set compression=lz4 storage/dataset1
    zfs set compression=lz4 storage/dataset2
     ...
  11. ZFS Scrub: Damit werden die Prüfsummen aller gespeicherten Dateien im Pool gecheckt und bei einem redundanten Pool evtl vorhandene defekte Dateien automatisch ersetzt:
    manuell starten
    Code:
    zpool scrub storage
    scrub per cronjob starten (der Debian way..)
    Code:
    0 2 * * 1 /sbin/zpool scrub storage
  12. ZFS Platten "schlafen" legen
    Siehe http://rudd-o.com/linux-and-free-so...-zfs-pool-sleep
    Dafür müssen alle Zugriffe auf die Platten so gering wie möglich gehalten werden. Also cron jobs checken, diverse daemons etc.

    Der Befehl schaltet die Access time updates für den Pool inkl. aller Unterpools ab:
    zfs set atime=off storage (siehe ZFS Tuning)

    Man kann man sich mit find / -mtime -1 alle Dateien anzeigen lassen, auf die die letzten 24 Stunden zugegriffen wurde.

    In der Datei /etc/rc.local kann man Befehle einfügen, die beim Systemstart ausgeführt werden.
    Nach 2 Stunden nixtun, sollen die Platten abschalten:
    hdparm -B255 -S244 /dev/sda

    -B255 ... schaltet Advanced Power Management ab
    -S244 ... setzt spindown auf 2 Stunden (241.. 30min, 242.. 1Std, 243.. 1,5Std, 244.. 2Std)
    siehe man hdparm
  13. ZFS Auto Snapshot
    Skript von https://github.com/zfsonlinux/zfs-auto-snapshot downloaden.
    Das Skript zfs-auto-snapshot.sh nach /usr/local/sbin kopieren

    root nimmt es in Besitz:
    Code:
    chown root:root zfs-auto-snapshot.sh
    Ausführbar machen
    Code:
    chmod 755 zfs-auto-snapshot.sh

    in der zfs-auto-snapshot.sh das Prefix ändern falls gewünscht:
    Code:
    opt_prefix='backup'

    Dann die Skripte in das jeweilige Verzeichnis kopieren.
    Achtung: In den Dateinamen darf nur – und _ vorkommen!
    zfs-auto-snapshot.cron.hourly --> /etc/cron/zfs-auto-snapshot-hourly
    zfs-auto-snapshot.cron.daily --> /etc/cron.daily/zfs-auto-snapshot-daily
    zfs-auto-snapshot.cron.weekly --> /etc/cron.weekly/zfs-auto-snapshot-weekly

    Dann mit chown root:root den Besitz übernehmen und mit chmod 755 ausführbar machen.
    Den Befehlsaufruf mit dem Pfad zu zfs-auto-snapshot.sh eintragen. Das sieht dann zB. so aus:
    Code:
    #!/bin/sh
    exec /usr/local/sbin/zfs-auto-snapshot.sh --quiet --syslog --label=daily --keep=7 //
    Achtung: Wenn man stündlich Snapshots machen läßt, dann ist es sinnlos, die Platten ins Standby zu schicken. ;)

    Snapshots auflisten
    Code:
    zfs list -t snapshot

    ALLE Snapshots löschen:
    Code:
    zfs list -H -o name -t snapshot | xargs -n1 zfs destroy
  14. Mit Samba die Snapshots als Windows "Vorgängerversionen" nutzen
    in smb.conf [global] folgendes eintragen:
    Code:
    vfs objects = shadow_copy2
    shadow: snapdir = .zfs/snapshot
    shadow: sort = desc
    shadow: format = backup_daily-%Y-%m-%dT-%H%M
  15. "Manuell" auf snapshots zugreifen
    \\servername\sharename\.zfs\snapshot
  16. SSH Verbindung einrichten
  17. ...uswusf..
Bei Bedarf kann ich eine ausführliche Anleitung für Debian schreiben.


daisho schrieb am 07.04.2016 um 08:29

Ich habe im Moment auch ein Raid-Z2 laufen auf meinem ESXi, letztens habe ich das normale PC-Gehäuse auf ein Inter-Tech 4U-4316L aufgerüstet um mehr Platten zu beherbergen - und dann habe ich einen kleinen Schönheitsfehler bei ZFS entdeckt.

Man kann ein Raid-Zx Array nicht erweitern, man kann nur weitere Raids dem Pool hinzufügen.
Sprich ich kann jetzt zum bestehenden 8-Platten-Array nur ein weiteres 8-Platten-Array hinzufügen damit es quasi ein RAID-Z20 (Raid 0 aus zwei Raid-Z2) wird und würde damit einen weiteren potentiellen Point of Failure kreieren.

Aktuell wäre das Hauptproblem wenn mehr als 2 Platten gleichzeitig ausfallen = tot des gesamten Arrays
Wenn ich den Pool um ein zweites Raid-Z2 erweitere, kann es passieren das BEIDE Raid-Z2s über den Jordan gehen sollte EINER der beiden Arrays mehr als zwei Plattenfehler haben.

Gefällt mir nicht sonderlich, Problem ist auch ... da die 8 alten Platten bereits im Pool sind kann ich die auch nicht einfach so entfernen, bzw. habe ich nirgendwo anders den Platz um die Daten mal schnell "zwischen zu lagern" um ein neues Array mit 16 Platten zu erstellen.


MaxMax schrieb am 07.04.2016 um 09:10

ja, deswegen halt ich von den ganzen raid geschichten gar nix mehr. lieber sowas wie drivepool oder unRAID. da kannste die platten trotz "raid failures" noch immer einzeln irgendwo anhängen und dir die daten runterholen...und expandable ist das array auch jederzeit.


Denne schrieb am 07.04.2016 um 19:19

MergerFS + SnapRaid wäre wohl atm meine Wahl, wenn ich mir nen neues NAS aufsetzen würde.


Valera schrieb am 07.04.2016 um 23:53

Zitat
Man kann ein Raid-Zx Array nicht erweitern, man kann nur weitere Raids dem Pool hinzufügen.
Ja und nein. Du kannst die Platten sukzessive durch größere ersetzen und dann den größeren Platz nutzen. Das Feature muß aber VOR reinhängen der zusätzlichen Platten aktiviert werden:
Code:
zpool set autoexpand=on storage
Unter FreeBSD 9.2 geht das auch nachträglich mit
Code:
 zpool online -e storage ad1
für jede Platte ausgeführt. Hab ich aber nicht probiert nur gelesen.
Du kannst nicht 2 Platten zu den 8 in dem gleichen raidz2 dazuhängen, das ist richtig.
Du kannst aber jederzeit ein BELIEBIGES Array in deinen Pool reinhängen. Beispiel: Du hast ein raidz2 aus 8 Stk 4TB Disks und hängst jetzt ein raid1 aus 2 Stk 6TB Disks dazu. Das geht. Wird aber nicht empfohlen, weil das dann schnell verwirrend werden kann. (Welche Platte hat jetzt zu welchen Array in welcher Konfiguration gehört??) Außerdem könnte ich mir vorstellen, dass ZFS dann evtl Schwierigkeiten hat die Daten gleichmäßig aufzuteilen.
Wie auch immer, die Daten jedes zusätzlichen Arrays werden gestriped. Dh. fällt eines der Arrays komplett aus, ist der ganze Pool hin.
Das ist aber grundsätzlich bei allen Raid Systemen so. Das hat nix mit Nachteilen von ZFS zu tun.
Das Problem mit den gestripten raidz2 verstehe ich sowieso nicht. Wenn mehr als 2 Platten über den Jordan gehen ist dein Pool hin .. egal ob in dem jetzigen Zustand oder dann wenn du ein, zwei, viele zusätzliches raidz2 Array dazu addierst. Du erhöhst aber dadurch die Performance da alle nested Arrays grundsätzlich gestriped werden.
Aber klar: Perfekt wäre es wenn ich bestehende Arrays in meinen Pool erweitern könnte, aber was ist schon perfekt? Mir persönlich geht ein anderes Feature von ZFS bei der OpenSource Version viel mehr ab: Verschlüsselung.

Wer jetzt ZFS, ReFS oder Btrfs mit Sachen wie unraid etc vergleicht hat den Sinn hinter der 5. Filesystem Generation nicht verstanden. Die bieten Features die es woanderes garnicht gibt die aber für die Integrität und Sicherheit der Daten imho essentiell sind wie eben Datenintegritätsprüfung über Prüfsummen, Copy on Write, Snapshots, ... uswusf

Nur meine persönliche Meinung.


TheHackman schrieb am 08.04.2016 um 07:36

Das heißt aber ich muss bei einem 8 disk raidz2 setup 8x rebuilden? oder wie verhält sich das bei raidz2 mit 2 paritäts-disks? Weil meistens sagt man ja dass der Rebuild immer eine ungute sache ist für die Platten (hohe beanspruchung, hohe fehleranfälligkeit).


daisho schrieb am 08.04.2016 um 09:22

Das man ein Raid-Z nicht um Platten erweitern kann ist für mich schon eine Designschwäche, klipp und klar.

Zitat von downhillschrott
Das Problem mit den gestripten raidz2 verstehe ich sowieso nicht. Wenn mehr als 2 Platten über den Jordan gehen ist dein Pool hin .. egal ob in dem jetzigen Zustand oder dann wenn du ein, zwei, viele zusätzliches raidz2 Array dazu addierst. Du erhöhst aber dadurch die Performance da alle nested Arrays grundsätzlich gestriped werden.
Naja, es ist ein Unterschied ob ich jetzt 2x RAIDZ2 (2x8 HDDs) einsetze oder z.B. 1x RAIDZ3 (1x16 HDDs).

Bei 2x RAIDZ2 verliere ich Platz UND schaffe eine mögliche zusätzliche Fehlerquelle, design-technisch nicht gerade das Beste.
Ich hätte lieber mein vorhandenes Raid (1x8 HDDs) erweitert (auf 1x16 HDDs). Performance ist mir nicht wichtig, da sie locker ausreicht um GBit LAN zu versorgen - mehr bringt nichts.

Theoretisch könnte ich einen neuen POOL erstellen (2x8 HDDs nicht striped), aber das sind dann wieder zwei separate Adressen/Folder ... meh ;)



Zitat von TheHackman
Das heißt aber ich muss bei einem 8 disk raidz2 setup 8x rebuilden? oder wie verhält sich das bei raidz2 mit 2 paritäts-disks? Weil meistens sagt man ja dass der Rebuild immer eine ungute sache ist für die Platten (hohe beanspruchung, hohe fehleranfälligkeit).
Ich musste es zum Glück noch nie machen, aber ich nehme an es wird wie bei einem normalen RAID5/6 sein. Performance wird schlechter sein mit ausgefallenen Platten und man muss die defekten austauschen und dann wird rebuilded.


Crash Override schrieb am 08.04.2016 um 09:25

Du must zwar 8x "rebuilden", aber da es nicht auf Grund eines Ausfalls ist steigt auch nicht dei Ausfallswarscheinlichkeit. Wenn du das mit zfs replace /alte/disk /neue/disk machst, wird auch erst nach dem umkopieren dei alte Platte aus dem Pool entfernt, also fährst du auch nicht mit verminderter Parität.


Valera schrieb am 09.04.2016 um 20:46

Zum erweitern bzw 8x rebuild hat Crash Override schon alles gesagt.

Zitat
Bei 2x RAIDZ2 verliere ich Platz UND schaffe eine mögliche zusätzliche Fehlerquelle

Ersteres ok. Verglichen mit einem raidz3 was bei 16 HDs wohl nicht schlecht wäre, muß man bei 2x striped raidz2 - entspricht RAID60 - eine Platte mehr einbauen.

Mögliche zusätzliche Fehlerquelle sehe ich nicht so.
1. Verglichen mit deinem jetzigen setup bist du auf keinen Fall schlechter dran.
2. Verglichen mit einem raidz3: Bei einem raidz3 dürfen 3 beliebige Platten ausfallen. Bei einem striped raidz2 dürfen 4 Platten ausfallen davon 2 beliebige pro raidz2 stripe.

Also ich hätte da keine Bedenken das Pool um ein weiteres raidz2 zu erweitern, im Gegenteil: Ich würde diese Konstruktion einem großen raidz3 sogar von Haus aus vorziehen.

Aber das ist nur meine persönliche Meinung.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025