k47.cz
mastodon twitter RSS
bandcamp explorer
««« »»»

Nic nefunguje

16. 12. 2018 — k47

„Na tom disku je dvacet let mého života,“ řekla ██████████, když mi v rukách přistál vadný externí disk, ke kterému neexistovaly žádné zálohy.

V tom okamžiku mi po zádech začal stékat studený pot. Ten pocit znám víc než dobře. Už mi umřelo několik disků, někdy šlo o fatální incidenty, které s sebou odnesly data, jindy šlo jen o zpestření dne následované rychlou záchrannou operací nebo obnovou ze záloh. Naposledy mi jako lusknutím prstů vybuchlo systémové SSD a rozlomilo se ve dví. Pohled do očí digitálního rozkladu, kdy najednou bez varování všechno zmizí, jsem už zažil. Nejhorší není pocit, že jsem něco navěky ztratil, ale nejistota o co přesně jsem přišel.

Začalo to nevinně. ██████████ přinesla mrtvý disk, jestli bych se na něj nemohl podívat. Zapojil jsem ho do notebooku, pokusil se ho namountovat, nešlo to, dmesg hlásil neopravitelné I/O chyby. Ok, říkám, připojím ho do desktopu, udělám obraz disku a pak se uvidí, co na plotnách rotující rzi zůstalo.

Ona přitom doufala, že ji disk bude sloužit nadosmrti. To může vypadat jako naivní touha, ale na druhou stranu je to zcela rozumný předpoklad pro člověka, který není zasvěcený do hrůz hardwaru a softwaru. Když si něco koupím, čekám, že to bude jednoduše fungovat co nejdéle, ideálně napořád. Ale kdo zažil křehkost a pomíjivost digitální iluze na vlastní kůži a vidí do křemíkových střev strojů, které ovládají jednadvacáté století, ví, že jde o naivní touhu, protože nic nefunguje. Počítače ve všech formách jsou přeludy, pouhé fata morgány stability vystavené z nespolehlivých komponent a bláznivých nápadů.

Disky jsou šílené, když se nad tím zamyslíte—skleněná plotna pokrytá magnetickým prachem, která rotuje 120× za vteřinu, nad níž se vznáší čtecí hlava tak blízko, že kdyby byla zvětšená do rozměru dopravního letadla, doslova by olizovala komíny domů. A to není všechno, nové disky jsou naplněné heliem a ty úplně šílené při zápisu zahřívají plotnu laserem, aby mohli zapisovat ještě víc dat do stejného prostoru.

Flash paměti, které nahradily rotující disky a jsou přítomny v paměťových kartách, telefonech, tabletech a jakémkoli novém zařízení, jsou také šílené. Úložiště je tak neuvěřitelně datově husté a v každé buňce se navíc ukládá několik hladin napětí, ne jen jeden bit, 1 nebo 0, 1.8 voltů nebo nic, ale hned několik, které musí přesně rozpoznat, jinak bude číst smetí. S rostoucí hustotou se snižuje počet přepisovacích cyklů, který u posledních generací dosahuje jen jednoho tisíce. Když blok přepíšu 1000×, bude mrtvý. Vestavěný procesor proto musí řešit rozkládání zátěže na celý flash. Flash disk je tak plnohodnotný počítač s vlastním souborovým systémem, data jsou neustále porušována, ale logika se neustále stará o jejich opravu a konzistenci.

RAM paměti jsou také šílené, konkrétně DRAM. Ta potřebuje jen jeden kondenzátor a jeden tranzistor, aby uchovala jeden bit informace. Jde o tak husté pole, kde všechny prvky jsou u sebe tak blízko, že opakovaný zápis do jednoho místa může přehodit sousední bity. Na tomto principu je založen útok rowhammer. K porušení dat může dojít náhodně, často se říká, že za chyby může kosmické záření, které trefilo konkrétní kondenzátor. Serverové paměti, kde k chybám nemůže dojít, obsahují ECC—mechanismus kontrolních součtů, které dokáží opravit jednobitovou chybu a detekovat dvoubitové závady. V konzumních zařízeních ECC paměti v naprosté většině případů nejsou, z důvodu snížení ceny, přítomné.

Procesory jsou také šílené. Jde o miliardy tranzistorů a kilometry drátů, které mají fungovat přesně podle specifikace a zcela bez chyb. To je jenom zbožné přání. Každý kus křemíku obsahuje hardwarové chyby, které nikdy nejsou opraveny.

Intel pravidelně vydává errata—seznam chyb v křemíku—a jen ty nejzávažnější mají dostatečný dopad a přitáhnou dost publicity, aby byly řešeny a možná nějakým způsobem opraveny. Spectre a Meltdown jsou ty nejzávažnější z nich. Přes noc se ukázalo, že skoro každý počítač, tablet nebo telefon byl celé roky zranitelný. Protože šlo o zcela novou kategorii zranitelností a začal ve velkém její výzkum a téměř každý týden je objevena nová varianta Spectre nebo Meltdown (nedávno tahle). Ale to není všechno, chyby v hardwaru nejsou ojedinělé—Skylake měl chybu v Hypertreadingu, Haswell neopravitelné chyby v hardwarové transakční paměti a k tomu musíme připočíst moře errat, které říkají jen něco ve smyslu „kombinace instrukcí X, Y a Z může vést ke špatným výsledkům“.

V principu může cokoli kdykoli umřít, bez vysvětlení a bez ceremonií, nebo to může umírat okatě a okázale, nebo může celé roky docházet k nepozorované degradaci dat. Internetové firmy ukládají data aspoň ve třech kopiích v minimálně dvou lokalitách a ještě k tomu mají studené zálohy. To vše jen proto, aby nedošlo ke ztrátě dat. Ve velkém měřítku je tato křehkost vidět jasně, v datacentru napěchovaném servery každý den umře několik počítačů, pamětí, disků a síťových karet. Nejde o výjimečný stav, ale běžnou součást dne.

A to nemluvím o chybách v softwaru, které jsou všudypřítomné a číhají na každém rohu. Většinou jsou benigní, občas otravné (nedávno se mi stalo, že když jsem klikl na soubor, abych ho otevřel, ten byl místo toho smazán) a někdy jde o kritické zranitelnosti jako Heartbleed nebo shellshock. Taky nemluvím o únicích dat a hesel (v posledních týdnech z QuoryMarriotu) nebo routerech a IoT zařízeních, která nejsou nikdy aktualizovány. Zkuste před odborníkem na počítačovou bezpečnost zmínit elektronickém hlasování a sledujte jak zbledne, začne se třást a mumlat něco o tom, že potřebuje panáka.

Ale přesto by bylo nefér tvrdit, že vůbec nic nefunguje, protože internet nějakým způsobem běží a naše počítače a telefony se každou chvíli spontánně nevzněcují. Spravedlivější by bylo říct, že nemůžeme nic brát jako jistotu, celý digitální svět nebo jeho velká část může znenadání vybuchnout a, i když je to jen malá šance, musíme být neustále připraveni na nejhorší.

píše k47, ascii@k47.cz