Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl v březnu 5,33 % (Windows -4,28 %, OSX +1,19 %, Linux +3,10 %). Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 24,48 %. Procesor AMD používá 67,48 % hráčů na Linuxu.
Společnost Apple slaví padesáté narozeniny. Založena byla 1. dubna 1976.
FreeTube, desktopový klient pro YouTube využívající lokální API, byl vydán ve verzi 0.24.0. Toto velké opravné vydání implementuje SABR (Server-Based Adaptive Bit Rate), což řeší část nedávných problémů s načítáním videí z YouTube, a aktualizuje základní komponenty jako Electron nebo přehrávač Shaka Player.
Je tu opět apríl. O víkendu zmizel kamion s 12 tunami tyčinek KitKat. Firmy to využívají k aprílovým žertům. Groupon má super akci. Koupíte 1 tyčinku a dostanete 100 zdarma. Ryanair si přelepil letadla. Šéf Outlooku se ptá, proč mají v baráku 14 beden tyčinek KitKat (𝕏). Prusa Research představuje Prusa Pro ACU a vysvětluje proč přílišné sušení škodí vaším filamentům. Telefon Sony Xperia má miliónnásobný zoom (𝕏). PC.net představil Super Ultrabox 2600 se zajímavými parametry. Další aprílové novinky například na April Fools' Day On The Web.
Společnost OpenAI, která stojí za chatovacím robotem s umělou inteligencí (AI) ChatGPT, získala od investorů 122 miliard USD (2,6 bilionu Kč). Hodnota společnosti tak dosáhla 852 miliard dolarů (více než 18 bilionů Kč). Nejnovější kolo investování se stalo největší, jaké zatím firma uskutečnila, a peníze mají posílit ambiciózní plány rozšíření výpočetní kapacity, datových center a nábor talentů.
Nástroj k identifikaci občanů v on-line komunikaci s úřady byl dnes dopoledne zhruba dvě hodiny částečně nedostupný. Problém se objevil kolem 09:00 a podařilo se ho vyřešit kolem 11:00. Částečně nedostupná byla služba Národní identitní autority (NIA), problémy podle DIA (Digitální a informační agentura) ovlivňovaly přihlašování například i přes bankovní identitu. „Dostupnost NIA byla plně obnovena, přihlášení k digitálním službám
… více »Eben Upton oznámil další zdražení počítačů Raspberry Pi kvůli růstu cen pamětí a představil Raspberry Pi 4 s 3 GB RAM za 83,75 dolarů.
Anthropic patrně omylem zveřejnil celý zdrojový kód svého CLI nástroje Claude Code prostřednictvím přiloženého sourcemap souboru v npm balíčku. Únik odhalil doposud nijak nezveřejněné funkce jako je například režim v utajení, autonomní agent 'KAIROS', orchestrace multi‑agentů, režim snění nebo dokonce virtuální mazlíček Buddy. Zajímavostí je detekce naštvání uživatele pomocí obyčejného regexpu. Anthropic rychle odstranil sourcemap a vydal opravu, nicméně kopie kódu se již stihly na GitHubu rozšířit mezi prostým lidem.
Copilot automaticky vkládal do pull requestů 'propagační tipy', reklamní text se na GitHubu objevil ve více než jedenácti tisících pull requestech. Po vlně kritiky byla tato funkce zablokována a produktový manažer Tim Rogers připustil, že umožnit Copilotovi upravovat cizí pull requesty bez vědomí autorů byla chyba.
Je 31. března a tedy Světový den zálohování (World Backup Day). Co by se stalo, kdyby Vám právě teď odešel počítač, tablet nebo telefon, který používáte?
Existují dva hlavní důvody, proč byste se měli zajímat o rozprostření jediného systému souborů napříč více fyzickými zařízeními: zvýšená kapacita a větší spolehlivost. V určitých konfiguracích RAID může nabídnout lepší propustnost při některých zátěžích, i když vyšší propustnost bývá u uživatelů až na druhém místě. Pole RAID mohou být nastavena na řadu různých konfigurací („úrovní“), které mezi těmito parametry vyvažují. Btrfs nepodporuje všechny dostupné úrovně RAIDu, ale má podporu pro ty úrovně, které uživatelé používají nejvíce.
RAID 0 („prokládání“) je způsobem, jak spojit více fyzických disků do jedné, větší virtuální jednotky. Čisté implementace stripingu rozprostírají data napříč disky v přesně stanovených „pruzích“ (stripes); kvůli tomu musí mít všechny disky stejnou velikost a celková kapacita je násobkem počtu disků a kapacity jakéhokoliv z nich. Btrfs ale dokáže být o něco flexibilnější – podporuje režim spojování (nazývaný „single“), kde je možné mít disky odlišných velikostí. Teoreticky je možné do RAID 0 nebo pole „single“ spojit libovolné množství disků.
RAID 1 („zrcadlené“) vyměňuje kapacitu za spolehlivost; v poli RAID 1 dva disky (stejné velikosti) obsahují identické kopie všech dat. Selhání jediného disku může zlikvidovat celé pole RAID 0, ale RAID 1 v této situaci neztratí žádná data. RAID 1 budou při intenzivních zápisech pomalejší, jelikož všechna data je nutné zapsat dvakrát, ale mohou být při intenzivním čtení rychlejší, jelikož požadavky na čtení může obsloužit jakýkoliv disk v poli.
RAID 10 je prostá kombinace RAID 0 a RAID 1; alespoň dva páry disků jsou organizovány do dvou nezávislých zrcadlených polí RAID 1; data jsou pak zapisována za použití prokládání napříč těmito páry. (Pozn. red.: linuxový mdraid podporuje RAID 10 i s jediným párem disků.)
RAID 2, RAID 3 a RAID 4 se moc nepoužívají a Btrfs je nepodporuje. O RAID 5 se dá uvažovat jako o sadě disků s prokládáním s dodatečným diskem s paritou (v reálu bývají paritní data rozprostřena přes všechny disky). Pole RAID 5 o N jednotkách má úložnou kapacitu prokládaného pole o N-1 jednotkách, ale může přežít selhání kteréhokoliv jediného disku v poli. RAID 6 má dva paritní disky, čímž se zvyšuje prostor ztracený kvůli blokům s paritou, ale mohou se vám rozbít dva disky beze ztráty dat. RAID 5 musí mít alespoň tři disky, aby to dávalo smysl, zatímco RAID 6 vyžaduje čtyři. RAID 5 i 6 jsou na Btrfs podporovány.
Další zajímavostí je to, že Btrfs umí s metadaty zacházet jinak než s daty. Ztráta metadat může ohrozit celý systém souborů, zatímco ztráta dat souboru má dopad jen na daný soubor – což je sice stále nežádoucí, ale přece lepší. Metadata jsou na Btrfs obvykle ukládána duplicitně, i když se používá jediný disk. Administrátor může explicitně nastavit, jak jsou data a metadata uložena na daném poli a je možné je nastavovat odděleně: data mohou být jednoduše prokládána v režimu RAID 0, zatímco metadata mohou být na tom samém systému souborů uložena režimem RAID 5. A aby to byla ještě větší legrace, tak je tyto parametry možné měnit za běhu.
V minulém díle jsme použili mkfs.btrfs pro vytvoření jednoduchého systému souborů. Rozšířená verze tohoto příkazu pro vytvoření polí o více zařízeních vypadá takto:
mkfs.btrfs -d mode -m mode dev1 dev2 ...
Tento příkaz seskupí daná zařízení do jediného pole a vytvoří na něm systém souborů. Volba -d popisuje, jak se budou data ukládat; může nabývat hodnot single, raid0, raid1, raid10, raid5 nebo raid6. Umístění metadat se zase určuje pomocí -m; mimo hodnot dostupných u volby -d je tu i možnost dup (metadata jsou kdesi na systému souborů uložena dvakrát). Režimy ukládání dat a metadat se nemusejí shodovat.
Jednoduché pole o dvou discích s prokládáním dat byste tedy mohli vytvořit takto:
mkfs.btrfs -d raid0 /dev/sdb1 /dev/sdc1
Zde jsme určili prokládání u dat; výchozí volbou u metadat bude dup. Tento systém souborů připojíme příkazem mount jako obvykle. Jako jednotku obsahující systém souborů můžeme použít /dev/sdb1 i /dev/sdc1; Btrfs si ostatní disky v poli dohledá automaticky.
Příkaz df vypíše jen první jednotku v poli. Systém souborů o dvou discích v režimu RAID 0 s trochou dat by tedy například mohl vypadat takto:
# df -h /mnt Filesystem Size Used Avail Use% Mounted on /dev/sdb1 274G 30G 241G 11% /mnt
Více informací je možné získat příkazem btrfs:
root@dt:~# btrfs filesystem show /mnt
Label: none uuid: 4714fca3-bfcb-4130-ad2f-f560f2e12f8e
Total devices 2 FS bytes used 27.75GiB
devid 1 size 136.72GiB used 17.03GiB path /dev/sdb1
devid 2 size 136.72GiB used 17.01GiB path /dev/sdc1
(Podpříkazy pro btrfs je možné zkracovat, takže by šlo napsat i fi místo filesystem, budeme ale používat celé znění příkazů.) Tento výstup ukazuje, že data jsou rovnoměrně rozdělena mezi dva fyzické disky; celkové spotřebované místo (17 GB na každém disku) lehce překračuje velikost uložených dat. To ukazuje známou vlastnost Btrfs: objem místa uvedený příkazem df určitě neodpovídá objemu dat, který je možné na disk uložit. Zde mimo jiné vidíme vyšší režii kvůli duplikovaným metadatům; jak uvidíte později, odchylka mezi volným místem podle příkazu df a skutečností je u některých dalších režimů ukládání ještě větší.
Jak už to tak bývá, ať už administrátor vytvoří systém souborů jakkoliv velký, časem to bude příliš málo. To je jednou z obecných pravd platných při administraci systémů. S Btrfs je naštěstí snadné takovou situaci řešit; přidání dalšího disku (říkejme mu /dev/sdd1) do výše popsaného pole je jen otázkou:
# btrfs device add /dev/sdd1 /mnt
Toto přidání je možné udělat během používání systému souborů – žádný výpadek se nekoná. Vypsání stavu změněného systému souborů odhalí následující:
# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 411G 30G 361G 8% /mnt
# btrfs filesystem show /mnt
Label: none uuid: 4714fca3-bfcb-4130-ad2f-f560f2e12f8e
Total devices 3 FS bytes used 27.75GiB
devid 1 size 136.72GiB used 17.03GiB path /dev/sdb1
devid 2 size 136.72GiB used 17.01GiB path /dev/sdc1
devid 3 size 136.72GiB used 0.00 path /dev/sdd1
Systém souborů byl rozšířen o nové volné místo, ale na nové jednotce není žádné spotřebované místo. Proto se akuálně nedá mluvit o prokládaném systému souborů, i když nemusí být snadné to poznat. Nová data budou zapsaná na systém souborů budou rozprostřena přes všechny tři disky, takže zabrané místo nadále nebude vyvážené, pokud nezasáhneme. Pro vyvážení systému souborů je nutné spustit:
# btrfs balance start -d -m /mnt Done, had to relocate 23 out of 23 chunks
Použité volby říkají, že se napříč polem mají vyvážit data i metadata. Vyvažování představuje přesouvání velkého množství dat mezi jednotkami, takže může chvíli trvat; zpomalí také přístup k systému souborů. Máte k dispozici podpříkazy pro pozastavení, pokračování a zrušení operace, pokud by to bylo potřeba. Jakmile je operace hotová, pohled na systém souborů vypadá trochu jinak:
# btrfs filesystem show /mnt
Label: none uuid: 4714fca3-bfcb-4130-ad2f-f560f2e12f8e
Total devices 3 FS bytes used 27.78GiB
devid 1 size 136.72GiB used 10.03GiB path /dev/sdb1
devid 2 size 136.72GiB used 10.03GiB path /dev/sdc1
devid 3 size 136.72GiB used 11.00GiB path /dev/sdd1
Data nyní byla vyvážena (přibližně) rovnoměrně napříč všemi třemi disky v poli.
Zařízení je možné z pole odstranit příkazem jako:
# btrfs device delete /dev/sdb1 /mnt
Než je možné zařízení opravdu odstranit, tak je samozřejmě nezbytné přesunout všechna data uložená na tomto zařízení. Proto i provedení tohoto příkazu může trvat dlouho; na rozdíl od příkazu balance neumožňuje device delete operaci pozastavit nebo opětovně spustit. Samozřejmě platí, že příkaz neuspěje, pokud na zbylých discích není dostatek místa, kam by se vešla data z odstraňovaného disku. Operace selže i tehdy, pokud by odstranění disku znamenalo, že v poli bude méně disků, než je pro danou úroveň RAID nutné; kupříkladu nejde udělat to, že by v systému souborů RAID 0 zůstal jediný disk.
Pamatujte, že z pole je možné odebrat libovolný disk; žádný z disků nemá roli „primárního“. Proto je možné pomocí operací add a delete kompletně přesunout systém souborů Btrfs na jiné disky, a to bez výpadku.
Správa jiných úrovní RAID je podobná RAID 0. Pro vytvoření zrcadleného pole by například šlo spustit:
mkfs.btrfs -d raid1 -m raid1 /dev/sdb1 /dev/sdc1
Při tomto nastavení budou data i metadata zrcadlena napříč oběma disky. Pro pole RAID 1 jsou nutné právě dva disky; tato pole mohou v podání nástrojů jako df opět vypadat zvláštně:
# du -sh /mnt 28G /mnt # df -h /mnt Filesystem Size Used Avail Use% Mounted on /dev/sdb1 280G 56G 215G 21% /mnt
Zde df ukazuje 56 GB zabraného místa, zatímco du přísahá, že uložena je tam jen polovina dat. Vypsaná velikost systému souborů je také špatně, a to kvůli tomu, že ukazuje celkové volné místo bez ohledu na to, že každý blok bude zapsán dvakrát; kdokoliv, kdo se do systému souborů pokusí uložit takové množství dat, bude těžce zklamán. Podrobné a správné informace vám opět podá:
# btrfs filesystem show /mnt
Label: none uuid: e7e9d7bd-5151-45ab-96c9-e748e2c3ee3b
Total devices 2 FS bytes used 27.76GiB
devid 1 size 136.72GiB used 30.03GiB path /dev/sdb1
devid 2 size 142.31GiB used 30.01GiB path /dev/sdc1
Zde vidíme, že na každém z disků jsou uložena všechna data (plus nějaká ta režie).
Pole RAID 10 se dá vytvořit pomocí profilu raid10; tento typ pole vyžaduje sudý počet disků, a to alespoň čtyři. Zařízení je možné do aktivního pole RAID 10 přidávat – nebo odebírat – ale jen po párech. Pole RAID 5 lze vytvářet z libovolného množství disků, pokud jsou alespoň tři; RAID 6 vyžaduje disky alespoň čtyři. I u těchto polí je možné jednotky přidávat a odebírat za běhu.
Představte si, že máme pole RAID 0 o třech discích a máme na něm trochu dat:
# mkfs.btrfs -d raid0 -m raid0 /dev/sdb1 /dev/sdc1 /dev/sdd1 # mount /dev/sdb1 /mnt # cp -r /random-data /mnt
V tento moment může pole vypadat následovně:
# btrfs filesystem show /mnt
Label: none uuid: 6ca4e92a-566b-486c-a3ce-943700684bea
Total devices 3 FS bytes used 6.57GiB
devid 1 size 136.72GiB used 4.02GiB path /dev/sdb1
devid 2 size 136.72GiB used 4.00GiB path /dev/sdc1
devid 3 size 136.72GiB used 4.00GiB path /dev/sdd1
Po vcelku obvyklém selhání disku dospěje administrátor k názoru, že redundance má přece jen smysl a že by tedy bylo mnohem hezčí, kdyby výše popsané pole používalo RAID 5. Bylo by pochopitelně možné pole odzálohovat, vytvořit nový systém souborů v režimu RAID 5 a nakopírovat zpět původní obsah. Toho samého ale lze docílit i bez výpadku provedením konverze za běhu:
# btrfs balance start -dconvert=raid5 -mconvert=raid5 /mnt
(Stránka o filtrech balance na wiki Btrfs a tento popis změny v patchi vám toho o příkazu balance povědí více než manuálová stránka btrfs.) Tato operace zase může trvat dlouho; dojde během ní k přesunu velkého objemu dat mezi disky a k vytváření kontrolních součtů pro všechna data. Až to všechno doběhne, tak bude administrátor mít pěkně vyvážené pole RAID, aniž by kdy musel systém souborů odpojit:
# btrfs filesystem show /mnt
Label: none uuid: 6ca4e92a-566b-486c-a3ce-943700684bea
Total devices 3 FS bytes used 9.32GiB
devid 1 size 136.72GiB used 7.06GiB path /dev/sdb1
devid 2 size 136.72GiB used 7.06GiB path /dev/sdc1
devid 3 size 136.72GiB used 7.06GiB path /dev/sdd1
Souhrnná spotřeba místa se zvětšila kvůli přidání paritních bloků, ale uživatelé by jinak neměli převod na RAID zaznamenat. Redundantní konfigurace pochopitelně nezabrání selhání disků, ale umožní, aby takové situace byly řešeny s minimem obtíží. Představme si, že /dev/sdc1 ve výše uvedeném poli začne vykazovat známky selhání. Má-li administrátor k dispozici náhradní disk (říkejme mu /dev/sde1), tak je možné disky v poli prohodit pomocí příkazu:
btrfs replace start /dev/sdc1 /dev/sde1 /mnt
Pokud by to bylo nutné, tak můžeme zabránit čtení z odebíraného disku použitím volby -r, ale jen za předpokladu, že to tak jde udělat. Operaci nahrazování lze zrušit, ale ne pozastavit. Jakmile je operace hotová, /dev/sdc1 už nebude součástí pole a můžeme se jej zbavit.
Jestliže disk selže úplně, pak může být nutné pole připojit v degradovaném režimu (s volbou -o degraded). Mrtvý disk pak můžeme odstranit takto:
btrfs device delete missing /mnt
Slovo missing zde zastupuje disk, který by měl být součástí pole, ale aktuálně není přítomen. Náhradní disk pak jde přidat pomocí btrfs device add, po kterém by asi měla následovat operace vyvážení.
Podpora vícero disků byla součástí návrhu Btrfs od samého počátku a související kód je v hlavní řadě ve stabilní podobě už nějakou tu dobu. Největší výjimkou jsou RAID 5 a 6, který byly začleněny do verze 3.9. Ohledně těchto úrovní se nevyskytlo příliš mnoho potíží, ale faktem zůstává, že daný kód je stále ještě mladý a mohou v něm číhat překvapení, na která uživatelé ještě nenarazili.
Vestavěná podpora pro pole RAID je jednou z klíčových funkcí v Btrfs, ale zde výčet pokročilých schopností Btrfs určitě nekončí. Dalšími z hlavních předností Btrfs jsou podjednotky a snapshoty; na ty se podíváme zase někdy jindy.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
# btrfs filesystem df / Data, RAID0: total=1.31TiB, used=1.00TiB Data, single: total=8.00MiB, used=7.25MiB System, RAID0: total=16.00MiB, used=96.00KiB System, single: total=4.00MiB, used=16.00KiB Metadata, RAID0: total=28.00GiB, used=5.25GiB Metadata, single: total=8.00MiB, used=504.00KiB
btrfs fi df /mount_point
... Jde mi o to, zda při přidání 4. disku Btrfs zjistí, že má na disku 4 spoustu volného místa a bude nové věci zapisovat postupně na disky 1+4, 2+4, 3+4. Nebo bude pořád pravidelně střídat disky a zapisovat postupně na 1+2, 2+3, 3+4, 4+1?Ahoj, sice nevim jestli to Btrfs bude delat automaticky jako mdadm ale nejak mi nesedej tvoje pocty pro ukladani dat u RAID5. Pokud neziju spoustu let v bludu, tak RAID5 by mel ukladat data zpusobem: 1,2,3 + 4 checksum (samoopravny kod) 2,3,4 + 1 checksum 3,4,1 + 2 checksum 4,1,2 + 3 checksum viz.: http://cs.wikipedia.org/wiki/RAID#RAID_5 Nebo jeste spim a nechapu o cem se bavime
If there is a lot of allocated but unused data or metadata chunks, a balance may reclaim some of that allocated space. This is the main reason for running a balance on a single-device filesystem.Prakticky jsem ale zadny benefit nepozoroval.
Já ho používám od roku 2010 na všech svých strojích a takovéhle otázky mě vždycky náramně pobaví. 