Krátce po startu systému se objeví hlášení o dostupných aktualizacích. Hlášení pochází od Správce aktualizací, který je v horním panelu. Po jeho otevření se objeví dvě aktualizace – systému a balíčků. Po jejich provedení (aktualizuje se samotný balíček PKGNG) se objeví další soubor balíčků k aktualizaci. Viz následující obrázky.
Při aktualizaci dojde nejprve ke stažení potřebných balíčků. Po zahájení jejich instalace se ale objeví chybové hlášení a proces se zastaví. Ze Správce není možné poznat víc, takže je nutné se informovat v terminálu.
Podle příkazu sudo
pc-updatemanager pkgcheck
se jedná o kolize balíčku xscreensaver. Je proto nutné ho odinstalovat příkazem sudo pkg delete -f
xscreensaver
a pokračovat v aktualizaci příkazem sudo
pc-updatemanager pkgupdate
.
Pak vše proběhne OK. Dalším krokem je instalace portů jedním ze způsobů, které byly uvedeny dříve. Z nich se instalují tři potřebné aplikace: /port-mgmt/portaudit
, /port-mgmt-portupgrade
a /sysutils/zfs-stats
.
Příkaz portupgrade
se pak následně použije na aktualizaci stávajících balíčků proti portům. Tím by se dala kapitola aktualizace pro tuto chvíli uzavřít. Vrátím se k ní až v některém dalším díle po nějaké době práce se systémem.
Můžeme se tedy vrátit k nastavení parametrů ZFS systému, které bylo nakousnuto v kapitole o výkonnostních testech. ZFS pomocí jednoduchých příkazů umožní uživateli získat nebo nastavit velké množství informací a parametrů. K tomuto účelu je možné použít přímo některé příkazy:
Aktuální verze poolu a souborového systému:
~]% zpool upgrade This system is currently running ZFS pool version 28. All pools are formatted using this version. ~]% zfs upgrade This system is currently running ZFS filesystem version 5. All filesystems are formatted with the current version.
Informace o verzích poolů a souborového systému ZFS je například na Wikipedii.
Aktuální informace a nastavení poolu pro celý pool:
~]% zpool get all tank1
Viz přílohu zpool-get-all.txt.
Podobně souborový systém pro celý pool:
~]% zfs get all tank1
Viz přílohu zfs-get-all.txt.
To samé, ale pro jednotlivé datasety:
~]% zfs get all
Viz přílohu zfs-get-all-ds.txt.
Z tohoto velmi dlouhého výpisu je patrné, že je možné nastavovat různé parametry s různými hodnotami pro každý dataset podle potřeby.
Další spoustu zajímavých informací lze získat pomocí příkazu zfs-stats
, instalovaného z portů:
~]% zfs-stats -a
V příloze zfs-stats-def.txt jsou informace o výchozím nastavení ihned po instalaci. Tyto informace poslouží k tomu, aby bylo možné posoudit nutnost změn parametrů ZFS zatím jen pro ARC (RAM). Předpokládané parametry a hodnoty vypadají následovně:
vfs.zfs.arc_min="1024M" vfs.zfs.arc_max="3584M" vm.kmem_size_max="16384M" vm.kmem_size="12288M" vfs.zfs.vdev.cache.size="55M"
Výchozí hodnoty jsou tyto:
vfs.zfs.arc_min="902 692 352" # mění se na předpoklad 1024M vfs.zfs.arc_max="7 221 538 816" # nechává se výchozí hodnota vm.kmem_size_max="329 853 485 875" # nechává se výchozí hodnota vm.kmem_size="8 295 280 640" # mění se na předpoklad 12288M vfs.zfs.vdev.cache.size="0" # mění se na hodnotu 80M vfs.zfs.vdev.cache.size.max="16 384" # mění se na hodnotu 120M
Výsledné nastavení parametrů je vidět v příloze zfs-stats-new.txt. Parametry se nastavují v souboru /boot/loader.conf
. Dobré je v tomto souboru zkontrolovat parametr vfs.zfs.prefetch_disable="1"
a případně je takto upravit. V mém případě nebyla úprava nutná.
V popisu ZFS bylo uvedeno, že používá kontrolní součty k tomu, aby automaticky nacházel a opravoval chyby. Výpočty kontrolních součtů stojí samozřejmě nějaký výkon a někde se doporučuje je vypnout v případě, kdy je systém chráněn prostřednictvím RAIDZ. Já nechávám výchozí nastavení, kde vypadá situace následovně:
~]% zfs get checksum
Viz přílohu zfs-checksum.txt.
Rovněž výchozí nechávám nastavení komprese datasetů a deduplikace:
~]% zfs get dedup
Viz přílohu zfs-dedup.txt
~]% zfs get compress
Viz přílohu zfs-compress.txt.
Dalším zajímavým bezpečnostním nástrojem ZFS je tzv. scrubbing (překlady jsou celkem zajímavé – drhnutí, scrub=drhnout, vydrhnout, odřít špínu nebo povlak…).
ZFS nemá opravný nástroj fsck
, jako některé další souborové systémy. Místo toho používá scrub
, který má podobně jako fsck
dva základní úkoly: opravu souborového systému a jeho validaci. Základní rozdíly jsou tyto:
fsck musí běžet na offline systému, který tedy musí být odpojený a nelze ho během kontroly používat
fsck kontroluje pouze metadata, ale ne data samotná. Ta mohou i po provedení příkazu zůstat poškozená
scrub nepotřebuje offline systém, je vytvořený pro funkci na živém a připojeném systému
scrub kontroluje vše, data i metadata
scrub opravuje i něco, čemu se říká Silent Corruption (překládat raději nebudu…)
Scrubbing lze pro vybraný pool spustit a zastavit pomocí příkazů:
~]% zpool scrub
poolname
~]% zpool scrub -s
poolname
Pokud tedy konkrétně zadám:
~]% sudo zpool scrub tank1
Tak se chvíli něco děje, ale v terminálu není nic konkrétního vidět. Více je toho vidět z výstupu příkazu:
~]% zpool status -v tank1 pool: tank1 state: ONLINE scan: scrub in progress since Tue Mar 12 15:01:08 2013 1,89G scanned out of 454G at 33,9M/s, 3h47m to go 0 repaired, 0,42% done 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
Jak je vidět v sekci scan, nebyly žádné problémy nalezeny a opraveny. Další scrubbing by proběhl za 3h 47 min. To by ovšem bylo zbytečně časté (scrubbing samozřejmě zaměstnává disk i procesor). Oracle doporučuje pro běžné disky scrubbing jednou týdně, pro Enterprise disky pak jednou měsíčně.
Po vypnutí vypadá sekce scan takto:
scan:
scrub canceled on Tue Mar 12 15:08:54 2013
Tímto bych opět ZFS opustil a naposledy se k němu vrátím v kapitole o zálohování. Nyní se budu zabývat instalací sady uživatelských aplikací. Samozřejmě ne všech, ale upozorním na některé vybrané, případně problematické.
Pro přehrávání hudebních souborů už delší dobu používám MPD spolu s klientem GMPC. Obě aplikace jsou v binárních balíčcích i portech. Instalace byla bez problémů, ale zprovoznění serveru MPD trochu jiné než na Sabayonu:
– jako první bylo nutné zprovoznit samotný zvukový systém. V Předvolbách zvuku na panelu jsou k dispozici pro vstup /dev/dsp1
a pro výstup /dev/dsp0
, /dev/dsp1
, /dev/dsp2 a /dev/dsp3. Jako výchozí jsou vybrány vstup /dev/dsp1
a výstup /dev/dsp0
. V Konfiguraci zvuku v Nastavení jsou pak k dispozici čtyři zařízení:
pcm0: (play) pcm1: (play/rec) default - nastaveno jako funkční pcm2: (play) pcm3: (play)
– spustit příkaz musicpd
, který připojí zvukový systém
– upravit konfigurační soubor /usr/local/etc/musicpd.conf
následovně a uložit:
music_directory $HOME/Hudba playlist_directory $HOME/.mpd/playlists db_file $HOME/.mpd/database log_file $HOME/.mpd/log user aktuální uživatel bind_to_address localhost odkomentovat! port 6600 odkomentovat!
– vyzkoušet příkazy /usr/local/etc/rc.d/musicpd
status, start, stop
– do souboru /etc/rc.conf
vložit
# Enable MPD musicpd_enable="YES"
– restartovat systém
Po restartu je možné spustit GMPC a upravit si ho dle požadavků. Je samozřejmě možné využít i jiné MPD klienty.
V dalším dílu dokončím kapitolu o instalaci vybraných aplikací.