TRIM na SSD disku ve Win XP?

David123

Re:TRIM na SSD disku ve Win XP?
« Odpověď #15 kdy: 07. 02. 2014, 10:52:37 »
Citace
nabootuju live W7 z Flashky a trimnu to.

Takže to jde trimnout z winpe? Že by se mohla udělat image s winpe, která by se dala vybrat ručně ve winbootloaderu a udělala by trim+následný reset a mašina by nabootovala do windows xp...


Mirage

Re:TRIM na SSD disku ve Win XP?
« Odpověď #16 kdy: 07. 02. 2014, 11:27:14 »

A teď ještě jednou i pro ty pomalejší prosím ;D
Jednotlivým částem tvého tvrzení rozumím, ale nevím, jestli opravdu má smysl udělat diskový oddílel menší, než je skutečná kapacita SSD. Mě se zdá, že to je dobé, jen když je disk ohrožený přeplněním.

Ale můžu potvrdit, že u sandforce říkali, že trim není potřeba, protože to má nějaké chytré vnitřní mechanismy.
http://forums.macrumors.com/showthread.php?t=1048536


Re:TRIM na SSD disku ve Win XP?
« Odpověď #17 kdy: 07. 02. 2014, 12:20:41 »
Jednotlivým částem tvého tvrzení rozumím, ale nevím, jestli opravdu má smysl udělat diskový oddílel menší, než je skutečná kapacita SSD. Mě se zdá, že to je dobé, jen když je disk ohrožený přeplněním.
Aby bylo možné optimalizovat využití jednotlivých bloků, potřebuje nějaké volné místo. Např. když zjistí, že se do bloku A pořád zapisuje, po nějakém počtu zápisů se blok A přemapuje na jiný fyzický blok, který byl do té doby prázdný. A blok A se použije pro ten prázdný logický blok. Tohle přemapování dělá chytřejší řadič na pozadí, neví o něm ani OS. Je jasné, že aby tohle fungovalo, potřebuje disk vědět, které blogy jsou prázdné. (Šlo by to udělat i bez toho, ale to by byla potřeba složitější logika a nějaká paměť.)

Při použití příkazu trim se ten určitý počet prázdných bloků udržuje tak, že když operační systém přestane nějaký blok používat, trimem řekne řadiči disku, ať si daný blok označí jako volný. Řadič ho pak může využít pro výše uvedenou optimalizaci. Bez trimu budou postupně volné bloky řadiči mizet – operační systém do bloku zapíše, řadič si poznamená, že blok volný není. Operační systém pak blok uvolní, ale nedá o tom řadiči vědět, a pro řadič ten blok bude navždy obsazený. I když byste ten souborový systém nikdy nezaplnil celý, operační systém bude data zapisovat „náhodně“ v celém přiděleném oddílu, tedy i na konec, a postupně „umaže“ všechny bloky. Řadič pak nemůže provádět výše uvedenou optimalizaci, do některých bloků se zapisuje pořád a do jiných vůbec, a ty často zapisované pak odejdou dřív.

To „náhodné“ rozhazování po celém disku je samozřejmě optimalizace pro rotační disky. Souborový systém, který by při potřebě zapsat data do nového bloku použil první (od začátku disku) volný blok by trim při běžném provozu nepotřeboval, dělal by jej jen po defragmentaci, kdy by zapsané bloky z konce zapsané oblasti setřásl do volných bloků na začátku disku.

Pokud ponecháte na disku volnou část (nebude tam žádný oddíl), příslušné bloky se nikdy neoznačí jako zaplněné a není tedy potřeba volat trim, který by je zase označil jako čisté. Řadič tyhle bloky může používat pro výše uvedenou optimalizaci.

Chytřejší řadič by si mohl počítat počet zápisů do jednotlivých bloků, a kdyby zjistil, že se do A pořád zapisuje a z B jenom čte, mohl by je mezi sebou prohodit. Pak by trim také nepotřeboval.

Mirage

Re:TRIM na SSD disku ve Win XP?
« Odpověď #18 kdy: 07. 02. 2014, 12:41:45 »
Ehm, takže to funguje? Jinými slovy, je to tedy dobrý nápad to tak udělat?

Re:TRIM na SSD disku ve Win XP?
« Odpověď #19 kdy: 07. 02. 2014, 13:06:57 »
Ehm, takže to funguje? Jinými slovy, je to tedy dobrý nápad to tak udělat?
Aha, jsem v zápalu boje zapomněl, na co odpovídám :-) Ano, mělo by to fungovat. Pokud nemůžete používat trim (ale řadič by ho uměl, takže dělá tento typ optimalizace) a nechcete, aby některé bloky odešly výrazně dřív, než jiné, je to podle mne dobrý nápad.


TV

Re:TRIM na SSD disku ve Win XP?
« Odpověď #20 kdy: 07. 02. 2014, 14:53:45 »
Finta s ponecháním části disku nealokované fungovat bude, svým způsobem. Lepší, než drátem do oka. Nicméně efektivitě řádného trimu se to rovnat nikdy nebude. Bez trimu řadič z principu nedokáže určit, zda data v jednou zapsané buňce jsou hodnotná-platná, nebo nikoli. Tudíž se k nim chová jako k hodnotným a v rámci wear levelingu bude jejich obsah stěhovat do jiné buňky i v případě, kdy je to nepotřebné, resp. zcela zbytečné. V důsledku toho klesá výkon (řadič i NAND má více zbytečné práce) a stoupá opotřebení (větší write-amplification), zároveň má řadič problém si udržovat souvislou oblast prázdných bloků, kterou za normálních okolností udržuje a je díky ní schopen poskytnout vyšší výkon při nárazovém zápisu středně velkého množství dat.

Obecně u moderních, korektně fungujících řadičů za normálních okolností nehrozí, že by buňky byly v dlouhodobém horizontu namáhány/opotřebovávány nerovnoměrně. Už SandForce-1200 v mém starém Vertexu2 měl mít ve specifikacích uvedeno, že zaručuje rozdíl v opotřebení nejméně a nejvíce používané buňky v řádu promile. Někde jsem to četl, neprověřoval, takže bez záruky.

Před operací rozdělení disku je doporučované, ba přímo nutné provést Secure Erase SSD. Tím se řadiči dá příkaz ke smazání všech buněk a zároveň je to pro něj informace, aby se všemi buňkami zacházel jako s prázdnými a rovnocenými (co se opotřebení týká).

Nevím jestli WinPE z Win8 dokáže provést trim. Pokud nemá integrován nástroj pro defrag/optimalizaci (alespoň CLI), tak spíše ne. S Windows 8 To Go toto nepředstavuje problém. Ovšem jsi-li zaseklý na XP, pak Windows 8 asi k dispozici nemáš, natož edici Enterprise s To Go funkcí...

Ve stručnosti: zahoď ty XPčka...

Re:TRIM na SSD disku ve Win XP?
« Odpověď #21 kdy: 07. 02. 2014, 15:30:03 »
Tudíž se k nim chová jako k hodnotným a v rámci wear levelingu bude jejich obsah stěhovat do jiné buňky i v případě, kdy je to nepotřebné, resp. zcela zbytečné.
To ten řadič fakt stěhuje všechny bloky náhodně po disku, aby každý blok pobyl chvilku v každé buňce, nebo stěhuje jenom ty, do kterých se víc zapisovalo? V prvním případě by ten disk po nějaké době odešel, i kdyby se na něj vůbec nezapisovalo…

Jinak podle mne je ponechat 20 % místa bez oddílu, zbytek úplně zaplněný a nepoužívání trimu ekvivalentní oddílu přes celý disk zaplněnému z 80 % a s trimem. V obou případech bude mít řadič 20 % bloků, o kterých bude vědět, že jsou prázdné. Pokud by ten 80% oddíl nebyl zcela zaplněn, je samozřejmě toho volného místa „škoda“, protože bez trimu o něm řadič nebude vědět.

Re:TRIM na SSD disku ve Win XP?
« Odpověď #22 kdy: 07. 02. 2014, 16:42:15 »
Jednoduchy priklad - vezmete kartu z fotaku, na ktere je FAT32 plnou fotek a vsechny ja smazte. Spravce souboru ukaze +-100% volneho mista. Staci ale pouzit nastroj typu undelete (jako mel MS-DOS) a s velikou pravdepodobnosti vsechny fotky obnovite.
Operacni system si pouze ve FAT tabulce (u jinych souborovych systemu se to jmenuje jinak) oznaci, ze na adrese x az y, kde lezel puvodni soubor nic neni. Ale data fyzicky z disku nesmaze. Je to logicke, plotnove disky byly pomale a pokud by operacni system vzdy poctive data smazal, vykon by klesl o desitky procent. Navic plotnovemu disku bylo jedno, jestli pri zapisu zapisuje na "cisty" sektor, nebo prepisuje nejaka data.

SSD pracuje uplne jinak: pokud je blok (asi vzdy 512kB) prazdny, normalne se bit zapise. Pokud prazdny neni, musi se pul megovy blok nacist do diskove cache, zmenit jeden bit a cely pul megovy blok zapsat zpet na disk (pak jeste pozor na zarovnani diskoveho oddilu). Ohromne zpomaleni.
Proto existuje prikaz TRIM (soucast standardu ATA - ATA8-ACS2). Operacni system si ve FAT tabulce smaze odkazy na data v danych adresach a zavola TRIM. Tim rekne disku: ja (OS) jsem si smazal soubor lezici na adrese x az y, data co tam zbyly uz tedy nejsou potreba. SSD disk si takto oznacene misto muze smazat (nebo interne oznacit jako prazdne, to nevim) a priste se k nemu chovat jako k volnemu.
Vzdyt je to tak jednoduche...

Pravidlo volnych 20% samozrejme plati, ale s TRIM uplne nesouvisi. Pokud disk zpanite z 99,9%, nemuze radic pouzivat svou "logiku" pri zapisu a prepisu. Pokud je dost volneho mista, nove zapisovana data muze radic okamzite zapisovat do volnych pul megovych sektoru. Pokud ma ale hodne malo mista, bude muset (asi) dopisovat do ne uplne plnych pul megovych sektoru.
Je to jako u modernich FS (NTFS, ext3), ty take mezi daty pri zapisu narozdil od FAT delaji mezery pro pozdejsi zvetseni souboru bez nutnosti prerovnani.

Takze 20% urcite volnych nechte a take pouzijte TRIM. Pro pohodli at nemusite nic hlidat je vyhodne nechat cca 20% kapacity disku bez oddilu, narozdil od plotnoveho disku uz si SSD nehraje na fyzicke umisteni oddilu po sobe.


Mozne reseni co me napada:
Podle wikipedia ma Linux podporu TRIMu na FAT. Takze by mozna slo udelat na disku dva oddily, jeden maly ext4 (asi do 1GB na Linux) a zbytek disku (bez 20%) FAT32 a na ten dat Windows XP.
Pri bootovani by se nejdriv spustil Linux a pomoci prikazu "fstrim /oddil/fat32/s/windlema" by spustil TRIM, hned pote by nejak nebootoval Windows XP.
Fragmentace na FAT32 by pak vlastne nemusela vadit. Pokud by nebyl uptime Widli v radech tydnu a neprovadeli se velke zapisy/prepisy dat mezi restarty PC, myslim, ze vykon by nemusel byt spatny...
"Kdo v zájmu bezpečí obětuje část své svobody, v konečném důsledku přijde o svobodu i svou bezpečnost."

Re:TRIM na SSD disku ve Win XP?
« Odpověď #23 kdy: 07. 02. 2014, 17:18:36 »
Trim neříká řadiči, že smazal data od pozice x do pozice y. Trim označuje za prázdné jednotlivé bloky. Takže když chcete mít na disku 20 % volných bloků, máte dvě možnosti:
  • Udělat oddíl přes celý disk, udržovat jej naplněný jen na 80 % a používat trim. Bude se zapisovat do všech logických bloků, ale budou se také mazat a díky trimu označovat za volné, takže průběžně budete mít zhruba 20 % bloků volných – přičemž z pohledu OS budou náhodně rozházené po disku.
  • Udělat oddíl přes 80 % kapacity disku, zbytek nechat bez oddílů a nic do toho místa nezapisovat. Zapisovat se bude do 80 % logických bloků, zbytek logických bloků bude trvale prázdný. Z pohledu OS budou ty volné bloky pořád na stejném místě. Proto není potřeba na ně volat trim, protože ty bloky stále zůstávají označené jako prázdné.

Výhoda prvního řešení je samozřejmě v tom, že počet volných bloků závisí na volné kapacitě disku. Když disk zaplníte jen z 50 %, bude zbylých 50 % volných a řadič se při rozvažování může víc odvázat. Řešení s ponecháním prázdného místa mimo oddíly tohle neumí, tam to rozdělení je pevně dané. Ale pokud nemůžete použít trim, je to použitelné řešení. Když bez trimu uděláte oddíl přes celý disk, budou za chvíli všechny bloky označené jako zaplněné a zablokujete tím funkci rozvažování řadiče.

Bla

Re:TRIM na SSD disku ve Win XP?
« Odpověď #24 kdy: 07. 02. 2014, 19:30:48 »
Pánové, nejblíže je tu asi pan Jirsák, možná si to cucá odněkud z prstu, ale má přibližně pravdu.
Ostatní tu předvádí jen bezduché a přesto namyšlené žvanění, že se v nějakém případě pletu nevylučuji, ty žvásty mě totiž nebaví číst.

Já na rozdíl od Vás nežvaním, nekecám, necucám si z prstu a především nejsem líný si přečíst, jak je to ve skutečnosti:
http://www.thessdreview.com/daily-news/latest-buzz/garbage-collection-and-trim-in-ssds-explained-an-ssd-primer/

Až si to přečtete, pochopíte, proč právě SandForce (Agility 3/Vertex 3) a 20% vyhrazeného místa vyřeší absenci TRIMu.
Přestaňte žvanit a začněte číst.
Nejsem namyšlený, jen mě obtěžuje, když někdo raději otravuje ostatní vymýšlením dlouhých pohádek o tom, jak by to mohlo být, než aby si přečetl, tak to ve skutečnosti je.

Jestliže je tráva zelená, protože obsahuje chlorofil nebo co, proč si to nepřečíst? Proč raději místo sbírání relevantních informací a odkazováním se na reálné zdroje si cucáte z prstu?
Aha, protože Trollování je evidentně větší zábava.
Jasně, seru na chlorofil, můžou za to žáby, které po té trávě lezou a obarvují jí!
Atd...

Kultovní hláška praví: RTFM YOU RETARD!