Btrfs команды. Файловая система Btrfs. Экономия места на накопителе

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

ⓘ Btrfs

Btrfs — файловая система для Linux, основанная на структурах B-деревьев и работающая по принципу «копирование при записи». Опубликована корпорацией Oracle в 2007 году под лицензией GNU General Public License. Среди первоначальных целей разработки было обеспечение конкуренции файловой системе ZFS и избавление от недостатков, присущих ранним файловым системам для Linux.

Изначально планировалось выпустить Btrfs v1.0 и зафиксировать формат хранения в конце 2008 года, однако формат был зафиксирован только 12 июня 2010 года.

Btrfs включена в основную ветвь ядра Linux начиная с версии в статусе экспериментальной. Проведённая ресурсом Phoronix оценка производительности показала, что Btrfs с включённым режимом сжатия иногда опережает по производительности Ext4.

Обзор HPFS

Файловая система HPFS была впервые представлена в ОС/2 1.2, чтобы обеспечить более широкий доступ к более крупным жестким дискам, которые затем появились на рынке. Кроме того, новой файловой системе потребовалось расширить систему именования, организаций и безопасность для роста потребностей рынка сетевых серверов. HPFS поддерживает организацию каталогов FAT, но добавляет автоматическую сортировку каталога на основе имен файлов. Имена файлов могут быть расширены до 254 двухбайтных символов. HPFS также позволяет файлу состоять из "данных" и специальных атрибутов, чтобы обеспечить повышенную гибкость с точки зрения поддержки других соглашений об именах и безопасности. Кроме того, единица выделения меняется с кластеров на физические секторы (512 bytes), что сокращает объем потерянного места на диске.

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

HPFS пытается выделить как можно больше файлов в целых секторах. Это делается для повышения скорости при последовательной обработке файла.

HPFS упорядожит диск в серию диапазонов размером 8 МБ, и по возможности файл содержится в одном из этих диапазонов. Между этими диапазонами имеются растровые карты выделения 2K, которые отслеживают, какие секторы в диапазоне были выделены и не были выделены. Перевязка повышает производительность, так как загон диска не должен возвращаться в логическую верхнюю часть (как правило, 0) диска, но к ближайшему растрову выделения диапазонов, чтобы определить место хранения файла.

Кроме того, HPFS включает несколько уникальных объектов специальных данных:

Super Block

Super Block расположен в логическом секторе 16 и содержит указатель на FNODE корневого каталога. Одна из главных угроз использования HPFS заключается в том, что в случае потери или поврежденного суперблока из-за поврежденного сектора содержимое раздела, даже если остальная часть диска в порядке. Можно восстановить данные на диске, скопируя все данные на другой диск с хорошим сектором 16 и перестроив Super Block. Однако это очень сложная задача.

Запасной блок

Запасной блок расположен в логическом секторе 17 и содержит таблицу "исправления" и блок запасных каталогов. В HPFS при обнаружении плохой сектора запись "исправления" используется для логической указать на существующий хороший сектор, а не на плохой сектор. Этот способ обработки ошибок записи называется "горячим исправлением".

Читайте также:  Обновление debian 7 wheezy до debian 8 jessie

Горячее исправление — это метод, в котором при ошибке из-за плохой сектора файловая система перемещает информацию в другой сектор и пометит исходный сектор как плохой. Все это делается прозрачно для всех приложений, которые выполняют дисковый I/O (то есть приложение никогда не знает о проблемах с жестким диском). Использование файловой системы, которая поддерживает горячее исправление, позволит устранить такие сообщения об ошибках, как FAT "Отмена, повторить попытку или сбой?". сообщение об ошибке, которое возникает при плохом секторе.

Примечание

Версия HPFS, включаемая в Windows NT, не поддерживает исправление исправлений.

Преимущества HPFS

HPFS лучше всего для дисков в диапазоне от 200 до 400 МБ. Дополнительные вопросы о преимуществах HPFS см. в следующих темах:

  • Windows NT Server "Основные понятия и руководство по планированию", глава 5, раздел "Выбор файловой системы"

  • Windows NT Workstation 4.0 Resource Kit, Chapter 18, "Choosing a File System"

  • Windows NT Server 4.0 Resource Kit "Resource Guide," Chapter 3, section titled "Which File System to Use on Which Volumes"

Недостатки HPFS

Из-за накладных расходов, задействованных в HPFS, это не очень эффективный выбор для объема менее 200 МБ. Кроме того, если объем томов превышает 400 МБ, производительность может быть ниже. Невозможно установить безопасность в HPFS в Windows NT.

HPFS поддерживается только в Windows NT версиях 3.1, 3.5 и Windows NT 4.0 не может получить доступ к разделам HPFS.

Дополнительные недостатки HPFS см. в следующих темах:

  • Windows NT Server "Основные понятия и руководство по планированию", глава 5, раздел "Выбор файловой системы"

  • Windows NT Workstation 4.0 Resource Kit, Chapter 18, "Choosing a File System"

  • Windows NT Server 4.0 Resource Kit "Resource Guide," Chapter 3, section titled "Which File System to Use on Which Volumes"

BTRFS, введение

Перед тем, как мы начнем копать глубже, я хотел бы кратко обрисовать возможности этой файловой системы. BTRFS должна обеспечивать выполнение всех системных операций, связанных с дисками и управлением файлами, для которых обычно требуются дополнительные утилиты. BTRFS обеспечивает дефрагментацию, распределение нагрузки, уменьшение, увеличение, горячую замену, RAID, снэпшоты, сжатие, клонирование, и многие другие возможности, и все это встроено в драйвер файловой системы. С другими файловыми системами вам, вероятно, понадобится множество других драйверов и пользовательских утилит для управления всеми этими видами операций, например программа дефрагментации файловой системы, драйверы RAID и LVM, и так далее. Встроенная функциональность означает производительность и простоту использования. Однако на данный момент BTRFS еще не полностью пригодна для использования вследствие нестабильности, а также снижения производительности по сравнению с другими файловыми системами, такими как Ext4. Но она имеет громадный потенциал, поэтому ее нельзя игнорировать, а нужно изучать. В данном руководстве я покажу вам, как управлять снэпшотами. Это суперактуальная возможность, которая позволит вам создавать резервные копии важных файлов перед внесением в них любых изменений и затем при необходимости восстанавливать их. В некотором смысле это похоже на восстановление системы в Windows плюс драйвер отката на уровне файловой системы. Кстати, кроме снэпшотов, в этой статье можно будет также найти немного полезной информации о повседеневной работе с файловой системой BTRFS. Тестирование производилось в системе Fedora 16 Verne с рабочим столом KDE.

Btrfs

Btrfs, который можно произнести как «Butter FS», «Better FS» или «B-Tree FS», является файловой системой, созданной полностью с нуля. Btrfs существует потому, что разработчики хотели расширить функциональность файловой системы, включив, среди прочего, пул, снимки и контрольные суммы.

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

Конечно, вы все равно можете создать несколько разделов, чтобы вам не приходилось отражать все. Максимальный размер раздела файловой системы btrfs составляет 16 exbibytes, а максимальный размер файла также составляет 16 exbibytes. Учитывая, что btrfs сможет охватывать несколько жестких дисков, хорошо, что он поддерживает в 16 раз больше дискового пространства, чем ext4.

Заключение

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

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

Экстенты и битовые карты

Пока F2FS воспринимается как экзотика для гиков. Даже в собственных смартфонах Samsung все еще применяется ext4. Многие считают ее дальнейшим развитием ext3, но это не совсем так. Речь идет скорее о революции, чем о преодолении барьера в 2 Тбайт на файл и простом увеличении других количественных показателей.

Экстенты и битовые карты

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

Экстенты и битовые карты

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

Экстенты и битовые карты

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

Экстенты и битовые карты

Возможности и ограничения файловых систем: сводная таблица

Фай-ло-вая сис-те-ма Мак-си-маль-ный раз-мер тома Пре-дель-ный раз-мер одного файла Дли-на собст-вен-ного имени файла Дли-на пол-но-го имени файла (вклю-чая путь от корня) Пре-дель-ное число файлов и/или ката-ло-гов Точ-ность ука-за-ния даты файла/ката-ло-га Права дос-ту-па Жёсткие ссылки Сим-воль-ные ссылки Мгно-вен-ные снимки (snap-shots) Сжа-тие дан-ных в фоне Шиф-ро-ва-ние дан-ных в фоне Деду-пли-ка-ция дан-ных
FAT16 2 ГБ секторами по 512 байт или 4 ГБ кластерами по 64 КБ 2 ГБ 255 байт с LFN
FAT32 8 ТБ секторами по 2 КБ 4 ГБ (2^32 — 1 байт) 255 байт с LFN до 32 подкаталогов с CDS 65460 10 мс (создание) / 2 с (изменение) нет нет нет нет нет нет нет
exFAT ≈ 128 ПБ (2^32-1 кластеров по 2^25-1 байт) теоретически / 512 ТБ из-за сторонних ограничений 16 ЭБ (2^64 — 1 байт) 2796202 в каталоге 10 мс ACL нет нет нет нет нет нет
NTFS 256 ТБ кластерами по 64 КБ или 16 ТБ кластерами по 4 КБ 16 ТБ (Win 7) / 256 ТБ (Win 8) 255 символов Unicode (UTF-16) 32760 символов Unicode, но не более 255 символов в каждом элементе 2^32-1 100 нс ACL да да да да да да
HFS+ 8 ЭБ (2^63 байт) 8 ЭБ 255 символов Unicode (UTF-16) отдельно не ограничивается 2^32-1 1 с Unix, ACL да да нет да да нет
APFS 8 ЭБ (2^63 байт) 8 ЭБ 255 символов Unicode (UTF-16) отдельно не ограничивается 2^63 1 нс Unix, ACL да да да да да да
Ext3 32 ТБ (теоретически) / 16 ТБ кластерами по 4 КБ (из-за ограничений утилит e2fs programs) 2 ТБ (теоретически) / 16 ГБ у старых программ 255 символов Unicode (UTF-16) отдельно не ограничивается 1 с Unix, ACL да да нет нет нет нет
Ext4 1 ЭБ (теоретически) / 16 ТБ кластерами по 4 КБ (из-за ограничений утилит e2fs programs) 16 ТБ 255 символов Unicode (UTF-16) отдельно не ограничивается 4 млрд. 1 нс POSIX да да нет нет да нет
F2FS 16 ТБ 3,94 ТБ 255 байт отдельно не ограничивается 1 нс POSIX, ACL да да нет нет да нет
BTRFS 16 ЭБ (2^64 — 1 байт) 16 ЭБ 255 символов ASCII 2^17 байт 1 нс POSIX, ACL да да да да да да

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

Кратко о BTRFS

Бывает, что после установки обновлений система рушится. Здесь пригодились бы средства, аналогичные компоненту «Восстановление системы» Windows. С гордостью заявляю — их есть у нас! И одно из этих средств — Btrfs. Из достоинств новой файловой системы от Oracle стоит отметить следующие:

Кратко о BTRFS
  • Копирование при записи (Copy-on-Write). Эта технология служит для создания снапшотов — мгновенных снимков состояния системы. При создании снапшота драйвер ФС копирует в него метаданные и начинает мониторить фактическую запись. Если она обнаруживается, в снапшот помещаются оригинальные блоки данных, а на их место записываются новые.
  • Динамическое выделение инодfов. В отличие от ФС старого поколения, в Btrfs нет ограничения на количество файлов.
  • Сжатие файлов.
  • Возможность размещения ФС на нескольких физических носителях. Фактически это тот же самый RAID, только более высокоуровневый. На момент написания статьи поддерживались RAID 0, RAID 1 и RAID 10, поддержка же RAID 5 находилась на ранней стадии разработки.
Кратко о BTRFS