Vytvoření mirroru v GEOM ve FreeBSD 9.1 na nainstalovaném stroji.

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.

Příspěvek byl publikován v rubrice FreeBSD. Můžete si uložit jeho odkaz mezi své oblíbené záložky.