Archiv für den Monat: Januar 2014

FreeBSD: ZFS Boot Environments mit Hetzner Root Server

Klickt man sich eine Default Installation von FreeBSD mit ZFS -> bekommt man die folgende ZFS Dataset Struktur serviert:

$
NAME                        USED  AVAIL  REFER  MOUNTPOINT
tank                       3,14G   347G    31K  none
tank/root                  2,13G   347G  1,31G  /
tank/root/tmp                98K   347G    60K  /tmp
tank/root/var               455M   347G   454M  /var
$

Eine Migration nach BE läßt sich sehr leicht realisieren:

FreeBSD Beastie BE Migration

Punkt 1: beadm installieren

$
cd /usr/ports/sysutils/beadm/ && make install clean
$

Punkt 2: ROOT snapshot erstellen, Container kopieren und für den Rescue Modus vorbereiten

$
zfs snapshot tank/root@beadm

zfs create -o compression=lz4 tank/ROOT
zfs send tank/root@beadm | zfs receive tank/ROOT/beadm

mkdir /tmp/beadm_default
mount -t zfs tank/ROOT/beadm /tmp/beadm_default
$

loader.conf für die zukünftige BE anpassen

$
vi /tmp/beadm_default/boot/loader.conf
$
$
vfs.root.mountfrom="zfs:tank/ROOT/beadm"
$

neues bootfs definieren

$
zpool set bootfs=tank/ROOT/beadm tank

zfs get -r mountpoint tank

reboot
$

per Hetzner Robot Webinterface -> den FreeBSD Rescue-Modus starten lassen
(in anderen Umgebungen wahlweise eine FreeBSD LiveCD booten)

Punkt 3: zpool mounten

$
zpool import -f -o altroot=/tmp/zroot tank
$

Punkt 4: ZFS System Volumes in den legacy Modus versetzen und neustarten

$
zfs umount -a

zfs set mountpoint=none tank
zfs set mountpoint=none tank/ROOT
zfs set mountpoint=legacy tank/root
zfs set mountpoint=legacy tank/ROOT/beadm

reboot
$

Punkt 5: nach einer erfolgreichen Umstellung sollten die BE Funktionen, mittels beadm, zur Verfügung stehen

$
# beadm list
BE    Active Mountpoint  Space Created
beadm NR     /          1023.0M 2014-01-28 20:29
 
# zfs list
NAME                        USED  AVAIL  REFER  MOUNTPOINT
tank                       3,14G   347G    31K  none
tank/ROOT                  1023M   347G    31K  none
tank/ROOT/beadm            1023M   347G  1022M  legacy
tank/root                  2,13G   347G  1,31G  legacy
tank/root/tmp                98K   347G    60K  /tmp
tank/root/var               455M   347G   454M  /var
$

That’s FreeBSD