Btrfs Дефрагментация файлов / папок

Я только что установил Ubuntu 11.10 в файловую систему Btrfs, и я хочу задать вопрос об дефрагментации файлов.

Нужно ли мне дефрагментировать файлы или всю систему?

Дефрагментация # btrfs дефрагментация файловой системы / пул1 Дефрагментация

Дефрагментация Btrfs

7
задан 3 December 2011 в 14:54

3 ответа

Вам действительно не нужно дефрагментировать файловые системы Btrfs, так же, как вам действительно не нужно дефрагментировать файловые системы Ext2 / 3 / 4.

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

Автоматическая дефрагментация файловых систем COW (copy-on-write) имеет много преимуществ, но они также имеют некоторые недостатки, например фрагментацию. Btrfs излагает данные последовательно, когда файлы записываются на диск в первый раз, но дизайн COW подразумевает, что любая последующая модификация файла не должна быть написана поверх старых данных, но должна быть помещена в свободный блок, который будет вызывают фрагментацию (базы данных RPM являются распространенным случаем этой проблемы). Кроме того, он сталкивается с проблемами фрагментации, присущими всем файловым системам. Btrfs уже предлагает альтернативы для борьбы с этой проблемой: во-первых, он поддерживает онлайн-дефрагментацию с помощью команды btrfs filesystem defragment. Во-вторых, у него есть опция mount, -o nodatacow, которая отключает COW для данных. Теперь btrfs добавляет третий вариант, вариант -o autodefrag mount. Этот механизм обнаруживает небольшие случайные записи в файлы и ставит их в очередь для автоматического дефрагментации, поэтому файловая система будет дефрагментировать себя, пока она используется. Он еще не подходит для виртуализации или больших рабочих нагрузок базы данных, но хорошо работает для небольших файлов, таких как rpm, SQLite или базы данных bdb.

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

Чтобы проверить фрагментацию файлов, вы можете использовать утилиту excerpt :

$ find /path | xargs filefrag > frag.list
# Now you can use your favourite tools to sort the data

В системах Systemd /var/log/journal/, вероятно, будет наиболее фрагментированным. Вы также можете посмотреть базы данных ~/.mozilla и других браузеров.

Для дефрагментации используйте:

$ sudo btrfs fi defrag -r /path

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

9
ответ дан 25 May 2018 в 16:21
  • 1
    как я знаю его defrag .... или нет ... команда для проверки состояния дефрагментации – One Zero 3 December 2011 в 22:54
  • 2
    Этот ответ неверен согласно викторине BTRFS: btrfs gotchas . Проблема фрагментации файлов может быть легко воспроизведена путем запуска systemd-journald на томе btrfs. Хотя я еще не проверял, что опция autodefrag решает эту проблему. – Jonas Wielicki 27 November 2013 в 22:32
  • 3
    Я использую btrfs полный рабочий день в течение как минимум 18 месяцев с помощью systemd, firefox и т. Д. Быстрая проверка с использованием filefrag показывает, что файлы журнала действительно сильно фрагментированы (в среднем по 10 тыс. Экз.), Но я не наблюдал Неисправность процессора или производительность. У меня нет autodefrag, он включит его и отчитается при следующей перезагрузке. – Félix Saparelli 28 November 2013 в 16:38
  • 4
    Итак: фрагментация файла происходит, autodefrag действительно помогает, влияние производительности в лучшем случае на повседневные системы незначительно. Очевидно, что серверам с большой нагрузкой, возможно, придется измерять и настраивать вещи, но опять же это альфа-программное обеспечение, поэтому вы, возможно, захотите его избежать. – Félix Saparelli 7 December 2013 в 18:19
  • 5
    find /path -type f -exec filefrag {} + >frag.list избегает всех ошибок FIBMAP unsupported из каталогов и других нерегулярных файлов и не разбивает на странные имена файлов. – Peter Cordes 1 March 2018 в 03:05

Для этой темы я думаю, что лучше пояснить, что:

Любая файловая система! = утилиты восстановления / управления

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

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

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

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

0
ответ дан 25 May 2018 в 16:21

Команда дефрагментации файловой системы btrfs:

btrfs filesystem defragment sync -r -v -f [-czlib] / /home
0
ответ дан 25 May 2018 в 16:21

Другие вопросы по тегам:

Похожие вопросы: