Я только что установил Ubuntu 11.10 в файловую систему Btrfs, и я хочу задать вопрос об дефрагментации файлов.
Нужно ли мне дефрагментировать файлы или всю систему?
Дефрагментация # btrfs дефрагментация файловой системы / пул1 Дефрагментация
Вам действительно не нужно дефрагментировать файловые системы 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 использует его по умолчанию (или будет), поэтому, похоже, он достиг определенной зрелости.
Для этой темы я думаю, что лучше пояснить, что:
Любая файловая система! = утилиты восстановления / управленияИмейте в виду, что файловая система связана с тем, как данные организован на физическом оборудовании, все другие действия выполняются с помощью дополнительного программного обеспечения и утилит, которые, особенно в GNU / linux, выполняются людьми, которые, вероятно, не связаны с тем, кто создал файловую систему.
Это, вероятно, не относится к Btrfs, но иногда мы близки к этому, потому что настольные и корпоративные среды могут предоставлять различные решения с различными уровнями надежности.
Ответ на ваш вопрос «нет», но «нет», связанное с нормальным поведением общей файловой системы, и каждая утилита, которую вы можете найти об этом, - это просто другой проект.
Когда вам нужно дефрагментировать вашу файловую систему, имейте в виду, что вы собираетесь используйте внешнее программное обеспечение, которое на самом деле не связано с жизнью самой файловой системы, со всеми минусы.
Команда дефрагментации файловой системы btrfs:
btrfs filesystem defragment sync -r -v -f [-czlib] / /home