В чем плюсы нежурналируемой файловой системы
Перейти к содержимому

В чем плюсы нежурналируемой файловой системы

  • автор:

Обзор файловых систем: Ext4, Btrfs и Xfs

Команды LINUX «от A до Z» — настольная книга с примерами

В операционной системе Linux доступно множество файловых систем на любой вкус. В Linux очень широко используется Ext4, но есть несколько поводов попробовать что-то новое. Например, Btrfs или Xfs.

Давайте рассмотрим самые популярные файловые системы и особенности их работы, а затем займемся их сравнением.

Функции файловых систем

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

Зачем разбивать на разделы?

У многих пользователей смутные представления о том, зачем нужны разделы диска. Все операционные системы поддерживают создание и удаление разделов. Linux использует более одного раздела на диске, даже при использовании стандартной процедуры установки. Главная цель разделения дисков на разделы — повышение безопасности в случае возникновения ошибок.

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

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

Курсы Python с нуля до DevOps на практике за 1,5 часа

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

Зачем менять файловые системы?

Файловая система Ext4 — улучшенная версия Ext3, которая, в свою очередь, не что иное, как улучшенная Ext2. Ext4 — очень надежная файловая система, которая используется практически во всех дистрибутивах в течение последних нескольких лет. Но её код уже достаточно устарел.

Кроме того, пользователи Linux хотят новых возможностей и функций, которых нет в Еxt4, но они есть в других файловых системах, например, Btrfs и Xfs. Существует программное обеспечение, которое удовлетворяет некоторые из таких потребностей, но поддержка на уровне файловой системы будет работать намного быстрее.

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

ext4

У Ext4 есть некоторые ограничения, которые впечатляют даже сейчас. Максимальный размер файла составляет 16 тебибайт (что составляет примерно 17,6 терабайт). А это намного больше, чем емкость любого жесткого диска, который может купить обычный пользователь. В то время как наибольший том / раздел, который вы можете сделать с помощью Ext4, составляет 1 эксабайт (что составляет примерно 1152921.5 терабайт).

Курсы Git за час: руководство для начинающих DevOps / DevNet инженеров

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

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

btrfs

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

Btrfs не зависит от Ext4, но реализует ее лучшие идеи и преимущества, а также свои дополнительные возможности, которые будут очень полезны пользователям, и особенно предприятиям.

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

Пользователь может выбрать создание нескольких разделов, чтобы не нужно было выполнять зеркалирование. Учитывая, что Btrfs может охватывать несколько жестких дисков, очень хорошо, что система может поддерживать в 16 раз больше места на жестком диске, чем Ext4. Максимальный размер раздела файловой системы Btrfs составляет 16 эксабайт, столько же составляет максимальный размер файла.

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

xfs

XFS считается расширенной файловой системой. XFS — это высокопроизводительная файловая система с 64-разрядными журналами. Поддержка XFS была включена в ядро Linux примерно в 2002 году. XFS поддерживает максимальный размер файловой системы, равный 8 эксабайт для 64-битной файловой системы.

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

Итак, что лучше использовать? До сих пор Ext4 является наилучшим выбором, несмотря на идентичную производительность с XFS. Но почему? Удобство и «вездесущность» — основные причины. Ext4 — отличная файловая система для настольных или рабочих станций. Она предоставляется по умолчанию, поэтому пользователь может установить на ней операционную систему. Кроме того, Ext4 поддерживает тома до 1 Exabyte и файлы размером до 16 терабайт.

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

Несмотря на то, что скорость передачи данных так важна, в Btrfs она выше в самой системе, чем непосредственно при передаче файлов. Btrfs имеет множество полезных функций, таких как Copy-on-Write (CoW), расширенные контрольные суммы, моментальные снимки, самовосстановление данных, дедупликация, а также улучшения, которые обеспечивают целостность данных. У Btrfs нет функций RAID-Z для ZFS, поэтому RAID все еще находится в экспериментальном состоянии с Btrfs. Тем не менее, для чистого хранения данных Btrfs лучше.

На данный момент Ext4 – лучший выбор, так как она распространяется как файловая система по умолчанию, а также она быстрее Btrfs при передаче файлов. Btrfs, безусловно, стоит попробовать, но полностью заменять Ext4 еще рано, это можно будет сделать лишь через несколько лет.

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.

1.5. Файловые системы операционной системы Linux

В Linux долгое время была одна файловая система Ext2fs – вторая расширенная файловая система. Система определяется как расширенная по сравнению с файловой системой операционной системы Minix, послужившей прототипом Linux (до сих пор используемой на отформатированных в этой операционной системе дискетах). Вторая – означает, что ранние версии Linux базировались на Extfs с более ограниченными возможностями.

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

дробление дискового раздела на группы блоков;

наличие нескольких копий суперблока, что повышает надежность хранения данных;

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

относительно слабая устойчивость при аварийном завершении работы (вследствие мертвого зависания или отказа питания).

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

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

Текущие версии ядра Linux поддерживают в качестве альтернативных четыре журналируемые файловые системы: ReiserFS, Ext3fs и XFS, JFS (результаты импортирования в Linux файловых систем, разработанных первоначально для рабочих станций под операционные системы Irix (SGI) и AIX (IBM), соответственно).

Журналируемая файловая система ReiserFS разработана специально для Linux фирмой Namesys (http://www.namesys.com) и поддерживается ее ядром (http://www.kernel.org), начиная с первых версий ветви 2.4.x. В ReiserFS осуществляется журналирование только операций над метаданными файлов, что при определенном снижении надежности, обеспечивает высокую производительность. Кроме этого, ReiserFS обладает уникальной (и по умолчанию задействованной) возможностью оптимизации дискового пространства, занимаемого мелкими, менее одного блока, файлами. Они хранятся в своих inode, без выделения блоков в области данных. Весте с экономией места это способствует росту производительности, так как данные и метаданные (в терминах ReiserFSstat -data) файла хранятся в непосредственной близости и могут быть считаны одной операцией ввода/вывода.

Хвосты файлов (их конечные части), меньшие по размеру, чем один блок, могут быть подвергнуты упаковке. Этот режим (tailing) включается по умолчанию при создании ReiserFS, обеспечивая около 5% экономии дискового пространства, но несколько снижает быстродействие. ReiserFS не совместима с Ext2fs на уровне утилит обслуживания файловой системы, но соответствующий инструментарий, разрешающий проблему, объединен в пакет reiserfsprogs и включен в штатный комплект современных дистрибутивов. Распространенные загрузчики Linux иногда не способны загрузить ядро Linux с раздела ReiserFS, поэтому ReiserFS не рекомендуется к употреблению на загрузочном разделе.

Ext3fs – представляет собой журналируемую надстройку над классической Ext2fs, разработанной в компании Red Hat и поддерживаемой ядром Linux, начиная с версии 2.4.16. Она сохраняет со своей прародительницей полную совместимость, в том числе и на уровне утилит обслуживания (начиная с версии 1.21, пакета e2fsprogs). Переход от Ext2fs к Ext3fs осуществляется добавлением файла журнала без переформатирования раздела и рестарта машины. Ext3fs является системой, в которой возможно журналирование операций не только с метаданными, но и с данными файлов, так как предусмотрено три режима работы: полное журналирование (full data journaling); журналирование с обратной записью (writeback); последовательное журналирование, задействуемое по умолчанию (ordered).

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

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

Файловая 64-разрядная система XFS развивается фирмой SGI для Unix, впервые появилась в версии Irix 5.3, вышедшей в 1994 г. В Linux она была импортирована недавно (http://oss.sgi.com/projects/xfs) и штатно поддерживается ядром, начиная с его ветки 2.6.X. XFS представляет собой сбалансированную файловую систему, ориентированную на размещение в больших дисковых разделах для работы с большими файлами. Особенности XFS:

использование механизма деления единого дискового раздела на несколько равных областей (allocation group), имеющих собственные списки inodes и свободные блоки, для распараллеливания дисковых операций (самостоятельные файловые субсистемы);

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

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

использование списков контроля доступа (ACL, Access Control List) и расширенных атрибутов файлов (extended attributes).

Возможность работы с XFS обеспечивает специальный патч (xfs-2.4.1X-all-i386.bz2), который вместе с соответствующими утилитами поддержки можно получить с сайта SGI (http://oss.sgi.com/projects/xfs). Утилиты поддержки для XFS объединены в несколько пакетов.

Файловая система JFS разработана компанией IBM для собственной версии Unix и уже долгое время поддерживается ядром Linux в качестве альтернативной системы, однако по ряду причин широкого распространения она не получила.

На уровне обмена данными Linux поддерживает множество файловых систем, некоторые из них только в режиме чтения (например, NTFS или HPFS).

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

linux_academy

Пишу эти строки под мерное заполнение строки состояния установки новой Ubuntu 10.04. Ещё один повод для известного нам Уильяма забыться беспокойным поллюционным сном, полным грёз: комфортная работа на компьютере и в сети интернет в процессе установки. Имя этому чуду — LiveCD.

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

Не растекаясь мыслью по экрану и не вдаваясь в тонкости, сжато и предельно понятно, приступим к рассмотрению различий.

Список файловых систем, существующих на данный момент в мире Линукс, таков: ext2fs, ext3fs, ext4fs, reiserFS, XFS и JFS. Есть возможность установки на Fat16/Fat32, но занятие это абсурдное. Раба надо выдавливать из себя по капле — так пусть первым шагом будет отказ даже думать о форточных разделах при установке Линукс. 🙂

Стандартная файловая система — ext2fs. Именно она предлагается установщиками в подавляющем большинстве случаев по умолчанию. Впрочем, не безосновательно: загрузчик Линукса Grub (не говоря уже о Lilo) долгое время работал исключительно из-под этой файловой системы. Изменилась ли ситуация на данный момент — точно сказать не могу, но в установке, которая сейчас протекает на моём компьютере, выделил небольшой раздел /boot, отформатированный под ext2s. Мало ли.

Долго распинаться об ex2fs, в принципе, и не о чем. Высокое быстродействие, но слабая надёжность при внезапном вырубании системы. Что, впрочем, и было ожидаемо от первой файловой системы.

Следующая по списку — ext3fs. По сути является надстройкой над ext2fs, что позволяет использовать пакет обслуживания ext2fsprogs. Является журналируемой — т.е. ведёт запись предстоящих событий, что позволяет существенно повысить надёжность при сбоях, восстановив данные с помощью журнала. Имеет три режима журналирования. При полном журналировании падение скорости уже может изредка давать о себе знать, но при этом вы получаете максимальную надёжность.

Файловая система ext4fs в данный момент находится на уровне обкатки. Хотя она уже присутствует в некоторых дистрибутивах (в частности в Ubuntu 10.04, который скоро поторопит меня сообщением о том, что установка завершена и со статьёй пора закругляться), но. Я бы пока не рисковал доверять свои данные этой файловой системе. Возможности любопытны, но большей частью всё-таки направлены на будущее. И главное — пусть доработают поддержку и инструментарий.

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

XFS — 64-битная журналируемая файловая система, являющаяся золотой серединой между надёжностью и скоростью. Именно это толкнуло меня на форматирование корневого раздела / и всех подразделов, кроме /boot, под XFS. Стоит добавить, что XFS очень хорош по части обработки файлов большого размера, что обычно актуально для раздела с пользовательскими данными.

JFS — последняя рассматривая нами журналируемая файловая система. И в надёжности, и в скорости является середнячком. В целом ничем не выделяется, мало кем используется. Альтернативы — лучше.

Вот, вкратце, и всё. Выбирайте под свои нужды, благо выбор на любые запросы и задачи. Я же остановился на связке ext2fs + XFS.

Русские Блоги

Способ эксплуатации и обслуживания Linux (14) -Управление файловой системой Linux

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

1.1 Файловые системы в различных операционных системах

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

  • ext2
  • ext3
  • ext4
  • xfs
  • btrfs
  • reiserfs
  • jfs
  • swap (раздел подкачки)
  • iso9660 (CD-ROM)

Windows

  • fat32
  • ntfs

Unix

  • FFS
  • UFS
  • JFS2

Сетевая файловая система

  • NFS
  • CIFS

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

  • GFS2
  • OCFS2

Распределенная файловая система

  • ceph
  • moosefs
  • mogilefs
  • GlusterFS
  • Lustre

1.2 Разделение файловой системы

В зависимости от того, поддерживает ли он функцию «Журнал»

  • Файловая система журнала: ext3, ext4, xfs, .
  • Нежурналируемые файловые системы: ext2, vfat, .

Компоненты файловой системы
Ядро более эффективно, чем пользовательский элемент управления

  • Модули в ядре: ext4, xfs, vfat
  • Инструменты управления пространством пользователя: mkfs.ext4, mkfs.xfs, mkfs.vfat

Виртуальная файловая система Linux

1.3 Введение в несколько файловых систем

Первая файловая система: ext4

В последние годы ext2 / 3 выявила некоторые проблемы с масштабируемостью, поэтому родился ext4. Версия ext4 для разработчиков интегрирована в ядро ​​Linux2.6.19, выпущенное в 2008 году. Когда было выпущено ядро ​​2.6.28, ext4 завершила разработку версии и начала принимать пользователей.

Особенности

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

    Масштабируемость

    • Преодолейте ограничения файловой системы
      • Максимальный размер файловой системы, поддерживаемой ext4, составляет 1 ЭБ (1000 ПБ).
      • ext4 поддерживает файлы размером до 16 ТБ (предполагается, что они состоят из блоков 4 КБ), что в 8 раз превышает емкость ext3.
      • ext4 использует раздел для замены механизма ext3, тем самым улучшая распределение пространства и поддерживая более эффективные структуры хранения.
      • Раздел — это способ представления группы смежных блоков. Использование разделов уменьшает количество метаданных, потому что разделы содержат информацию о месте хранения группы смежных блоков (таким образом, уменьшая общее хранилище метаданных), а не о месте хранения блока.
      • Раздел ext4 использует иерархический метод для эффективного представления небольших файлов, а дерево разделов используется для эффективного представления больших файлов.

      спектакль

      • Предварительное распределение на уровне файла
        • Хотя секции могут разделять соседние блоки на фрагменты, другой более эффективный метод — это предварительное выделение более крупных смежных блоков в соответствии с требуемым размером (XFS использовала этот метод раньше).
        • ext4 достигает этого с помощью нового системного вызова, который предварительно выделяет и инициализирует файл в соответствии с определенным размером. Затем вы можете записать необходимые данные и обеспечить хорошую производительность чтения для данных.
        • Ключ к этой оптимизации — отложить выделение физических блоков до тех пор, пока физические блоки не будут записаны на диск, прежде чем они будут выделены и записаны в соседние блоки.
        • Это похоже на постоянное предварительное выделение, с той лишь разницей, что файловая система автоматически выполнит эту задачу. Однако, если размер файла известен заранее, постоянное предварительное выделение — лучший выбор.
        • Оптимизация, связанная с соседними блоками, а именно распределитель блоков для ext4.
        • ext4 использует распределитель блоков для решения этой проблемы, который может одновременно выделять несколько блоков на диске. Как и другие предыдущие оптимизации, эта оптимизация собирает соответствующие данные на диске для достижения оптимизации смежного чтения.

        надежность

        • Выполнить контрольную сумму журнала файловой системы
          • Как и ext3, ext4 также является файловой системой с журналированием. Журнал — это процесс записи изменений в файловой системе через дневники (специальные циклические записи соседних областей на диске).
          • Но даже при ведении журнала, если в журнале есть ошибка, файловая система все равно будет повреждена. Чтобы решить эту проблему, ext4 выполняет контрольную сумму в журнале, чтобы гарантировать, что допустимые изменения могут быть выполнены правильно в базовой файловой системе.
          • ext4 поддерживает ведение журнала в нескольких режимах в соответствии с потребностями пользователя. Например, ext4 поддерживает режим обратной записи, в котором записываются только метаданные; или упорядоченный режим, в котором записываются метаданные, но данные, записанные в виде метаданных, записываются из журнала; или режим журнала (наиболее надежный режим), в котором выполняется одновременная запись. Метаданные и данные. Обратите внимание: хотя режим журнала — лучший выбор для обеспечения согласованности файловой системы, он также является самым медленным, поскольку все данные проходят через журнал.
          • Хотя ext4 добавляет некоторые функции для уменьшения фрагментации файловой системы (например, размещение смежных блоков как сегментов), по мере увеличения времени использования системы фрагментацию трудно полностью избежать. Поэтому появились инструменты онлайн-дефрагментации, которые могут выполнять дефрагментацию файловых систем и отдельных файлов для повышения производительности. Онлайн-дефрагментатор — это простой инструмент, который копирует файлы в новый inode ext4, который ссылается на соседние сегменты.
          • Оперативная дефрагментация также может сократить время, необходимое для проверки файловой системы (fsck). ext4 помечает неиспользуемые группы блоков в таблице индексных дескрипторов и позволяет процессу fsck игнорировать их для ускорения проверки. Когда операционная система проверяет файловую систему на наличие внутренних повреждений (которые неизбежны по мере увеличения файловой системы), способ разработки ext4 повысит общую надежность.

          Вторая файловая система: btrfs

          Файловая система кажется относительно стабильной частью ядра. В течение многих лет люди использовали ext2 / 3. Благодаря своей превосходной стабильности файловая система ext стала де-факто стандартной файловой системой Linux. Похоже, что ext станет синонимом файловой системы Linux. Однако, прочитав много статей о ext4, вы обнаружите, что btrfs упоминается неизменно, и вы думаете, что ext4 будет переходной файловой системой.

          Возможности, связанные с масштабируемостью

          • B-Tree
            • Все метаданные в файловой системе btrfs управляются BTree.
              • Основное преимущество использования BTree в том, что операции поиска, вставки и удаления очень эффективны. Можно сказать, что BTree — это ядро ​​btrfs.
              • Многие современные файловые системы для управления дисками используют экстент вместо блока.
              • Экстенты — это смежные блоки. Экстент определяется начальным блоком плюс длина. Экстент может эффективно снизить накладные расходы на метаданные.
              • В ext2 область inode выделяется заранее и ее размер фиксирован. Например, в разделе 100G в области таблицы inode может храниться только 131072 inode, что означает, что невозможно создать более 131072 файлов, потому что каждый файл Оба должны иметь уникальный индексный дескриптор.
              • Чтобы решить эту проблему, inodes должны выделяться динамически. Каждый inode — это просто узел в BTree, и пользователи могут вставлять новые inode без ограничений, а его физическое место хранения динамически выделяется. Таким образом, btrfs не ограничивает количество файлов.
              • SSD использует технологию флэш-памяти, внутри нет механических устройств, таких как головки дисков, а скорость чтения и записи значительно улучшена. Флэш-память имеет некоторые характеристики, отличные от HDD. Флэш-память должна быть стерта перед записью данных; во-вторых, у флеш-памяти есть определенный лимит на количество операций стирания. На текущем техническом уровне один и тот же блок данных можно стереть не более 1 миллиона раз, поэтому Чтобы продлить срок службы флэш-памяти, операции записи следует выполнять в среднем по всей флэш-памяти.
              • Хотя SSD приложил много усилий на аппаратном уровне, в конце концов, он все еще ограничен. Пользователи Btrfs могут использовать параметр mount, чтобы включить специальную обработку оптимизации для SSD. Пользователи Btrfs могут использовать параметр mount, чтобы включить специальную обработку оптимизации для SSD.

              Характеристики, связанные с согласованностью данных

              • COW-транзакция
                • Так называемый COW означает, что каждый раз, когда данные на диске записываются, обновленные данные сначала записываются в новый блок.Когда новые данные успешно записаны, соответствующая структура данных обновляется, чтобы указать на новый блок.
                • COW может гарантировать атомарность только одного обновления данных. Но многие операции в файловой системе требуют обновления нескольких различных метаданных.Например, для создания файла необходимо изменить следующие метаданные. Если какой-либо шаг завершится неудачно, файл не может быть успешно создан, поэтому его можно определить как транзакцию.
                • По аппаратным причинам данные, считанные с диска, будут неправильными. Например, данные, хранящиеся в блоке A, равны 0x55, но данные чтения становятся 0x54. Поскольку операция чтения не сообщила об ошибке, эта ошибка не может быть обнаружена программным обеспечением верхнего уровня.
                • Решение этой проблемы — сохранить контрольную сумму данных и проверить контрольную сумму после чтения данных. Если он не совпадает, вы знаете, что данные неверны.
                • Btrfs использует отдельное дерево контрольных сумм для управления контрольной суммой блока данных и отделяет контрольную сумму от блока данных, защищенного контрольной суммой, тем самым обеспечивая более строгую защиту.

                Функции, связанные с управлением несколькими устройствами

                • Управление несколькими устройствами
                  • Btrfs поддерживает динамическое добавление устройств. После добавления нового диска в систему пользователь может использовать команду btrfs, чтобы добавить устройство в файловую систему.
                  • Чтобы гибко использовать пространство устройства, Btrfs делит дисковое пространство на несколько частей. Каждый фрагмент может использовать свою стратегию выделения дискового пространства.
                  • Subvolume — очень элегантная концепция. То есть часть файловой системы настроена как полная субфайловая система, называемая субтомом.
                  • Эта модель имеет множество преимуществ, таких как полное использование полосы пропускания диска и упрощение управления дисковым пространством.
                  • Вложенный том можно подключить к любой точке монтирования в качестве корневого каталога. Subvolume — очень интересная функция, имеющая множество приложений.
                  • Моментальный снимок — это полная резервная копия файловой системы в определенное время. После создания моментального снимка изменения в файловой системе не повлияют на его содержимое. Это очень полезный прием.
                  • Снимки обычно доступны только для чтения.Когда система поддерживает снимки с возможностью записи, такие снимки с возможностью записи называются клонами. Технология клонирования также имеет множество приложений. Например, установите базовое программное обеспечение в системе, а затем сделайте разные клоны для разных пользователей.Каждый пользователь использует свой собственный клон, не влияя на дисковое пространство других пользователей. Очень похоже на виртуальную машину.
                  • Btrfs хорошо поддерживает программный RAID, а типы RAID включают RAID0, RAID1 и RAID10.
                  • Btrfs по умолчанию выполняет защиту метаданных RAID1.

                  Другие особенности

                  • Delay allocation
                  • Inline file
                  • Указатель каталога Указатель каталога
                  • Предварительно выделенный

                  1.4 Расширенный вид

                  2. Анализ файловой системы

                  Мы знаем, что разные операционные системы используют разные файловые системы. Например, до Windows 98 использовалась файловая система FAT, а более поздние версии Windows 2000 имели так называемую файловую систему NTFS. Что касается обычной файловой системы Linux, это Ext2 (вторая расширенная файловая система Linux, Ext2fs). После этого появились улучшенные версии Ext3 и Ext4, и в целом изменение было небольшим.

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

                  2.1.1 Linux Ext2 Файловая система

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

                  Предполагая, что информация об атрибутах и ​​разрешениях файла хранится в индексном дескрипторе № 3, а фактические данные файла хранятся в четырех блоках 1, 4, 6, 11, тогда, когда операционная система хочет получить доступ к файлу, она может В соответствии с этим порядок чтения диска упорядочен, и содержимое 4 блоков может быть прочитано за одно сканирование. Этот метод доступа называется индексированным размещением. А ext оставляет огромное количество свободного места между каждыми двумя файлами. Когда файлы изменяются и их размер увеличивается, у них обычно достаточно места для расширения. Следовательно, до определенной степени гарантируется, что диапазон доступа блока не будет очень большим, а расстояние перемещения магнитной головки уменьшено.

                  2.1.2 Окна FAT32 Файловая система

                  Файловая система Windows `FAT32`

                  При сохранении файла в файловой системе FAT система будет пытаться сохранить его как можно ближе к началу диска. Когда вы сохраните второй файл, он будет рядом с первым файлом. После частого удаления и модификации блок будет очень разрозненным. В файловой системе FAT нет индексных дескрипторов, поэтому все блоки файла не могут быть прочитаны в начале. Каждый номер блока записывается в предыдущем блоке, образуя цепочку блоков. Когда нам нужно читать файлы, мы должны читать блоки один за другим.Например, порядок чтения на приведенном выше рисунке — 1, 6, 3, 12. Это приведет к тому, что головка не сможет получить все данные после одного поворота диска, и иногда для чтения файла требуется несколько оборотов, что приводит к чрезвычайно низкой производительности чтения файла. Вот почему Windows часто требуется дефрагментация — чтобы собрать воедино отдельные данные.

                  2.1.3 Зачем системе Windows нужна дефрагментация диска?

                  Я считаю, что после прочтения вышеуказанного содержания мы должны понять, чем вызвана эта причина. Со временем файловая система NTFS была разработана после Windows. Хотя файловая система NTFS немного умнее и выделяет некоторое «буферное» пространство вокруг файлов, после определенного периода использования файловая система NTFS все равно будет фрагментирована. Поскольку ext является индексированной файловой системой, в принципе нет необходимости часто дефрагментировать диск.

                  2.1.4 Расширение знаний

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

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

                  Журналируемая файловая система

                  Виртуальная файловая система

                  Способ хранения файлов

                  3. Создайте файловую систему.

                  3.1 mkfs команда

                  Формат команды:
                  mkfs [options] [-t type] [fs-options] device [size]

                  Варианты параметров:

                  • -V
                    подробный режим отображения
                  • -t
                    Учитывая тип файловой системы, значение по умолчанию для Linux — ext2.
                  • -c
                    Перед созданием файловой системы проверьте, есть ли в разделе плохие дорожки.
                  • -l bad_blocks_file
                    Добавить данные блока с плохими дорожками в bad_blocks_file
                  • block
                    размер данного блока
                  • -L
                    Создать этикетку

                  Note:

                  • В использовании mkfs Когда введите mkfs в командной строке и введите . Нажмите tab Клавиша для просмотра поддерживаемых типов разделов.
                  • device Проверяемый раздел жесткого диска, например: /dev/sda1 ,обязательный.
                  • mkfs Он не выполняет работу по установке самой файловой системы, но вызывает связанные программы для ее выполнения. Например, если -t Если в параметре указано ext2, mkfs вызовет mke2fs Чтобы построить файловую систему. Если вы опустите параметр [количество блоков] при его использовании, mkfs автоматически установит соответствующее количество блоков.

                  3.2 mke2fs команда

                  специальный инструмент управления файловой системой серии ext

                  Формат команды:
                  mke2fs -O journal_dev [ -b block-size ] [ -L volume-label ] [ -n ] [ -q ] [ -v ] external-journal [ fs-size ]

                  Варианты параметров:

                  • <имя устройства> Файл, соответствующий устройству, например / dev / hd1
                  • -b <размер блока> Укажите размер блока
                  • -c Перед созданием файловой системы проверьте указанное устройство
                  • -g <количество групп блоков> Укажите количество блоков в группе блоков
                  • -t
                  • -b
                  • -N #
                    Сколько инодов создано для пространства данных
                  • -m #
                    Процент места, зарезервированного для менеджеров
                  • -O FEATURE[. ]
                    включить определенные функции
                  • -O ^FEATURE
                    Отключить указанную функцию
                  • -E <расширенный параметр>
                    Укажите некоторые параметры для создаваемой файловой системы.
                  • -f <размер прерывистого сегмента>
                    Я не знаю размер непрерывного раздела
                  • -F
                    применяется, даже если указанное устройство не подключено или не является блочным.
                  • -l <файл>
                    Прочитать список плохих блоков из указанного файла
                  • -i <байт>
                    Укажите количество байтов для каждого inode
                  • -j
                    Создайте файловую систему, используя номер тома ext3
                  • -J <расширенный параметр>
                    Укажите некоторые параметры для файловой системы, используя номер тома ext3
                  • -L
                    Установить метку созданной файловой системы
                  • -q
                    не отображает никакой информации во время выполнения
                  • -V
                    Показать информацию о версии

                  3.3 mkswap команда

                  Добавить расширенный раздел подкачки

                  Формат команды:
                  mkswap [options] device [size]

                  Варианты параметров:

                  • -c
                    Перед созданием области подкачки проверьте, есть ли поврежденный блок.
                  • -p <размер страницы>
                    Использовать указанный размер страницы
                  • -L <метка>
                    Укажите тег, который будет обслуживать sawpon Можно использовать этот тег

                  Практическая демонстрация:

                  Note:

                  • Измените идентификатор раздела на 82
                  • [Размер области подкачки] Укажите размер области подкачки в 1024 байтах.

                  3.4 blkid команда

                  Просмотр информации об атрибутах устройства

                  Формат команды:
                  blkid [OPTION]. [DEVICE]

                  Варианты параметров:

                  • -o <метка>
                    Укажите формат вывода (полный, значение, список \ устройство \ udev)
                  • -s <метка>
                    Отображение указанной информации ярлыка (LABEL, UUID, TYPE)
                  • -U UUID
                    Найдите соответствующее устройство в соответствии с указанным UUID.
                  • -L LABEL
                    Найдите соответствующее устройство в соответствии с указанным LABEL

                  Практическая демонстрация:

                  3.5 e2label команда

                  LABEL для управления файловой системой серии ext
                  Команда e2label используется для установки метки тома второй расширенной файловой системы.

                  Формат команды:
                  e2label device [ new-label ]

                  3.5 tune2fs команда

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

                  Формат команды:
                  tune2fs [OPTION]. [DEVICE]

                  Варианты параметров:

                  • -l
                    Просмотр указанной файловой системыСупер блокИнформация
                  • -c max-mount-counts
                    Установите количество подключений для принудительной самопроверки. Если включено, количество подключений будет увеличиваться на 1 для каждого подключения, а самопроверка будет принудительной, если она превысит это число.
                  • -i interval-between-checks[d|m|w]
                    Установите временной интервал обязательной самопроверки [d день m месяц w неделя]
                  • -m #
                    Процент зарезервированных блоков
                  • -j
                    Преобразование файловой системы ext2 в файловую систему типа ext3
                  • -L ‘LABEL’
                    Подобно e2label, вы можете изменить метку файловой системы.
                  • -r reserved-blocks-count
                    Настроить системное зарезервированное пространство
                  • -o [^]mount-option[. ]
                    Установите или удалите параметры подключенной файловой системы по умолчанию.
                  • -O
                    Включение и отключение атрибутов файловой системы
                  • -U UUID
                    изменить номер UUID

                  Практическая демонстрация:

                  3.6 dumpe2fs команда

                  Команда dumpe2fs используется для вывода информации о суперблоке и группе блоков файловой системы ext.

                  Формат команды:
                  dumpe2fs [-bfhixV] [-o superblock=] [-o blocksize=] device

                  Варианты параметров:

                  • -b
                    Распечатать информацию о блоке, зарезервированную в файловой системе
                  • -ob <суперблок>
                    Укажите суперблок, используемый при проверке файловой системы.
                  • -OB <размер блока>
                    Указанный размер блока, используемый при проверке файловой системы
                  • -h
                    Отображать только информацию суперблока
                  • -i
                    Прочитать информацию о файловой системе из указанного файла образа файловой системы
                  • -x
                    Печатать элементы информационного блока в шестнадцатеричном формате

                  Практическая демонстрация:

                  3.7 fsck команда

                  Обнаружение файловой системы

                  Формат команды:
                  fsck [ -sACVRTNP ] [ -t fstype ] [filesys . ] [—] [ fs-specific-options ] [[ ]]

                  Варианты параметров:

                  • -t FS_TYPE
                    Проверьте файловую систему этого формата файла, аналогично fsck.FS_TYPE 。
                  • -a
                    Не задавайте вопросов, автоматически восстанавливайте файловую систему (используйте эту опцию осторожно). Обратите внимание, что e2fsck (8) поддерживает -a только для прямой совместимости. Этот параметр сопоставлен с e2fsck из -p Этот вариант более безопасен, в отличие от -a, поддерживаемого большинством средств проверки файловой системы.
                  • -r
                    Исправляйте ошибки файловой системы в интерактивном режиме (запрашивайте подтверждение). Примечание: если несколько fsck выполняются параллельно, это не лучшая идея. Также обратите внимание e2fsck Поведение по умолчанию; он также сохраняет этот параметр только для прямой совместимости.
                  • -R
                    При использовании флага -A для проверки всех файловых систем пропустите корневую файловую систему (она может быть уже смонтирована для чтения и записи).
                  • -A
                    поиск /etc/fstab Файл, проверьте сразу все файловые системы, определенные в файле. Этот параметр обычно используется в файле инициализации системы / etc / rc вместо использования нескольких команд для проверки отдельных разделов по отдельности.

                  Note:

                  • Только вход fsck Команда, номер версии
                  • FS_TYPE должен быть таким же, как тип файла, уже находящийся в разделе

                  Практическая демонстрация:

                  3.8 e2fsck команда

                  Специальный инструмент для обнаружения и восстановления файлов серии ext

                  Формат команды:
                  e2fsck [ -pacnyrdfkvtDFV ] [ -b superblock ] [ -B blocksize ] [ -l|-L bad_blocks_file ] [ -C fd ] [ -j external-journal ] [ -E extended_options ] device

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *