Фрагментація файлової системи: відмінності між версіями

[перевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
мНемає опису редагування
Dimagp (обговорення | внесок)
м Виправлено слова, терміни та додано анімацію.
Рядок 1:
{{Мовні помилки|дата=березень 2020}}'''
[[File:FragmentationDefragmentation.gif|thumb|Візуалізація фрагментації, а потім дефрагментації]]
Фрагмента́ція фа́йлової систе́ми''' ('''старіння файлової системи''') — це неспроможність [[Файлова система|файлової системи]] розмістити пов'язані дані послідовно (неперервно), явище притаманне файловим системам, що дозволяють пряму модифікацію даних. Є особливим випадком фрагментації даних.
 
У механічних [[Дисковий накопичувач|дискових накопичувачах]] фрагментація файлової системи збільшує кількість переміщень головки зчитування даних, що, в свою чергу, зменшує пропускну здатність. Щоб позбутися існуючої фрагментації потрібно перемістити файли в суміжні області, окремо від вільного простору. Цей процес називається дефрагментацією.
Рядок 6 ⟶ 8:
Коли файлова система вперше ініціалізована на диску (деякий розділ форматований, використовуючи цю файлову систему), цей розділ містить лише кілька невеликих внутрішніх структур, або, іншими словами, є неперервним блоком вільного простору.<ref>Деякі файлові системи, такі як [[NTFS]] або [[ext2]]+, можуть під час ініціалізації виділяти довгі порожні регіони для спеціальних потреб.</ref> Це означає, що алгоритм розподілу даних може розмістити новостворені файли будь-де на диску. Протягом деякого часу після створення файли у файловій системі можуть розміщуватися майже оптимально. Коли встановлюється [[операційна система]] та [[Програма (інформатика)|програми]], або розпаковуються інші [[Архів (інформатика)|архіви]], послідовне розміщення файлів означає, що пов'язані файли, найбільш імовірно, будуть розміщені близько один біля одного.
 
Проте, щойно існуючі файли видаляються або зменшуються в розмірі, утворюються нові області вільного простору. Коли ж файли доповнюються, часто неможливо продовжити запис з місця, де файл завершився, бо там можуть вже бути розміщені інші файли, тому потрібно створити новий фрагмент. З плином часу через ці фактори вільний простір разом із файлами, які часто доповнюються, як правило фрагментується все більше і більше. Існування коротких вільних областей також означає, що розподільникфайлова система більше не може розмістити нові файли неперервно і повиненповинна розділяти їх на фрагменти. Особливо це справджується, коли файлова система більш заповнена&nbsp;— чим більша довжина вільних областей, тим менша імовірність їхньої появи.
 
Потрібно зазначити, що нижческазане є спрощеним поданням досить складної теми. Метод, який буде тут пояснено, був загальноприйнятим при розподілі файлів на диску та інших носіях з довільним доступом до пам'яті протягом більш ніж 30 років. Деякі операційні системи не просто розподіляють файли один за одним, деякіінші використовують різні методи, щоб запобігти фрагментації, але загалом рано чи пізно через нижчероз'ясненінаявні причини з плином часу буде виникати фрагментація на будь-якій системі, на якій файли регулярно видаляються чи розширяються.змінюються Розглянемоу наступний сценарій, як показано на малюнкурозмірі. справа:
 
=== Приклад ===
[[Файл:File system fragmentation.svg|right|410px]]Новий диск містить 5 збережених файлів A, B, C, D та E, і кожен файл займає 10 ''блоків'' пам'яті (тут розмір блоку неважливий). Оскільки вільний простір є неперервним, файли розміщуються один за одним (Приклад (1)).
Розглянемо наступний сценарій, як показано на малюнку справа:
 
[[Файл:File system fragmentation.svg|rightальт=|410pxміні|Спрощений приклад того, як відбувається фрагментація вільного простору та фрагментація файлів.]]Новий диск містить 5 збережених файлів A, B, C, D та E, і кожен файл займає 10 ''блоків'' пам'яті (тут розмір блоку неважливий). Оскільки вільний простір є неперервним, файли розміщуються один за одним (Приклад (1)).
 
Якщо видалити файл B, утворюється друга область з 10 блоків вільного простору. Файлова система може дефрагментувати диск одразу після видалення, що призведе до сильного зменшення продуктивності в непередбачувані моменти, але в загальному, там просто залишається порожнє місце, яке позначається доступним для подальшого використання, і заповнюється за потреби<ref>The practice of leaving the space occupied by deleted files largely undisturbed is why undelete programs were able to work; they simply recovered the file whose name had been deleted from the directory, but whose contents were still on disk.</ref> (Приклад (2)).
Рядок 31 ⟶ 36:
DFS використовувала дуже просту структуру диска, і [[Файл|файли]] на ньому можна було знайти лише за їхньою довжиною і сектором початку. Це означало, що всі файли повинні були складатися з неперервних блоків і фрагментація не була можливою. За прикладом вище, спроба розширити файл F на кроці 5 не вдалася б на такій системі з повідомленням про помилку розширення. Не зважаючи на те, скільки сумарно вільної пам'яті доступно на диску, цей файл розширити було неможливо.
 
Стандарти [[Обробка винятків|обробки помилок]] на той час були дуже примітивними і, в будь-якому разі, програми, які ледве вміщалися в обмеженій пам'яті BBC Micro, рідко коли могли собі дозволити марнувати цю пам'ять на спроби елегантної обробки помилок. Замість цього користувач був би переміщений назад у командний рядок з повідомленням про помилку розширення, і всі дані, які потрібно було доповнити до файлу, були би втрачені. Розчарування було б більшим, якщо б користувач заздалегідь перевірив би вільне місце на диску і його було б достатньо. Навіть якщо може бути достатньо вільного простору на диску, той факт, що його не було там де потрібно, не можна було побачити без детального аналізу чисел з дискового каталогу. На додаток до цього майже всі без винятку користувачі DFS використовували касети для зберігання файлів, на яких не виникала ця помилка. Перехід на [[Дискети|дискети]] був досить дорогим, але він звільнив користувачів від ненадійності і жахливої швидкості роботи касетних систем, і це було шоком, раптово зробити неприємне відкриття, що цеде оновлення може без попередження привести до втрати даних з їх останніх змін.<ref>http://www.8bs.com/hints/083.txt - Description of the ''can't extend'' error</ref><ref>http://8bs.com/mag/1to4/basegd1.txt - Possible data loss caused by the ''can't extend'' error</ref>
 
== Вплив на продуктивність ==
Фрагментація файлової системи, за прогнозами, стане більш проблематичною на новіших комп'ютерах через збільшення різниці між швидкістю послідовного доступу і затримкою обертання (і меншого часу пошуку продовження) на жорстких дисках споживчого класу,<ref name="seagate-future">{{cite conference|author = Dr. Mark H. Kryder|publisher = [[Seagate Technology]]|date = 2006-04-03|title = Future Storage Technologies: A Look Beyond the Horizon|booktitle = Storage Networking World conference|url = http://www.snwusa.com/documents/presentations-s06/MarkKryder.pdf|format = [[PDF]]|accessdate = 2006-12-14|archiveurl = https://web.archive.org/web/20060717001830/http://www.snwusa.com/documents/presentations-s06/MarkKryder.pdf|archivedate = 2006-07-17|deadurl = yes}}</ref> на яких зазвичай і встановлюють файлові системи. Через це фрагментація&nbsp;— це важлива проблема в дослідженнях та дизайні сучасних файлових систем. Стримування фрагментації залежить не тільки від внутрішнього формату файлової системи на диску, але також значною мірою від її реалізації.<ref name="mcvoy-extent">{{cite conference |author = L. W. McVoy, S. R. Kleiman|date = Winter 1991|title = Extent-like Performance from a UNIX File System|conference = Proceedings of [[USENIX]] winter '91|pages = pages&nbsp;33&ndash;43|location = Dallas, Texas|publisher = [[Sun Microsystems, Inc.]]|url = http://www.cis.upenn.edu/~bcpierce/courses/dd/papers/mcvoy-extent.ps|format = [[PostScript]]|accessdate = 2006-12-14}}</ref>
 
У простих тестах продуктивності файлової системи фактор фрагментації часто опускається через справжнє так зване «старіння» файлової системи, яке складно змоделювати. Швидше за все для простоти порівняння тести продуктивності файлової системи часто працюють на порожніх файлових системах, і не дивно, що результати можуть сильно відрізнятися в залежності від характеру її використання в реальному житті.<ref name="workload-benchmarks">{{cite journal|author = Keith Arnold Smith|date = January 2001|title = Workload-Specific File System Benchmarks|publisher = [[Harvard University]]|url = http://www.eecs.harvard.edu/vino/fs-perf/papers/keith_a_smith_thesis.pdf|format = [[PDF]]|accessdate = 2006-12-14|archiveurl = https://web.archive.org/web/20041117233607/http://www.eecs.harvard.edu/vino/fs-perf/papers/keith_a_smith_thesis.pdf|archivedate = 2004-11-17|deadurl = yes}}</ref>
 
Фрагментація файлової системи має менший вплив на продуктивність твердотілих накопичувачів (SSD) через те, що на них немає часу механічного пошуку, як на носіях обертання, хоча додаткові непослідовні операції вводу/виводу впливають на продуктивність системи, і багато архітектур файлових систем споживають додаткові внутрішні ресурси, коли диск фрагментований.
Рядок 47 ⟶ 52:
 
=== Фрагментація файлів ===
Фрагментація окремих файлів виникає, коли цілий файл розділяється на багато частин (їх називають 'продовженнями (''extent'') у відповідних файлових системах). Файлові системи для жорстких дисків намагаються зберігати файли неперервно, але це не завжди можливо без значної втрати продуктивності. Знаряддя для перевірки файлової системи та її дефрагментації зазвичай відповідають за фрагментацію файлів лише у статистиці «відсотка фрагментації».
 
=== Фрагментація вільного простору ===