Экстент

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск

Экстент (англ. 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" (PostScript) in USENIX − Winter ’91.. Проверено 13 августа 2008 г.. 
  2. CS 537 Notes, Section #26: Windows (NT) File System (англ.). Проверено 13 августа 2008.

[править] См. также

[править] Ссылки

Логотип «Викисловаря»
В Викисловаре есть статья «экстент»
На других языках