Что не нуждается в дефрагментации? Linux или ext2 ext3 FS?

32

Почему бы вам не дефрагментировать систему Linux? Потому что он использует файловую систему ext2 / ext3 или потому что это Linux?

Это актуально, так как у меня есть система двойной загрузки (W7 / Ubuntu) и общий раздел (NTFS), к которому могут обращаться обе системы. Если я использую этот раздел с Linux, будет ли он фрагментирован?

Другой проблемой являются контейнеры Truecrypt. Я также получаю к ним доступ через Linux и Windows, и они FAT32. Являются ли они фрагментированными операционной системой Linux?

хуг
источник
2
Другие ответы хороши, но пропускаем один важный бит: Все файловые системы: ext2 / 3/4 и NTFS будут фрагментировать файлы довольно часто, когда на диске мало места. Если вы хотите предотвратить фрагментацию, не позволяйте вашей файловой системе превышать 90%.
Zan Lynx
1
Если вы используете ext4, то вы будете удивлены, увидев, сколько фрагментации вы можете иметь при запуске e4defrag -v .в дереве каталогов, особенно если оно содержит, скажем, файлы, загруженные с помощью торрент-клиента (хотя некоторые используют fallocate/ posix_fallocate).
rbrito
Хотя этот вопрос зависит от личного мнения, я думаю, что он больше опирается на реальные факты.
Джули Пеллетье

Ответы:

27

Вот статья на How To Geek о том, как ext2 / ext3 распределяет файлы на диске. И у них также есть статья, спрашивающая " Вам действительно нужно дефрагментировать ?"


Почему FAT становится фрагментированным:

«Когда вы сохраняете файл в файловой системе FAT, [файл сохраняется] как можно ближе к началу диска. Когда вы сохраняете второй файл, [файл сохраняется] сразу после первого файла - и так on. Когда исходные файлы увеличиваются в размере, они всегда становятся фрагментированными. Для них нет места поблизости ».
-Как выродок

И в Википедии есть больше информации о фрагментации FAT .

Как EXT2,3,4 размещать файлы:

«Файловые системы ext2, ext3 и ext4 [...] распределяют файлы более интеллектуальным способом. Вместо размещения нескольких файлов рядом на жестком диске, файловые системы Linux разбрасывают различные файлы по всему диску, оставляя большое количество свободного пространства между ними. "
-Как выродок

(И больше информации о дефрагментации на ext3, из Википедии )

«Современные файловые системы Linux поддерживают минимальную фрагментацию, сохраняя все блоки в файле близко друг к другу, даже если они не могут быть сохранены в последовательных секторах. Некоторые файловые системы, такие как ext3, эффективно выделяют свободный блок, ближайший к другим блоки в файле. Поэтому нет необходимости беспокоиться о фрагментации в системе Linux. "
- TLDP

dougBTV
источник
4
Отличный ответ! Но вы должны положить немного больше контента. Идея состоит в том, что любой ответ на StackExchange должен быть достаточным сам по себе. Если ссылки на ваши вопросы будут повреждены, ваш ответ не поможет, поэтому вы должны дать достаточное объяснение в своем посте, а затем дать ссылки для дальнейшего чтения.
lgeorget
1
Спасибо @lgeorget - я добавил в ответ некоторые цитаты о направлениях, так что всегда есть какое-то содержание, чтобы прочитать вопрос «почему». Я ценю ваш вклад / конструктивный крит !!
dougBTV
Msgstr "Когда вы сохраняете файл в файловую систему FAT, он сохраняет". Не имеет смысла Что это такое"? FAT - это формат файловой системы. Он описывает, где вы можете сохранить, но не ограничивает вас одним местом. На самом деле ОС решает. Но есть много разных ОС, которые могут писать в FAT, и каждая принимает свое решение.
MSalters
@MSalters - согласился. Я отредактирую процитированный раздел, чтобы опустить эту неопределенность.
dougBTV
Туманность скрыта только сейчас. Утверждение все еще довольно абсолютное (где "FAT" сохраняет), в то время как вся спецификация FAT не говорит ничего подобного. Фактически, ссылка на Википедию, которую вы цитируете, прямо противоречит ей: в ней конкретно говорится, что Windows выбирает расположение для второго файла не сразу после первого файла. («
Выбор
23

Фрагментация - это всегда проблема независимо от того, какая файловая система. Ext3 / Ext2, тем не менее, минимизировали проблему до такой степени, что большинство администраторов работают так, как будто это не проблема. Это сводится к минимуму благодаря использованию компетентного планировщика ввода-вывода и файловой системе, оставляющей конечное пространство после каждого файла для обеспечения роста. Кроме того, дополнительные фрагменты хранятся ближе друг к другу, поэтому даже при фрагментации эффекты сильно приглушаются. Переключение Ext4 на экстенты также было предназначено для смягчения фрагментации еще дальше.

Фрагментация все еще существует, у ext2 был автономный инструмент дефрагментации, у ext4 есть онлайн-инструмент, а у btrfs (только потому, что он связан с вопросом) уже есть онлайн-дефрагментация. Если вы используете ext3, ваш единственный реальный выбор - либо конвертировать в ext4 (через tune2fs), либо попытаться увидеть, насколько вам повезло с такими инструментами пользовательского пространства, как shake.

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

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

Bratchley
источник
Msgstr "Это минимизировано за счет использования грамотного планировщика ввода-вывода". С этой фразой что-то не так.
Фахим Мита
Спасибо, что поймали это. Я немного плохо пересматриваю свой язык, не исправляя проблем, которые вызывает пересмотр с общей грамматикой предложения параграфа.
Братчли
Это хороший ответ. Я хотел бы добавить что-то о CoW (копировать на запись). Он имеет тесную связь с тем, фрагментируется ли fs.
Мартин Сугиоарто,
4

Отвечая на ваши вопросы, один за другим:

Почему бы вам не дефрагментировать систему Linux? Потому что он использует файловую систему ext2 / ext3 или потому что это Linux?

Поскольку в ext2 / 3/4 другой подход к файлам и папкам, они практически не фрагментированы. Другие уже ответили об этом, и вы можете прочитать более подробную информацию здесь

Это актуально, потому что у них есть система двойной загрузки (W7 / Ubuntu) и общий раздел (NTFS), к которым могут обращаться обе системы. Если я использую этот раздел с Linux, будет ли он фрагментирован?

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

Другой проблемой являются контейнеры Truecrypt. Я также получаю к ним доступ через Linux и Windows, и они FAT32. Являются ли они фрагментированными операционной системой Linux?

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

Но, помните, никогда не стоит иметь несколько копий одного контейнера, это может помочь снизить его безопасность. Всегда делайте новый контейнер.

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

И если вы беспокоитесь о безопасности truecrypt в отношении фрагментации, поинтересуйтесь использованием truecrypt с твердотельными накопителями: поскольку SSD пытается контролировать износ всей памяти внутри него, вы можете получить тот же эффект, что и копирование контейнера.

woliveirajr
источник
3

В конце концов, все зависит от драйверов файловой системы в ОС.

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

Разница заключается в том, насколько далеко впереди могут выглядеть драйверы файловой системы. Если драйвер знает, что нужно написать еще 10 блоков, он может выбрать непрерывную свободную область и избежать фрагментации в будущем. Это зависит от архитектуры драйвера, которая зависит от ОС. Но точно такой же поиск свободного места может быть сделан на FAT и ext2.

На самом деле, ext2 и FAT не так уж отличаются, как вы думаете. Я написал часть ext2 загрузчика поверх существующего кода FAT, и для этого потребовалось менее 100 дополнительных строк кода.

MSalters
источник