Ona ta NAND Flash část bude zejména u šindelových disků hrát především roli „CMR cache“ (vzpomínám si na Seagate Archive, ten měl ještě CMR cache na plotnách, novější disky kvůli tomu mívají právě flash paměti - co to kecám, měl - ještě má, dodnes mi jede v serveru, ve druhém je ale už dvojice 18TB Seagate Exos X18).
11. 5. 2022, 15:45 editováno autorem komentáře
Možná jsem moc paranoidní, ale ty kombinované SSD/HDD, kde SSD část hraje roli cache, mi nepřijdou jako moc dobrý nápad. Z hlediska rychlosti to bude fajn, ale když si představím, kolik dat přes tu relativně malou cache proteče, jinými slovy kolikrát budou paměťové buňky přepsány, nemám z toho dobrý pocit. To už mi dává větší smysl použít dedikované SSD jako cache pro HDD na úrovni OS.
Pokud tam je dostatečně kvalitní řadič, prostě se ta cache bude snižovat jak bude to SSD odcházet až z toho nakonec bude normální HDD bez SSD cache. Nezdá se mi to jako velký technický problém kromě toho, že to pochopitelně zvyšuje komplexitu a komplexní systémy se, jak známo, rozbíjí komplexně.
Druhou věcí je, že já osobně jsem nikdy pořádně neviděl žádný zásadní rozdíl. Naopak, jeden tenhle kombinovaný seagate byl spolehlivě nejhorší disk, co jsem kdy měl.
Problém je, že tahle SSD cache je by design nezbytnou podmínkou funkčnosti takového HDD. Nahradila část disku, která se používala jako cache, databázista (jako já) by asi řekl, že to je takový ekvivalent redo logu. Takže až to odejde, disk bude v lepším případě jen v read-only módu.
Ta cache tam není jen tak kvůli obyčejnému urychlení. Ona je tam proto, že jsou v ní dočasná data, než se rozhážou na správné místo na disku. A to správné místo na disku je v částech, které jsou organizovány do velkých bloků, např. 256 MB a podobně. Musí se v krajním případě celý 256 MB blok načíst, někde pozměnit a pak zase zapsat (a to dočasné místo pro pozměnění je právě ta cache). Musí to být fail-proof, že když v půlce zápisu vypadne proud, nesmí se přijít o žádná data (proto na to nejde použít velká DRAM cache). Dřív to dělal disk v té CMR cache (část disku s tradičním nešindelovým zápisem), protože ji ale nahradili tou SSD cache, tak se to prostě bez té SSD cache neobejde :).
Představte si to jako databázi. Ta musí být v nějakém konzistentním stavu. Máte třeba velkou transakci a uprostřed té transakce to zbřaskne. DB engine musí po nahození zajistit, že pokud ta transakce nebyla dokončená, musí být databáze konzistentní ke stavu před tou transakcí. Nesmí se zkrátka stát, že se to dostane do stavu někde uprostřed, kdy nějaká data UŽ nemám a jiná data JEŠTĚ nemám. Na tohle by šindelové disky trpěly strašně často, pokud by tam nebyla tahle cache, protože ta operace změny velkých bloků (SMR zón) může fakt zabrat nezanedbatelné množství času.