Na, ich hab gleich mal wieder was zu meckern:
Bei den Zielen sind mir (in dem einen Abschnitt (den ich jetzt gerade (hoffentlich zu deiner Zufriedenheit) bearbeitet habe) zu viele Klammern in Klammern drin) 😉 - Nur ein Spaß, sowas sieht man nur von Außen.
Ich habe diesmal den Text jeweils zur besseren Ansicht im Wiki Format und zum schnellen Kopieren im Codeblock gespeichert
Einfachstes Konzept: Man gebe der Verwaltung Plattenplatz in Form von Festplatten, Partitionen oder Dateien - gut zum Kennenlernen/Testen - und teile ZFS mit, wie es damit umgehen soll: Bereiche für Datenspiegelung/Redundanz/Raid, fürs Transaktionslog, für Cache ( bevorzugt auf schnellen Medien, wie SSDs) usw. Dann wird alles als sogenannter Speicherpool zusammengefasst. Daraus kann man dann beliebige Teile belegen/reservieren, um darauf Dateien zu speichern oder auch ganze "Volumes" bereit stellen zu lassen. Man muss nicht mehr wissen, wo genau der Speicherplatz dafür physikalisch herkommt. Die Eigenschaften jedes Dateisystems lassen sich auch später noch dynamisch verändern, ihre Größe könnte sogar annähernd den gesamten Pool einnehmen. oder ihre Größe kann theoretisch sogar annähernd den gesamten Pool einnehmen.
Wer etwa für viele Benutzer viele Dateisysteme und Volumes zu verwalten hat, wird es zu schätzen wissen, dass sie hierarchisch strukturiert werden können und ihre Eigenschaften vererbbar sind. Man kann z.B. für Nutzergruppen, Datenarten, -verwendungszwecke sinnvolle Voreinstellungen treffen, die über solche Dinge entscheiden wie Speicherplatzhöchstgrenzen (Quota), -mindestbedarf (Reservation), Kompression, Schreibschutz, Empfindlichkeit für Klein/Großbuchstaben bei Dateinamen, Cachingverhalten. Alle Möglichkeiten aufzuzählen würde diesen Rahmen sprengen.
* Einfachstes Konzept: Man gebe der Verwaltung Plattenplatz in Form von Festplatten, Partitionen oder Dateien - gut zum Kennenlernen/Testen - und teile ZFS mit, wie es damit umgehen soll: Bereiche für Datenspiegelung/Redundanz/Raid, fürs Transaktionslog, für Cache ( bevorzugt auf schnellen Medien, wie SSDs) usw. Dann wird alles als sogenannter Speicherpool zusammengefasst. Daraus kann man dann beliebige Teile belegen/reservieren, um darauf Dateien zu speichern oder auch ganze "Volumes" bereit stellen zu lassen. Man muss nicht mehr wissen, wo genau der Speicherplatz dafür physikalisch herkommt. Die Eigenschaften jedes Dateisystems lassen sich auch später noch dynamisch verändern, ihre Größe könnte sogar annähernd den gesamten Pool einnehmen. '''oder''' ihre Größe kann theoretisch sogar annähernd den gesamten Pool einnehmen.
* Wer etwa für viele Benutzer viele Dateisysteme und Volumes zu verwalten hat, wird es zu schätzen wissen, dass sie hierarchisch strukturiert werden können und ihre Eigenschaften vererbbar sind. Man kann z.B. für Nutzergruppen, Datenarten, -verwendungszwecke sinnvolle Voreinstellungen treffen, die über solche Dinge entscheiden wie Speicherplatzhöchstgrenzen (Quota), -mindestbedarf (Reservation), Kompression, Schreibschutz, Empfindlichkeit für Klein/Großbuchstaben bei Dateinamen, Cachingverhalten. Alle Möglichkeiten aufzuzählen würde diesen Rahmen sprengen.
Im Abschnitt Geschichte:
Grundlage der Portierung war ZFS-Version 28 (zfs-fuse noch Version 23). Damit ist die Kompatibilität mit Solaris 10, OpenSolaris, OpenIndiana und FreeBSD gegeben. Solaris 11, als Nachfolger von Solaris, verwendet dagegen Version 34 (Stand: April 2012). ZFSonLinux (ZoL) und OpenIndiana haben sich auf eine architektonische Veränderung verständigt, die es erlaubt, nur wirklich benötigte Funktionen einzuschalten, als "Feature-Flag-Version" bezeichnet wird und sich als Version 5000 ausgibt. (siehe dazu auch den ZFS Versionsvergleich 🇬🇧)
Grundlage der Portierung war ZFS-Version 28 (zfs-fuse noch Version 23). Damit ist die Kompatibilität mit Solaris 10, OpenSolaris, OpenIndiana und FreeBSD gegeben. Solaris 11, als Nachfolger von Solaris, verwendet dagegen Version 34 (Stand: April 2012). ZFSonLinux (ZoL) und OpenIndiana haben sich auf eine architektonische Veränderung verständigt, die es erlaubt, nur wirklich benötigte Funktionen einzuschalten, als "Feature-Flag-Version" bezeichnet wird und sich als Version 5000 ausgibt. (siehe dazu auch den [http://en.wikipedia.org/wiki/ZFS#Comparisons ZFS Versionsvergleich] {en})
Ich hatte mal eine Änderung bei den Warnungen und Vorbehalten eingefügt, die aber wieder verschwunden ist. War das Absicht? Dann okay, sonst hier noch mal zum einfügen. Ich halte hier den Konjunktiv für unnötig.
Abhilfe zu dem letzten Punkt:
Beispielsweise führt der Eintrag
options zfs zfs_arc_max=2147483648
in der Datei /etc/modprobe.d/zfs.conf zu einer Beschränkung auf 2 GB RAM für ARC. (Anm: Aufgrund von RAM-Fragmentierung können dennoch bis zum Doppelten dieses Wertes benötigt werden!)
Leerzeichen vor der letzten geschweiften Klammer bitte entfernen.
Abhilfe zu dem letzten Punkt:
Beispielsweise führt der Eintrag
{{{
options zfs zfs_arc_max=2147483648
}} }
in der Datei '''/etc/modprobe.d/zfs.conf''' zu einer Beschränkung auf 2 GB RAM für ARC. (Anm: Aufgrund von RAM-Fragmentierung können dennoch bis zum Doppelten dieses Wertes benötigt werden!)
Zu den Beispielen: Ich glaube, das ist im Wiki nicht erwünscht, in den dauerhaften sudo-Modus zu schalten. Ich arbeite ja auch so, aber da du trotz deiner Warnungen nicht wirst verhindern können, dass auch nciht so versierte user dies versuchen, so können sie danach aus versehen das gesamte System aus versehen platt machen. Deshalb sehe ich auf allen Wiki-Seiten für jeden Befehl, der es benötigt, brav das sudo davor. Da man ja auch am besten die Befehle mit copy/paste in die Kommandozeile befördert, ist dann auch 20 mal sudo kein Problem.
root@ubuntu:~$ sudo apt-add-repository --yes ppa:zfs-native/stable
root@ubuntu:~$ sudo apt-get update
root@ubuntu:~$ sudo apt-get install --yes ubuntu-zfs
Leerzeichen vor der letzten geschweiften Klammer bitte entfernen.
{{{#!vorlage befehl
root@ubuntu:~$ sudo apt-add-repository --yes ppa:zfs-native/stable
root@ubuntu:~$ sudo apt-get update
root@ubuntu:~$ sudo apt-get install --yes ubuntu-zfs
}} }
Schadet denn im Beispiel das -o ashift=12? Wenn nicht, würde ich es einfach hinzufügen und dafür den Kommentar weglassen.
Aller Anfang ist klein:
zpool create mypool /mnt/free-space/simulate.disk1 # Merke: Bei diesen Experimenten ist `-o ashift=12` überflüssig. Würde es um reale Partitionen/Festplatten gehen, sähe das schon anders aus.
zpool status
Oh Mann, ich glaube ich brauch mal ne Pause. Das Beispiel werde ich wohl mal selber machen, damit ich mehr dazu sagen kann. Also lass ich es hier erst mal gut sein, und melde mich dann noch mal.
Auf jeden Fall hast du da ein tolles Dokument hingelegt. Vielen Dank.
Ach ja, bezüglich Deines Hinweises:
Der folgende Wissensblock stammt noch aus dem Ursprungstext und kommt mir so vor, als sei er "an der Sache vorbei". Erstens ist es deutlich zu wenig und schon deswegen in dieser Form verharmlosend. Zweitens sollte ein fortgeschrittener Anwender (Zielgruppe) das längst beherrschen.
Das hier ist ein Wiki, um (Start)Hilfe zur Selbsthilfe zu geben, kein Handbuch - dazu verweist du ja auch auf genügend Quellen. Andereseits wird genug von ZFS beschrieben, um Interesse zu wecken und Möglichkeiten aufzuzeigen. Ich finde das passt schon.
Stefan