My Universe Logo

My Universe Blog » Entries Tagged as ZFS

FreeBSD für paranoide Nerds

Posted by Jesco Freund at March 6, 2011 12:24 p.m.

Für chronisch paranoide FreeBSD-Liebhaber (wie mich ;-)) habe ich eine Anleitung zusammengeschrieben, wie sich ein komplett verschlüsseltes System mit USB-„Zündschlüssel“ realisieren lässt. Als technisches Leckerli kommt anstelle von UFS auf Standard-Partitionen ZFS auf GPT zum Einsatz. Damit kann man die Power von FreeBSD 8.2 mal so richtig ausfahren…

Link: FreeBSD verschlüsselt auf ZFS installieren

No comments | Defined tags for this entry: FreeBSD, privacy, security, ZFS

ZFS auf den Zahn gefühlt

Posted by Jesco Freund at Jan. 16, 2011 1:03 p.m.

/assets/user/jfreund/img/png/zfs_benchmark.png

Im aktuelle Linux-Magazin ist ein Artikel über ZFS unter Linux abgedruckt. Unter anderem zeigt besagter Artikel auch einen Benchmark zwischen ZFS unter OpenSolaris, FreeBSD und Linux (in unterschiedlichen Spielarten). Das wiederum hat mich auf die Idee gebracht, den Zpool (vom Typ mirror, aufgebaut aus zwei Slices) in meinem Server mal etwas zu quälen.

Herausgekommen sind dabei die Werte in der nebenstehenden Grafik. Die angezeigten Werte sind Mittelwerte aus 3 Meßzyklen (ursprünglich hatte ich 4 Messungen, aber eine lieferte sehr stark abweichende Werte, so dass ich diese Messung verworfen habe). Die blaß dargestellten Werte sind Vergleichswerte von meinem PC zu Hause – um Längen schwächere Hardware (ein alter Netburst PIV anstelle eines modernen Core 2 Quad, 2 statt 8 GB RAM, SATA-1 statt SATA-2), außerdem dm-raid (RAID1) mit dm-crypt (Twofish im XTS-Modus) und LVM2 übereinandergestapelt und anschließend mit ext4 formatiert.

Trotz betagter Hardware und software-seitigem Quälfaktor hält meine alte Gurke bei den Schreibwerten ganz locker mit – hier scheint ZFS etwas schwach auf der Brust zu sein (jedenfalls hätte ich durch dm-crypt deutlichere Leistungseinbußen erwartet). Die Werte für's Lesen erfreuen mich jedoch gleich wieder; hier spielt ZFS seine Überlegenheit deutlich aus. Auf dem Server sind tendenziell mehr lesende Operationen zu erwarten (gerade MySQL liest bei mir sehr viel, von den ca. 3.000 Queries pro Stunde sind nur ca. 20 schreibend) – das fällt also wesentlich stärker ins Gewicht.

Trotzdem ist die Schreibperformance nicht zufrieden stellend, zumal in den Benchmarks des Linux-Magazins bei ähnlicher Hardware fast doppelt so hohe Schreibwerte gemessen wurden. Das muss ich mir also bei Gelegenheit mal genauer ansehen – irgendwo muss es da ja einen Flaschenhals geben.

No comments | Defined tags for this entry: FreeBSD, Linux, ZFS

Traurige Nachricht zu OpenSolaris

Posted by Jesco Freund at Aug. 13, 2010 10:39 p.m.

Im Netz kursiert ein geleaktes Schreiben (Echtheit nicht bestätigt), in dem Oracle das Ende von OpenSolaris erklärt. Künftig soll es wohl – analog zur Oracle Database – eine Express-Version geben, die zwar kostenfrei, aber nicht Open Source ist. Ob diese auch im Funktionsumfang gegenüber dem für nächstes Jahr angekündigten Solaris 11 abgespeckt sein wird, war dem Schreiben nicht zu entnehmen. Dazu passt eine Diskussion im OpenSolaris-Forum.

Das Ende von OpenSolaris zieht weitaus schwerere Konsequenzen nach sich, als vielleicht auf den ersten Blick zu vermuten ist. Einige Technologien, die im Rahmen des OpenSolaris-Projekts entwickelt wurden, sind auch in andere Open Source Projekte eingeflossen. Zu den prominenteren Vertretern gehören dabei ZFS und DTrace, die beispielsweise in FreeBSD eingeflossen sind.

Durch das aktuelle Verhalten von Oracle (monatelanges Schweigen, seltsames Gebahren gegenüber dem OpenSolaris-OGB und zuletzt die Patenttrollerei) werden diese Technologien zum Risiko für FreeBSD. Zwar dürfen ZFS und DTrace rein lizenzrechtlich problemlos als Bestandteil des FreeBSD-Kernels verteilt werden. Jedoch kann wohl derzeit nicht ausgeschlossen werden, dass Oracle diese beiden Produkte als Closed Source weiterentwickelt und vom derzeit verfügbaren Quellcode ausgehende Forks mit Patentklagen bedrohen wird.

Auch wage ich zu bezweifeln, dass außerhalb von OpenSolaris und ohne Unterstützung durch ehemals Sun eine effektive Weiterentwicklung von ZFS und DTrace möglich sein wird – dazu fehlt schlicht die Manpower. ZFS beispielsweise ist bei FreeBSD eine One Man Show – für die Portierung gerade noch ausreichend, aber Weiterentwicklung wird so nicht funktionieren. Da tröstet es auch wenig, dass vor gerade mal 10 Tagen mit dem Illumos Project der Versuch gestartet wurde, ein wirklich freies OpenSolaris zu entwickeln. Auch dieser Trupp ist nicht gerade üppig mit Manpower ausgestattet, und wenn Oracle mit der Patentkeule winkt, sind die Lichter da schneller wieder aus, als dort die Sonne aufgehen kann.

Irgendwie war ja soetwas zu befürchten – Oracle ist in der Open Source Welt nicht wirklich verankert, und Larry Ellison hat schon immer keinen Zweifel daran gelassen, dass es in allererster Linies um's Geldverdienen geht. Erschreckend ist nur, dass OpenSolaris nicht die letzten Open Source Projekte sind, die durch die Sun-Übernahme in ihrer Existenz bedroht sind. Mal gucken, wen die sich als nächstes zur Terminierung vornehmen – MySQL, oder doch erst NetBeans?

No comments | Defined tags for this entry: FreeBSD, OpenSolaris, Oracle, Sun, ZFS

Backups von ZFS Datasets

Posted by Jesco Freund at March 27, 2010 11:46 a.m.

Alle meine Jails und ihre Nutzdaten residieren auf ZFS Datasets. Dank ZFS Snapshots kann man sie so relativ leicht sichern, ohne den Betrieb des Servers dabei zu stören. Allerdings braucht man noch ein Werkzeug, das die Snapshots erzeugt, Backups erstellt, diese dann auf den Backupserver hochlädt und die Snapshots auch wieder entsorgt. Bisher habe ich das mit einem frickeligen Shell-Skript erledigt; allerdings war ich damit in letzter Zeit nicht mehr besonders zufrieden. Was ich eigentlich möchte, ist ein Tool, das mir folgende Möglichkeiten bietet:

  • aufgeräumte Crontab mit möglichst wenig Einträgen für Backups 8-)
  • verschlüsselte Backups (die UMASK auf den Backup-Servern meines Providers gefällt mir nicht)
  • möglichst keine lokalen temporären Dateien
  • Zusammenfassen von ZFS Datasets zu logischen Gruppen mit Pre- und Post-Snapshot Actions
  • Automatische wöchentliche Rotation der Backups auf dem Backup-Server

Also habe ich mich daran gesetzt, ein ordentliches Shellskript zu schreiben, das die o. g. Bedingungen erfüllt. Herausgekommen dabei ist zbackup. Die verlinkte Beta1 funktioniert immerhin schon so gut, dass ich sie produktiv nutze – ein Release folgt aber erst nach weiteren Tests, möglichst auch durch andere Tester.

Um zu verdeutlichen, was zbackup alles leisten kann, zeige ich hier mal an einem etwas komplizierteren Beispiel, wie man zbackup richtig konfiguriert. Die härteste Nuss für Backup-Tools ist mithin, konsistente Backups von Datenbank-Servern zu erzeugen. Anhand eines MySQL-Servers wird im folgenden beschrieben, wie man zu konsistenten Backups gelangt:

continue reading Backups von ZFS Datasets

No comments | Defined tags for this entry: backup, FreeBSD, root-tools, ZFS

FreeBSD 8.0-RC1 kurz angetestet

Posted by Jesco Freund at Sept. 25, 2009 6:44 p.m.

Heute habe ich auf einem Spare-Server den ersten Release Candidate für das anstehende FreeBSD 8.0 ausprobiert. Die Installation verlief soweit reibungslos; die meisten Konfigurationsdateien konnten aus der 7.2er Welt übernommen werden. Einzig bei der Kernel-Konfiguration muss man vorsichtig sein: Neu im GENERIC-Kernel ist jetzt MAC standardmäßig aktiviert, und anders als noch unter FreeBSD 7.x benötigt ZFS nun das Kernelmodul krpc – ohne gibt es den vielsagenden Fehler „can't load zfs: Exec format error“…

Beim Setup bin ich allerdings sehr konservativ vorgegangen; weder habe ich GPT-Partitionen eingesetzt, noch bootet das System von ZFS. GPT probiere ich dann aus, wenn ich einen Rechner mit EFI-BIOS in die Finger bekomme, und von ZFS booten… na ja, ich sehe keinen wirklichen Grund, so etwas zu tun. Eine Macke ist mir dann aber doch aufgefallen: Als ich versucht habe, GEOM Labels in der fstab zu verwenden, fand das System die Partitionen beim booten nicht und blieb daher im Bootvorgang stecken. Mit den physikalischen Gerätenamen hingegen ging es, und im hochgefahrenen Zustand findet man die Label auch wieder.

No comments | Defined tags for this entry: FreeBSD, ZFS

Back again – mit UFS

Posted by Jesco Freund at Feb. 1, 2009 9:07 p.m.

Das gröbste ist erledigt: der Server läuft jetzt mit FreeBSD 7.1 – allerdings nicht mehr mit ZFS. Zwar gab es keine Probleme mit Datenverlust oder ähnlich grausige Dinge; jedoch hatte ich immer wieder mit Deadlocks zu kämpfen, die dazu führten, dass Prozesse mithin minutenlang im Status zfs hängen geblieben waren. Besonders betroffen waren Prozesse, die häufig schreibend aktiv waren, unter anderem PHP (Session-Dateien) und der Mailserver. ZFS werde ich mir wieder anschauen, wenn FreeBSD ein Release veröffentlicht, das die aktuelle Version 13 (in CURRENT bereits enthalten) mitbringt. Angeblich soll damit das Deadlock-Thema erledigt sein, aber das werde ich wohl frühestens in der zweiten Jahreshälfte 2009 erfahren, wenn FreeBSD 8.0 in Richtung eines Release rückt.

No comments | Defined tags for this entry: FreeBSD, server, ZFS

Release-Fahrplan für FreeBSD 7.1 und 6.4

Posted by Jesco Freund at Aug. 23, 2008 12:08 p.m.

Gestern hat Ken Smith auf freebsd-stable den Fahrplan für die beiden anstehenden Minor Releases (7.1 und 6.4) verkündet. Er schreibt:

We're about to start the release cycle for FreeBSD-7.1 and FreeBSD-6.4.
The proposed schedule for the „major events“ of the cycle is:
Freeze          August 29
BETA            September 1
Branch          September 6
6.4-RC1         September 8
7.1-RC1         September 15
6.4-RC2         September 22
7.1-RC2         September 29
6.4-REL         October 6
7.1-REL         October 13
I haven't posted the schedule on the Web site yet, I'll try to get that
done over the weekend.

Aus meiner Sicht wird spannend, ob die ZFS-Patches von Pawell Dawidek noch vor dem Freeze committed werden – falls ja, bestehen gute Chancen, mit 7.1 die neueste Version von Sun's Super-Dateisystem zu bekommen, das insbesondere in puncto Ressourcenhunger einige Verbesserungen erfahren hat. Hans Peter Selaskys HPS (USB2) wird allerdings erst mal nicht in RELENG_7 einfließen, so dass wohl erst mit FreeBSD 8 ein wirklich funktionierender USB-Stack zur Verfügung stehen wird – abgelöst werden soll der alte USB-Stack aber erst mit FreeBSD 9. Auch der neue, GIANT-befreite TTY-Layer wird wohl erst mal nur in CURRENT verfügbar sein, aber all die Neuerungen machen Appetit auf die weitere Entwicklung von FreeBSD.

No comments | Defined tags for this entry: FreeBSD, ZFS

Plone ist fett!

Posted by Jesco Freund at Aug. 11, 2008 6:30 p.m.

/assets/user/jfreund/img/png/selidor.my-universe.com-memory-day.png

Und hier ist der Beweis: der plötzliche Downturn in der Speicherbelegung rührt daher, dass ich drei nicht mehr benötigte Plone-Client-Prozesse abgeknipst habe (ohne ZODB, gefüttert wurde die über ZEO-Instanzen, die aber noch laufen). Pro Prozess etwas über 100 MB Resident Set Size – dagegen sind Apache & Co. richtig schlank. Zur Verdeutlichung: mit den verbliebenen 600 MB belegtem RAM werden drei weiter Plone-Clients, drei ZEO-Instanzen, ein PostgreSQL-Server, Postfix, Dovecot, ein Apache Reverse Proxy, ein Apache mit mod_dav_svn und drei Lighttpd-Installationen (zwei mit und einer ohne PHP) versorgt. Von den in jedem Jail präsenten Sendmail-Daemon ganz zu schweigen…

Ach ja, da schon einige Male nach gefragt wurde, wie es denn mit ZFS aussieht: Die ~350 – 400 MB wired gehen weitgehend auf das Konto von ZFS (bei 38 Data Sets mit insgesamt ca. 25 GB Nutzdaten). Für das bisschen ist der Speicherverbrauch natürlich recht üppig, aber die Entwickler arbeiten am Ressourcenhunger, und die Funktionalität und Flexibilität von ZFS ist einfach genial.

No comments | Defined tags for this entry: FreeBSD, Plone, ZFS

ZFS und Beasty – ein erster Erfahrungsbericht

Posted by Jesco Freund at June 28, 2008 9:35 a.m.

Da ich schon mehrfach darauf angesprochen wurde, gibt es heute einen kurzen Erfahrungsbericht zum Einsatz von ZFS unter FreeBSD – sozusagen nach dem ersten verflixten Monat ;-) Um eines gleich vorweg zu nehmen: Mein Server ist kein Hochlast-System, das permanent unter Dauerfeuer steht. Die Load bleibt meist deutlich < 1, und allzu umfangreich sind die Schreib-/Lese-Aktivitäten auf den ZFS Datasets auch nicht (wenn man vom allnächtlichen Backup einmal absieht). Von daher werden sich meine Erfahrungen wohl nur bedingt auf andere Systeme übertragen lassen.

Trotz des meist eher gemütlichen Betriebszustandes hat ZFS es aber in der Anfangsphase einige Male geschafft, den Kernel in die Panic zu treiben. Im Log finden sich dann solche Hinweise:

savecore: reboot after panic: kmem_malloc(90112): kmem_map too small: 335228928 total allocated

Das Problem als solches ist nicht unbekannt: FreeBSD stellt für malloc(9)-Aufrufe des Kernels per default nur einen relativ kleinen Adressbereich zur Verfügung, so dass der Kernel nur ~300MB RAM adressieren kann. Für ZFS ist das deutlich zu wenig, wenn man seinen Speicherhunger nicht deutlich in seine Schranken weist (was natürlich zu Lasten der Performance geht).

Wer ZFS unter FreeBSD betreiben möchte, dem bleibt also derzeit nichts anderes übrig, als an den Parametern für die Adressraum-Zuteilung zu drehen. Mit meinen 2 GB RAM habe ich eine relativ komfortable Ausgangslage. Durch options KVA_PAGES=512 in meiner Kernel-Konfiguration konnte ich den 32-Bit Adressraum so aufteilen, dass sowohl Kernel als auch Userspace nahezu 100% des gesamten physisch verfügbaren Speichers adressieren können. Natürlich möchte ich nicht, dass der Kernel sich den gesamten verfügbaren Speicher unter den Nagel reißt, daher habe ich das auf die Hälfte begrenzt (Einträge für /boot/loader.conf):

vm.kmem_size="1024M"
vm.kmem_size_max="1024M"

Außerdem habe ich ZFS etwas die Flügel gestutzt:

vfs.zfs.arc_max="160M"
vfs.zfs.vdev.cache.size="5M"

Wichtig zu wissen: Der Adaptive Replacement Cache (ARC) wird von einem multithreaded Prozess gesteuert. Wird von einem dieser Threads neuer Speicher angefordert, wird dieser auch allokiert, unabhängig davon, ob die Maximalvorgabe bereits erreicht oder überschritten wurde. Einer der Threads ist im Gegenzug dafür zuständig, wieder Speicher freizugeben, wenn die erlaubte Obergrenze erreicht wird. Dadurch kann der vorgegebene Maximalwert aber kurzfristig um ein Vielfaches überschritten werden, so dass hier ein Wert deutlich unterhalb des maximal durch Kernelprozesse allokierbaren Speichers zu empfehlen ist. So besteht wenigstens die Chance, dass der Aufräum-Thread rechtzeitig aktiv wird, bevor es zu einer katastrophalen Situation – sprich: Panic – kommt.

Unabhängig von diesen kleineren (weil mittlerweile gut dokumentierten) Unannehmlichkeiten hat sich ZFS bei mir als äußerst robust erwiesen. Keiner der Panic-bedingten Abstürze hatte irgendwelche Inkonsistenzen zur Folge (UFS ist da anfälliger), und auch über die Performance lässt sich nichts negatives berichten. Über die Robustheit lässt sich aber mit Sicherheit erst mehr sagen, wenn ein wenig mehr Zeit als nur der verflixte erste Monat vergangen ist… vielleicht nach dem ersten verflixten Jahr? 8-)

No comments | Defined tags for this entry: FreeBSD, ZFS

Back again…

Posted by Jesco Freund at May 1, 2008 1:47 p.m.

Nachdem die angekündigte Downtime doch etwas länger ausgefallen ist, als ich zunächst vermutet hatte, ist jetzt alles wieder im grünen Bereich. Nach hartem Kampf mit der KVM-Karte und sysinstall habe ich zwar letztes Wochenende noch den Server ansich ans laufen bekommen – für die beiden MySQL-Jails (Master-Slave-Setup mit dem aktuellen RC für MySQL 5.1) und das Webserver-Jail blieb einfach keine Zeit. Das habe ich jetzt unter der Woche häppchenweise nachgeholt (ab und zu muss unsereins ja für seine Brötchen auch mal arbeiten gehen ;-)), so dass jetzt das Blog wieder läuft – übrigens in einem Jail auf einem ZFS Dataset und mit Lighttpd als Webserver.

Wenn ich die Zeit finde, werde ich das genaue Setup (wartungsfreundliche Jails, Backup, Master-Slave für MySQL etc.) im RootForum.de-Wiki dokumentieren. Dieses Wochenende ist jetzt aber erst mal eine eine Mini-LAN-Party angesagt – wie ich uns kenne, wird (wieder mal) ausschließlich Command & Conquer Generals Zero Hour gezockt…

3 comments | Defined tags for this entry: blog, FreeBSD, jail, ZFS

Page 1 of 2 next page »