CiviCRM (Wikipedie) bylo vydáno v nové verzi 6.14.0. Podrobnosti o nových funkcích a opravách najdete na release stránce. CiviCRM je robustní open-source CRM systém navržený speciálně pro neziskové organizace, spolky a občanské iniciativy. Projekt je napsán v jazyce PHP a licencován pod GNU Affero General Public License (AGPLv3). Český překlad má nyní 45 % přeložených řetězců a přibližuje se milníku 50 %. Potřebujeme vaši pomoc, abychom se dostali dál. Pokud máte chuť přispět překladem nebo korekturou, přidejte se na platformu Transifex.
Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno [oss-security mailing list].
Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.
Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.
Společnost Red Hat představila Fedora Hummingbird, tj. linuxovou distribuci s nativním kontejnerovým designem určenou pro vývojáře využívající AI agenty.
Hru The Legend of Zelda: Twilight Princess od společnosti Nintendo si lze nově díky projektu Dusklight (původně Dusk) a reverznímu inženýrství zahrát i na počítačích a mobilních zařízeních. Vyžadována je kopie původní hry (textury, modely, hudba, zvukové efekty, …). Ukázka na YouTube. Projekt byl zahájen v srpnu 2020.
Byla vydána nová major verze 29.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Detailní přehled novinek na GitHubu.
Po zranitelnostech Copy Fail a Dirty Frag přichází zranitelnost Fragnesia. Další lokální eskalace práv na Linuxu. Zatím v upstreamu neopravena. Přiřazeno ji bylo CVE-2026-46300.
Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří KDE částkou 1 285 200 eur.
Google na včerejší akci The Android Show | I/O Edition 2026 (YouTube) představil celou řadu novinek: Gemini Intelligence, notebooky Googlebook, novou generaci Android Auto, …
Jsou tomu dva týdny, co jsem publikoval blogpost, ve kterém jsem shrnul problémy s překrýváním systému publikovaného přes NFS. Během té doby jsem absolvoval celou řádku pokusů a kompilací jádra - včetně těch nejaktuálnějších verzí z git repozitáře. Nakonec jsem nad tím zlomil hůl s tím, že řešení, o kterém jsem tu psal v předchozím blogpostu je funkční a je čas jít dál. A dnes jsem - v souvislosti s řešením zcela jiného problému - přišel na to, proč kolabovalo aufs a jak to obejít.
V blogpostu - Jak ojebat overlay, jsem nezmínil, že problémy s překrýváním NFS řeším proto, abych mohl konečně přemigrovat stávající infrastrukturu do virtualizačního prostředí postaveného nad distribuovaným úložištěm. Zasvěcenější možná i zaregistrovali, že jsem se konečně odhodlal vylézt na světlo a něco o tom v březnu utrousit i per huba na installfestu.
Virtualizační prostředí s distribuovaným úložištěm provozuji asi rok. Původně jsem používal pouze GlusterFS s blokovým přístupem, ale to má kapitální mouchu v tom, že během synchronizace dat po restartu nodu s replikovaným brickem má virtuální stroj zablokován přístup na disk a to některé souborové systémy (jako např. ext4) špatně snáší. Teď používám kombinaci: Distribuované blokového zařízení poskytuje Sheppdog a GlusterFS slouží jako distribuované úložiště souborů, které se publikují přes NFS.
A to je důvod proč řeším ten overlay. Stávající disklessová infrastruktura běží přes jaderný NFS server, co publikuje data ze sdíleného DRBD oddílu. A to má několik neuralgických bodů:
Když NFS server vyhnije, stroj hned neumře, takže z hlediska Pacemakeru je všechno OK, ačkoliv nic nejede, protože virtuály čekají až obživne NFS.
Když Pacemaker konečně zjistí že je problém, tak se pokusí přehodit služby na druhý nod. To se mu ale nepodaří, jelikož vyhnilý NFS server stále používá soubory z připojeného DRBD. Bohužel DRBD agent s touto situací nepočítá, takže se to všechno rozesere a je třeba situaci pořešit ručně. Bohužel se to neobejde bez restartu fyzického nodu.
A jednou z věcí, která spolehlivě vede k nabourání NFS serveru, je rušení starých Btrfs snapshotů publikovaných adresářů. Jisté řešení je, dočasně zrušit export snapshotovaného subvolume, ale při tom ohromném množství uložených dat je odstraňování snapshotů operace, která i na výkonném hardware trvá nechutně dlouho.
Pro vytvoření nové infrastruktury jsem měl několik cílů. Tím hlavním bylo zbavit se DRBD, které je víceméně dvounodovou záležitostí. Příslušný agent v Pacemakeru od Linbitu se chová u vícenodového clusteru jako prase.
Takže tohle už mám vyřešené. Blokové zařízení i soubory jsou distribované přes všechny nody, takže Pacemaker se stará pouze o spouštění virtuálních strojů. Používám vlastního agenta, který pracuje přímo s qemu, takže žádný libvirt není třeba. I když nepopírám, že to má jisté mouchy - kupř. není možná live migrace. Na druhou stranu - můžu aktualizovat a restartovat nody, aniž bych si musel lámat hlavu s tím, jestli se to všechno vzpamatuje.
Bohužel výkon distribuovaných systémů silně ovlivňuje IO výkon fyzických nodů a stroje, které jsem mohl použít sice mají slušný výkon CPU, ale z hlediska IO to jsou šet let staré desktopy s pomalými rotačními disky na SATA II. Abych to mohl přestěhovat na výkonnější stroje, musím konečně odmigrovat také disklessovou infrastrukturu určenou pro laboratoře, aby je bylo možné přeinstalovat.
V rámci nové infrastruktury běží NFS server na virtuálním stroji, který je sice součástí GlusterFS, ovšem data rozděluje a sbírá mezi bricky na fyzických nodech. GlusterFS však má jeden háček. Protože je navržen pro řádově velké objemy dat, používá 64 bitová čísla inodů.
Stejná čísla inodů také poskytuje přes GlusterFSAL Ganesha i jeho integrovaný NFS server. A jak se ukázalo, některé aplikace s tím mají problém.
Přišel jsem na to víceméně náhodou. Přestěhoval jsem stroj, který kromě DHCP zajišťuje pro disklessovou infrastrukturu také licenční server. Všechno naběhlo ok - kromě licenčního serveru. Neustále řval, že nemá k dispozici licenční soubor. Jenže ten tam byl.
Bylo to divné, protože všechno bylo překopírované z původní infrastruktury 1:1. No. Kašpárkoval jsem s tím včera celý večer. Spouštěl jsem to přes strace, na nové, i původní infrastruktuře, abych mohl porovnat co se během toho děje. Všechno bylo stejné, až na jeden drobný detail - že se u nové infrastruktury licenčnímu soubor server ani nepokusil otevřít.
Až mě napadlo zkusit ho překopírovat do /tmp na tmpfs. A voilá! Odtamtud ho sežral. Takže bylo jasné že je třeba se kouknout co se vlastně děje když se pokouší sáhnout na ten soubor.
No a k tomu jsem se dostal během dnešního dopoledne. Všimnul jsem si, že příkaz stat vrací u souboru z NFS nad GlusterFS dvacetimístné číslo inodu. Trochu jsem zapátral a ejhle! GlusterFS má pro svůj NFS server berličku v podobě parametru "nfs.enable-ino32: on". Po aktivaci tohoto parametru začne jeho NFS server nabízet čísla inodů jako 32 bitové číslo. Bohužel to nefunguje, pokud na GlusterFS svazek lezete přes API jako Ganesha.
A jak se ukázalo - je to právě problém s 64 bitovým číslováním inodů, který je za tím, proč nefungovalo překrytí NFS adresáře přes aufs. A je velmi pravděpodobné, že stejný problém vězí i za tím, proč nefuguje modul overlay. Jak se zdá, tak právě přemapování inodů je to co se udělá při překrytí NFS pomocí unionfs-fuse, jak jsem předpokládal v diskuzi pod předchozím blogpostem.
GlusterFS to řeší interně v rámci svého NFS serveru. Jistě. Stejným způsobem by to pravděpodobně mohl oprasit i modul aufs. Ovšem zdá se, že chyba je kdesi v kódu VFS, který aufs využívá stejně jako overlay.
Update z 5.2.2016: Tušení mě nezklamalo. Stačí při mountování aufs přidat option "noxino". Bohužel se - pokud chcete používat overlay přes aufs - nevyhnete kompilaci vlastního kernelu, protože z distribučního jádra Debianu od verze 3.18 vykopli. Ale třeba někoho z maintainerů Debianu napadne, že to nebyl zrovna dobrý nápad.
Tiskni
Sdílej:
Nechcete jít prudit tam, kde se scházejí cvičené opice, které máte tak rád, protože živí váš byznys?Dobre minena kritika neni "prudit". A jinak se nenechte mylit. Ja nemam rad cvicene opice, jen chci, aby zamestnanec delal to, co ma ve smlouve a co je mu zadano. Nic vice, nic mene.
že bez lidí co se v té problematice pohybují by ty firmy neměly nikoho, kdo by ten outsourcing pro vás dělal.Toto bych nechal na trhu. Verte, ze za penize jde vsechno a ze se nekdo najde, kdo onu praci bude delat, pokud mu ji nekdo zaplati.
Můžete si být jist, že řešení o kterém píšu v tomhle blogpostu vám za pár let nějaká firma za krvavé peníze prodá jako ohromnou novinku.Mozne to jiste je. O tom se nepru. Nezlobte se, ale opravdu jste mne svou utocnou reakci nepresvedcil o opravnenosti a ucelnosti vynalozenych prostredku na vase pracovni experimenty. Mel bych vam vsak spise podekovat. Toto cele je pro mne jen dalsi argument, ktery podtrhuje nutnost privatizace statniho vysokeho skolstvi. Soukrome skoly at si plytvaji, je to jejich vec a nezatezuji tim danoveho poplatnika.
Tohle řešení, které slouží pro výuku, vám žádná firma nedodá, protože to pro ni není lukrativní a je s tím hromada práce, kterou se vy tady snažíte veřejně devalvovat.Nic nedevalvuji. Devalvujete ji svymi blogy sam. Mesice a mesice o tomto ctu a zjistuji, ze vam nic nefunguje a se vsim jsou neustale problemy. Neni na case to sverit nekomu povolanejsimu? Vy opravu nejste osoba, ktera umi posoudit, co je a neni lukrativni pro nejakou firmu.
Ale chapu vas tvrdohlavy postoj. Pokud by tuto vec prevzal profesional, tak by se take mohlo zjistit, ze to najednou jde a funguje, ze? Take byste si nemohl mesice a mesice hrat s ruznym hardware za penize danoveho poplatnika a psat o tom v pracovni dobe blogy, ze?
protože sedí na mnohem větším balíku peněz než obyčejné úřadyDalsi duvod, proc tuto a dalsi podobne instituce privatizovat, aby nebylo rozhodovano o penezich danoveho poplatnika.