Jail: Unterschied zwischen den Versionen
Rabe (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Rabe (Diskussion | Beiträge) K (→Siehe auch: unterartikel verlinkt) |
||
Zeile 37: | Zeile 37: | ||
==Siehe auch== | ==Siehe auch== | ||
* [http://www.freebsd.org/cgi/man.cgi?query=jail&sektion=0&manpath=FreeBSD+6.2-RELEASE&apropos=1&format=html Jail relevante Manpages in 6.2] | * [http://www.freebsd.org/cgi/man.cgi?query=jail&sektion=0&manpath=FreeBSD+6.2-RELEASE&apropos=1&format=html Jail relevante Manpages in 6.2] | ||
* [[ | * [[top.uugrn.org/Jailkonzept]] zur Umsetzung bei der [[UUGRN]]. | ||
* [[Real Virtuality#Jails|Paper zu FreeBSD Jails auf Real Virtuality]]: | * [[Real Virtuality#Jails|Paper zu FreeBSD Jails auf Real Virtuality]]: | ||
:* [http://rabe.uugrn.org/FreeBSD/Jails/Real_Virtuality_2006_Vortrag_Jails.odp Vortragsfolien zu FreeBSD Jails] als ODP (OASIS OpenDocument Präsentation / [[OpenOffice]]) | :* [http://rabe.uugrn.org/FreeBSD/Jails/Real_Virtuality_2006_Vortrag_Jails.odp Vortragsfolien zu FreeBSD Jails] als ODP (OASIS OpenDocument Präsentation / [[OpenOffice]]) |
Version vom 29. Mai 2007, 23:33 Uhr
Jails sind eine einfache Lösung zur Virtualisierung von Computersystemen im FreeBSD Betriebssystem. Im Gegensatz zu den meisten gängigen Virtualisierungslösungen wird eine virtuelle Maschine nur sehr rudimentär implementiert. So findet keine tatsächliche Emulation eines vollständigen eigenen Systems samt entsprechender virtueller Hardware statt. Vielmehr läuft ein Jail auf der selben Kernel-Instanz wie das Hostsystem und wird darunter nach einem chroot in ein eigenes Unterverzeichnis in einer eigenen Prozessgruppe gestartet. Der Kernel kapselt dabei die Prozesstabellen ab, so dass ein Jail stets nur seine eigenen Prozesse sehen kann. Ausschließlich das Hostsystem hat Zugriff auf die vollständige Prozesstabelle.
Genaugenommen handelt es sich bei einem Jail mehr oder weniger um ein aufgebohrtes chroot. Dadurch muss der Kernel zwingend ein gleichartiges Betriebssystem im Jail starten.
Einschränkungen
Bis auf ein paar Einschränkungen ist ein Jail genauso funktional wie das native Hostsystem. Im Detail funktionieren nicht:
- IPv6
- Mounten und unmounten von Dateisystemen,
- Abhängig von der Policy, Dienste die Raw Sockets benötigen: Ping, Traceroute, ...
- Shared Memory
- Das Anlegen von Paketfilter-Regeln
Diese Einschränkungen sind derzeit aktuell. An einigen Stellen wird bereits aktiv gearbeitet, andere Einschränkungen sind zu mindest schon auf der ToDo-Liste der Entwickler gelandet. Man darf also gespannt bleiben.
Manche Einschränkungen können global, manche auch Jail-individuell gelockert werden. Dieser Punkt ist stetigen Änderungen unterworfen, es empfiehlt sich daher, den aktuellen Stand von jail(8) unter Sysctl MIB Entries zu studieren.
Entwicklung
- CVS
- src/etc/rc.d/jail Startscript
- src/usr.sbin/jail/ jail(8)
- src/usr.sbin/jls/ jls(8)
- src/usr.sbin/jexec/ jexec(8)
- src/sys/kern/kern_jail.c
- Jail Resource Limits
- CPU- und Speicherverbrauch in den einzelnen Jails limitieren bzw. gerecht aufteilen.
- Soll verhindern, dass ein Jail alle verfügbaren Ressourcen binden kann.
- Jail2
- Einer Überarbeitung des Jail-Konzepts wird in FreeBSD Jail2 einfließen.
- Einen Überblick über das Projekt bietet die FreeVPS Projektseite.
Siehe auch
- Jail relevante Manpages in 6.2
- top.uugrn.org/Jailkonzept zur Umsetzung bei der UUGRN.
- Paper zu FreeBSD Jails auf Real Virtuality:
- Vortragsfolien zu FreeBSD Jails als ODP (OASIS OpenDocument Präsentation / OpenOffice)
- Vortragsfolien zu FreeBSD Jails als PDF