Solaris/Boot Environments
Was sind Boot Environments?
Boot Environments in Solaris und OpenSolaris basieren auf ZFS-Snapshots. Man bildet hierbei einen Snapshot des /-Dateisystems und fuegt ihn bootfaehig in GRUB ein.
$ beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- opensolaris - - 68.79M static 2009-03-21 13:14 opensolaris-1 - - 19.43M static 2009-03-21 13:40 opensolaris-2 NR / 9.02G static 2009-03-21 15:03
In diesem Beispiel existieren drei Environments, die jeweils durch ein Image Update entstanden sind. Aktiv ist der letzte Eintrag. Die Angabe des Platzbedarfs bezieht sich auf das delta zum aktiven ZFS-Snapshot.
$ pfexec beadm create -e opensolaris-2 opensolaris-working $ beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- opensolaris - - 68.79M static 2009-03-21 13:14 opensolaris-1 - - 19.43M static 2009-03-21 13:40 opensolaris-2 NR / 9.02G static 2009-03-21 15:03 opensolaris-working - - 77.0K static 2009-03-26 11:55
Der soeben erstellte Snapshot opensolaris-working wird dauerhaft bootfaehig im System bleiben, selbst wenn das System komplett verkonfiguriert wird. Um ihn zu aktivieren und damit zum primaeren Boot Environment zu ernennen genuegt ein:
$ pfexec beadm activate opensolaris-working
Oder man waehlt ihn alternativ im GRUB aus.
Was ist der direkte Nutzen?
Man kann immer auf einen funktionierenden System-Zustand zurueck wechseln, egal wieviel man ge-rm-rf-t hat. Der Platzbedarf ist dank ZFS-Snapshots sehr gering, und die Arbeitsgeschwindigkeit des Systems wird nicht beeintraechtigt. IPS legt automatisch bei jedem Update bei dem System-Komponenten ausgetauscht werden ein neues Boot Environment an.
Boot Environments sind ebenfalls nutzbar, um komplett verschiedene Konfigurationen des Betriebssystems nutzen zu koennen. Hierbei kommt der ZFS-Vorteil zum Tragen, dass ein Snapshot in einen beschreibbaren Clone verwandelt werden kann.