Сравнительный Анализ файловых систем

Автор работы: Пользователь скрыл имя, 13 Апреля 2013 в 17:10, доклад

Описание работы

Самое фундаментальное свойство любой файловой системы, влияющее на быстродействие всех дисковых операций — структура организации и хранения информации, т.е. то, как, собственно, устроена сама файловая система. Для начала хотелось бы заметить, что любая файловая система так или иначе хранит файлы. Доступ к данным файлов — основная и неотъемлемая часть работы с файловой системой, и поэтому, прежде всего, нужно сказать пару слов об этом. Любая файловая система хранит данные файлов в неких объемах — секторах, которые используются аппаратурой и драйвером как самая маленькая единица полезной информации диска. Одним из базовых понятий ФС является кластер - минимальный размер данных на диске.

Файлы: 1 файл

сравнительный анализ файловых систем.doc

— 131.00 Кб (Скачать файл)

Сравнительный анализ файловых систем

Самое фундаментальное свойство любой  файловой системы, влияющее на быстродействие всех дисковых операций — структура  организации и хранения информации, т.е. то, как, собственно, устроена сама файловая система. Для начала хотелось бы заметить, что любая файловая система так или иначе хранит файлы. Доступ к данным файлов — основная и неотъемлемая часть работы с файловой системой, и поэтому, прежде всего, нужно сказать пару слов об этом. Любая файловая система хранит данные файлов в неких объемах — секторах, которые используются аппаратурой и драйвером как самая маленькая единица полезной информации диска. Одним из базовых понятий ФС является кластер - минимальный размер данных на диске. Например, если ваш файл "весит" всего 1 байт, а размер кластера на винчестере - 8 Кб, то в итоге на жестком диске размер файла будет тоже 8 Кб (один кластер). Если же файл реально занимает 8,1 Кб, на диске он будет "весить" все 16 Кб (два кластера). Теперь попробуйте прикинуть, сколько сотен файлов хранится на винчестере, и вам покажется, что все прошедшие годы вы просто недооценивали роль кластера в вашей жизни. Помимо размера кластера (он может меняться в зависимости от ФС), немаловажно, каким образом файловая система заполняет свободную область на диске, плохой алгоритм ведет к фрагментации данных (когда части одного файла на диске находятся далеко друг от друга.          

FAT32

Теоретически размер логического  диска FAT32 ограничен 8 Тб. На практике же встроенные в Windows 2000/XP средства администрирования дисков не позволят создать раздел размером более 32 Гб. Имена файлов в FAT32 могут содержать до 255 символов. Максимально возможный размер одного файла составляет 4 Гб. Пожалуй, одной из важнейших характеристик ФС является стабильность, то есть устойчивость к ошибкам. У FAT32 с этим дела обстоят, прямо говоря, не важно. Наиболее распространенная ошибка, которая знакома всем обладателям Windows 98, - неправильно записанные данные о количестве свободного места. Она возникает по причине того, что данные о количестве свободного места не вычисляются, как это происходило в FAT16, а просто записываются в загрузочную область. И когда возникает сбой в процессе копирования (удаления, перемещения) файла, ОС не успевает записать обновленные данные о свободном месте на диске, хотя на самом деле оно изменилось. В результате возникает ошибка, исправить которую можно лишь полной проверкой винчестера специальной программой. К тому же FAT32 довольно сильно подвержен фрагментации (особенно при заполнении диска более чем на 80%) - это существенно замедляет работу. В особо запущенных случаях фрагментация может привести даже к "падению" всей ФС.

NTFS

Ограничения на размер жесткого диска, выставляемые NTFS, сегодня недостижимы - 2 000 000 Гб, так что, можно сказать, ограничений попросту нет. Первые 12% диска под управлением NTFS отводятся под основную таблицу файлов MFT (Master File Table). Она представляет собой каталог всех имеющихся файлов, причем файлы небольшого размера (100 байт) хранятся прямо в MFT - это заметно ускоряет доступ к ним. Для работы ФС очень важны первые 16 элементов MFT (указатели на системные файлы) и поэтому на диске хранится копия этих записей. В результате "снести" NTFS довольно непросто: система в состоянии обойти серьезные неисправности поверхности диска и пережить даже повреждение MFT (аналогичная ситуация для FAT закончилась бы фатально).

Каталог в NTFS представляет собой специфический  файл, хранящий ссылки на другие файлы  и каталоги. Его внутренняя структура  подобна бинарному дереву, что позволяет в десятки раз сократить время поиска нужного файла (так называемый метод деления пополам). Чем больше файлов в каталоге, тем больше преимущество перед FAT32 при поиске. Отказоустойчивость NTFS связана с тем, что работа с данными производится на основе транзакций - действий, совершаемых целиком и корректно или не совершаемых вообще. Представим себе, что осуществляется запись данных на диск, и вдруг на середине процесса выясняется, что в том месте, куда мы решили записать очередную порцию данных - физическое повреждение поверхности. В этом случае транзакция записи откатывается целиком (отменить изменения можно благодаря журналу транзакций). Место помечается как сбойное, а данные записываются в другое место - начинается новая транзакция. Разграничение прав доступа к файлам в NTFS далеко не всегда защищает от несанкционированного доступа к секретным данным. Злоумышленник может подключить ваш жесткий диск к другому компьютеру и без труда прочесть нужные файлы, поскольку ограничение прав доступа не распространяется за пределы вашей ОС. Поэтому в NTFS была введена дополнительная мера - шифрование данных на уровне файловой системы, что позволяет скрывать информацию более успешно. Сжатие данных в NTFS тоже производится на уровне ФС, что позволяет работать с ними относительно быстро, распаковывая информацию "налету". Механизм сжатия чрезвычайно гибок - можно упаковывать даже половину файла, другую часть оставляя несжатой. Имя файла может содержать любые символы, включая полный набор национальных алфавитов, так как данные представлены в Unicode (65535 разных символов).

NTFS — плюсы: 

Фрагментация файлов не имеет практически  никаких последствий для самой  файловой системы — работа фрагментированной  системы ухудшается только с точки  зрения доступа к самим данным файлов.

Сложность структуры каталогов  и число файлов в одном каталоге также не чинит особых препятствий  быстродействию.

Быстрый доступ к произвольному  фрагменту файла (например, редактирование больших .wav файлов).

Очень быстрый доступ к маленьким  файлам (несколько сотен байт) — весь файл находится в том же месте, где и системные данные (запись MFT).

NTFS — минусы:

Существенные требования к памяти системы (64 Мбайт — абсолютный минимум, лучше — больше).

Медленные диски и контроллеры  без Bus Mastering сильно снижают быстродействие NTFS.

Работа с каталогами средних  размеров затруднена тем, что они  почти всегда фрагментированы.

Диск, долго работающий в заполненном  на 80% — 90% состоянии, будет показывать крайне низкое быстродействие.

LINUX

 

Linux поддерживает очень много файловых систем. Начинающий пользователь просто теряется, когда видит такое многообразие выбора — ведь в качестве корневой файловой системы можно выбрать следующие файловые системы: ext2, ext3,ext4, XFS, ReiserFS, JFS. Первая, ext2, не является журналируемой файловой системой. Все остальные ведут журналы своей работы. Преимущество журналируемой файловой системы заключается в том, что она ведет журнал своей работы, и это позволяет восстановить данные в случае сбоя. Перед тем как выполнить операцию, журналируемая файловая система записывает эту операцию в журнал, а после выполнения операции — удаляет из журнала. Представим, что после занесения операции в журнал произошел сбой (например, выключили свет). Позже, когда сбой будет устранен, файловая система по журналу выполнит все действия, которые занесены в журнал. Конечно, и это не всегда позволяет уберечься от сбоя — 100% гарантии никто не дает, но все же лучше, чем вообще ничего.

Что такое журналируемая  файловая система?

Запуск проверки системы (fsck) на больших файловых системах может занять много времени, что очень плохо, учитывая сегодняшние высоко скоростные системы. Причиной, по которой целостность отсутствует в файловой системе, может являться не корректное размонтирование, например в момент прекращения работы на диск велась запись. Приложения могли обновлять данные, содержащиеся в файлах и система могла обновлять мета-данные файловой системы, которые являются «данными о данных файловой системы», иными словами, информация о том какие блоки связаны с какими файлами, какие файлы размещены в каких директориях и тому подобное. Ошибки (отсутствие целостности) в файлах данных – это плохо, но куда хуже ошибки в мета-данных файловой системы, что может привести к потерям файлов и другим серьезным проблемам. Для минимизации проблем связанных с целостностью и минимизации времени перезапуска системы, журналируемая файловая система хранит список изменений, которые она будут проводить с файловой системой перед фактической записью изменений. Эти записи хранятся в отдельной части файловой системы, называемой «журналом» или «логом». Как только эти записи журнала (лога) безопасно записаны, журналируемая файловая система вносит эти изменения в файловую систему и затем удаляет эти записи из «лога» (журнала регистраций). Записи журнала организованы в наборы связанных изменений файловой системы, что очень похоже на то, как изменения добавляемые в базу данных организованны в транзакции. Журналируемая файловая система увеличивает вероятность целостности, потому что записи в лог-файл ведутся до проведения изменений файловой системы, и потому что файловая система хранит эти записи до тех пор, пока они не будут целиком и безопасно применены к файловой системе. При перезагрузке компьютера, который использует журналируемую файловую систему, программа монтирования может гарантировать целостность файловой системы простой проверкой лог-файла на наличие ожидаемых, но не произведенных изменений и записью их в файловую систему. В большинстве случаев, системе не нужно проводить проверку целостности файловой системы, а это означает, что компьютер использующий журналируемую файловую систему будет доступен для работы практически сразу после перезагрузки. Соответственно шансы потери данных в связи с проблемами в файловой системе значительно снижаются

Minix . На заре Linux (в далеком 1993 году) ядро поддерживало только одну файловую систему - порт весьма минималистичной файловой системы Minix. Она имела ряд ограничений: максимальная длина имени файла - 14 символов, размер файловой системы ограничен 64МБ. Она даже не поддерживала всех атрибутов, свойственных файловым системам UNIX, в частности, полного набора временных меток создания, модификации и доступа, требуемого для соответствия файловой системы стандартам POSIX (Интерфейс переносимых операционных систем).

Из-за ограниченности файловой системы  Minix началась работа над ее заменой. В результате появился уровень абстракции виртуальной файловой системы (VFS), который упростил написание файловых систем для Linux. С использованием нового VFS файловая система Minix была расширена добавлением поддержки длинных имен файлов и увеличением файловой системы (до 2 ГБ). Эта версия получила название расширенной файловой системы (ext), но и у нее остались ограничения.

Файловая система ext2 создана в 1993 году Реми Кардом (Rémy Card) для ликвидации ограничений, присущих первой файловой системе Linux — extended file system (или просто ext), которая была разработана Линусом Торвальдсом для замены MINIX, использовавшейся им поначалу при разработке ядра. Если же учесть, что все традиционные Unix-подобные файловые системы восходят, генетически или парагенетически, к FFS, разрабатывавшейся для первых берклианских Unix'ов, то оказывается, что корни её уходят ещё в начало восьмидесятых годов прошлого столетия (1983 год — создание FFS, давшей таких потомков, как UFS и UFS2 из BSD-мира).

ext2 - файловая система по умолчанию в Linux - это традиционная UNIX-овая файловая система (базируется на файловой системе Berkeley Fast Filesystem, FFS). Она имеет максимальную длину имени файла 255 символов и теоретический максимум размера файловой системы 4 терабайта. (Драйвер блочных устройств в Linux ограничен "всего лишь" 2047 гигабайтами; дайте мне знать, когда я смогу купить жесткий диск такого объема).

Из-за широкой распространенности ext2 драйверы для нее появились и для Windows и Mac OS X. Они позволяют читать и писать на разделы ext2 непосредственно из этих операционных систем, что делает ее превосходным форматом для совместного доступа к таким устройствам, как переносные жесткие диски.

Файловая система ext2 поддерживает все стандартные возможности UNIX:

-Идентификаторы (ID) владельца и группы.

-Биты режимов, задающие права  пользователей, групп и другие  права и флаги операционной  системы.

-Ведение записей создания, модификации и времени доступа к файлам (хотя большинство систем запускаются с отключенным контролем времени доступа для увеличения производительности ценой потери совместимости со стандартом POSIX 1003.1).

Главный недостаток ext2 в том, что жесткие диски стали с момента ее создания стали намного больше. Если система рушится или отказывает питание, файловую систему приходится проверять с помощью fsck, что на современных дисках с огромным количеством папок и файлов занимает очень много времени.

Все типы файлов имеют символьные имена. В иерархически организованных файловых системах обычно используются три типа имен — файлов: простые, составные и относительные. Не является исключением и «вторая расширенная файловая система». Ограничения на простое имя состоят в том что, его длина не должна превышать 255 символов, а также в имени не должны присутствовать символ NUL и ‘/’. Ограничения на символ NUL связаны с представлением строк на языке Си, а на символ ‘/’ с тем, что он используются как разделительный символ между каталогами. Полное имя представляет собой цепочку простых символьных имен всех каталогов, через которые проходит путь от корня до данного файла. В файловой системе ext2 файл может входить в несколько каталогов, а значит, иметь несколько полных имен; здесь справедливо соответствие «один файл — много полных имен». В любом случае полное имя однозначно определяет файл.

Всё пространство раздела диска  разбивается на блоки фиксированного размера, кратные размеру сектора  — 1024, 2048 и 4096 байт. Размер блока указывается при создании файловой системы на разделе диска. Меньший размер блока позволяет экономить место на жёстком диске, но также ограничивает максимальный размер файловой системы. Все блоки имеют порядковые номера. С целью уменьшения фрагментации и количества перемещений головок жёсткого диска при чтении больших массивов данных блоки объединяются в группы блоков.

Обобщенная структурная схема  ФС ext2

Каждая группа блоков имеет одинаковое строение. Суперблок — основной элемент файловой системы ext2. Он содержит общую информацию о файловой системе:

общее число блоков и индексных  дескрипторов в файловой системе;

число свободных блоков и индексных дескрипторов в файловой системе;

размер блока файловой системы;

количество блоков и индексных  дескрипторов в группе;

размер индексного дескриптора;

идентификатор файловой системы.

От целостности суперблока напрямую зависит работоспособность файловой системы. Операционная система создаёт несколько резервных копий суперблока для возможности его восстановления в случае повреждения. Описание группы блоков, представляет собой массив, содержащий общую информацию обо всех блоках раздела. Битовая карта блоков — это структура, каждый бит которой показывает, отведён ли соответствующий ему блок какому-либо файлу. Если бит равен 1, то блок занят. Аналогичную функцию выполняет битовая карта индексных дескрипторов, показывая какие именно индексные дескрипторы заняты, а какие нет.

Все оставшееся место, обозначенное в  таблице, как данные, отводится для  хранения файлов.

Третья расширенная  файловая система (ext3fs) - наиболее популярная журналируемая файловая система, возникшая как эволюция известной файловой системы ext2. На самом деле она совместима с ext2, так как оперирует идентичными структурами, но с добавлением журнала. Более того, возможно смонтировать раздел ext3 как ext2 либо преобразовать ext2 в ext3, используя утилиту tune2fs. В ext3fs поддерживаются все три стратегии журналирования (обратная запись, упорядочивание и режим данных), однако по умолчанию используется режим упорядочивания. Различия между этими режимами журналирования одновременно и едва заметны, и основательны. Использование режима «журнал» требует, что бы файловая система ext3 записывала каждое изменение файловой системы дважды – первый раз в журнал, а затем в саму файловую систему. Это может снизить общую производительность вашей файловой системы, но этот режим наиболее любим пользователями, потому что он минимизирует шанс потери изменения данных ваших файлов, так как и изменения мета-данных и изменения данный файлов записывается в журнал ext3 и может быть повторено при перезагрузке системы.

Информация о работе Сравнительный Анализ файловых систем