iocell supports five different jail types:
- thick (default)
All types have their pros & cons and serves different needs.
Full (thick) jail is the default type and it is created with the following command:
A full jail has a fully independent ZFS dataset suitable for network replication (ZFS send/recv).
Thin jails are lightweight clones created with:
iocell create -c
Thin jails are cloned from the appropriate RELEASE at creation time and consume only a fraction of space, preserving only the changing data.
The original basejail concept based on nullfs mounts got popularized by ezjail. iocell basejails use independent read-only ZFS filesystem clones to achieve the same functionality.
To create a basejail execute:
iocell create -b
Basejails re-clone their base filesystems at each startup. They are ideal for environments where patching or upgrades are required at once to multiple jails.
Template is just another jail where the “template” property is set to “yes”.
To turn a jail into a template simply execute:
iocell set template=yes UUID|TAG
After this operation the jail can be listed with:
iocell list -t
To deploy a jail from this template, execute:
iocell clone TEMPLATE_UUID tag=mynewjail
Templates can be converted back and forth with setting the “template” property.
Empty jails are intended for unsupported jail setups or testing. To create an empty jail run:
iocell create -e
These are ideal for experimentation with unsupported RELEASES or Linux jails.