Defragmentace - Defragmentation

Vizualizace fragmentace a poté defragmentace

Při údržbě souborových systémů je defragmentace proces, který snižuje stupeň fragmentace . Dělá to tak, že fyzicky organizuje obsah velkokapacitního paměťového zařízení používaného k ukládání souborů do nejmenšího počtu sousedících oblastí (fragmenty, rozsahy ). Pokouší se také vytvořit větší oblasti volného prostoru pomocí zhutnění, aby se zabránilo návratu fragmentace. Některé nástroje pro defragmentaci se snaží udržet menší soubory v jednom adresáři pohromadě, protože k nim často přistupujete postupně.

Defragmentace je výhodná a relevantní pro systémy souborů na elektromechanických diskových jednotkách ( pevné disky , disketové jednotky a média optických disků ). Pohyb čtecích / zapisovacích hlav pevného disku přes různé oblasti disku při přístupu k fragmentovaným souborům je pomalejší ve srovnání s postupným přístupem k celému obsahu nefragmentovaného souboru, aniž by bylo nutné přesouvat čtecí / zapisovací hlavy k hledání dalších fragmentů.

Příčiny fragmentace

K fragmentaci dochází, když systém souborů nemůže nebo nebude přidělit dostatek souvislého prostoru pro uložení celého souboru jako jednotky, ale místo toho umístí jeho části do mezer mezi existujícími soubory (tyto mezery obvykle existují, protože dříve obsahovaly soubor, který má systém souborů následně odstraněn nebo protože souborový systém přidělil nadbytečný prostor souboru). K fragmentaci a následnému výkonu přispívají často přidávané soubory (jako u souborů protokolu), stejně jako časté přidávání a mazání souborů (jako u e-mailů a mezipaměti webového prohlížeče), větší soubory (jako u videí) a větší počet souborů ztráta. Defragmentace se pokouší tyto problémy zmírnit.

Příklad

Příklady pěti stavů fragmentace

Jinak prázdný disk má pět souborů A až E, z nichž každý využívá 10 bloků prostoru (v této části je blok alokační jednotkou souborového systému ; velikost bloku se nastavuje při formátování disku a může být libovolná velikost podporovaná souborový systém). Na prázdném disku by byly všechny tyto soubory přidělovány jeden po druhém (viz příklad 1 na obrázku). Pokud by měl být soubor B odstraněn, byly by dvě možnosti: označit prostor pro soubor B jako prázdný, aby se mohl znovu použít později, nebo přesunout všechny soubory za B tak, aby prázdné místo bylo na konci. Vzhledem k tomu, že přesun souborů může být časově náročný, pokud by bylo potřeba přesunout mnoho souborů, obvykle tam prostě zůstane prázdné místo označené v tabulce jako dostupné pro nové soubory (viz příklad 2 na obrázku). Když je přidělen nový soubor F, který vyžaduje 6 bloků prostoru, mohl by být umístěn do prvních 6 bloků prostoru, který dříve obsahoval soubor B, a 4 bloky následující za ním zůstanou k dispozici (viz příklad 3 na obrázku) . Pokud je přidán další nový soubor, G, který potřebuje pouze 4 bloky, mohl by zabírat prostor za F a před C (příklad 4 na obrázku).

Pokud je však třeba soubor F poté rozbalit, existují tři možnosti, protože prostor bezprostředně za ním již není k dispozici:

  1. Přesuňte soubor F na místo, kde jej lze vytvořit jako jeden souvislý soubor nové, větší velikosti. To by nebylo možné, pokud je soubor větší než největší dostupný souvislý prostor. Soubor by také mohl být tak velký, že by operace trvala nežádoucí dobu.
  2. Přesuňte všechny soubory po F, dokud jeden neotevře dostatek místa, aby bylo opět souvislé. To představuje stejný problém jako v předchozím příkladu: pokud existuje malý počet souborů nebo není příliš mnoho dat k přesunutí, není to velký problém, ale pokud existují tisíce nebo dokonce desítky tisíc souborů, neexistuje nemám dost času na přesun všech těchto souborů.
  3. Přidejte nový blok někde jinde a označte, že F má druhý rozsah (viz příklad 5 na obrázku). Opakujte to stokrát a souborový systém bude mít řadu malých volných segmentů rozptýlených na mnoha místech a některé soubory budou mít více rozsahů. Pokud má soubor mnoho rozsahů, jako je tento, může se doba přístupu k tomuto souboru příliš prodloužit kvůli náhodnému hledání disku, které bude muset při jeho čtení udělat.

Koncept „fragmentace“ se navíc neomezuje pouze na jednotlivé soubory, které mají na disku více oblastí. Například skupinu souborů, které se běžně čtou v určité sekvenci (například soubory přístupné programem při načítání, které mohou zahrnovat určité knihovny DLL , různé soubory prostředků, soubory audiovizuálních médií ve hře) lze považovat za fragmentované, pokud nejsou na disku v postupném pořadí načítání, i když tyto jednotlivé soubory nejsou fragmentovány; hlavy pro čtení / zápis budou muset tyto (nefragmentované) soubory hledat náhodně, aby k nim mohly přistupovat postupně. Některé skupiny souborů mohly být původně nainstalovány ve správném pořadí, ale časem se od sebe oddělily, protože některé soubory ve skupině byly odstraněny. Častou příčinou jsou aktualizace, protože za účelem aktualizace souboru většina aktualizátorů obvykle nejprve odstraní starý soubor a poté na jeho místo napíše nový aktualizovaný. Většina souborových systémů však nový soubor nezapisuje na stejné fyzické místo na disku. To umožňuje nesouvisejícím souborům vyplnit prázdná místa, která po sobě zůstala.

Zmírnění

Defragmentace je operace přesunutí rozsahů souborů (bloků fyzické alokace), takže se nakonec sloučí, nejlépe do jednoho. Obvykle to vyžaduje alespoň dvě operace kopírování: jednu k přesunutí bloků do volného stíracího prostoru na disku, aby mohlo dojít k většímu pohybu, a druhou k konečnému přesunutí bloků na zamýšlené místo. V takovém paradigmatu se z disku nikdy neodstraní žádná data, takže lze operaci bezpečně zastavit i v případě ztráty napájení. Obrázek článku zobrazuje příklad.

K defragmentaci disku může defragmentační software (známý také jako „defragmentátor“) přesouvat soubory pouze na dostupném volném místě. Jedná se o intenzivní operaci a nelze ji provést na souborovém systému s malým nebo žádným volným místem. Během defragmentace bude snížen výkon systému a během procesu je nejlepší nechat počítač na pokoji, aby nedocházelo ke zmatení defragmentátoru neočekávanými změnami v souborovém systému. V závislosti na použitém algoritmu může nebo nemusí být výhodné provést více průchodů. Reorganizace spojená s defragmentací nezmění logické umístění souborů (definované jako jejich umístění ve struktuře adresářů ).

Kromě defragmentace programových souborů může nástroj pro defragmentaci také zkrátit čas potřebný k načtení programů a otevření souborů. Například defragmentátor Windows 9x zahrnoval Intel Application Launch Accelerator, který optimalizoval programy na disku tak, že umístil defragmentované soubory programu a jejich závislosti vedle sebe v pořadí, ve kterém je program načítá, aby tyto programy načetl rychleji. Ve Windows dobrý defragmentátor přečte soubory Prefetch, aby identifikoval co nejvíce z těchto skupin souborů a umístil soubory do nich v přístupové sekvenci.

Na začátku pevného disku mají vnější stopy vyšší rychlost přenosu dat než vnitřní stopy. Umístění často přístupných souborů na vnější stopy zvyšuje výkon. Defragmentátory třetích stran, například MyDefrag, přesunou často přístupné soubory na vnější stopy a tyto soubory defragmentují.

Vylepšení moderních pevných disků, jako je mezipaměť RAM , vyšší rychlost otáčení talíře, řazení příkazů ( SCSI / ATA TCQ nebo SATA NCQ ) a vyšší hustota dat, do určité míry snižují negativní dopad fragmentace na výkon systému, i když zvýšení běžně používaných dat množství tyto výhody kompenzuje. Moderní systémy však nesmírně těží z obrovských diskových kapacit, které jsou v současné době k dispozici, protože částečně zaplněné disky se rozpadají mnohem méně než plné disky a na vysokokapacitním pevném disku zabírá stejný oddíl menší rozsah válců, což vede k rychlejšímu hledání. Průměrná doba přístupu však nikdy nemůže být nižší než poloviční rotace talířů a rotace talíře (měřeno v otáčkách za minutu) je rychlostní charakteristika pevných disků, které za ta desetiletí zaznamenaly nejpomalejší růst (ve srovnání s rychlostí přenosu dat a hledáním času ), takže minimalizace počtu hledání zůstává ve většině aplikací náročných na úložiště výhodná. Defragmentace je právě to: zajištění toho, že na jeden soubor je nanejvýš jedno hledání, počítají se pouze pokusy o nesousedící stopy.

Rozdělení na oddíly

Běžnou strategií pro optimalizaci defragmentace a snížení dopadu fragmentace je rozdělení pevného disku (disků) způsobem, který odděluje oddíly souborového systému, které zaznamenávají mnohem více čtení než zápisů od těkavějších zón, kde jsou soubory vytvářeny a mazány často. Adresáře, které obsahují profily uživatelů, jsou neustále upravovány (zejména s adresářem Temp a mezipamětí webového prohlížeče, který vytváří tisíce souborů, které budou odstraněny během několika dní). Pokud jsou soubory z uživatelských profilů uchovávány na vyhrazeném oddílu (jak se běžně děje v doporučených systémech souborů UNIX , kde jsou obvykle uloženy v oddílu / var), běží defragmentátor lépe, protože nemusí řešit všechny statické soubory z jiných adresářů. (Alternativně lze defragmentátoru říci, aby jednoduše vyloučil určité cesty k souborům.) U oddílů s relativně malou aktivitou zápisu se po první defragmentaci výrazně zlepší čas defragmentace, protože defragmentátor bude muset v budoucnu defragmentovat pouze malý počet nových souborů. .

Offline defragmentace

Přítomnost nepohyblivých systémových souborů, zejména odkládacích souborů , může bránit defragmentaci. Tyto soubory lze bezpečně přesouvat, když se operační systém nepoužívá. Například ntfsresize přesune tyto soubory a změní tak velikost oddílu NTFS . Nástroj PageDefrag může defragmentovat systémové soubory systému Windows, například odkládací soubor a soubory, které ukládají registr systému Windows , spuštěním při spuštění před načtením grafického uživatelského rozhraní. Od Windows Vista není tato funkce plně podporována a nebyla aktualizována.

V systému NTFS, jak jsou soubory přidávány na disk, musí tabulka hlavních souborů (MFT) narůstat, aby se mohly ukládat informace o nových souborech. Pokaždé, když nelze MFT rozšířit z důvodu překážení nějakého souboru, získá MFT fragment. V dřívějších verzích systému Windows jej nebylo možné bezpečně defragmentovat, když byl oddíl připojen, a proto společnost Microsoft napsala blokování defragmentace API . Od Windows XP je však stále větší počet defragmentátorů schopen defragmentovat MFT, protože bylo vylepšeno defragmentační API Windows a nyní podporuje tuto operaci přesunu. I přes vylepšení zůstávají první čtyři clustery MFT nepohyblivé pomocí defragmentačního rozhraní Windows, což má za následek skutečnost, že někteří defragmentátoři uloží MFT ve dvou fragmentech: První čtyři clustery všude tam, kde byly umístěny, když byl disk naformátován, a pak zbytek MFT na začátku disku (nebo kdekoli, kde se strategie defragmentátoru považuje za nejlepší místo).

Polovodičové disky

Při čtení dat z konvenční elektromechanické jednotky pevného disku musí diskový řadič nejprve relativně pomalu umístit hlavu na dráhu, kde se nachází daný fragment, a poté počkat, dokud se talíř disku otáčí, dokud fragment nedosáhne hlavy. Solid-state drive (SSD) je založen na flash paměti s žádnými pohyblivými částmi, takže random access fragmentu souborů na flash paměti netrpí toto zpoždění, takže defragmentace pro optimalizaci rychlosti přístupu zbytečné. Kromě toho, protože do paměti flash lze zapsat pouze omezený početkrát, než selže, je defragmentace ve skutečnosti škodlivá (s výjimkou zmírnění katastrofického selhání ). Windows však stále automaticky defragmentuje SSD (i když méně energicky), aby zabránil systému souborů v dosažení maximální tolerance fragmentace. Jakmile je dosaženo maximálního limitu fragmentace, následné pokusy o zápis na disk selžou.

Přiblížení a defragmentace podle typu souborového systému

Nástroj pro defragmentaci systému Windows
  • FAT : Systémy MS-DOS 6.xa Windows 9x přicházejí s defragmentačním nástrojem s názvem Defrag. Verze DOS je omezená verze Norton SpeedDisk. Verze dodávaná se systémem Windows 9x byla licencována společností Symantec Corporation a verze dodávaná se systémy Windows 2000 a XP je licencována společností Condusiv Technologies .
  • NTFS byl představen s Windows NT 3.1 , ale ovladač systému souborů NTFS neobsahoval žádné funkce defragmentace. Ve Windows NT 4.0 byly zavedeny defragmentační API, které mohly nástroje třetích stran používat k provádění úkolů defragmentace; nebyl však zahrnut žádný defragmentační software. V systému Windows 2000 , Windows XP a Windows Server 2003 , Microsoft zahrnoval defragmentace nástroj, založený na Diskeeper , který využil defragmentace API a byl snap-in Správa počítače . Ve Windows Vista , Windows 7 a Windows 8 byl tento nástroj výrazně vylepšen a dostal nové rozhraní bez vizuální diskové mapy a již není součástí Správa počítače. Pro Microsoft Windows je k dispozici také řada bezplatných a komerčních produktů pro defragmentaci třetích stran .
  • BSD UFS a zejména FreeBSD používá interní reallocator, který se snaží snížit fragmentaci hned v okamžiku, kdy jsou informace zapsány na disk. Toto účinně řídí degradaci systému po delším používání.
  • Btrfs má k dispozici online a automatickou defragmentaci.
  • Linux ext2 , ext3 a ext4 : Podobně jako UFS používají tyto souborové systémy techniky alokace určené k udržení fragmentace pod kontrolou po celou dobu. Výsledkem je, že ve velké většině případů není defragmentace nutná. ext2 používá offline defragmentátor s názvem e2defrag, který nefunguje s jeho nástupcem ext3. K defragmentaci souborového systému ext3 však lze použít i jiné programy nebo programy nezávislé na souborovém systému, například defragfs. ext4 je poněkud zpětně kompatibilní s ext3, a proto má obecně stejnou podporu z defragmentačních programů. V současné době lze e4defrag použít k defragmentaci souborového systému ext4, včetně online defragmentace.
  • VxFSfsadmnástroj, který zahrnuje operace defragmentace.
  • JFSdefragfsobslužný program v operačních systémech IBM.
  • HFS Plus představený v roce 1998 s Mac OS 8.1 má řadu optimalizací alokačních algoritmů ve snaze defragmentovat soubory, zatímco k nim přistupujete bez samostatného defragmentátoru. Existuje několik omezení pro soubory, které mají být kandidáty na defragmentaci „za běhu“ (včetně maximální velikosti 20 MB). Od OS X 10.3 je k dispozici nástroj iDefrag od společnosti Coriolis Systems. V tradičním systému Mac OS lze defragmentaci provést pomocí Norton SpeedDisk a TechTool Pro.
  • WAFL v operačním systému ONTAP 7.2 NetApp má příkaz nazvaný, reallocatekterý je určen k defragmentaci velkých souborů.
  • XFS poskytuje online nástroj pro defragmentaci xfs_fsr.
  • SFS zpracovává funkci defragmentace téměř úplně bez státní příslušnosti (kromě umístění, na kterém pracuje), takže defragmentaci lze zastavit a spustit okamžitě.
  • ADFS , systém souborů používaný operačním systémem RISC OS a staršími počítači Acorn Computers , udržuje fragmentaci souborů pod kontrolou, aniž by bylo nutné provádět ruční defragmentaci.

Viz také

Reference

Zdroje

  • Norton, Peter (1994) Peter Norton's Complete Guide to DOS 6.22 , page 521 - Sams ( ISBN  067230614X )
  • Woody Leonhard, Justin Leonhard (2005) Windows XP Timesaving Techniques For Dummies, druhé vydání, strana 456 - For Dummies ( ISBN  0-764578-839 ).
  • Jensen, Craig (1994). Fragmentace: Stav, příčina, léčba . Executive Software International ( ISBN  0-9640049-0-9 ).
  • Dave Kleiman , Laura Hunter, Mahesh Satyanarayana, Kimon Andreou, Nancy G Altholz, Lawrence Abrams, Darren Windham, Tony Bradley a Brian Barber (2006) Winternals: Defragmentation, Recovery, and Administration Field Guide - Syngress ( ISBN  1-597490-792 )
  • Robb, Drew (2003) Správa disků serveru v prostředí Windows Kapitola 7 - AUERBACH ( ISBN  0849324327 )

externí odkazy