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

Troubleshooting

Root file system quota

XFS quota mount options (, , , etc.) fail during re-mount of the file system. To enable quota for root file system, the mount option must be passed to initramfs as a kernel parameter . Subsequently, it should not be listed among mount options in for the root () filesystem.

xfs_scrub_all fails if user «nobody» can not access the mountpoint

When running , it will launch for each mounted XFS file system. The service is run as user , so if can not navigate to the directory, it will fail with the error:

xfs_scrub@mountpoint.service: Changing to the requested working directory failed: Permission denied
xfs_scrub@mountpoint.service: Failed at step CHDIR spawning /usr/bin/xfs_scrub: Permission denied
xfs_scrub@mountpoint.service: Main process exited, code=exited, status=200/CHDIR

To allow the service to run, change the permissions of the mountpoint so that user has execute permissions.

Migrating from ext2/ext3 to ext4

Mounting ext2/ext3 partitions as ext4 without converting

Rationale

A compromise between fully converting to ext4 and simply remaining with ext2/ext3 is to mount the partitions as ext4.

Pros:

  • Compatibility (the filesystem can continue to be mounted as ext3) – This allows users to still read the filesystem from other operating systems without ext4 support (e.g. Windows with ext2/ext3 drivers)

Cons:

Fewer features of ext4 are used (only those that do not change the disk format such as multiblock allocation and delayed allocation)

Note: Except for the relative novelty of ext4 (which can be seen as a risk), there is no major drawback to this technique.

Procedure

  1. Edit and change the ‘type’ from ext2/ext3 to ext4 for any partitions you would like to mount as ext4.
  2. Re-mount the affected partitions.

Rationale

To experience the benefits of ext4, an irreversible conversion process must be completed.

Pros:

Improved performance and new features.

Cons:

  • Partitions that contain mostly static files, such as a partition, may not benefit from the new features. Also, adding a journal (which is implied by moving a ext2 partition to ext3/4) always incurs performance overhead.
  • Irreversible (ext4 partitions cannot be ‘downgraded’ to ext2/ext3. It is, however, backwards compatible until extent and other unique options are enabled)

Procedure

Warning:

  • If you convert the system’s root filesystem, ensure that the ‘fallback’ initramfs is available at reboot. Alternatively, add according to and regenerate the initramfs before starting.
  • If you decide to convert a separate partition, ensure the bootloader supports booting from ext4.

In the following steps denotes the path to the partition to be converted, such as .

  1. Back up all data on any ext3 partitions that are to be converted to ext4. A useful package, especially for root partitions, is .
  2. Edit and change the ‘type’ from ext3 to ext4 for any partitions that are to be converted to ext4.
  3. Boot the live medium (if necessary). The conversion process with must be done when the drive is not mounted. If converting a root partition, the simplest way to achieve this is to boot from some other live medium.
  4. Ensure the partition is not mounted
  5. If you want to convert a ext2 partition, the first conversion step is to add a by running as root; making it a ext3 partition.
  6. Run as root. This command converts the ext3 filesystem to ext4 (irreversibly).
  7. Run as root.
  8. Recommended: mount the partition and run as root.
  9. Reboot

Проверенная временем

CXFS была задумана как логическое продолжение выигравшей много наград SGI 64-разрядной XFS для сервера SGI, широко признанной как
наиболее высокопроизводительная файловая системы. CXFS технология, проверенная на практике, работает надежно на сотне
сайтов клиентов. CXFS обеспечивает:

  • Лучшую в отрасли производительность
  • Журналирование для обеспечения надежности и быстрого восстановления
  • 64-разрядная масштабируемость, для поддержки очень больших файлов

и файловых систем

Динамически выделенный объем метаданных

Производительность CXFS намного превосходит остальные файловые системы в:

  • Чтении и записи файла, открытому благодаря единственному процессу
  • Чтении и записи файла, когда все процессы принадлежат тому же хосту
  • Чтении того же файла множественными процессами на множественных хостах
  • Чтении и записи того же файла множественными процессами на множественных хостах, используя I/O
  • Великолепно низкое время ожидания потоковой производительности реального времени (real-time streaming performance)

Что такое Btrfs?

Как я уже сказал, Btrfs была разработана компанией Oracle в 2007 году. Одной расшифровки названия нет, одни говорят, что это значит B-tree FS, другие Better Fs. Также как и в других файловых системах, все данные хранятся на диске по определенным адресам. Эти адреса сохранены в метаданных. И тут уже начинаются различия. Все метаданные организованны в виде b-деревьев. Это дает большую производительность при работе с файловой системой, а также позволяет добавлять неограниченное количество файлов.

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

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

Btrfs поступает по-другому. Каждый диск, независимо от его размера делится на блоки по 1 Гб для данных и 256 Мб для метаданных. Затем эти блоки собираются в группы, каждая из которых может храниться на разных устройствах, количество таких блоков в группе может зависеть от уровня RAID для группы. Менеджер томов уже интегрирован в файловую систему, поэтому больше никакое дополнительное ПО использовать не нужно.

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

  • Поддержка снимков файловой системы, только для чтения или для записи;
  • Контрольные суммы для данных и метаданных с помощью алгоритма crc32. Таким образом, можно очень быстро определить любые повреждения блока;
  • Сжатие с помощью Zlib и Lzo;
  • Оптимизация для работы с SSD, файловая система автоматически определяет ssd и начинает вести себя по-другому;
  • Фоновый процесс для обнаружения и исправления ошибок, а также дефрагментации и дедупликации в реальном времени;
  • Поддерживается преобразование из ext4 и ext3 и обратно.

Все это очень хорошо, но можно ли уже использовать эту файловую систему? Попробуем разобраться и с этим.

Высокая доступность с полным доступом к данным после сбоев

CXFS предназначен для обнаружения и автоматического восстановления после сбоя системы, отказа активного сервера метаданных, отказа SAN или компонентов сети TCP / IP, и отказа сети или раздела SAN. В конфигурации CXFS, одна система — сервер метаданных, а все другие серверные узлы могут быть назначены в качестве резервного копирования серверов метаданных. Бекап сервера метаданных становится сервером метаданных при обнаружении сбоя исходного сервера метаданных; этот фейловер предназначен занять место в считанные секунды, обеспечивая постоянный доступ к данным независимо от состояния какой-либо системы.

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

Производительность

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

Предварительное выделение на файловом уровне

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

Отложенное выделение блоков памяти

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

Выделение блоков памяти группами

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

Другим аспектом группового выделения блоков является объем работы, необходимой для выделения блоков. Напомним, что в ext3 выделение осуществляется по одному блоку за раз. Выделение блоков группами требует гораздо меньшего количества вызовов, что ускоряет выделение блоков.

Поддержка в операционных системах

  • coLinux — технология, позволяющая запустить ядро Linux под управлением ОС Windows. Возможен доступ к томам с ФС ext2/ext3/ext4.

Поддержка ext4 в дистрибутивах Linux

  • Ubuntu:
    • 9.04: ext4 доступна для выбора по желанию пользователя;
    • 9.10+: ext4 стала ФС по умолчанию.
  • Debian:
    • 6.0: ext4 доступна для выбора по желанию пользователя;
    • 7.0+: ext4 предлагается, как ФС по умолчанию.
  • Fedora:
    • >=9: ext4 доступна для выбора по желанию пользователя;
    • 11+: ext4 — ФС по умолчанию.
  • Sabayon Linux:

    3.5 Loop 3+: ext4 доступна.

  • ArchLinux.
  • Slackware.
  • OpenSUSE:

    11.2+: ext4 — ФС по умолчанию.

  • Mandriva Linux:

    2010+: ext4 — ФС по умолчанию.

  • Red Hat Enterprise Linux:

    6+: ext4 — ФС по умолчанию.

  • PCLinuxOS:

    2010+: ext4 — ФС по умолчанию.

  • Android:

    2.3+: ext4 доступна.

  • AgiliaLinux:

    ext4 — ФС по умолчанию.

3 ответа

10

Существуют две основные причины разницы в производительности и две причины . Во-первых, основные причины:

Повышенная производительность ext4 и NTFS

Различные тесты пришли к выводу, что фактическая файловая система ext4 может выполнять множество операций чтения-записи быстрее , чем раздел NTFS

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

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

Требования к исправленной файловой системе

Файловая система ext4 также может выполнять , чем другие эквивалентные журналирование файловых систем (например, NTFS). Согласно странице Википедии:

И теперь возможны две возможные :

Проверка файловой системы Утилиты

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

Фрагментация диска

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

3

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

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

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

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

Также я не уверен, но если проверяет целостность каждого файла (который, я считаю, и он, и do), то это будет также медленнее в сравнении из-за того, что я только что описал о фрагментации на NTFS.

-1

При запуске Windows не должна проверять тома NTFS. Если это так, то что-то всерьез ошибочно, что-то гораздо хуже, чем просто BSOD или перебой в электропитании. Существует большая вероятность того, что некоторые из ваших данных были также повреждены поврежденными метаданными файловой системы. Проверка диска не может обнаружить это; его единственная цель — избежать дальнейшей коррупции.

KB2854570 перечисляет некоторые причины, по которым это может произойти. Один из них спящий с ОС с установленным томом, изменение содержимого тома, а затем возобновление спящего режима с подключенным томом (re). Если вы это сделаете, существует высокая вероятность бесшумного повреждения данных.

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

Переход с ext3 на ext4

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

Подготовка устройства

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

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

Вы также использовать существующие тома ext2 или ext3 как ext4. Просто смонтируйте устройство, как описано ниже. Однако если вы используете новые функции, такие как экстенты, вы не сможете откатить изменения обратно к ext2 или ext3.

Использование ext4

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

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

Настройка параметров производительности ext4

Для настройки файловой системы ext4 можно использовать программу , как и для ext2 и ext3. В настоящий момент
не поддерживает параметры, специфичные для ext4, хотя вы можете настраивать конкретные опции ext4, такие как экстенты, используя стандартный параметр .

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

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

Установка Linux на том Btrfs с включенной компрессией

В качестве подопытного кролика тестового стенда вновь будет выступать старенький ASUS Eee PC 900. Чего он только ни повидал за прошедшие годы. Интересно, много ли у кого сегодня сохранился этот первый представитель окончательно вымершего сегодня семейства нетбуков?

Для запланированного эксперимента с Btrfs это просто идеальный образец.

Во-первых, два крошечных (4 Гб и 8 Гб) SSD накопителя, больший из которых к тому же еще и в два раза медленнее маленького. На самом деле оба флеш-диска очень медленные и не имеют ничего общего, по крайней мере по скорости, с современными твердотельными накопителями.

Во-вторых, само устройство на процессоре Intel Celeron M 900 МГц ну очень небыстрое, что сразу же позволит даже безо всяких тестов просто визуально оценить успех или неудачу данного эксперимента.

Изначально я планировал установить на Eee PC 900 Linux Mint-17.1 xfce. Однако очень скоро с этой идеей пришлось проститься. Инсталлятор Linux Mint требовал минимум 8.2 Гб свободного места на диске и в упор не хотел видеть ни второй диск, ни заранее собранный из двух накопителей том Btrfs объемом почти 12 Гб. О том, чтобы объяснить инсталлятору, что установка будет выполняться на сжатый том и на самом деле одного диска объемом 4 Гб будет достаточно, речь вообще не шла.

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

Если соберетесь устанавливать Linux Mint на файловую систему Btrfs, имейте в виду, что в дистрибутив, по крайней мере в тот, о котором здесь идет речь, поддержка этой файловой системы не включена. Для того, чтобы иметь возможность отформатировать разделы с Btrfs, необходимо установить btrfs-tools:

Так как поддержка Btrfs включена в ядро, Mint после установки загрузится, но для того, чтобы можно было делать некие манипуляции с томами, установку btrfs-tools придется повторить.

Дальнейшие события показали, что выбор оказался весьма удачным. Облегченный набор приложений и шустрое окружение – это как раз то, что нужно для неторопливого нетбука.

Последняя на момент написания данной статьи 5-я версия этой ОС базируется на Ubuntu 14.04 LTS с пятилетним сроком поддержки. Возможность работы с файловой системой Btrfs присутствует сразу.

Проблема установки состояла в том, что компрессия включается в Btrfs на стадии монтирования файловой системы (-o compress=lzo / zlib ), а стандартный инсталлятор Linux, по крайней мере в Ubuntu и основанных на ней системах, не дает выбирать расширенные опции.

Создаем загрузочную флешку с помощью Universal USB Installer. Загружаем компьютер с нее и заходим в терминал:

Переименовываем исполняемый файл mount в mount.bin

Создаем файл скрипта mount

Вместо gedit вы можете использовать любой текстовый редактор, входящий в состав Live CD.

Вписываем в mount следующий код:

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

Сохраняем файл и делаем его исполняемым:

Приступаем к установке.

Она ничем не отличается от описанной, например здесь.

Разбиение диска нужно выполнить самостоятельно. Для этого на этапе “Тип установки” выбираем “Другой вариант”.

Под /boot необходимо обязательно создать в начале диска раздел размером примерно 200 Мб. В противном случае система со сжатого диска не загрузится.

В данном случае под /home отдельный раздел выделять не нужно – в процессе установки для этого каталога будет автоматически создан подтом (subvolum — /@/home).

Если система устанавливается на обычный (не SSD) диск, нужно сделать раздел подкачки объемом 2 х RAM.

До первой перезагрузки можно сразу же отредактировать fstab (file systems table). Для этого придется смонтировать выделенный при установке под корень файловой системы раздел.

Если это был, например, sda2, то:

Обратите внимание, что корневой раздел также попал на подтом и путь к нему включает в себя “@”. Находим в fstab строки, касающиеся монтирования Btrfs томов и заменяем defaults на compress=lzo (конкретный пример fstab см

ниже)

Находим в fstab строки, касающиеся монтирования Btrfs томов и заменяем defaults на compress=lzo (конкретный пример fstab см. ниже).

Перезагружаем компьютер, теперь уже с жесткого диска

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

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