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

Обновлено: 01.07.2024

В этой главе описываются поддерживаемые файловые системы и параметры конфигурации, влияющие на производительность приложений как для ввода-вывода, так и для файловых систем в Red Hat Enterprise Linux 7. В разделе 8.1 «Вопросы» обсуждаются факторы, связанные с вводом-выводом и файловой системой, влияющие на производительность. . В разделе 8.2 «Мониторинг и диагностика проблем с производительностью» рассказывается, как использовать инструменты Red Hat Enterprise Linux 7 для диагностики проблем с производительностью, связанных с вводом-выводом или деталями конфигурации файловой системы. Раздел 8.4, «Инструменты настройки», описывает инструменты и стратегии, которые можно использовать для решения проблем производительности ввода-вывода и файловой системы в Red Hat Enterprise Linux 7.

8.1. Соображения

Подходящие параметры хранилища и производительности файловой системы сильно зависят от назначения хранилища. Производительность операций ввода-вывода и файловой системы может зависеть от любого из следующих факторов:

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

8.1.1. Планировщики ввода/вывода

Планировщик ввода-вывода определяет, когда и как долго операции ввода-вывода выполняются на устройстве хранения. Он также известен как лифт ввода-вывода.

Планировщик ввода-вывода по умолчанию для всех блочных устройств, кроме дисков SATA. Крайний срок пытается обеспечить гарантированную задержку для запросов с момента, когда запросы достигают планировщика ввода-вывода. Этот планировщик подходит для большинства случаев использования, но особенно для тех, в которых операции чтения выполняются чаще, чем операции записи.

Запросы ввода-вывода в очереди сортируются в пакеты чтения или записи, а затем планируются для выполнения в возрастающем порядке LBA. По умолчанию пакеты чтения имеют приоритет над пакетами записи, поскольку приложения с большей вероятностью блокируются при чтении операций ввода-вывода. После обработки пакета крайний срок проверяет, как долго для операций записи не хватало процессорного времени, и соответствующим образом планирует следующий пакет чтения или записи. Количество запросов для обработки в пакете, количество пакетов чтения для выпуска в пакете записи и количество времени до истечения срока действия запросов настраиваются; подробности см. в Разделе 8.4.4, «Настройка планировщика крайнего срока».

Планировщик по умолчанию только для устройств, идентифицированных как диски SATA. Планировщик Completely Fair Queuing, cfq, делит процессы на три отдельных класса: в режиме реального времени, с максимальной эффективностью и бездействующие. Процессы в классе реального времени всегда выполняются перед процессами в классе наилучших усилий, которые всегда выполняются перед процессами в классе бездействия. Это означает, что процессы в классе реального времени могут лишать процессорного времени как максимальных усилий, так и простаивающих процессов. По умолчанию процессы относятся к классу наилучших усилий.

cfq использует исторические данные, чтобы предвидеть, будет ли приложение выдавать больше запросов ввода-вывода в ближайшем будущем. Если ожидается больше ввода-вывода, cfq бездействует, ожидая нового ввода-вывода, даже если ввод-вывод от других процессов ожидает обработки.

Из-за этой склонности к бездействию планировщик cfq не следует использовать в сочетании с оборудованием, которое не подвергается значительному штрафу за поиск, если только оно не настроено для этой цели. Его также не следует использовать в сочетании с другими планировщиками, не экономящими работу, например с аппаратным RAID-контроллером на хосте, поскольку объединение этих планировщиков в стек приводит к большой задержке.

Планировщик ввода-вывода noop реализует простой алгоритм планирования FIFO (первым поступил — первым обслужен). Запросы объединяются на общем блочном уровне через простой кеш последнего обращения. Это может быть лучший планировщик для систем с ограниченным процессором, использующих быстрое хранилище.

Подробнее о настройке другого планировщика ввода-вывода по умолчанию или указании другого планировщика для конкретного устройства см. Раздел 8.4, «Инструменты настройки».

8.1.2. Файловые системы

Прочитайте этот раздел, чтобы узнать о поддерживаемых файловых системах в Red Hat Enterprise Linux 7, рекомендуемых вариантах их использования, а также о параметрах форматирования и монтирования, доступных для файловых систем в целом. Подробные рекомендации по настройке для этих файловых систем доступны в Разделе 8.4.7, «Настройка файловых систем для повышения производительности».

8.1.2.1. XFS

XFS — это надежная и хорошо масштабируемая 64-разрядная файловая система. Это файловая система по умолчанию в Red Hat Enterprise Linux 7. XFS использует выделение на основе экстентов и предлагает ряд схем выделения, включая предварительное выделение и отложенное выделение, которые уменьшают фрагментацию и повышают производительность. Он также поддерживает ведение журнала метаданных, что может облегчить восстановление после сбоя. XFS можно дефрагментировать и увеличивать, когда она подключена и активна, а Red Hat Enterprise Linux 7 поддерживает несколько специальных утилит резервного копирования и восстановления XFS.

Начиная с Red Hat Enterprise Linux 7.0 GA, XFS поддерживается для максимального размера файловой системы 500 ТБ и максимального смещения файла 8 ЭБ (разреженные файлы).Подробнее об администрировании XFS см. в Руководстве по администрированию хранилища Red Hat Enterprise Linux 7. Для получения помощи в настройке XFS для конкретной цели см. Раздел 8.4.7.1, «Настройка XFS».

8.1.2.2. Ext4

Ext4 — это масштабируемое расширение файловой системы ext3. Его поведение по умолчанию оптимально для большинства рабочих нагрузок. Однако он поддерживается только для максимального размера файловой системы 50 ТБ и максимального размера файла 16 ТБ. Подробнее об администрировании ext4 см. в Руководстве по администрированию хранилища Red Hat Enterprise Linux 7. Для помощи в настройке ext4 для конкретной цели см. Раздел 8.4.7.2, «Настройка ext4».

8.1.2.3. Btrfs (предварительная версия технологии)

Файловой системой по умолчанию для Red Hat Enterprise Linux 7 является XFS. Btrfs (файловая система B-tree), относительно новая файловая система с копированием при записи (COW), поставляется как предварительная версия технологии. Вот некоторые из уникальных функций Btrfs:

Возможность делать снимки отдельных файлов, томов или подтомов, а не всей файловой системы;

Хотя Btrfs считается стабильной файловой системой, она постоянно развивается, поэтому некоторые функции, такие как инструменты восстановления, являются базовыми по сравнению с более зрелыми файловыми системами.

В настоящее время выбор Btrfs удобен, когда требуются расширенные функции (такие как моментальные снимки, сжатие и контрольные суммы данных файлов), но производительность относительно не важна. Если расширенные функции не требуются, риск сбоя и сравнительно низкая производительность с течением времени делают предпочтительными другие файловые системы. Еще одним недостатком по сравнению с другими файловыми системами является максимальный поддерживаемый размер файловой системы 50 ТБ.

8.1.2.4. GFS2

Global File System 2 (GFS2) является частью надстройки High Availability, обеспечивающей поддержку кластерной файловой системы для Red Hat Enterprise Linux 7. GFS2 обеспечивает согласованный образ файловой системы на всех серверах в кластере, что позволяет серверам чтение и запись в единую общую файловую систему.

Подробнее об администрировании GFS2 см. в руководстве Global File System 2 или в руководстве по администрированию Red Hat Enterprise Linux 7 Storage. Для получения информации о настройке GFS2 для конкретной цели см. Раздел 8.4.7.4, «Настройка GFS2».

8.1.3. Общие рекомендации по настройке файловых систем

В этом разделе рассматриваются вопросы настройки, общие для всех файловых систем. Рекомендации по настройке для вашей файловой системы см. в разделе 8.4.7, «Настройка файловых систем для повышения производительности».

8.1.3.1. Соображения во время форматирования

Некоторые решения о конфигурации файловой системы нельзя изменить после форматирования устройства. В этом разделе описаны доступные вам варианты решений, которые необходимо принять перед форматированием устройства хранения.

Создайте файловую систему соответствующего размера для вашей рабочей нагрузки. Меньшие файловые системы имеют пропорционально более короткое время резервного копирования и требуют меньше времени и памяти для проверки файловой системы. Однако, если ваша файловая система слишком мала, ее производительность будет страдать от сильной фрагментации.

Блок — это рабочая единица файловой системы. Размер блока определяет, сколько данных может храниться в одном блоке, и, следовательно, наименьший объем данных, которые записываются или считываются за один раз.

Размер блока по умолчанию подходит для большинства случаев использования. Однако ваша файловая система будет работать лучше и хранить данные более эффективно, если размер блока (или размер нескольких блоков) будет таким же или немного больше, чем объем данных, который обычно читается или записывается за один раз. Небольшой файл по-прежнему будет использовать весь блок. Файлы могут быть распределены по нескольким блокам, но это может создать дополнительные накладные расходы во время выполнения. Кроме того, некоторые файловые системы ограничены определенным количеством блоков, что, в свою очередь, ограничивает максимальный размер файловой системы.

Размер блока указывается как часть параметров файловой системы при форматировании устройства с помощью команды mkfs. Параметр, определяющий размер блока, зависит от файловой системы; подробности см. на странице руководства mkfs для вашей файловой системы. Например, чтобы просмотреть параметры, доступные при форматировании файловой системы XFS, выполните следующую команду.

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

Многие устройства экспортируют рекомендуемую геометрию, которая затем устанавливается автоматически при форматировании устройства в определенной файловой системе. Если ваше устройство не экспортирует эти рекомендации или вы хотите изменить рекомендуемые настройки, вам необходимо указать геометрию вручную при форматировании устройства с помощью mkfs.

Параметры, определяющие геометрию файловой системы, различаются в зависимости от файловой системы; подробности см. на странице руководства mkfs для вашей файловой системы. Например, чтобы просмотреть параметры, доступные при форматировании файловой системы ext4, выполните следующую команду.

Журнальные файловые системы документируют изменения, которые будут сделаны во время операции записи в журнальный файл до выполнения операции. Это снижает вероятность повреждения устройства хранения в случае сбоя системы или сбоя питания, а также ускоряет процесс восстановления.

Рабочие нагрузки с интенсивным использованием метаданных предполагают очень частые обновления журнала. Больший журнал использует больше памяти, но снижает частоту операций записи. Кроме того, вы можете сократить время поиска устройства с рабочей нагрузкой, интенсивно использующей метаданные, поместив его журнал в выделенное хранилище, которое работает так же быстро, как и основное хранилище.

Предупреждение

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

Внешние журналы должны создаваться во время форматирования, а устройства журналов указываются во время монтирования. Подробнее см. в справочных страницах mkfs и mount.

8.1.3.2. Соображения во время монтирования

В этом разделе рассматриваются решения по настройке, которые применимы к большинству файловых систем и могут быть указаны при монтировании устройства.

Барьеры файловой системы гарантируют, что метаданные файловой системы будут правильно записаны и упорядочены в постоянном хранилище, а данные, переданные с помощью fsync, сохранятся при отключении питания. В предыдущих версиях Red Hat Enterprise Linux включение барьеров файловой системы могло значительно замедлить работу приложений, которые сильно полагались на fsync или создавали и удаляли множество небольших файлов.

В Red Hat Enterprise Linux 7 производительность барьеров файловой системы была улучшена, так что влияние отключения барьеров файловой системы на производительность незначительно (менее 3%).

Каждый раз при чтении файла его метаданные обновляются с указанием времени доступа ( atime ). Это включает в себя дополнительный ввод-вывод записи. В большинстве случаев эти накладные расходы минимальны, так как по умолчанию Red Hat Enterprise Linux 7 обновляет поле atime только тогда, когда предыдущее время доступа было старше, чем время последней модификации ( mtime ) или изменения состояния ( ctime ).

Однако, если обновление этих метаданных занимает много времени и точные данные о времени доступа не требуются, вы можете смонтировать файловую систему с параметром монтирования noatime. Это отключает обновление метаданных при чтении файла. Он также включает поведение nodiratime, которое отключает обновление метаданных при чтении каталога.

Упреждающее чтение ускоряет доступ к файлам за счет предварительной выборки данных, которые могут понадобиться в ближайшее время, и загрузки их в кэш страниц, откуда их можно извлечь быстрее, чем если бы они находились на диске. Чем выше значение упреждающего чтения, тем дальше система выполняет предварительную выборку данных.

Red Hat Enterprise Linux пытается установить соответствующее значение упреждающего чтения на основе того, что она обнаруживает в вашей файловой системе. Однако точное обнаружение не всегда возможно. Например, если массив хранения представляется системе как один LUN, система обнаруживает один LUN и не устанавливает для массива соответствующее значение упреждающего чтения.

Рабочие нагрузки, связанные с интенсивной потоковой передачей последовательного ввода-вывода, часто выигрывают от высоких значений упреждающего чтения. Настроенные профили, связанные с хранилищем, поставляемые с Red Hat Enterprise Linux 7, повышают значение упреждающего чтения, как и использование чередования LVM, но этих настроек не всегда достаточно для всех рабочих нагрузок.

Параметры, определяющие поведение упреждающего чтения, различаются в зависимости от файловой системы; подробности см. на справочной странице mount.

8.1.3.3. Обслуживание

Регулярное отбрасывание блоков, которые не используются файловой системой, рекомендуется как для твердотельных дисков, так и для хранилищ с тонким выделением ресурсов. Существует два метода удаления неиспользуемых блоков: пакетное удаление и онлайн-удаление.

Этот тип сброса является частью команды fstrim. Он отбрасывает все неиспользуемые блоки в файловой системе, соответствующие критериям, указанным администратором.

Red Hat Enterprise Linux 7 поддерживает пакетное удаление на устройствах с форматированием XFS и ext4, которые поддерживают операции физического удаления (то есть на устройствах с жесткими дисками, где значение /sys/block/devname/queue/discard_max_bytes не равен нулю, и устройства SSD, где значение /sys/block/devname/queue/discard_granularity не равно 0 ).

Этот тип операции удаления настраивается во время монтирования с параметром удаления и выполняется в режиме реального времени без вмешательства пользователя. Однако онлайн-сброс отбрасывает только блоки, которые переходят из использованных в свободные. Red Hat Enterprise Linux 7 поддерживает онлайн-удаление на устройствах с форматами XFS и ext4.

Red Hat рекомендует отбрасывать партии, за исключением случаев, когда отмена в сети требуется для поддержания производительности или когда отмена партии невозможна из-за рабочей нагрузки системы.

Предварительное выделение помечает место на диске как выделенное для файла без записи каких-либо данных в это пространство. Это может быть полезно для ограничения фрагментации данных и низкой производительности чтения.Red Hat Enterprise Linux 7 поддерживает предварительное выделение пространства на устройствах XFS, ext4 и GFS2 во время подключения; см. справочную страницу mount для соответствующего параметра для вашей файловой системы. Приложения также могут извлечь выгоду из предварительного выделения пространства с помощью вызова glibc fallocate(2).

В этом документе представлены файловые системы, используемые основными операционными системами, и объясняется, чем они отличаются друг от друга.

Файловая система – это метод организации файлов на физических носителях, таких как жесткие диски, компакт-диски и флэш-накопители. В семействе операционных систем Microsoft Windows пользователям предоставляется несколько различных вариантов файловых систем при форматировании таких носителей. Эти варианты зависят от типа используемого носителя и ситуаций, в которых носитель форматируется. Двумя наиболее распространенными файловыми системами в Windows являются следующие:

Файловая система NTFS

NTFS (сокращение от New Technology File System) – это современная файловая система с правильным форматом, которая чаще всего используется в Windows Vista, 7 и 8. Она имеет многофункциональную, но простую организацию, которая позволяет использовать ее на очень большие объемы.

NTFS обладает следующими свойствами:

Разделы NTFS могут расширяться до 16 ЭБ (около 16 миллионов ТБ).

Файлы, хранящиеся в разделах NTFS, могут иметь размер раздела.

Разделы NTFS иногда становятся фрагментированными, и их следует дефрагментировать каждые один-два месяца.

Рекомендуется использовать NTFS на всех носителях, которые в основном используются с современными системами Windows. Его не следует использовать для устройств, на которые требуется запись в системах Mac OS X, или на носителях, которые используются в устройствах, несовместимых с NTFS.

Файловая система FAT

Файловая система FAT (сокращение от File Allocation Table) — это файловая система общего назначения, совместимая со всеми основными операционными системами (Windows, Mac OS X и Linux/Unix). Она имеет относительно простую техническую основу и была файловой системой по умолчанию для всех операционных систем Windows до Windows 2000. Из-за своей чрезмерно упрощенной структуры FAT страдает от таких проблем, как чрезмерная фрагментация, повреждение файлов и ограничения на имена и размер файлов. .

Файловая система FAT имеет следующие свойства:

Разделы FAT не могут превышать 2 ТБ.

  • ПРИМЕЧАНИЕ. Windows не может отформатировать диск размером более 32 ГБ в FAT32, а Mac OS X может.

Файлы, хранящиеся в разделе FAT, не могут превышать 4 ГБ.

Для поддержания приемлемой производительности разделы FAT необходимо часто дефрагментировать.

Как правило, не рекомендуется использовать разделы FAT размером более 32 ГБ, поскольку такой объем пространства начинает подавлять слишком упрощенную организационную структуру FAT.

FAT обычно используется только для устройств с небольшой емкостью, где первостепенное значение имеет переносимость между операционными системами. При выборе файловой системы для жесткого диска не рекомендуется использовать FAT, если вы не используете более старую версию Windows.

ПРИМЕЧАНИЕ. Этот раздел относится к файловой системе FAT32. В некоторых ранних версиях Windows 95 использовалась файловая система FAT16, которая имела еще больше технических проблем и более строгие ограничения. Рекомендуется, чтобы FAT16 никогда не использовалась ни на одном современном носителе.

Файловая система exFAT

exFAT (расширенная таблица размещения файлов) — это файловая система Microsoft, совместимая с Windows и Mac OS 10.6+. Он также совместим со многими мультимедийными устройствами, такими как телевизоры и портативные медиаплееры.

exFAT имеет следующие свойства:

Разделы exFAT могут расширяться до очень больших размеров дисков. Рекомендуемый максимум – 512 ТиБ.

Файлы размером до 16 EiB можно хранить в разделе exFAT.

exFAT несовместим с Linux/Unix.

Разделы exFAT следует часто дефрагментировать.

exFAT не может предварительно выделить место на диске.

Файловая система HFS Plus

HFS (Hierarchical File System) Plus – это файловая система, разработанная Apple для Mac OS X. Она также называется Mac OS Extended.

HFS Plus обладает следующими свойствами:

Максимальный объем – 8 ЭБ (около 8 млн ТБ).

Файлы, хранящиеся в разделах HFS+, могут иметь размер раздела.

Пользователи Windows могут читать HFS+, но не могут писать.

Доступны драйверы, которые позволяют пользователям Linux читать и записывать тома HFS+.

Файловая система EXT

Расширенная файловая система была создана для использования с ядром Linux. EXT 4 — это самая последняя версия EXT.

EXT4 имеет следующие свойства:

EXT4 может поддерживать объемы до 1 EiB.

Максимальный размер файла 16 ТБ.

Red Hat рекомендует использовать XFS (не EXT4) для томов объемом более 100 ТБ.

EXT4 обратно совместим с EXT2 и EXT3.

EXT4 может предварительно выделить место на диске.

По умолчанию Windows и Mac OS не могут читать файловые системы EXT.

Конверсия единиц измерения

Экбибайт (EiB) – 1 эксбибайт = 1,153e18 байт = 1152921504606846976 байт = 1024 пебибайта
Пебибайт (PiB) – 1 пебибайт = 1.126e15 байт = 1125899906842624 байт = 1024 терабайта
Экзабайт (EB) - 10000000000000000000 байт = 1e18 байт = 1 миллион терабайт = 1 миллиард гигабайт


Крис Хоффман

< бр />

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

Крис Хоффман – главный редактор How-To Geek. Он писал о технологиях более десяти лет и два года был обозревателем PCWorld. Крис писал для The New York Times, давал интервью в качестве эксперта по технологиям на телевизионных станциях, таких как NBC 6 в Майами, и освещал свою работу в таких новостных агентствах, как BBC. С 2011 года Крис написал более 2000 статей, которые были прочитаны почти миллиард раз — и это только здесь, в How-To Geek. Подробнее.


Разные операционные системы поддерживают разные файловые системы. Ваш съемный диск должен использовать FAT32 для лучшей совместимости, если только он не больше и не нуждается в NTFS. Диски в формате Mac используют HFS+ и не работают с Windows. И в Linux тоже есть свои файловые системы.

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

Файловые системы 101

Разные файловые системы — это просто разные способы организации и хранения файлов на жестком диске, флэш-накопителе или любом другом устройстве хранения. Каждое запоминающее устройство имеет один или несколько разделов, и каждый раздел «отформатирован» в файловой системе. Процесс форматирования просто создает на устройстве пустую файловую систему этого типа.

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

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

Метафорой здесь является бумажная файловая система. Биты данных на компьютере называются файлами и организованы в файловой системе так же, как бумажные файлы могут быть организованы в картотеках. Существуют разные способы организации этих файлов и хранения данных о них — «файловые системы».


Но почему их так много?

Не все файловые системы одинаковы. Различные файловые системы имеют разные способы организации своих данных. Некоторые файловые системы работают быстрее других, некоторые имеют дополнительные функции безопасности, а некоторые поддерживают диски с большим объемом памяти, тогда как другие работают только с дисками с меньшим объемом памяти. Некоторые файловые системы более надежны и устойчивы к повреждению файлов, в то время как другие жертвуют этой надежностью ради дополнительной скорости.

Не существует лучшей файловой системы для всех целей. Каждая операционная система имеет тенденцию использовать свою собственную файловую систему, над которой также работают разработчики операционной системы. Microsoft, Apple и разработчики ядра Linux работают со своими собственными файловыми системами. Новые файловые системы могут быть быстрее, стабильнее, лучше масштабироваться для больших устройств хранения и иметь больше функций, чем старые.

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


Переключение файловых систем

Каждый раздел отформатирован в соответствии с файловой системой. Иногда у вас может быть возможность «преобразовать» раздел в другую файловую систему и сохранить на нем данные, но это редко бывает идеальным вариантом.Вместо этого вы, вероятно, захотите сначала скопировать важные данные из раздела.

После этого присвоить разделу новую файловую систему — просто «отформатировать» его в этой файловой системе в операционной системе, которая ее поддерживает. Например, если у вас есть диск в формате Linux или Mac, вы можете отформатировать его в NTFS или FAT32 в Windows, чтобы получить диск в формате Windows.

Операционные системы также автоматически форматируют разделы с соответствующей файловой системой в процессе установки операционной системы. Если у вас есть раздел в формате Windows, на который вы хотите установить Linux, процесс установки Linux отформатирует его раздел NTFS или FAT32 с файловой системой Linux, предпочтительной для выбранного вами дистрибутива Linux.

Итак, если у вас есть устройство хранения и вы хотите использовать на нем другую файловую систему, просто скопируйте с него файлы, чтобы создать их резервную копию. Затем отформатируйте этот диск с помощью такого инструмента, как «Управление дисками» в Windows, GParted в Linux или Дисковая утилита в Mac OS X.


Обзор распространенных файловых систем

Вот краткий обзор некоторых наиболее распространенных файловых систем, с которыми вы столкнетесь. Он не исчерпывающий — есть много других вариантов.

  • FAT32: FAT32 — это более старая файловая система Windows, но она по-прежнему используется на съемных носителях, но только на устройствах меньшего размера. Большие внешние жесткие диски емкостью 1 ТБ или около того, скорее всего, будут отформатированы в NTFS. Вы захотите использовать это только с небольшими устройствами хранения или для совместимости с другими устройствами, такими как цифровые камеры, игровые приставки, телевизионные приставки и другие устройства, которые поддерживают только FAT32, а не более новую файловую систему NTFS.
  • NTFS: современные версии Windows — начиная с Windows XP — используют файловую систему NTFS для своего системного раздела. Внешние диски можно отформатировать в файловой системе FAT32 или NTFS.
  • HFS+: компьютеры Mac используют HFS+ для своих внутренних разделов, и им также нравится форматировать внешние диски с помощью HFS+ — это необходимо для использования внешнего диска с Time Machine, чтобы, например, можно было должным образом выполнить резервное копирование атрибутов файловой системы. Компьютеры Mac также могут читать и записывать в файловые системы FAT32, хотя по умолчанию они могут читать только из файловых систем NTFS — вам потребуется стороннее программное обеспечение для записи в файловые системы NTFS с Mac.
  • Ext2/Ext3/Ext4. В Linux часто встречаются файловые системы Ext2, Ext3 и Ext4. Ext2 — это более старая файловая система, и в ней отсутствуют важные функции, такие как ведение журнала — если отключится питание или произойдет сбой компьютера во время записи на диск ext2, данные могут быть потеряны. Ext3 добавляет эти функции надежности за счет некоторой скорости. Ext4 современнее и быстрее — теперь это файловая система по умолчанию в большинстве дистрибутивов Linux, и она быстрее. Windows и Mac не поддерживают эти файловые системы — вам понадобится сторонний инструмент для доступа к файлам в таких файловых системах. По этой причине часто идеально форматировать системные разделы Linux как ext4 и оставлять съемные устройства в формате FAT32 или NTFS, если вам нужна совместимость с другими операционными системами. Linux может читать и записывать как в FAT32, так и в NTFS.
  • Btrfs: Btrfs — «лучшая файловая система» — это более новая файловая система Linux, которая все еще находится в разработке. На данный момент он не используется по умолчанию в большинстве дистрибутивов Linux, но, вероятно, однажды он заменит Ext4. Цель состоит в том, чтобы предоставить дополнительные функции, позволяющие масштабировать Linux до больших объемов хранилища.
  • Подкачка: в Linux файловая система подкачки на самом деле не является файловой системой. Раздел, отформатированный как «подкачка», может просто использоваться операционной системой в качестве пространства подкачки — это похоже на файл подкачки в Windows, но для него требуется выделенный раздел.

Существуют и другие файловые системы, особенно в Linux и других UNIX-подобных системах.


Обычному пользователю компьютера не нужно знать большую часть этих вещей — они должны быть понятными и простыми, — но знание основ поможет вам понять такие вопросы, как «Почему этот диск в формате Mac не работает с моим ПК с Windows?» ?» и «Должен ли я отформатировать этот жесткий диск USB как FAT32 или NTFS?»

  • ›Почему отключение устройства устраняет так много проблем?
  • › Как сделать USB-накопитель, который можно будет читать на Mac и ПК
  • › Что такое компьютерные файлы и папки?
  • › Что такое Finder на Mac?
  • › Какую файловую систему следует использовать для моего USB-накопителя?
  • › Что нового в Fedora 35
  • › Как стереть и отформатировать диск в Windows
  • › Как восстановить метки панели задач в Windows 11

Введение в файловые системы

В настоящее время компьютерный рынок предлагает огромное разнообразие возможностей для хранения информации в цифровом виде. Существующие устройства хранения включают в себя внутренние и внешние жесткие диски, карты памяти фото/видеокамер, USB-накопители, RAID-массивы, а также другие сложные хранилища. Части данных хранятся на них в виде файлов, таких как документы, изображения, базы данных, сообщения электронной почты и т. д., которые должны быть эффективно организованы на диске и легко извлекаться при необходимости.

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

Что такое файловая система?

Любой компьютерный файл хранится на носителе данных заданной емкости. Фактически каждое хранилище представляет собой линейное пространство для чтения или чтения и записи цифровой информации. Каждый байт информации в нем имеет свое смещение от начала хранения, известное как адрес, и ссылается на него по этому адресу. Хранилище может быть представлено в виде сетки с набором пронумерованных ячеек (каждая ячейка представляет собой один байт). Любой элемент, сохраненный в хранилище, получает свои собственные ячейки.

Чтобы опустить вторую часть адреса (смещение внутри сектора), файлы обычно хранятся начиная с начала сектора и занимают целые сектора (например: 10 -байтовый файл занимает весь сектор, 512-байтовый файл также занимает весь сектор, в то же время 514-байтовый файл занимает целых два сектора).

Каждый файл хранится в "неиспользуемых" секторах и может быть прочитан позже по известному положению и размеру. Однако как узнать, какие сектора заняты, а какие свободны? Где хранится размер, положение и имя файла? Именно за это отвечает файловая система.

В целом файловая система (часто сокращенно ФС) представляет собой структурированное представление данных и набор метаданных, описывающих эти данные. Применяется к хранилищу во время операции форматирования. Эта структура служит для целей всего хранилища, а также является частью изолированного сегмента хранилища — раздела диска. Обычно он работает в блоках, а не в секторах. Блоки FS — это группы секторов, которые оптимизируют адресацию хранилища. Современные типы обычно используют блоки размером от 1 до 128 секторов (512-65536 байт). Файлы обычно хранятся в начале блока и занимают целые блоки.

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

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

Файловые системы Windows

Microsoft Windows использует две основные файловые системы: NTFS, основной формат, который большинство современных версий этой ОС используют по умолчанию, и FAT, унаследованную от старой DOS и имеющую более позднее расширение exFAT. ReFS также был представлен Microsoft как формат нового поколения для серверных компьютеров, начиная с Windows Server 2012. HPFS, разработанный Microsoft совместно с IBM, можно найти только на очень старых машинах под управлением Windows NT до 3.5.

FAT (таблица размещения файлов) — один из самых простых типов файловых систем, который существует с 1980-х годов. Он состоит из FS сектора дескриптора (загрузочного сектора или суперблока), таблицы размещения блоков (называемой таблицей размещения файлов) и < em>простое пространство для хранения данных. Файлы в FAT хранятся в каталогах. Каждый каталог представляет собой массив 32-байтовых записей, каждая из которых определяет файл или его расширенные атрибуты (например, длинное имя). Запись атрибутирует первый блок файла. Любой следующий блок можно найти в таблице размещения блоков, используя ее как связанный список.

Таблица размещения блоков содержит массив дескрипторов блоков. Нулевое значение указывает на то, что блок не используется, а отличное от нуля значение относится к следующему блоку файла или специальному значению его конца.

Числа в FAT12, FAT16, FAT32 обозначают количество битов, используемых для адресации блока FS. Это означает, что FAT12 может использовать до 4096 различных ссылок на блоки, в то время как FAT16 и FAT32 могут использовать до 65536 и 4294967296 соответственно. Фактическое максимальное количество блоков еще меньше и зависит от реализации драйвера FS драйвера.

Форматы

FAT12 и FAT16 использовались для старых гибких дисков и в настоящее время не находят широкого применения. FAT32 по-прежнему широко используется для карт памяти и USB-накопителей.Формат поддерживается смартфонами, цифровыми камерами и другими портативными устройствами.

FAT32 можно использовать на совместимых с Windows внешних хранилищах или разделах диска размером менее 32 ГБ при их форматировании с помощью встроенного инструмента этой ОС, или до 2 ТБ, если для форматирования хранилища используются другие средства. Файловая система также не позволяет создавать файлы, размер которых превышает 4 ГБ. Для решения этой проблемы была введена exFAT, которая не имеет реальных ограничений по размеру и часто используется на современных внешних жестких дисках и твердотельных накопителях.

NTFS (файловая система новой технологии) была представлена ​​в 1993 году вместе с Windows NT и в настоящее время является наиболее распространенной файловой системой для компьютеров конечных пользователей на базе Windows. Большинство операционных систем линейки Windows Server также используют этот формат.

Этот тип файловой системы достаточно надежен благодаря журналированию и поддерживает множество функций, включая управление доступом, шифрование и т. д. Каждый файл в NTFS хранится в виде дескриптора в Главная таблица файлов и содержимое ее данных. Таблица основных файлов содержит записи со всей информацией о них: размер, распределение, имя и т. д. Первые 16 записей таблицы сохраняются для BitMap, в котором ведется учет всех свободных и используемых кластеров, журнала, используемого для записей журнала, и BadClus, содержащий информацию о плохих кластерах. Первый и последний секторы файловой системы содержат ее настройки (загрузочную запись или суперблок). Этот формат использует 48 и 64-битные значения для ссылки на файлы, что позволяет поддерживать хранилища данных с очень большой емкостью.

ReFS (Resilient File System) — это последняя разработка Microsoft, представленная вместе с Windows 8 и теперь доступная для Windows 10. Его архитектура абсолютно отличается от других форматов Windows и в основном организована в виде B+-дерево. ReFS обладает высокой устойчивостью к сбоям благодаря включенным в нее новым функциям. Среди них наиболее примечательным является Copy-on-Write (CoW): никакие метаданные не изменяются без копирования; данные не записываются поверх существующих данных — они помещаются в другую область на диске. После любых модификаций новая копия метаданных сохраняется в свободной области хранилища, а затем система создает ссылку из более старых метаданных на более новую копию. Таким образом, значительное количество старых резервных копий хранится в разных местах, что обеспечивает простоту восстановления данных, если только это пространство хранения не будет перезаписано.

High Performance File System (высокопроизводительная файловая система) была создана Microsoft в сотрудничестве с IBM и представлена ​​в OS/2 1.20 в 1989 году как файловая система для серверов, которая могла обеспечить гораздо более высокую производительность по сравнению с FAT. . В отличие от FAT, которая просто выделяет любой первый свободный кластер на диске для фрагмента файла, HPFS стремится упорядочить файл непрерывными блоками или, по крайней мере, убедиться, что его фрагменты (называемые экстентами) расположены максимально близко друг к другу. . В начале HPFS есть три управляющих блока, занимающих 18 секторов: загрузочный блок, суперблок и резервный блок. Оставшееся пространство хранения разделено на части смежных секторов, называемых бэндами, занимающими по 8 МБ каждый. У бэнда есть своя битовая карта распределения секторов, показывающая, какие сектора в нем заняты (1 — занято, 0 — свободно). У каждого файла и каталога есть свой F-узел, расположенный рядом с ним на диске – эта структура содержит информацию о расположении файла и его расширенных атрибутах. Для хранения каталогов используется специальная полоса каталогов, расположенная в центре диска, а сама структура каталогов представляет собой сбалансированное дерево с алфавитными записями.

Подсказка: Информацию о перспективах восстановления данных типов ФС, используемых Windows, можно найти в статьях об особенностях восстановления данных разных ОС и шансах на восстановление данных. Подробные инструкции и рекомендации можно найти в руководстве по восстановлению данных из Windows.

Файловые системы macOS

В macOS от Apple применяются два типа FS: HFS+, расширение их устаревшей HFS, используемой на старых компьютерах Macintosh, и APFS, формат, используемый современными компьютерами Mac под управлением macOS 10.14. и позже.

Формат

HFS+ раньше был основным форматом продуктов Apple для настольных ПК, включая компьютеры Mac, iPod, а также продукты Apple X Server, прежде чем он был заменен на APFS в macOS. Высокая Сьерра. Усовершенствованные серверные продукты также используют Apple Xsan, кластерную файловую систему, производную от StorNext и CentraVision.

HFS+ использует B-деревья для размещения и поиска файлов. Тома разбиваются на сектора, обычно размером 512 байт, затем группируются в блоки размещения, количество которых зависит от размера всего тома. Информация о свободных и использованных блоках размещения хранится в файле размещения.Все блоки распределения, назначенные каждому файлу в качестве расширений, записываются в файл расширений переполнения. И, наконец, все атрибуты файла перечислены в файле Attributes. Надежность данных повышается за счет журналирования, что позволяет отслеживать все изменения в системе и быстро возвращать ее в рабочее состояние в случае непредвиденных событий. Среди других поддерживаемых функций — жесткие ссылки на каталоги, шифрование логических томов, контроль доступа, сжатие данных и т. д.

Файловая система Apple предназначена для решения фундаментальных проблем, присутствующих в ее предшественнике, и была разработана для эффективной работы с современными флэш-накопителями и твердотельными накопителями. Этот 64-разрядный формат использует метод копирования при записи для повышения производительности, что позволяет копировать каждый блок до того, как к нему будут применены изменения, и предлагает множество функций целостности данных и экономии места. Все содержимое и метаданные о файлах, папках и других структурах APFS хранятся в контейнере APFS. Контейнерный суперблок хранит информацию о количестве блоков в Контейнере, размере блока и т. д. Информация обо всех выделенных и свободных блоках Контейнера управляется с помощью растровых структур. Каждый том в контейнере имеет свой собственный суперблок тома, который предоставляет информацию об этом томе. Все файлы и папки тома записываются в B-дерево файлов и папок, а B-дерево экстентов отвечает за экстенты — ссылки на содержимое файла (начало файла, его длину в блоках).

Подсказка: Подробно о возможности восстановления данных с этих типов ФС можно прочитать в статьях об особенностях восстановления данных в зависимости от операционной системы и шансах на восстановление данных. Если вас интересует практическая сторона процедуры, обратитесь к руководству по восстановлению данных из macOS.

Файловые системы Linux

Linux с открытым исходным кодом предназначен для реализации, тестирования и использования различных типов файловых систем. К наиболее популярным форматам для Linux относятся:

Ext2, Ext3, Ext4 — это просто разные версии "родной" файловой системы Linux Ext. Этот тип подпадает под активные разработки и усовершенствования. Ext3 — это просто расширение Ext2, использующее операции записи транзакционных файлов с журналом. Ext4 является дальнейшим развитием Ext3, расширенным за счет поддержки оптимизированной информации о размещении файлов (экстентов) и расширенных атрибутов файлов. Эта файловая система часто используется как "корневая" для большинства установок Linux.

РайзерФС

ReiserFS — альтернативная файловая система Linux, оптимизированная для хранения огромного количества небольших файлов. Он имеет хорошие возможности поиска и позволяет компактно размещать файлы, сохраняя их хвосты или просто очень маленькие элементы вместе с метаданными, чтобы избежать использования для этой цели больших блоков файловой системы. Однако этот формат больше не разрабатывается и не поддерживается.

XFS — надежная файловая система журналирования, изначально созданная Silicon Graphics и используемая серверами IRIX компании. В 2001 году он попал в ядро ​​Linux и теперь поддерживается большинством дистрибутивов Linux, некоторые из которых, например Red Hat Enterprise Linux, даже используют его по умолчанию. Этот тип FS оптимизирован для хранения очень больших файлов и томов на одном хосте.

JFS — файловая система, разработанная IBM для мощных вычислительных систем компании. JFS1 обычно означает JFS, JFS2 — второй выпуск. В настоящее время этот проект имеет открытый исходный код и реализован в большинстве современных версий Linux.

Btrfs

Btrfs – файловая система, основанная на принципе копирования при записи (COW), разработанная Oracle и поддерживаемая основным ядром Linux с 2009 года. Btrfs включает в себя функции диспетчера логических томов, позволяя охватывать несколько устройств и предлагает гораздо более высокую отказоустойчивость, лучшую масштабируемость, простое администрирование и т. д., а также ряд дополнительных возможностей.

F2FS — файловая система Linux, разработанная Samsung Electronics и адаптированная к специфике запоминающих устройств на базе флэш-памяти NAND, широко используемых в современных смартфонах и других вычислительных системах. Этот тип работает на основе лог-структурированного подхода FS (LFS) и учитывает такие особенности флэш-памяти, как постоянное время доступа и ограниченное количество циклов перезаписи данных. Вместо того, чтобы создавать один большой фрагмент для записи, F2FS собирает блоки в отдельные фрагменты (до 6), которые записываются одновременно.

Концепция «жестких ссылок», используемая в операционных системах такого типа, делает большинство типов Linux FS похожими в том смысле, что имя файла не рассматривается как атрибут файла, а скорее определяется как псевдоним для файла в определенном каталоге. Файловый объект может быть связан из многих местоположений, даже из одного и того же каталога под разными именами.Это может привести к серьезным и даже непреодолимым трудностям при восстановлении имен файлов после их удаления или логического повреждения.

Подсказка: Информацию о возможности успешного восстановления данных из указанных типов ФС можно найти в статьях, описывающих особенности восстановления данных из разных операционных систем и шансы на восстановление данных. Чтобы понять, как должна выполняться процедура, воспользуйтесь руководством по восстановлению данных из Linux.

Файловые системы BSD, Solaris, Unix

Наиболее распространенной файловой системой для этих операционных систем является UFS (файловая система Unix), также часто называемая FFS (Fast File System).

В настоящее время UFS (в различных редакциях) поддерживается всеми операционными системами семейства Unix и является основной файловой системой ОС BSD и ОС Sun Solaris. Современные компьютерные технологии, как правило, заменяют UFS в различных операционных системах (ZFS для Solaris, JFS и производные форматы для Unix и т. д.).

Подсказка: Информацию о вероятности успешного восстановления данных из этих типов ФС можно найти в статьях об особенностях восстановления данных в ОС и шансах на восстановление данных. Сам процесс описан в инструкции, посвященной восстановлению данных из Unix, Solaris и BSD.

Кластерные файловые системы

Кластерные файловые системы используются в компьютерных кластерных системах и поддерживают распределенное хранилище.

К типам распределенных FS относятся:

ZFS — компания Sun "Zettabyte File System" — формат, разработанный для распределенных хранилищ ОС Sun Solaris.

Apple Xsan — эволюция CentraVision и более поздней версии StorNext компанией Apple.

VMFS — «Файловая система виртуальной машины», разработанная компанией VMware для своего сервера VMware ESX.

GFS — Red Hat Linux "Глобальная файловая система".

JFS1 — исходный (устаревший) дизайн IBM JFS, использовавшийся в старых системах хранения AIX.

Общими свойствами этих файловых систем являются поддержка распределенных хранилищ, расширяемость и модульность.

Чтобы узнать о других технологиях, используемых для хранения данных и управления ими, обратитесь к разделу технологий хранения.

Читайте также: