Дефрагментация ext раздела?

Ответы:

10

Современные файловые системы, особенно те, которые разработаны, чтобы быть эффективными в многопользовательских и / или многозадачных случаях использования, делают хорошую работу, не фрагментируя данные, пока файловые системы не становятся почти полными (нет точной цифры для того, где "близко к полному"). «это так, как это зависит от размера файловой системы, распределения размеров файлов и ваших шаблонов доступа - обычно приводятся цифры от 85% до 95%), или от того, что шаблон создания и записи файлов необычен, или файловая система очень старый, поэтому видел много "действий". Сюда входят ext2 / 3/4, reiser, btrfs, NTFS, ZFS и другие.

В настоящее время не существует способа дефрагментации ext3 или 4 на уровне ядра / файловой системы (см. Http://en.wikipedia.org/wiki/Ext3#Defragmentation для получения дополнительной информации), хотя ext4 планируется в ближайшее время получить онлайн дефрагментация.

Существуют инструменты пользовательской земли (такие как http://vleu.net/shake/и другие, перечисленные в этой статье в Википедии), которые пытаются дефрагментировать отдельные файлы или наборы файлов, копируя / переписывая их - если имеется достаточно большой блок свободного пространства, это обычно приводит к тому, что файлу предоставляется непрерывный блок. Это никоим образом не гарантирует, что файлы находятся рядом друг с другом, хотя, если вы запустите Shake над парой больших файлов, вы обнаружите, что это приводит к тому, что два файла дефрагментируются сами по себе, но не где-то рядом друг с другом на диске. В многопользовательской файловой системе расположение файлов друг к другу не так часто (это, безусловно, менее важно, чем фрагментация самих файлов), так как головки дисков переворачиваются повсюду, чтобы обслуживать разных пользователей.

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

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

Дэвид Спиллетт
источник
Есть ли такой механизм, как: файлы, которые часто используются во время загрузки, располагаются рядом друг с другом, чтобы получить преимущество от локальности? так быстрее загружаться?
2010 г.
1
Не то, что я знаю о. Вы можете использовать ureadahead, как последние сборки Ubuntu по умолчанию (см. Ubuntuforums.org/showthread.php?t=1434502 для получения дополнительной информации), чтобы добиться аналогичного эффекта. Некоторая задержка в последовательности загрузки Linux может быть уменьшена, если попросить его запускать службы по мере возможности, если это поддерживается загрузочной установкой вашего диска (установите CONCURRENCY = shell в / etc / defaults / rc в Debian) и аналогичные настройки. Чтобы проверить, вносите ли вы какие-либо изменения в изменения, которые вы вносите, используйте bootchart.org, чтобы показать, что происходит перед тем, как что-то настроить, по сравнению с последующим.
Дэвид Спиллетт
@uray, я восстановил давно заброшенный e2defragи экспериментировал с ним, чтобы добиться такой упаковки. Вы можете найти его на launchpad.net/e2defrag .
psusi
@ Дэвид: у меня нет, /etc/defaults/rcно есть /etc/default/rcSна Debian 6
Ctrl-Alt-Delor
@psusi - это e2defragтеперь лучше поддерживает Ext3, лучше чем shake?
Алекс С
0

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

Janc
источник
2
так что, если диск заполнен, нужно ли его дефрагментировать?
Ура