Екстент

Екстент (англ. extent — протяжність) — у файлових системах, безперервна область носія інформації. Як правило, у файлових системах з підтримкою екстентів великі файли складаються з декількох екстентів, не пов'язаних один з одним безпосередньо.

Екстенти і блоки

[ред. | ред. код]
Файл в традиційній файловій системі
Файл у файловій системі з підтримкою екстентів

У багатьох файлових системах, в загальному випадку, файл зберігається у вигляді «заголовка», тобто якоїсь відносно невеликої структури даних (наприклад, inode і непрямих блоків в ext3 або рядка Master File Table в NTFS), яка містить вказівники на ділянки носія інформації, де по шматках зберігається вміст файлу. У традиційних файлових системах це покажчики на окремі блоки (мінімальні ділянки носія, які можна прочитати або записати за раз). У ряді сучасних файлових систем використовуються покажчики не на блоки, а на екстенти.

Використання вказівників на екстенти має ряд переваг над схемою з вказівками на окремі блоки. Оскільки всі дані в одному екстенті розташовані на диску поспіль, то підвищується швидкість читання і запису файлу і знижується ступінь фрагментації файлової системи. При однаковому розмірі і організації структури даних «заголовка» файлу, файлова система з підтримкою екстентів буде мати більший максимальний розмір файлів.

Головний недолік екстентів — підвищена складність реалізації файлової системи.

Слід зауважити, що використання алгоритму розподілу блоків, який розподіляє їх, за можливості, з безперервної ділянки, підвищує швидкість читання і запису даних і частково компенсує відсутність підтримки екстентів.[1] Швидкість доступу до файлу також можна підвищити, якщо заздалегідь зарезервувати під файл безперервну ділянку на диску (наприклад, через системний виклик fallocate в Unix або через SetFileValidData і SetEndOfFile в Microsoft Windows).

Відомі файлові системи з підтримкою екстентів

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. L. W. McVoy; S. R. Kleiman (1991). Extent−like Performance from a UNIX File System. USENIX − Winter ’91. Даллас. Архів оригіналу (PostScript) за 20 лютого 2007. Процитовано 13.08.2008.
  2. CS 537 Notes, Section #26: Windows (NT) File System[недоступне посилання] : [арх. 21.09.2008]. — Дата звернення: 13.08.2008.

Посилання

[ред. | ред. код]
  • Getting to know the Solaris filesystem, Part 1 : Learn all about the inner workings of your on-disk filesystem, including allocation management, storage capacity and access control list support, and metadata logging / Richard McDougall // SunWorld. — 1999. — May.