Hlavní navigace

PC-BSD: instalace systému a způsob dělení disků

27. 5. 2013
Doba čtení: 8 minut

Sdílet

Pokračování seriálu, ve kterém si ukazujeme, že nejen Linuxem živ je člověk a desktop je možné provozovat i na jiném unixu – třeba BSD. Ve čtvrtém dílu se budu věnovat instalaci systému a grafického prostředí včetně možností rozdělení disků z pohledu kapacity, výkonu a zálohování uživatelských dat.

Instalace se provádí klasicky z DVD nebo USB. Jednotlivé dostupné obrazy je možné stáhnout přímo ze stránek projektu. Kromě toho lze použít i něco jako „denní build“. Tato verze je podle webu deklarovaná jako „First Rolling Release“.

Je založená na FreeBSD 9.1-RELEASE a používá jako základní balíčkovací systém PKGNG pro aktualizaci systémových i uživatelských balíčků. ISO obrazy jsou na mirrors.isc.org/pub/PC-BSD/9.1-RELEASE/.

Průběh instalace nemá asi smysl podrobně popisovat. Docela zřejmé je to z následující galerie, která vznikla na virtuálním stroji. Zmíním se jenom letmo o některých zajímavých krocích a volbách při instalaci.

Instalovat lze šest různých variant:

  • FreeBSD server – základní instalaci aktuální verze FreeBSD se stejným obsahem, jako kdyby se instalace prováděla přímo z médií FreeBSD.
  • TrueOS – kromě FreeBSD serveru obsahuje konzolové nástroje pro instalaci PBI balíčků, manažer jails Warden, bootovací prostředí ZFS a další administrátorské nástroje.
  • čtyři různé varianty PC-BSD s grafickým prostředím KDE, LXDE, GNOME nebo XFCE.

Varianty s grafickým prostředím lze ještě dále upřesnit a některé balíky přidat nebo naopak z instalace vypustit.

Rozdělení disků je možné provést automaticky, kdy se instalace systému provede na jeden zvolený disk a ostatní připojené disky zůstanou nedotčené. Je také možné použít úpravu a v režimu Advanced zvolit typ souborového systému (UFS nebo ZFS), uspořádání ZFS do různých módů a změnu defaultního rozložení datasetů. Jak je patrné z obrázků, je defaultní uspořádání datasetů poměrně obsáhlé a parametrizované.

Doporučeno je použít UFS pro 32-bitové systémy a RAM do 2 GB, ZFS pak pro 64-bitový systém a RAM nad 2 GB. Ke každému módu ZFS je v nápovědě uveden počet dalších disků, který musí být vybrán, aby instalátor umožnil přechod do dalšího kroku.

mirror – 1 disk, raidz1 – 2 nebo 4 disky, raidz2 – 3, 5 nebo 9 disků, raidz3 – 4, 6 nebo 10 disků

Instalace s použitím ZFS trvá poměrně dlouhou dobu, ale k tomu se dostanu až později. Po jejím skončení se objeví příslušné oznámení a je možné stroj restartovat do systému.

Po prvotním startu grafického prostředí se objeví dialog pro nastavení ovladače grafiky a rozlišení monitoru. Po krátkém intru se pak nastaví jazyk, časová zóna, heslo administrátora a založí se uživatelský účet včetně hesla. Po ukončení se restartuje grafické prostředí a objeví se obrazovka GDM. Zde se nastaví lokalizace a klávesnice a nic pak nebrání přihlásit se jako uživatel.

Vše toto je dobře vidět v další galerii:

Při pokusech na virtuálním stroji mě zarazila poměrně dlouhá doba instalace systému v porovnání s linuxovými distribucemi. Následně mi došlo, že by to mohlo být kromě jiného způsobeno dělením disků. Také aktualizace balíčků systému vs. porty by mohla být velmi zdlouhavá i v souvislosti s pomalým zápisem na disky (odhadem několik hodin!). Počet aktualizovaných balíčků závisí i na použité verzi PC-BSD. Standardní verze vyžaduje aktualizovat skoro 160 balíků, ta novější už jenom asi deset.

Je jasné, že nemělo velký smysl testovat rozložení disků na virtuálním stroji. Proto jsem se rozhodl, že přes samotnou instalací na fyzický stroj provedu krátké testy pro různé dělení disků. Aktuálně mám k dispozici čtyři HDD (jeden 750GB a tři 500GB), CPU Intel čtyři jádra/osm vláken a 8 GB RAM.

Se čtyřmi disky se samozřejmě nedají dělat žádné velké vylomeniny. Přesto se nabízejí 3 teoretické, ale jenom dvě smysluplné varianty, jak je rozdělit a uspořádat úložiště. Všechny varianty se od sebe liší v několika znacích, které jsou seřazené podle důležitosti:

  • odolnost proti výpadku disků
  • výkonové parametry hlavně při zápisu dat
  • celková kapacita úložiště
  • požadavky na zálohu systému a dat
  • konečný počet poolů

Varianta 1

Všechny disky budou použity pro vytvoření 1 poolu v módu RAIDZ2. Kapacita bude 1 TB, odolnost proti výpadku – 2 libovolné disky. Odolnost je poměrně vysoká, takže bude stačit občasná záloha systému a dat na externí disk. Výkon bude patrně nejhorší.

Varianta 2

Tato varianta by mohla použít všechny disky v módu „Striped Mirrored Vdev Pool“, tedy obdoba RAID10. Problém je ale v tom, že systémový pool nemůže obsahovat více skupin, a tak by bylo možné tuto variantu použít pouze pro nesystémové pooly.

Varianta 3

Jeden disk bude použit pro vytvoření systémového poolu a ostatní tři pro vytvoření záložního poolu v módu RAIDZ1. Kapacita bude 1,75 TB, tedy nejvyšší. Nejnižší bude naopak odolnost. Systém je na jednom disku a také záložní pool má pouze jeden paritní disk. Výhoda je si v tom, že bude možné primárně zálohovat systém i data na záložní pool a frekvence záloh na externí disk může být nižší. Výkon bude asi nejvyšší.

Všechny parametry jsou jasné až na ten výkonový. Abych ho zjistil na konkrétním HW, tak jsem před vlastní instalací provedl tři typy výkonových testů za stejných podmínek. Prvním z nich je měření času pro instalaci.

Druhý test proběhl po instalaci pomocí příkazu

$ time dd if=/dev/zero of=$HOME/fileX.out bs=...k count=...k

kdy bs a count mají vždy tři různé hodnoty (bs=4k,64k a 1024k, count=256k, 16k a 1k) a ukládá se vždy do samostatného file.out.

Třetí test byl proveden také pomocí předchozího příkazu, ale až po nastavení parametrů pro využití RAM. Do souboru /boot/loader.conf byly doplněny tyto parametry:

vfs.zfs.arc_min=“1024M“ doporučení je 128M na 1 GB RAM

vfs.zfs.arc_max=“3584M“ doporučení je RAM/2 – 512 MB

vm.kmem_size_max=“16384M“ doporučení je RAM * 2

vm.kmem_size=“12288M“ doporučení je RAM * 1,5

vfs.zfs.vdev.cache.size=“55M“

Výsledky testů byly docela překvapující, ale z mého pohledu příznivé. Nenaplnily se totiž původní předpoklady a všechny testy byly lepší pro variantu všech disků s RAIDZ2. Co se týká doby instalace, pohybovala se kolem 10 minut od bodu ukončení dělení disků. Rozdíl mezi oběma variantami byl 25 %.

Výkonové testy se od sebe lišily ještě výrazněji – cca 70 %. Ukázalo se také, že nastavení parametrů mělo poměrně malý vliv – cca 5% zlepšení. K tomuto kroku se ještě vrátím později.

Jaký je tedy rozdíl mezi aktuálním a původním dělením disků?

  • zvýšila se odolnost proti výpadku a havárii disků. Při výpadku dvou libovolných disků systém ještě pořád naběhne. Původně byl systém na jednom disku a odolný byl pouze adresář HOME s RAID5. Jedná se určitě o zlepšení.
  • neporovnával jsem výkony starého a nového systému co se týká zápisů na disk. Subjektivně můžu po pár dnech používání říct, že se nic nezměnilo ani k horšímu, ani k lepšímu. V každém případě chci porovnat výkony před a po zařazení SSD jako L2ARC
  • celková kapacita úložiště se zmenšila z 1,5 TB na 1 TB. Vzhledem k celkové potřebě cca 205 GB je ale pořád dostatečná a v dohledné době není nutné uvažovat o jejím navyšování
  • zálohování je možné rozdělit na dvě části. První je občasná záloha systému pomocí snapshotů, uložených na lokální i externí disk. Původně nebyl systém zálohován vůbec. Druhá je pak pravidelná přírůstková záloha vybraných dat, což je stejné jako původně.

Ještě pro doplnění uvedu, že jsem instaloval systém s prostředím GNOME, kde jsem vynechal dva meta-balíčky – Accessibility a Games. Kompletní instalace trvala cca 14,5 minuty.

Tímto přehledem by se dala uzavřít kapitola instalace a je možné přejít k prvním krokům po ní. Připojené disky můžeme ověřit příkazem

~%  camcontrol devlist

Jeho výstup může vypadat následovně:

<Optiarc DVD RW AD-7173A 1-01>            at scbus2 target 0 lun 0 (pass0,cd0)
<WDC WD7501AALS-00E8B0 05.00K05>      at scbus3 target 0 lun 0 (ada0,pass1)
<SAMSUNG HD502HI 1AG01118>            at scbus3 target 1 lun 0 (ada1,pass2)
<SAMSUNG HD501LJ CR100-10>                at scbus4 target 0 lun 0 (ada2,pass3)
<SAMSUNG HD501LJ CR100-10>                at scbus4 target 1 lun 0 (ada3,pass4)
<Generic USB SD Reader 1.00>              at scbus8 target 0 lun 0 (da0,pass5)
<Generic USB CF Reader 1.01>              at scbus8 target 0 lun 1 (da1,pass6)
<Generic USB SM Reader 1.02>              at scbus8 target 0 lun 2 (da2,pass7)
<Generic USB MS Reader 1.03>              at scbus8 target 0 lun 3 (da3,pass8)

Jde to i trochu jinak:

Cloud 24 - tip 1

~%  egrep 'ad[0-9]|cd[0]' /var/run/dmesg.boot
ada0: Previously was known as ad10
ada1: Previously was known as ad11
cd0 at ata2 bus 0 scbus2 target 0 lun 0
cd0:  Removable CD-ROM SCSI-0 device
cd0: 66.700MB/s transfers (UDMA4, ATAPI 12bytes, PIO 65534bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present
ada2: Previously was known as ad12
ada3: Previously was known as ad13

Pro kontrolu můžeme použít některé další příkazy, které ukáží jak disky, tak pool:

~%  zpool list
NAME    SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
tank1  1,81T   464G  1,36T    25%  1.00x  ONLINE  -

~%  zpool list -v
NAME                                     SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
tank1                                   1,81T   465G  1,36T    25%  1.00x  ONLINE  -
  raidz2                                1,81T   465G  1,36T         -
    gptid/292a227c-8753-11e2-a05c-001b21488bf2      -      -      -         -
    gptid/22cd3db9-8753-11e2-a05c-001b21488bf2      -      -      -         -
    gptid/2514b47a-8753-11e2-a05c-001b21488bf2      -      -      -         -
    gptid/2795c6c5-8753-11e2-a05c-001b21488bf2      -      -      -         -

~%  zpool status
  pool: tank1
 state: ONLINE
  scan: none requested
config:

    NAME                                            STATE     READ WRITE CKSUM
    tank1                                           ONLINE       0     0     0
      raidz2-0                                      ONLINE       0     0     0
        gptid/292a227c-8753-11e2-a05c-001b21488bf2  ONLINE       0     0     0
        gptid/22cd3db9-8753-11e2-a05c-001b21488bf2  ONLINE       0     0     0
        gptid/2514b47a-8753-11e2-a05c-001b21488bf2  ONLINE       0     0     0
        gptid/2795c6c5-8753-11e2-a05c-001b21488bf2  ONLINE       0     0     0
errors: No known data errors

/]% zpool iostat -v tank1

                                             capacity     operations    bandwidth
pool                                    alloc   free   read  write   read  write
--------------------------------------  -----  -----  -----  -----  -----  -----
tank1                                    455G  1,37T      3     31   185K   363K
  raidz2                                 455G  1,37T      3     31   185K   363K
    gptid/292a227c-8753-11e2-a05c-001b21488bf2      -      -      1     12  60,0K   215K
    gptid/22cd3db9-8753-11e2-a05c-001b21488bf2      -      -      1     12  60,6K   215K
    gptid/2514b47a-8753-11e2-a05c-001b21488bf2      -      -      1     12  59,8K   216K
    gptid/2795c6c5-8753-11e2-a05c-001b21488bf2      -      -      1     12  60,0K   216K
--------------------------------------  -----  -----  -----  -----  -----  -----

V příštím díle se budu dále věnovat dalším poinstalačním krokům – aktualizaci systému, balíčků i portů, nastavení HW komponent, systémových parametrů a instalaci aplikací.

Byl pro vás článek přínosný?