Tak nám konečně vyšla nová verze FreeBSD 9.1. Hned jsem zkusil nastavit softwarový mirror a zjistil, že návod v handbooku na FreeBSD.org – http://www.freebsd.org/doc/handbook/geom-mirror.html již nefunguje. Metodou pokus, omyl, google, vztek jsem se dostal k následujícím funkčnímu řešení.
Konfigurace počítače a situace je následující. 2 disky v počítači, jeden prázdný, na druhém nainstalovaný systém. Já jsem měl systém čistý, důvodem, proč jsem mirror nenastavil napřed a pak instaloval bylo, že jsem chtěl jednak zkusit nový instalátor a jednak jsem instaloval přes ipmi a tato cesta mi přišla nejlepší.
Předně pokud bude systém psát Operation not permitted., je potřeba změnit sysctl proměnnou následnovně:
sysctl kern.geom.debugflags=16
Tím budete moci provádět změny na disku při běžícím systému.
Dále jsem vycházel z tohoto článku – Moving a FreeBSD installation onto gmirror – který jsem však musel mírně upravit.
Dále si natáhneme modul geom_mirror do jádra
kldload geom_mirror
echo 'geom_mirror_load="YES"' >> /boot/loader.conf
Vytvoříme mirror
gmirror label m0 ada1
gmirror list
A nyní dojde k tomu, co úplně nevím, proč, ale od této chvíle není mirror m0, ale gm0!!!
Vytvoříme diskové oddíly na prázdném disku.
gpart backup ada0 > /tmp/part.txt
gpart restore mirror/gm0 < /tmp/part.txt
gpart bootcode -b /boot/pmbr mirror/gm0
gpart bootcode -p /boot/gptboot -i 1 mirror/gm0
newfs -U /dev/mirror/gm0p2
Překopírujeme data do mirroru
mount /dev/mirror/gm0p2 /mnt
cd /
tar --one-file-system -cpf - . | (cd /mnt; tar -xvpf -)
V /etc/fstab nahradíme veškeré výskysty „ada0“ to „mirror/gm0“, umountneme /mnt a rebootujeme systém. V BIOSu změníme nastavení tak, abychom bootovali z druhého disku, tedy z toho, který jsme dali do mirroru.
Po rebootu ověříme, zda opravdu jsme nabootovali do mirroru.
mount
swapinfo
No a konečně poslední věc, původní disk ada0 přidáme do mirroru:
gmirror insert gm0 ada0
Tak a máme hotovo. Tím začne rebuild mirroru a data se zduplikují na vložený disk. Během té doby nevypínejte pokud možno počítač. Po rebuildu pole je pak možné bootovat z obou disků. Rebuild pole a stav pole je možno kontrolovat přes tyto příkazy:
gmirror list
gmirror status
Pevně věřím, že jsem se nikde neuklepl, pokud ano, uvítám opravu v případných komentářích.