ThorstenS hat mich gefragt ob ich nicht mein SnapRaid server vorstelle, da es nicht so bekannt ist.
Das ist das Endresultat. Unten links der kleine weise Kasten.
Alle find damit an das mein alter Server immer Platz Probleme hatte, laut war und auch optisch nicht gerade ein Prachtstueck.
Was neues sollte her mit folgeden Anforderungen:
- Nach und nach erweiterbar mit neuen Festplatten (Da faellt ZFS schonmal weg)
- Relative leise
- Mindestens eine Festplatte sollte ausfallen koennen ohne das ich Daten verliere.
- Optisch in die Wohnung passen
- Multimedia wiedergabe (h264 und h265 4k Video Beschleunigung) Mein raspberry pi 3 ist mir zu langsam
Am ende habe ich mich fuer SnapRaid entschieden.
- Eins bis Sechs Parity Platten moeglich.
- Es muss immer nur die Platte drehen auf die gerade zugegriffen wird
- Sollte es doch mal mehrere Festplatten ausfallen als man redundans hat, sind nicht alle Daten weg (Zwei defekte Platten bei MDADM Raid5 = alle Daten weg)
- Mischen von verschiedenen Festplatten groessen. Die Parity Platten sollte dabei allerdings mindestens so gross sein wie die groesste Daten Platte.
- Mischen von verschiedenen Filesystems.
- Funktioniert auch wenn auf den Festplatten schon Daten vorhanden sind.
Ich habe mir also ein Intel Pentium und 3x 6TB WD Red Platten gekauft. Dazu hatte ich noch eine alte 6TB Platte.
Details und Bilder gibt es hier: viewtopic.php?f=15&t=160034&start=60#p1132887 Noch mehr Bider: https://imgur.com/a/XhMyl
Damit ich spaeter mehr Freiheit habe ich mich fuer LVM entschieden. Und XFS als Datensystem.
Code: Alles auswählen
sudo parted /dev/sdX
mklabel gpt
mkpart primary 2048s 100%
align-check optimal 1
sudo vgcreate redXXX /dev/sdX1
sudo lvcreate --name redXXXMain -l 100%FREE redXXX
sudo mkfs.xfs /dev/redXXX/redXXXMain
sudo mkdir /media/redXXXMain
sudo chown -R carlos:carlos /media/redXXXMain
MergerFS
Wenn man nur SnapRaid benutzt hat man immer noch nur die einzelnen mountpoints der Festplatten. Ich will aber eins haben mit allen Daten von allen Festplatten. Dazu benutzte ich MergerFS.
Dazu habe ich folgendes in der /etc/fstab stehen
/media/redOneMain:/media/redTwoMain:/media/redThreeMain /media/raid fuse.mergerfs category.create=eplfs,minfreespace=200G,direct_io,defaults,allow_other,fsname=raid,use_ino 0 0
Das mounted alle meine drei Festplatten nach /media/raid. Siehst erstmal komplex aus, sagt aber nur das mindestens 200G pro Festplatte Freigehalten werden soll und die eplfs Policy angewendet werden soll. Wenn neue Daten geschrieben werden, versucht mergerFs die Festplatte zu nehmen mit am wenigsten freien Speicher, aber mindestens 200G frei wo es den Pfad schon gibt. Speichere ich also etwas nach /media/raid/Filme/bla.mkv guckt mergerFs ob es schon ein Ordner Filme auf einen meiner Festplatten gibt.
Ergebnis:
Code: Alles auswählen
raid 16T 10T 5.9T 64% /media/raid
/dev/mapper/redThree-redThreeMain 4.9T 763G 4.2T 16% /media/redThreeMain
/dev/mapper/greenParity-Main 5.5T 5.3T 174G 97% /media/parity
/dev/mapper/redOne-redOneMain 5.5T 5.3T 174G 97% /media/redOneMain
/dev/mapper/redTwo-redTwoMain 5.5T 4.0T 1.6T 73% /media/redTwoMain
SnapRaid Sync und SystemD
Ich habe ein Torrent Klient am laufen. Der soll keine Daten speicher wenn nachts um 3 Uhr Snapraid Sync laeuft.
Das war etwas schwierig, konnte mit Hilfe des Forums aber geloest werden. Alle systemd scripte gibt es hier: https://gist.github.com/lord-carlos/789 ... 40571a36f4
Das snapraid script habe ich auf zackreed.me gefunden. Nichts um 0300 werden dann 5% meiner Daten "gescrubbed", also mit der Parity verglichen. Dies sollte man auch gerne bei MDADM raid 5/6 machen.
Am ende bekommt man dann eine nette Zusammenfassung via mail geschickt. Neue Daten, geloeschte Daten, Fehler etc.
SSD cache
Ich hatte noch ne SSD rumliegen. Leider unterstuetzt MergerFS kein SSD Cache. Man muss also via LVM jede einzelne Festplatte ein Cache geben wenn man das will. Uncool. Aber ich wollte es einfach mal Testen.
Code: Alles auswählen
sudo vgextend redTwo /dev/sde2
sudo lvcreate --type cache -L 45G -n redTwoCachePool --cachemode writeback redTwo/redTwoMain /dev/sde2
Die Idee ist das z.B. Ubuntu torrent die fast immer jemand runterlaedt vom Cache gelesen werden, und nicht von der Festplatte. Ist aber mehr Spielerei. In ~6 Monaten habe ich ca. 1TB an Linux torrents hochgeladen.
Dazu habe ich meinen Torrent Klienten gesagt er soll mal bitte mehr Ram benutzten. Hat so auf ~500mb rumgegammelt, jetzt benutzt er fein fein ~4G.
____________
Habe das jetzt ~6 Monate im Einsatz. Momentan finde ich noch das ich die richtige Entscheidung getroffen habe.
Wenn man von Anfang an gleich alle Festplatten kaufen kann, dann ist ZFS vielleicht die bessere Wahl.
Auf Raten von breakthewall und anderen habe ich den Server weg von Subwoofer in einem anderen Raum verlegt. Da Festplatten Irgendwie nicht leise zu bekommen sind ist es auch besser so fuer mich