Nic nefunguje
„Na tom disku je dvacet let mého života,“ řekla █████

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ě. █████ 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 Quory a Marriotu) 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ší.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.