Letos se uskuteční již 11. ročník soutěže v programování Kasiopea. Tato soutěž, (primárně) pro středoškoláky, nabízí skvělou příležitost procvičit logické myšlení a dozvědět se něco nového ze světa algoritmů – a to nejen pro zkušené programátory, ale i pro úplné začátečníky. Domácí kolo proběhne online od 22. 11. do 7. 12. 2025 a skládá se z 9 zajímavých úloh různé obtížnosti. Na výběru programovacího jazyka přitom nezáleží – úlohy jsou
… více »Byla vydána nová verze 2.52.0 distribuovaného systému správy verzí Git. Přispělo 94 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
VKD3D-Proton byl vydán ve verzi 3.0. Jedná se fork knihovny vkd3d z projektu Wine pro Proton. Knihovna slouží pro překlad volání Direct3D 12 na Vulkan. V přehledu novinek je vypíchnuta podpora AMD FSR 4 (AMD FidelityFX Super Resolution 4).
Poštovní klient Thunderbird byl vydán v nové verzi 145.0. Podporuje DNS přes HTTPS nebo Microsoft Exchange skrze Exchange Web Services. Ukončena byla podpora 32bitového Thunderbirdu pro Linux.
U příležitosti státního svátku 17. listopadu probíhá na Steamu i GOG.com již šestý ročník Czech & Slovak Games Week aneb týdenní oslava a také slevová akce českých a slovenských počítačových her.
Byla vydána nová verze 9.19 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček BirdNET-Go, tj. AI řešení pro nepřetržité monitorování a identifikaci ptáků.
Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).
Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Google představil platformu Code Wiki pro rychlejší porozumění existujícímu kódu. Code Wiki pomocí AI Gemini udržuje průběžně aktualizovanou strukturovanou wiki pro softwarové repozitáře. Zatím jenom pro veřejné. V plánu je rozšíření Gemini CLI také pro soukromé a interní repozitáře.
O backup volume (BK) jsme mluvili již dříve a představili jsme si jej jako snapshot a i tak funguje. Když záložní volume vytvoříme, ukládají se do něj pouze rozdíly vůči RW volumu. Backup volume se povinně nachází na shodném umístění, jako je RW, proto není nutné v příkazu zadávat cestu. BK volume můžeme vytvořit ručně (bez administrátorského oprávnění to nejde):
~$ vos backup root.cell Created backup volume for root.cell
Tím jsme získali volume root.cell.backup a můžeme jej připojit
tam, kam máme práva. Mount point může vytvořit i uživatel pokud má
v daném adresáří právo INSERT (i) a ADMINISTER (a).
Tyto práva má v domovském adresáři. Prakticky si může připojit libovolný
volume, ale práva uvnitř neobejde. Proto byste nikdy neměli spoléhat na
nastavení práv v nadřazeném adresáři, protože může být součástí jiného
volumu a při připojení do jiného místa už vám data nadřazený adresář neochrání.
Připojení nově vzniklého volumu provedeme v některém RW volumu, použijeme tedy tečkovou cestu, a vyzkoušíme do něj zápis:
~$ cd /afs/.foo.bar /afs/.foo.bar$ fs mkmount zaloha root.cell.backup /afs/.foo.bar$ ls users zaloha
Provedli jsme připojení volumu root.cell.backup do volumu
root.cell pod názvem zaloha. Protože jsme BK volume
vytvořili ještě před mount pointem (což je zápis), tak bychom jej neměli
v adresáři zaloha vidět. Po tom, co znovu vyvoláme vytvoření
BK volumu, už uvidíme i tento mount point.
/afs/.foo.bar$ ls zaloha users /afs/.foo.bar$ vos backup root.cell Created backup volume for root.cell /afs/.foo.bar$ ls zaloha/ ls: cannot access zaloha/zaloha: No such device users zaloha
V BK volumu jsou samozřejmě zálohovány i mount pointy. Ale ty, které vedou na záložní BK volumy, jsou zneplatněny, aby se zabránilo zbytečným smyčkám v adresářové struktuře. Ostatní mount pointy fungují regulérně:
/afs/.foo.bar$ cd zaloha /afs/.foo.bar/zaloha$ fs lsmount * 'users' is a mount point for volume '#users' 'zaloha' is a mount point for volume '#root.cell.backup' /afs/.foo.bar/zaloha$ ls zaloha ls: cannot access zaloha: No such device /afs/.foo.bar/zaloha$ ls users a b c d e f g h i j k l m n o p q r s t u v w x y z
Všechny výše uvedené operace jsme dělali na RW volumu. Pro volume
root.cell nám existuje i RO kopie. S tou se ale nic nestalo,
protože jsme zatím nevyvolali její releasování. Podíváme se tedy, jak
je na tom netečkovaná (RO) větev našeho AFS stromu:
/afs/.foo.bar$ cd /afs/foo.bar /afs/foo.bar$ ls users /afs/foo.bar$ vos release root.cell Released volume root.cell successfully /afs/foo.bar$ ls users zaloha /afs/foo.bar$ ls zaloha ls: cannot access zaloha/zaloha: No such device users zaloha
BK volume lze zrušit stejně jako jakýkoliv jiný volume. Lokace BK volume je na stejném místě, jako je RW volume. Proto při jeho rušení není povinné uvádět jeho umístění:
/afs/foo.bar$ vos remove -id root.cell.backup Volume 536870917 on partition /vicepa server afssrv.foo.bar deleted /afs/foo.bar$ fs lsmount * 'users' is a mount point for volume '#users' 'zaloha' is a mount point for volume '#root.cell.backup' /afs/foo.bar$ ls zaloha ls: cannot access zaloha: Connection timed out
Volume už neexistuje, ale mount point jsme ještě nezrušili, to dává
AFS najevo právě chybou Connection timed out. Zrušíme tedy
mount point v RW volumu a provedeme release, abychom změnu dostali i do
RO kopie:
/afs/foo.bar$ fs rmmount /afs/.foo.bar/zaloha /afs/foo.bar$ vos release root.cell Released volume root.cell successfully /afs/foo.bar$ ls users
Správný postup při rušení jakéhokoliv volumu by měl být, že nalezneme všechny mount pointy pro rušený volume. Ty odpojíme a pokud v daném volumu existuje replika, tak provedeme release volumu. Pak rušený volume zazálohujeme a odstraníme.
Do teď jsme vytvářeli BK volumy po jednom a s právy administrátora.
Lepší by bylo, kdyby se nám o to automaticky postaral systém. K tomu
slouží příkaz vos backupsys, který provádí to samé co
vos backup, ale dělá to hromadně dle názvů volumů.
A to je jeden z důvodů, proč byste měli v názvech volumů udržovat
nějaký systém.
Protože je to trochu citlivá operace, můžeme si nechat
vypsat jen seznam volumů, kterých se to dotkne, například:
/afs/foo.bar$ vos backupsys -dryrun -prefix user
user.svamberg
users
done
Total volumes backed up: 0; failed to backup: 0
Do záloh se nám tak nezapočítal volume tmp.user.svamberg,
který jsme v
minulém díle
vytvořili po obnově ze souboru.
Backup volumy můžete vytvořit k libovolnému RW volumu, ale vzhledem k šetření místa se většinou tvorba těchto volumů omezuje pouze na ty, kde nemáme RO repliky. Což jsou nejčastěji uživatelské volumy. Po zadání příkazu se nám vytvoří backup volumy:
/afs/foo.bar$ vos backupsys -prefix root done Total volumes backed up: 2; failed to backup: 0
Základní konfiguraci bosserveru jsme udělali v instalačním díle. Jeho další vlastností je, že obsahuje jednoduchý cron. Můžete tedy některé operace plánovat dle času a spouštět je přímo na serveru s lokálním ověřením. Tím se vyhnete potřebě vytvářet administrátorský token. Druhou výhodou tohoto mechanismu je, že můžete úlohy plánovat a spouštět, aniž byste potřebovali na serveru účet. Za tímto účelem vám stačí (coby správce zálohování) administrátorské oprávnění do AFS a nepotřebujete mít přístup na servery AFS nebo Kerberos.
Bosserver umožňuje definovat pouze den a hodinu, kdy se má spustit
úloha. Pokud je definice dne vynechána, pak se bude provádět záloha každý den.
My si vyzkoušíme oba případy, uživatelům necháme zálohy vytvářet každý den,
a volumy s prefixem root. budeme zálohovat vždy na konci týdne.
Každý záznam v konfiguraci bosserveru musí mít jednoznačný identifikátor v podobě názvu instance. Napřed si příkaz vyzkoušíme nanečisto:
/afs/foo.bar$ bos exec afsfs.foo.bar -cmd "/usr/bin/vos backupsys -prefix user"
Zpátky dostanete pouze chybu, pokud se program nepodařilo spustit,
ale nedostanete žádné chybové hlášení o tom, že se příkaz nepovedl, což
si můžeme dokázat výpisem volumů, kde chybí users.backup
a user.svamberg.backup:
/afs/foo.bar$ vos listvol afsfs.foo.bar | grep backup root.afs.backup 536870914 BK 214 K On-line root.cell.backup 536870917 BK 3 K On-line
Bohuzel ani v logu nenajdete nic. Nejsnadnější je přihlásit se na server
a vyzkoušet příkaz bez tokenů. A to je právě to, co jsme zapomněli. My sice
token máme, ale bosserver nikoliv. Proto příkazu vos řekneme,
že má použít autentizaci ze souboru /etc/openafs/server/KeyFile.
/afs/foo.bar$ bos exec afsfs.foo.bar -cmd "/usr/bin/vos backupsys -prefix user -localauth" /afs/foo.bar$ vos listvol afsfs.foo.bar | grep backup root.afs.backup 536870914 BK 214 K On-line root.cell.backup 536870917 BK 3 K On-line user.svamberg.backup 536870923 BK 8234 K On-line users.backup 536870932 BK 55 K On-line
Nyní odzkoušený příkaz můžeme přidat do bosserveru
jako typ cron:
/afs/foo.bar$ bos create -server afsfs.foo.bar -instance userbackup -type cron -cmd "/usr/bin/vos backupsys -prefix user -localauth" 01:30
/afs/foo.bar$ bos status afsfs.foo.bar
Instance ptserver, currently running normally.
Instance vlserver, currently running normally.
Instance fs, currently running normally.
Auxiliary status is: file server running.
Instance userbackup, currently running normally.
Auxiliary status is: run next at Wed Apr 20 01:30:00 2011.
Na posledních dvou řádcích vidíme náš nově přidaný záznam. Detaily o dané instanci lze zobrazit následovně:
/afs/foo.bar$ bos status afsfs.foo.bar -instance userbackup -long
Instance userbackup, (type is cron) currently running normally.
Auxiliary status is: run next at Wed Apr 20 01:30:00 2011.
Command 1 is '/usr/bin/vos backupsys -prefix user -localauth'
Command 2 is '01:30'
Ještě naplánujeme vždy na konci týdne zálohování
volumů s prefixem root.. Navíc přidáme do nastavení
času název dne a upravíme příkaz a název instance.
/afs/foo.bar$ bos create -server afsfs.foo.bar -instance rootbackup -type cron -cmd "/usr/bin/vos backupsys -prefix root. -localauth" "sun 23:50"
/afs/foo.bar$ bos status afsfs.foo.bar
Instance ptserver, currently running normally.
Instance vlserver, currently running normally.
Instance fs, currently running normally.
Auxiliary status is: file server running.
Instance userbackup, currently running normally.
Auxiliary status is: run next at Wed Apr 20 01:30:00 2011.
Instance rootbackup, currently running normally.
Auxiliary status is: run next at Sun Apr 24 23:50:00 2011.
Pokud bychom chtěli zálohovat jen v pracovní dny, pak bychom pro každý takový den museli vytvořit samostatné instance.
Od teď, pokud vytvoříme nového uživatele, se mu v noci automaticky vytvoří záložní volume, ten si může sám přípojit do svého domovského adresáře. Pokud chcete být na uživatele hodní, můžete jim to udělat už předem. Uživatelům je třeba vysvětlit, že tam najdou zálohu z druhého dne a nikdy starší. Proto pokud něco smazali, lze si to obnovit z předchozího dne nejpozději do 1:30 (v našem případě). Jinak vás musí požádat o rozbalení většinou starší zálohy z dumpu, tak jak jsme si ukázali v minulém díle.
Proces vytváření backup volumů probíhá sekvenčně, což nezatěžuje tolik
souborové servery, ale u velkého množství (desetitisíce) volumů se může
protáhnout na několik hodin. Při plánování vhodného začátku je potřeba
zkontrolovat i konec zálohování, zda se nepřekrývá s běžným začátkem
práce uživatelů. K tomu stačí vylistovat si seznam dotčených volumů
(viz výše příkaz vos backupsys -dryrun)
a provést vos examine na poslední volume, ve výpisu bude
uveden datum a čas vytvoření BK volumu.
V minulém dílu jsme udělali drobný nepořádek, je na čase jej uklidit:
~$ cd /afs/foo.bar/users/s/svamberg /afs/foo.bar/users/s/svamberg$ rm -rf home/tmp /afs/foo.bar/users/s/svamberg$ fs setacl home system:administrators none
Dále nám zůstal z minulého dílu volume tmp.user.svamberg,
odstraníme jeho mount point i vlastní volume:
/afs/foo.bar/users/s/svamberg$ fs rmmount backup /afs/foo.bar/users/s/svamberg$ vos remove -id tmp.user.svamberg
Toto je druhý způsob, jak provádět v AFS zálohování. Jde o snadné řešení,
které je jednoduše přístupné a konfigurovatelné. Existuje ještě třetí možnost,
využít Backup Server (proces buserver). Ale vzhledem k náročnosti
tohoto řešení si jej necháme na některý z jiných dílů.
V příštím díle si k souborovému serveru připojíme druhé úložiště a vyzkoušíme přesun volumu mezi nimi. Dále si řekneme co je to PAG a jak jej můžete využít v praxi.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: