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

🗃️ Btrfs или Ext4 – функциональные возможности, сильные и слабые стороны

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

Для повседневных системных процессов необходима эффективная файловая система.

Ядро Linux поддерживает множество файловых систем.

Чаще всего используются Ext4, Btrfs, XFS и ZFS, самая последняя файловая система, выпущенная еще в 2018 году.

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

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

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

Ext4 – файловая система по умолчанию для многих дистрибутивов Linux.

Она была выпущена в октябре 2008 года с ядром Linux 2.6.28.

Ext4 – это четвертая версия расширенной файловой системы и преемница Ext3.

Ext4 – это надежная файловая система, которая используется уже долгое время.

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

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

Btrfs или файловая система B-Tree – это новая, современная файловая система с открытым исходным кодом.

Это файловая система с копированием при записи (CoW), адаптированная для систем Linux, и ее название происходит от использования B-tree для хранения внутренних файловых структур.

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

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

Важно отметить, что во время модификации исходные данные сохраняются и остаются неизменными.

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

Разработка Btrfs началась еще в 2007 году в Oracle, но другие крупные компании, включая SUSE, Facebook, Redhat, вносят свой вклад в ее развитие.

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

  • Возможности BTRFS
  • Некоторые из интересных функций, предлагаемых btrfs, включают:
  • Поддержка огромных файлов
  • Эффективное хранилище файлов
  • Встроенная поддержка RAID
  • Онлайн-дефрагментация и изменение размера
  • Динамическое размещение inode
  • Снимки с возможностью записи и только для чтения
  • Поддержка контрольных сумм
  • Оптимизированная поддержка SSD-накопителей

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

Cравним две файловые системы по различным ключевым характеристикам.

1. Логи и поддержка копирования при записи

Это первое существенное различие между двумя файловыми системами.

Файловая система Ext4 – это файловая система с журналированием, а Btrfs – файловая система с функцией копирования при записи (CoW).

2. Поддержка нескольких устройств

Распространение одной файловой системы на несколько устройств дает определенные преимущества, такие как увеличенная емкость и надежность.

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

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

3. Дедупликация на уровне файловой системы:

Дедупликация – это функция, которая автоматически удаляет повторяющиеся копии данных из файловой системы для экономии места на диске.

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

Эта функция экономит огромное количество дискового пространства.

Файловая система Ext4 не поддерживает дедупликацию.

4. Сжатие на уровне файловой системы

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

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

Файловая система Ext4 не имеет встроенной поддержки сжатия.

Читайте также:  Обход антивируса windows 10

5. Максимальный раздел и размер файла

Самый большой раздел, который вам разрешено создать с помощью ext4, составляет 1 эксбибайт – что эквивалентно примерно 1 152 921,5 терабайту. Максимальный размер файла составляет 16 ТиБ, что намного больше, чем у любого жесткого диска, который в настоящее время может купить обычный потребитель.

Btrfs поддерживает максимальный размер раздела и файла до 16Eib.

Ext4 позволяет создавать максимум 232 (= 4 294 967 296

= 4 миллиарда) файлов. Btrfs позволяет создать максимум 264 (= 18 446 744 073 709 551 616

= 18 квинтиллионов) файлов.

6. Контрольная сумма/поддержка ECC

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

7. Поддержка снэпшотов

Файловая система Btrfs поддерживает моментальные снэпа файла только для чтения и записи.

Файловая система Ext4 не поддерживает создание снэпов файловой системы.

Заключение

Файловая система Ext4 – это последняя версия расширенной файловой системы.

Ext4 существует уже давно и зарекомендовала себя как надежная и стабильная.

Рекомендуется для повседневного использования.

Если электричество отключится, скорее всего, ext4 сохранит ваши данные в безопасности.

Ext4 ориентирован на высокую производительность и масштабируемость.

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

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

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

Файловая система btrfs заслуживает внимания, но полная замена ext4 на настольном Linux может произойти через несколько лет.

Источник

Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов

В прошлый раз мы рассказывали об инструментах с отрытым исходным кодом для оценки производительности процессоров и памяти. Сегодня говорим о бенчмарках для файловых систем и систем хранения данных на Linux — Interbench, Fio, Hdparm, S и Bonnie.


Фото — Daniele Levis Pelusi — Unsplash

Fio (расшифровывается как Flexible I/O Tester) создает потоки ввода/вывода данных с диска, чтобы оценить производительность файловой системы Linux. Утилиту можно запустить и на Windows — нужно установить интерфейс командной строки Cygwin. Руководство по настройке есть в репозитории fio на GitHub.

Автор fio — Йенс Аксбо (Jens Axboe), ответственный за подсистему IO в Linux и разработчик утилиты blktrace для трассировки операций ввода/вывода. Он создал fio, потому что устал писать программы для тестирования специфической нагрузки вручную.

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

Сегодня fio используется крупными компаниями — с утилитой работают в SUSE, Nutanix и IBM.

Hdparm

Утилиту написал канадский разработчик Марк Лорд (Mark Lord) в далеком 2005 году. Она до сих пор поддерживается автором и является частью многих популярных дистрибутивов. Главное назначение hdparm — настройка параметров накопителей. Но инструмент можно использовать для проведения простых бенчмарков, например, измерения скорости чтения. Для этого нужно написать в консоли команду:

Система сформирует подобный ответ:

Что касается настройки накопителей, то hdparm позволяет менять объем кеш-памяти, модифицировать параметры спящего режима и электропитания, а также безопасно стирать данные на SSD. Но, как предупреждают специалисты из ArchLinux, неосторожное изменение системных параметров может сделать данные на диске недоступными и даже повредить накопитель. Перед работой с hdparm лучше ознакомиться с руководством — достаточно прописать в консоли команду man hdparm.

Это — набор бенчмарков для оценки производительности систем ввода/вывода. Авторами утилиты выступила команда разработчиков из группы AlgoDev, в которую входят сотрудники итальянского Университета Модены и Реджо-Эмилии.

Все бенчмарки представляют собой bash-скрипты, оценивающие производительность системы хранения данных — пропускную способность, латентность, работу планировщиков. К примеру, бенчмарк throughput-sync.sh «бомбардирует» СХД запросами на чтение или запись (в этом случае используется уже упомянутая утилита fio). Вот код этого скрипта.

Другой скрипт — comm_startup_lat.sh — измеряет задержку чтения данных с диска при «холодном кэше» (когда в нем нет необходимых данных). Код также можно найти в репозитории.


Фото — Agê Barros — Unsplash

Bonnie

Утилита для оценки производительности файловой системы, разработанная в 1989 году. Её автором выступил инженер Тим Брей (Tim Bray). С помощью Bonnie он планировал оптимизировать работу вычислительных систем, задействованных в проекте New Oxford English Dictionary в Университете Ватерлоо.

Читайте также:  Windows media player with no sound

Bonnie выполняет произвольное чтение и запись данных на диск. После утилита показывает такие параметры, как число обработанных байтов за CPU-секунду, а также уровень загрузки процессора в процентах. Исходный код бенчмарка можно найти на Google Code.

На основе Bonnie построен другой комплекс инструментов для тестирования жесткого диска — Bonnie++ (написан на C++, вместо C). В нем приведены дополнительные бенчмарк-инструменты. Например, zcav для оценки производительности различных зон HDD. Также Bonnie++ подходит для тестирования почтовых серверов и серверов баз данных.

Interbench

Утилиту разработал Кон Коливас (Con Kolivas), австралийский анестезиолог, который известен своим вкладом в разработку ядра Linux и работой над «справедливым планировщиком процессора». Interbench помогает настроить параметры планировщика ввода/вывода и файловой системы.

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

Исходный код, примеры и рекомендации по настройке инструмента можно найти в официальном репозитории на GitHub.

Бенчмарки для Linux-серверов: 5 открытых инструментов

Резервное копирование файлов: как подстраховаться от потери данных
Как перенести системный жесткий диск в виртуальную машину?
Тренировочный стенд для админов: чем поможет облако

Досмотры гаджетов на границе: как действовать, чтобы не потерять конфиденциальные данные?
Снэпшоты: зачем нужны «снимки»

Источник

Файловые системы Linux в 2020 году: плюсы, минусы, подводные камни

Как вы знаете, перед установкой любой операционной системы Linux вам нужно отформатировать жесткий диск и выбрать наиболее предпочтительную файловую систему. Тут у нас, в 2020, в фаворитах ходит EXT4, и она кажется лучшим вариантом из возможных, но давайте рассмотрим альтернативы, прежде чем слепо отказываться от них?

«Fourth Extended Filesystem», что дословно переводится как «Четвертая расширенная файловая система» полностью обратно совместима с EXT2 и EXT3 и считается стандартом для большинства дистрибутивов Linux, оставаясь такой же популярной, как и ее предшественники.

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

Двумя мощнейшими функциями EXT4 являются так называемые «экстенты» и «отложенное распределение», которые разумно управляют тем, как данные записываются на носитель, для повышения производительности и уменьшения фрагментации.

BtrFS

«b-tree file system» изначально была разработана Oracle и продолжает расти в популярности, так что многие считают ее истинным преемником династии EXT.

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

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

XFS была создана Silicon Graphics почти три десятилетия назад для их графических рабочих станций, специализирующихся на рендеринге 3D-графики.

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

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

Одна из (относительно) более новых файловых систем, «Flash-Friendly File System», как следует из самого названия, является одним из лучших вариантов для использования с хранилищем на основе флешь-памяти.

Изначально созданный для этой цели компанией Samsung, F2FS разбивает носитель на более мелкие части, которые в свою очередь делит на еще более мелкие части, которые в свою очередь делит, ну вы поняли. А дальше она старается использовать множество этих зон вместо повторного использования одних и тех же. В сочетании с поддержкой TRIM / FITRIM это делает её более удобной для флешь-носителей с ограниченным числом операций записи.

Читайте также:  Windows 10 отключить слежение 2020

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

OpenZFS/ZFS

OpenZFS — это ветвь файловой системы Zettabyte (ZFS), которая изначально появилась в Solaris от Sun. До 2010 года ZFS можно было использовать в Linux в основном через FUSE из-за проблем с лицензированием. После 2010 года началась разработка опенсорсной версии, а уже к 2016 году Ubuntu включила ее поддержку по умолчанию. С тех пор, когда люди ссылаются на «ZFS», они обычно имеют ввиду именно эту ветку, вместо Solaris ZFS — который также продолжает развиваться, но идет по параллельному пути.

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

ZFS также следует принципу copy-on-write, так называемого, копирования при записи, где вместо изменения существующих данных он сохраняет только изменения («дельты») между старой и новой версиями. Это обеспечивает прозрачное, интеллектуальное хранение нескольких копий данных, не занимая много места, которое может работать как резервное копирование или снэпшоты. Пользователь может откатиться к предыдущим состояниям файловой системы, отменить изменения или наоборот: перенести все изменения в клоны существующих данных.

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

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

Не отдавая предпочтения какой-либо одной функции, она отлично подходит для различных задач при разных нагрузках.

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

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

Что вам стоит использовать?

Существует причина, по которой EXT4 является дефолтным выбором для большинства дистрибутивов Linux. Она проверена, протестирована, стабильна, отлично работает и широко поддерживается. Если вы ищете стабильность, EXT4 — лучшая файловая система Linux для вас.

Если вы не боитесь иметь дело с несколько менее зрелой экосистемой, вам стоит также рассмотреть BtrFS.

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

Для флэш-носителей F2FS является лучшим вариантом, это даже не обсуждается.

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

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

Источник

Оцените статью