Backupserver mit FreeBSD und ZFS

tk1908

Member
Hallihallo Leute,

ich habe am Sonntag meinen Backupserver vollendet:

Code:
backup@ironcrane:~ % uname -a
FreeBSD ironcrane 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014  root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
backup@ironcrane:~ % df -h
Filesystem  Size Used  Avail Capacity Mounted on
/dev/ada6p2  27G 1.9G  23G  8% /
devfs 1.0K 1.0K 0B  100% /dev
archive  20T 308K  20T  0% /archive
backup@ironcrane:~ %

Jetzt ergeben sich hierzu allerdings 2 Fragen:

1. archive ist ein RAIDZ2-Pool bestehend aus 8x3,82TB. In der obigen Übersicht, fehlen 2,92TB bei der Gesamtgröße. Warum? Theoretisch müsste ich ja 6x3,82TB (RAIDZ2) als Nettospeicherplatz zur Verfügung haben.

2. Ich bekomme ums Verrecken keine Umlaute in der IPMI-Konsole hin. Per SSH gehen Umlaute, allerdings per normaler Konsole nicht. Als charset ist AFAIK UTF-8 eingestellt. Irgendeine Idee, was ich vergessen haben könnte?



Hardware ist folgende:
CPU: Intel Atom C2550
RAM: 16GB DDR3 ECC-RAM
Mainboard: Asrock Rack C2550D4I
HDDs: 8x WD Red 4TB als RAIDZ2




Logs folgen heute Abend.


Vielen Dank schon mal im Vorraus.

LG tk1908
 
2. Ich bekomme ums Verrecken keine Umlaute in der IPMI-Konsole hin. Per SSH gehen Umlaute, allerdings per normaler Konsole nicht. Als charset ist AFAIK UTF-8 eingestellt.
Die Console von FreeBSD kann noch kein UTF-8. Du kannst aber auf die neue Version umstellen. Diese ist aber erst bei FreeBSD 10.1 dabei! Folgendes in die /boot/loader.conf schreiben und rebooten:
Code:
# --- vt utf-8
kern.vty="vt"
 
Die Console von FreeBSD kann noch kein UTF-8. Du kannst aber auf die neue Version umstellen. Diese ist aber erst bei FreeBSD 10.1 dabei! Folgendes in die /boot/loader.conf schreiben und rebooten:
Code:
# --- vt utf-8
kern.vty="vt"

Danke für die Info. Ist jetzt nicht unbedingt wichtig. Wichtiger wäre mir eigentlich Punkt 1.

Mit neue Version meinst du FreeBSD 10.1?
 
Ich würde davon ausgehen, dass das Reserve oder Platz für Metadaten sind.
Evtl blöde Frage, aber ist sind die Metadaten = die Paritätsdaten? Weil ja 8x3,82TB verbaut sind, also 30,56TB davon gehen 7,64TB für Parität ab, es müssten also 22,92 TB netto verfügbar sein.

Versteht mich bitte nicht falsch, ich will keine Korinten kacken, mich wundert es halt. Zumal ja auch 20TB absolut ausreichend sind.
 
Nein, das hat nichts mit Redundanz zu tun. Aber du musst ja auch irgendwo Inodes unterbringen.
 
ZFS benötigt ja auch noch Speicher für seine Checksummen und der ganze Dateibaum muss ja auch irgendwo hinterlegt werden ;)

Weiterhin nimm nicht df um den freien Speicher zu ermitteln, sondern "zfs list".
 
Ich würde auch mal die Updates einspielen und gleich auf 10.1 gehen ;) Denn ansonsten würde ich ihn nicht als vollendet, sondern veraltet bezeichnen :D
 
Es kommt schon ungefähr hin: 8*3,82T=30,56T roher Speicherplatz. Davon gehen erstmal 3,3% ab. Da ZFS ein Copy on Write Dateisystem ist, braucht es für jede Operation freien Speicher zum Schreiben. Um das sicherzustellen, sind 3,3% reserviert. 100% leer bedeutet also in Wirklichkeit 96,7% leer und 3,3% belegt. Du hast also 30,56T*0,03=1,00848T Verlust. Dann zwei Platten abziehen, also 2*3,82T=7,64T. Der tatsächlich nutzbare Speicherplatz beträgt somit 30,56T-1,00848T-7,64T=21,91152T. Davon gehen dann aber noch die Metadaten ab. Da ZFS wie die meisten modernen Dateisysteme dynamische Metadatenallokationen nutzt, ist es schwer zu berechnen. Über den Daumen kann aber noch mal 3 bis 5 Prozent annehmen.
 
Code:
backup@ironcrane:~ % zpool list
NAME      SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
archive    29T   600G  28,4T     2%  1.00x  ONLINE  -
backup@ironcrane:~ %

Hier sagt er intressanterweise: 28,4TB, was stimmt denn nun?
 
Ich weiß, es ist verwirrend:
- 'du' gibt den real belegten Speicher von Daten aus, also nach Kompression und allem.
- 'df' gibt an sich korrekte Werte aus, beachtete aber die Zusammenhänge zwischen den Datasets nicht.
- 'zfs list' gibt ebenfalls korrekte Werte aus, bricht sie aber sauber auf die Zusammenhänge zwischen den Datasets herunter.
- 'zpool list' gibt den freien Speicherplatz im Pool aus, ohne Redundanzen jeglicher Art zu beachten.
 
Zurück
Oben