FreeBSD ZFS einrichten?

demonking

New Member
Moin Community,

leider fiel mir keine bessere Überschrift ein. ;)

Also, ich wollte mir eine ZFS Filesystem einrichten und mal testen und rumspielen.

Leider habe ich das bei der Partitionierung der Slices nicht beachtet und habe nun keinen freien Speicher.

Kann ich das System sonst irgendwie testen?

Eine VM extra dafür will ich mir lieber nicht einrichten.

Hier meine Paritionien:

MasterFreeBSD# df -hT
Filesystem Type Size Used Avail Capacity Mounted on
/dev/ada1s4a ufs 29G 1.2G 26G 4% /
devfs devfs 1.0k 1.0k 0B 100% /dev
/dev/ada1s4d ufs 39G 11G 25G 30% /usr

Greetz

Demonking

Edit: sry, das die einrückung irgendwie schiefläuft :/
 
Zuletzt bearbeitet:
Der gemischte Betrieb von UFS und ZFS ist nicht zu empfehlen. Tu dir den gefallen und kopiere dein System in einen neuen Zpool.
 
Der gemischte Betrieb von UFS und ZFS ist nicht zu empfehlen. Tu dir den gefallen und kopiere dein System in einen neuen Zpool.

Ich wäre auch an mehr Infos interessiert.

Ich hatte das mal einige Wochen, irgendwann im Sommer, mit 8.2. Der ZFS Pool war auf einer externen platte und mein System war noch Komplett UFS. Ich könnte nicht sagen, das es da Probleme gegeben hätte die sich auf die Kombination von UFS und ZFS zurückführen lassen. Dummerweise hatte ich zur selben Zeit Probleme mit defekten RAM. Auf meinem Laptop läuft derzeit aber auch noch ein 8.2 und das Backup lagert auch auf einer Externen ZFS Platte. Ich brauche ja nicht zu erwähnen wie Stabiel Beastie damit läuft, nämlich wie immer Großartig :)
 
Das Problem resultiert daraus, dass UFS und ZFS unterschiedliche Cache-Mechanismen nutzen. Daten werden also doppelt gecached, die RAM-Nutzung verdoppelt sich. Die ultimative Lösung wäre, ZFS auf FreeBSDs Buffercache umzustricken, allerdings würde es Upstream-Imports deutlich erschweren. Daher will man es zur Zeit noch nicht.

Als ZFS neu war, also ab FreeBSD 7.2 und später bis ca. 8.1, war es eine Speichersau erster Güte. Es griff sich für seinen Cache Speicher und gab den de facto nie wieder frei. Das führte erst einmal dazu, dass der von UFS genutzte Buffercache aus dem Speicher gedrängt wurde, das zerdepperte jede UFS-Performance. Auf längere Sicht fragmentierte der Speicher zudem stark, irgendwann konnten ZFS Gelüste nicht mehr erfüllt werden und die Kiste schmierte ab. Aus dieser Zeit kommt die Aussage, dass man UFS und ZFS tunlichst nicht mischen sollte, außer man möchte wirklich Probleme bekommen.

Irgendwann kam dann das 8.2 mit einer weiteren Runde Verbesserungen am Speichermanagement vom ZFS. Genauer gesagt wurde "Back Pressuring" eingeführt. Damit kann ZFS erkennen, wenn es jemanden den Speicher klaut und gibt ihn frei. Dieser Mechanismus wurde mit der Zeit weiter verbessert, in 8.3 funktioniert das nun einwandfrei. Dadurch kann man UFS und ZFS theoretisch nebeneinander betreiben, ZFS drängt UFS nicht mehr aus dem Speicher. Allerdings bleibt zumindest theoretisch das Problem der Speicherfragmentierung bestehen, wobei ich weder auf 8.2 noch auf 8.3 jemals einen Crash aufgrund von Speichermangel gesehen habe, sofern die Kiste genug RAM hatte.

In 9.0 gibt es am Speichermanagement noch jede Menge komplizierter Änderungen, die Speicherfragmentierung verhindern und das Biest ZFS endgültig zähmen sollen. Außerdem wurden mögliche Probleme im Zusammenspiel mit UFS ausgeräumt, auch tmpfs funktioniert nun. Tatsächlich tendieren die Berichte über Abstürze aus Speichermangel oder Speicherfragmentierung inzwischen gegen Null.

Daher würde ich sagen, dass man UFS und ZFS inzwischen (8.3 oder 9.x) problemlos miteinander kombinieren kann. Allerdings sollte man sich an zwei Regeln halten:

1. Genügend RAM. Eine 2GB-Kiste ist schon mit ZFS allein überfordert. Da macht UFS es nicht besser. 4GB halte ich nach wie vor für das absolute Minimum, um brauchbar mit ZFS arbeiten zu können. 8GB sind besser.

2. Auf ZFS und UFS sollten unterschiedliche Daten liegen. Liegen die gleichen Daten auf zwei unterschiedlichen Dateisystemen, werden sie doppelt gecached. Das verschwendet bestenfalls RAM.
 
Zurück
Oben