Jail - welche Art

pom

Well-Known Member
Hallo,

ich habe auf einem FreeBSD Server, den ich über viele Versionen hinweg immer aktuell gehalten habe, einige Jails, die ich seinerzeit mit ezjails eingerichtet habe.
Es scheint so, dass das nicht mehr weiterentwickelt wird.

Nun frage ich mich
a) ob ezjails nach wie vor eine gute Wahl ist, oder ich befürchten muss, dass ein kommendes Update mein Jail Setup unbrauchbar macht
b) auf welcher Basis / Verwaltungstools man heute Jails einrichten würde
c) wie ich meine Jails einfach dahin migrieren kann

Für jede Jail existieren folgende Mounts (Bsp für SVN):

/home/jails/basejail on /home/jails/svn/basejail (nullfs, local, read-only, nfsv4acls)
/usr/ports on /home/jails/svn/usr/ports (nullfs, local, read-only, soft-updates, journaled soft-updates)
devfs on /home/jails/svn/dev (devfs)
fdescfs on /home/jails/svn/dev/fd (fdescfs)
procfs on /home/jails/svn/proc (procfs, local)


Im Handbuch werden Thin und Thick Jails unterschieden. Auf was deuteten die Mounts hin :-) ?

Das System ist aktuell bei 14.2-RELEASE-p2

Danke und Gruß,
Peter
 
Ich würde für jedes Jail eine eigenes ZFS-FS erstellen und alle eizeln verwalten. Ich verwende dazu nur die Tools vom Basissystem und ein paar eigene Scripts, die aber nur Kosmetik sind. Früher habe ich ein Basisjail erstellt durch Snapshots diese auf die Jails verteilt. Mitlerweile verzichte ich aber darauf. Platz ist ja meist genügend da.
 
Was @jmt sagt würde ich voll unterstützen.

Ich habe jahrelang iocage Base-Jails genutzt, was ja dann auch nicht mehr (oder kaum noch?) weiterentwickelt wurde. Das ganze benötigte immer ein großes Geraffel an Python-Packages, was mich bei jedem Update etwas nervös machte: Wie starte ich meine Jails, wenn ein von iocage benötigtes Python-Paket nicht da ist oder nicht funktioniert. Base-Jails waren insofern cool, als System-Update/-Upgrades sehr einfach und schnell gingen - wenn sie denn gingen. Wenn bei einem Upgrade etcupdate einen manuellen Eingriff erforderte, war man jedes Mal aufgeschmissen und musste mühselig drum herum arbeiten.

Ich würde wie von jmt vorgeschlagen, für jede Jail mind ein eigenes root Verzeichnis als ZFS-Dataset anlegen. Dann mit bsdinstall jail /pfad/zum/jail-rootverzeichnis das Basissystem der Jail installieren. Je nach Bedarf kannst Du vorher weitere Datasets anlegen, z.B. wenn Du die einzeln Snapshotten willst (ich will z.B. immer /etc und /usr/local/etc separat Snapshotten können) oder für MySQL die ZFS-Datasets für die Datenbank-Dateien optimieren (siehe z.B. die Empfehlungen im MariaDB-Serve package ).

Für devfs, fdescfs und procfs gibt es eigene Konfigurationsanweisungen für die /etc/jail.conf. Das kannst Du für alle oder für einzelne Jails spezifizieren.
Code:
mount.devfs
mount.fdescfs
mount.procfs

Am Ende musst Du die benötigten Ordner/Dateien aus Deiner alten Jail in die neue rüberkopieren (sicher einiges aus den etc-Verzeichnissen und ansonsten das, was Deine jeweiligen Anwendungen verwenden, z.B. sowas wie /usr/local/www/data wenn Du einen Webserver am Laufen hast usw.)
 
Zurück
Oben