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

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

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

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

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

8
задан 10 December 2018 в 19:19

4 ответа

Вы не должны действительно дефрагментировать файловые системы Btrfs вручную.

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

Автоматическая дефрагментация

COW (копия на записи), файловые системы имеют много преимуществ, но у них также есть некоторые недостатки, например, фрагментация. Btrfs размечает данные последовательно, когда файлы записаны в диск в первый раз, но дизайн COW подразумевает, что любая последующая модификация в файл не должна быть записана сверху старых данных, но помещена в свободном блоке, который вызовет фрагментацию (базы данных об/мин являются общим падежом этой проблемы). Кроме того, это переносит проблемы фрагментации, характерные для всех файловых систем.

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

Так, пока Вы не планируете запустить программное обеспечение IO-intensive как база данных при значительной загрузке, необходимо быть всей пользой, пока Вы монтируете свои файловые системы с autodefrag опция.

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

$ find /path -type f -exec 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
11
ответ дан 23 November 2019 в 05:37

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

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

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

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

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

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

0
ответ дан 23 November 2019 в 05:37

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

btrfs filesystem defragment sync -r -v -f [-czlib] / /home
0
ответ дан 23 November 2019 в 05:37

На основе этого ответа я придумал:

sudo find / -xdev -type f -exec filefrag {} + | sed -En 's/(.+): (\w+) extent.*/\2 \1/p' | sort -nr

Это перечисляет наиболее фрагментированные файлы сначала с форматом:

<num-fragments> <pathname>
0
ответ дан 23 November 2019 в 05:37

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

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