Instalujeme FreeBSD do UFS mirroru

Instalace FreeBSD díky bsdinsallu je jednoduchý proces, kdy během pár minut máte na disku plně funkční operační systém. Pokud ale potřebujete nainstalovat FreeBSD do mirroru (zrcadlení dvou disků) na UFS, potom musíte spustit příkazový řádek a provést některé operace manuálně.

K osvojení této praktiky potřebujete instalační médium s FreeBSD a počítač se dvěma disky. Pojedeme trochu svižněji, ať se u toho moc nezadrbem.

Spuštění instalace

Po naběhnutí instalátoru naskočí uvítací obrazovka. Zvolíme krok pokračovat až do části “Partitioning”, kde vybereme položku “Shell” a spustíme tak příkazový řádek.

Partitioning

Zjištění disků

Seznam všech disků v počítači zjistíme příkazem geom disk list nebo camcontrol devlist.

# camcontrol devlist
<KINGSTON SA400S37120G SBFK59E1>  at scbus1 target 0 lun 0 (pass0, ada0)
<KINGSTON SA400S37120G SBFK1BK1>  at scbus2 target 0 lun 0 (pass1, ada1)
<AHCI SGPIO Enclosure 1.00 0001>  at scbus7 target 0 lun 0 (pass2, ses1)
<USB 2.0 USB Flash Drive 0.00>    at scbus8 target 0 lun 0 (pass3, da0)

Vymázání původních oddílů

Testovací stroj obsahuje dva SATA disky označené jako ada0 a ada1. Na tyto dva disky budeme instalovat operační systém do mirroru. Pokud disky obsahují nějaké oddíly, vymažeme je příkazem gpart destroy.

# gpart destroy -F ada0
# gpart destroy -F ada1

Takto kompletně smažeme disky s primárním i záložním GPT oddílem. Nyní jsou disky připravené k instalaci.

Vytvoření mirroru

Nyní vytvoříme mirror na dvou discích. K tomu potřebujeme načíst jaderný modul geom_mirror.ko. Dále bude následovat příkaz k vytvoření mirroru a jeho pojmenování.

# gmirror load
# gmirror label -v gm0 ada0 ada1

gm0 je název mirroru. Hned po vytvoření mirroru se objeví nové zařízení v /dev/mirror/. Takto je mirror nakonfigurovaný k automatické synchronizaci dat. Parametr -n v příkazu výše zakáže automatickou synchronizaci.

Vytvoření mirroru bez autosynchronizace

Spousta administrátorů nechce autosynchronizaci při výměně vadného disku za nový. K tomu slouží stejný příkaz jako výše, akorát připojíme parametr -n. Tím docílíte, že se disky po výměně nebudou sami synchronizovat.

# gmirror load
# gmirror label -n -v gm0 ada0 ada1

Vytvoření oddílů

V tomto příkladu uvedu klasické rozdělení mirroru na oddíly. Všchny oddíly budou zarovnané na 1 MB, což vyhovuje i 4k diskům, a každý bude mít označení. Poslední oddíl /usr/ vyplňuje zbytek mirroru.

# gpart create -s gpt mirror/gm0
# gpart add -t freebsd-boot -l boot -s 512K mirror/gm0
# gpart add -t freebsd-swap -l swap -s 16g -a 1m mirror/gm0
# gpart add -t freebsd-ufs -l root -s 8g -a 1m mirror/gm0
# gpart add -t freebsd-ufs -l tmp -s 8g -a 1m mirror/gm0
# gpart add -t freebsd-ufs -l var -s 16g -a 1m mirror/gm0
# gpart add -t freebsd-ufs -l usr -a 1m mirror/gm0

Soubor fstab

V návaznosti na rozdělení disku na oddíly vytvoříme soubor /tmp/bsdinstall_etc/fstab, kde specifikujeme místo, kam se mají jednotlivé oddíly připojovat.

/dev/gpt/swap   none    swap    sw  0   0
/dev/gpt/root   /       ufs     rw  1   1
/dev/gpt/tmp    /tmp    ufs     rw  2   2
/dev/gpt/var    /var    ufs     rw  2   2
/dev/gpt/usr    /usr    ufs     rw  2   2

Boot loader

Nyní máme mirror připravený k použití. Musíme jenom určit, odkud bude operační systém bootovat.

# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 mirror/gm0
partcode written to mirror/gm0p1
bootcode written to mirror/gm0

Vytvoření souborového systému

V případě SSD disku použijeme parametr -t kvůli funkci TRIM, u normálních disků parametr -t vynecháme. Parametr -U je pro povolení soft updates a parametr -L root je pojmenování oddílu.

# newfs -t -U -L root /dev/gpt/root
# newfs -t -U -L tmp /dev/gpt/tmp
# newfs -t -U -L var /dev/gpt/var
# newfs -t -U -L usr /dev/gpt/usr

Připojení souborového systému

Instalátor předpokládá, že se souborový systém nachází v adresáři /mnt. Nejřív musíme připojit root oddíl.

# mount /dev/gpt/root /mnt

Pak vytvoříme jednotlivé adresáře.

# mkdir /mnt/tmp
# mkdir /mnt/var
# mkdir /mnt/usr

Které následně připojíme.

# mount /dev/gpt/tmp /mnt/tmp
# mount /dev/gpt/var /mnt/var
# mount /dev/gpt/usr /mnt/usr

Nyní máme manuální rozdělení disku pro mirror hotové. Napište do příkazového řádku exit a instalace bude automaticky pokračovat.

Poinstalační nastavení

Pokud proběhla instalace bez potíží, dostanete se na obrazovku s názvem “Manual Configuration”.

Manual Configuration

Zde odpovíme “Yes” a spustíme opět příkazový řádek. Zajistíme, aby se načítal gmirror modul při nabíhání operačního systému.

# echo 'geom_mirror_load="YES"' >> /boot/loader.conf

Volitelně můžeme přidat řádek do souboru /etc/periodic.conf, abychom byli informováni emailu o stavu našeho mirroru (musíte mít nastavený odesílání emailů).

# echo 'daily_status_gmirror_enable="YES"' >> /etc/periodic.conf

Zkontrolujte, zda jsou disky synchronizované. Poté stačí do příkazové řádky napsat exit a následně vyberte z nabídky reboot.

Výměna vadného disku

V tomto příkladu předpokládejme, že vadný disk je ada1 a jméno gmirroru je gm0. Dávejte opravdu dobrý pozor, jaký disk selhal a dvakrát si rozmyslete, než začnete psát následující příkazy.

Vyměňte vadný disk za nový stejné nebo větší velikosti a ujistěte se, že nový disk je prázdný a bez rozdělení na oddíly.

# gpart show ada1

V případě potřeby vymažte metadata na disku.

# gpart destroy -F ada1

Po vyměnení vadného disku by se měla spustit synchronizace automaticky. Pokuď ne, musíte spustit synchronizaci ručně příkazama:

# gmirror forget gm0
# gmirror insert gm0 ada1

Počkejte, až se zesynchronizují oba disky. Stav zjistíte příkazem gmirror status. Po synchronizaci máte opět plně funkční systém.

Zajímavé odkazy

Reklama

Určitě chcete vědět víc, protože zkoušet servery doma je nuda. A přitom stačí tak málo. Pronajměte si VPS u Vultr.com nebo DigitalOcean.com a poznáte tu pravou chuť Internetu. Super je, že na prvních 30 dní dostanete 50$ jako bonus.

Chci zkusit Vultr.com Dám přednost DigitalOcean.com

Kdo píše tento web

Jmenuji se Daniel. FreeBSD používám od roku 2005. Vyzkoušel jsem všelijaké distribuce Linuxu a pořád cítil, že to není ono. Ten chaos! Pak vyšlo FreeBSD 5.3, přelomová verze. Od té doby jedu na FreeBSD. Čteme dál...