Zkušenosti z provozu a administrace PC-BSD

1. 7. 2013
Doba čtení: 9 minut

Sdílet

Tento díl bude zaměřen na zhodnocení zkušeností s provozem PC-BSD, pozitivní poznatky a také samozřejmě problémy a nedostatky, které se za dobu cca tří měsíců vyskytly a mohly by případnému zájemci komplikovat život. Jednotlivé postřehy nebudou řazeny chronologicky, ale budou uváděny jako jednotlivé tipy.

Toto téma mělo být probíráno už dříve, ale nastalo několik okolností, které tomu zabránily a bylo tedy nutné předřadit dva díly o využití jails.

První a nejdůležitější okolností byl velmi závažný problém, který nastal naprosto nečekaně a neplánovaně. Na počátku to vše vypadalo velmi banálně – systém se při běžném provozu zasekl a nešlo dělat nic jiného, než restart. Po něm systém normálně naběhl a bez problémů pracoval několik dalších hodin. Pak jsem stroj normálně vypnul jako každý večer. Ráno ovšem nastalo velmi nepříjemné překvapení – stroj nenaběhl a pořád dokola se restartoval. Chybové hlášky nebyly zrovna vypovídající (trap panic, různé verze, číslo 12, chyby ve vláknech procesoru atd.). Jediná kloudná informace, co jsem našel, hovořila o problému s HDD. Jejich kontrola přes SMART ale nic zajímavého nepřinesla. Další problém mohl být v jejich připojení, takže jsem odpojil a znovu propojil disky se zdrojem a pro jistotu vyměnil všechny datové kabely. Samo o sobě to nebylo nic platné, takže jsem stál trochu na rozcestí. Co se týká dat, tak to nebyl žádný problém, protože jsem je měl zálohovaná na externím disku.

Proto jsem se rozhodl, že vyzkouším záchranu dat, abych v tomto ohledu získal další informace a zkušenosti. K tomuto účelu je možné použít několik metod. Já jsem se původně rozhodl vyzkoušet postupně tyto tři:

  • linuxové Live distribuce a jejich nástroje
  • nástroje postavené na *BSD, které slouží jako NAS
  • specializované instalace FreeBSD nebo další UNIX systémy

Jak je asi zřejmé, běžné linuxové Live distribuce si se ZFS moc poradit neumí. Jako jediný se trochu chytil jenom testdisk. Našel disky i oddíly. Problém byl ale v tom, že obnovil jenom 4 GB a skončil chybovou hláškou.

Ve druhém kole jsem zkusil také několik variant, ale jedinou, která byla zajímavá, je distribuce ZFSGuru. Ta má totiž přímo při instalaci přístupnou funkci pro import ZFS poolu. Problém byl ale v tom, že při pokusu o jeho import (pool byl viditelný a podle hlášení funkční a nepoškozený?) docházelo k restartům systému. Chyby byly podobné, jako při pokusech o nahození původního systému.

Na základě toho jsem se rozhodl, že nebudu zkoušet mfsBSD (minimalistický systém, který vytvoří funkční instalaci FreeBSD) a OpenIndiana – systém postavený na poslední verzi OpenSolaris.

Jako poslední variantu jsem tedy do systému připojil další pevný disk a na něj instaloval běžným a popsaným způsobem PC-BSD. Původní ZFS pool byl opět viditelný, ale nebyl připojený. Tím pádem nebylo možné s ním udělat nic jiného než import. Ten se ale opět nezdařil a za podobných chybových hlášení se systém restartoval.

Takže celé snažení vlastně skončilo tím, že jsem nedokázal přesně identifikovat konkrétní problém a jeho příčinu a nepodařilo se mi původní ZFS pool obnovit. To na jednu stranu nebylo moc povzbudivé zjištění. Na druhou stranu musím ale přiznat, že jsem si na PC-BSD velmi rychle přivykl a přes popsané zklamání jsem ho chtěl vrátit zase zpátky. A když už má být všechno provedeno znovu, tak se přece sluší, aby to bylo provedeno lépe a radostněji, že?

Už v rámci předchozího provozu jsem zkoušel všechna defaultně dostupná grafická prostředí – začal jsem s GNOME a vyzkoušel i další – KDE, XFCE a LXDE. Trochu mne překvapilo, že KDE nemá o moc větší nároky na systémové zdroje v porovnání s GNOME. Ve verzi 4.10 už je určitě použitelné a velmi dobře nastavitelné k obrazu uživatelskému. Musel jsem ho ale z možného nasazení velmi rychle vyřadit, protože poměrně často docházelo ke kolapsu KWin a nutnosti ho pořád restartovat. Zbyly tedy jenom dvě možnosti – XFCE a LXDE. V nejnovější verzi je XFCE už hodně podobné GNOME2 a má spoustu možností administrace a úpravy. Je ale pravda, že už je také skoro stejně náročné na systémové prostředky. Když jsem udělal krátkou analýzu, tak jsem zjistil, že mi v LXDE vlastně nic nechybí (stačí mi panel pro nějaký přehled a spouštění aplikací v kombinaci s nějakým launcherem). Navíc to přineslo úsporu cca 200 MB využití paměti a celkové zrychlení odezvy systému.

Kromě instalace grafického prostředí jsem v návaznosti na práci kolem jails chtěl nabyté zkušenosti využít a většinu dříve používaných služeb přenést do jailů. Trvale spuštěné služby přece jenom potřebují nějaké systémové prostředky a jejich využití je spíše nárazové. Spuštění služby nebo jailu je prakticky stejně „náročné“, takže v tom nebude rozdíl. Rozdíl ale určitě bude v tom, že je možné jail velmi snadno zálohovat včetně importu a exportu. Také je možné pro jednotlivé jaily nastavit vzdálený přístup, aniž by tím byl nějak ovlivněn hostitelský stroj. K podrobnostem se vrátím ještě někdy v budoucnu.

Když už bylo všechno papírově vymyšlené, bylo možné přistoupit k praktickému provedení nové instalace. Pro klid duše jsem provedl zrušení všech oddílů na HDD a ještě jednou jejich testy. Nic zásadního se neukázalo, a tak bylo možné začít.

K dispozici jsem měl původní DVD z února, kde byla první verze z rolling updates. Mezitím vyšlo několik jeho aktualizací, z nichž ta poslední je z 12. dubna. První jsem logicky vzal do ruky nejnovější DVD. Krátce po zahájení instalace mne ale čekalo dost nepříjemné překvapení – systém hlásil, že na DVD není z čeho bootovat a instalaci nebylo možné vlastně ani zahájit, natož dokončit (následně jsem to samé vypálené DVD zkoušel instalovat do VirtualBoxu. Tam sice instalace naběhla a doběhla, ale systém nenastartoval do grafického prostředí. TrueOS jde instalovat a spustit bez problémů). Asi se jedná o „daň“ za rolling updates, ale nechtělo se mi to podrobněji zkoumat. Instalace z únorové verze proběhla v pořádku a následná aktualizace také.

Po instalaci základní sady aplikací a obnovení uživatelských dat jsem se pustil do přípravy jednotlivých jailů. Jejich založení jsem za pomoci triku s úpravou příslušného skriptu (blíže bylo popsáno v minulých dílech) zvládl bez problému. Veliké rozčarování ale nastalo při snaze jail nastartovat. Warden GUI neukázalo nic, takže jsem to zkusil terminálovým příkazem. Ten už byl o něco sdílnější a nahlásil problém s modulem VNET. Pátráním na netu jsem zjistil, že se jedná o problém s jaderným modulem VIMAGE. Kromě jiného jsem opět našel upozornění na to, že rolling updates mohou přinést nečekané problémy. Bez ohledu na cokoliv jsem stál před dilematem, co dál. Byly v zásadě tři možnosti:

  • čekat na nějakou aktualizaci, která by vše napravila a uvedla do původního bezproblémového stavu
  • překompilovat jádro se zapnutým příslušným modulem
  • provést novou instalaci s verzí PC-BSD 9.1 (vyšlo v prosinci 2012).

Do varianty s kompilováním jádra se mi hrubě nechtělo, protože jsem to nikdy nedělal ani na Linuxu a výsledek tedy mohl být všelijaký… Jako nejschůdnější se tak jevila nová instalace stabilní verze. Na druhou stranu musím říct, že za těch pár měsíců se v systému odehrály dost zajímavé změny a bylo mi líto se jich vzdát. Naštěstí to za mne vše vyřešila velká sada aktualizací, kterou jsem aplikoval o víkendu kolem 8. června. Ta přinesla pro mne hodně důležitých věcí, zdůrazním ale pouze dvě:

  • systém práce s jails funguje naprosto bez problémů. Ani při vytváření není nutné nic upravovat a také všechny další operace jsou v pohodě
  • byl hodně rozšířen rozsah dostupných binárních balíčků v PKGNG. To se pozná hlavně na větších aplikacích (LibreOffice, JDK, Firefox, Thunderbird atd.), kde kompilace z portů trvá dost dlouhou dobu

Tímto konstatováním bych se vrátil zpátky k postřehům o zkušenostech s provozem PC-BSD + LXDE na pracovně-osobním desktopu.

Jako první bych asi zmínil systém aktualizací. Už jsem o něm psal a je jasné, že úzce souvisí s využitými způsoby instalace aplikací. Já přes PBI mám prakticky po celou dobu instalované jenom Wine pro 64-bitový systém. Je to z toho důvodu, že jinde není. Aktualizace se provádí průběžně, takže stačí jenom jednou za čas spustit AppCafe.

Většinu aplikací mám instalovanou přes binární balíčky PKGNG. Balíčkovací systém má mnoho možností, takže uvedu jenom vybranou sadu pro kompletní aktualizaci systému PC-BSD a instalovaných balíčků. Seřadím je chronologicky tak, jak je cca jednou týdně provádím:

pkg update – aktualizuje seznam balíčků v repozitáři

pc-updatemanager check – prověří dostupnost aktualizací systémových balíčků PC-BSD

pc-updatemanager install package – instaluje vybrané aktualizace

pc-updatemanager pkgcheck – prověří dostupnost

pc-updatemanager pkgupdate – aktualizuje instalované balíčky

pkg upgrade – provádí prakticky to samé jako předchozí příkaz. Zatím mám takovou zkušenost, že je dobré je použít oba. Někdy mívá některý z nich problémy, hlavně s cyklickými závislostmi a už se mi podařilo je vyřešit spuštěním toho druhého příkazu

pkg check -d – prověří a případně instaluje chybějící závislosti

Z portů mám instalováno minimum aplikací, které v PKGNG zatím nejsou – viz předchozí text. Pro aktualizaci portů slouží příkaz

# portsnap update

Porovnání verzí balíčků instalovaných v systému proti balíčkům v portech slouží příkaz

# pkg version – v | grep needs

Já ho používám minimálně a pokud ano, tak směřuju ke konkrétním aplikacím, které jsou instalované přes porty, a ty pak aktualizuji příkazem

portupgrade -yR packagename – bez dotazu aktualizuje zadaný balíček včetně závislostí

U těchto dvou příkazů, resp. obecně u rozdílů ve verzích mezi PKGNG a porty je třeba dbát zvýšené pozornosti a opatrnosti. Už se mi jednou podařilo při komplexní aktualizaci směrem od portů do PKGNG odpálit spuštění GNOME. Náprava je ale naštěstí velmi jednoduchá: pokud spustíte aktualizaci balíčků PKGNG, dojde při ní k automatickému downgrade na původní verzi balíčků.

Specializovaná příkazy pro práci s porty už prakticky nepoužívám.

V některém z minulých dílů jsem psal o tom, že je třeba využívat aplikaci Update manager z Ovládacího panelu. Tato aplikace se po aktualizacích také změnila a je možné v ní provádět pouze systémové aktualizace FreeBSD. K jejímu použití mne nutila neznalost příslušného terminálového příkazu. Od té doby jsem pokročil a zde je výsledek – příslušnými příkazy jsou:

freebsd-update fetch – stáhne systémové aktualizace z příslušného FreeBSD zrcadla

freebsd-update install – instaluje stažené aktualizace

freebsd-update rollback – odinstaluje nainstalované aktualizace

Možností je zde ještě víc, ale nebudu je všechny popisovat. Výsledek stažení může vypadat např. takto:

# sudo freebsd-update fetch
Password:
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching metadata signature for 9.1-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

The following files are affected by updates, but no changes have
been downloaded because the files have been modified locally:
/var/db/mergemaster.mtree

The following files will be updated as part of updating to 9.1-RELEASE-p4:
/boot/kernel/linker.hints

Kromě zlepšené práce s PKGNG musím ale konstatovat i jeden poměrně nepříjemný nedostatek. Jedná se o výběr zrcadla s repozitáři. Defaultně je systém nastaven k nějakému automatickému výběru. Ten ale bohužel většinou nefunguje (u mne zatím nikdy…) a je třeba nastavit repozitáře ručně. Já jsem zatím použil dvě zrcadla:

http://mirrors.xservers.ro/pcbsd

ftp://ftp.pcbsd.org/pub/mirror/

Ten druhý se sice tváří „mateřsky“, ale pro běžnou práci je tragicky pomalý a prakticky nepoužitelný. Kvůli jeho náhradě jsem dokonce musel přerušit velkou víkendovou aktualizaci, protože stahoval balíčky závratnou rychlostí pod 50 KB/s. Po změně se rychlost zvýšila 10–15×, a to je už nějak poznat!

ict ve školství 24

Když už jsme u těch rychlostí, tak bych zmínil ještě jednu, i když pro mne není zdaleka tak důležitá. Mám ve stroji grafiku AMD Radeon HD 4670. Na Sabayonu běžela jenom a pouze na komunitním ovladači a v GLXGEARS to ukazovalo stabilních 60 FPS. Vzhledem k tomu, co používám, tak to bohatě stačilo. Byl jsem ale zvědavý, jak si se stejnou situací poradí PC-BSD s firemním ovladačem. Aby bylo možné příkaz vůbec spustit, je třeba instalovat balíček mesa-demos (je v PKGNG i portech). Při instalaci systém nastavil ovladač RADEONHD a tato kombinace vykazuje cca 380 FPS, což je slušný nárůst. Až bude čas a nálada, tak zkusím i ovladač RADEON.

Tímto dnešní díl ukončíme a v příštím díle budu pokračovat na podobné téma – zkušenosti, problémy, řešení a podobné záležitosti.

Autor článku