TRIM работает с FAT32?

Я использовал это руководство webupd8 , чтобы помочь мне настроить мой SSD на Ubuntu 13.10. В руководстве говорится, что «вы должны убедиться, что раздел (ы) - EXT4 или BTRFS». К сожалению, я тупо предположил, что HD был отформатирован в ext4; на самом деле это fat32.

var/log/trim предполагает, что он работает:

*** Sun, 15 Dec 2013 11:30:42 +0000 ***
/: 50567962624 bytes were trimmed

Но действительно ли он что-то делает? Или мне придется переформатировать диск и начать все заново?

Извините, если это звучит немного параноидально. Любое заверение высоко ценится.

4
задан 16 December 2013 в 00:24

3 ответа

В соответствии с этой :

FAT: сделать сброс опции монтирования

и википедии :

Запросы обрезки автоматически выполняются Ext4, Btrfs, FAT, GFS2 и XFS.

Так что да, это поддерживается. Но чтобы убедиться, примените тест из ответа на этот вопрос.

ОБНОВЛЕНИЕ :

Смэки провел тест и подтвердил (см. Комментарии), что TRIM работает над томами FAT32.

0
ответ дан 16 December 2013 в 00:24

Я вижу, что это старый вопрос ... но он возникает в начале поисков по этой теме, так что, похоже, стоило дать ответ из источников в ядре.

Существует два различных способа, которыми реализация файловой системы Linux может «поддерживать» TRIM:

  • Она может поддерживать опцию -o discard монтирования , поэтому блоки, которые становятся free обрезаются немедленно

  • Он может поддерживать FITRIM ioctl , который команда userland fstrim использует для обрезки всех свободных на данный момент блоков. по запросу

Данная реализация файловой системы может поддерживать одну или другую, или обе (или ни одну).

Как оказалось, реализация FAT была в состоянии сделать discard начиная с ядра 2.6.28 . Это даже предшествовало опции монтирования, которая не появлялась до 2.6.33. С 2.6.28 по 2.6.32 FAT просто был записан в discard безоговорочно. Начиная с 2.6.33, вы можете контролировать, делает это или нет.

Что касается FITRIM ioctl, ну, это стало вещью в 2.6.37 , но я не вижу никаких признаков того, что код файловой системы FAT поддерживает его, даже в самой последней, самой большой ( на сегодняшний день) 4.13rc5 . Несколько других файловых систем внедрили его, но, похоже, никто не беспокоился о FAT.

Это слишком плохо, потому что есть, по крайней мере, один совершенно распространенный сценарий, в котором вы хотите получить способ TRIM для всех существующих свободных блоков одновременно: вы дали своему старому Banana 6000 прекрасное обновление с помощью dd -ing. полный образ диска от старого вращающегося диска до блестящего нового SSD, так что теперь, что касается SSD, все эти блоки записаны, независимо от того, имеют ли они значение для файловой системы или нет. Так что, конечно, вы хотите, чтобы те, которые файловая система считала свободными, были обрезаны.

1136 Но может быть надежда. Хотя у меня еще не было возможности попробовать это, я думаю, что это может сработать:

  1. Смонтируйте файловую систему (обязательно используйте -o discard).
  2. Создайте несколько пустых файлов.
  3. Увеличьте их до максимально возможного размера, используя fallocate -n (который распределяет блоки, ничего не записывая в них, поэтому не будет сильно изнашиваться SSD). Для FAT32 размер файла не должен превышать 4 ГБ, поэтому вам может понадобиться куча временных файлов, чтобы использовать все свободное пространство. (Чтобы этот шаг работал, вам нужно ядро ​​4.5 или более поздней версии, где FAT имеет поддержку fallocate .)
  4. Как только вы заполнили все свободное пространство, избавьтесь от временных файлов позволяя всем освобожденным блокам быть discard ред.

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

p.s. Мне нравятся альтернативные ссылки, предлагаемые ниже в комментарии Тома Яна. Я работал с более-менее официальным git-репо, но мне нравится в сервисе, с которым связан Том, то, что вы можете более легко переключаться между различными версиями файла для сравнения.

0
ответ дан 16 December 2013 в 00:24

Следующие файловые системы поддерживают TRIM: NTFS, HFS +, EXT4, Btrfs.

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

Linux начал поддерживать TRIM еще в конце 2008 года, но не все файловые системы, поддерживаемые Linux, поддерживают TRIM. Microsoft Windows начала поддерживать TRIM в конце 2009 года с Windows Server 2008. OpenSolaris начала поддерживать TRIM в середине 2010 года. Android для мобильных устройств только начала поддерживать TRIM в 2013 году.

Итак, на данный момент многие, но не все основные операционные системы поддерживают TRIM, который в настоящее время доступен только для интерфейсов SATA.

TRIM (также пишется триммер) - это специальная команда в интерфейсе последовательного ATA (SATA), которая сообщает базовому твердотельному запоминающему устройству NAND, какие данные оно может стереть. TRIM, который концептуально можно сравнить с утилитой дефрагментации на вращающемся жестком диске, повышает производительность за счет активного освобождения места.

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

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

Для работы TRIM операционная система (ОС) хоста и драйверы хранилища должны поддерживать команду TRIM. Вот как работает TRIM SSD. Например, в среде Windows 7, когда твердотельный накопитель сообщает о поддержке TRIM, операционная система отключит дефрагментацию диска и включит TRIM. Затем, когда файл на SSD хоста удаляется, ОС посылает команду TRIM на контроллер флэш-памяти, сообщая ему, какие блоки можно удалить. TRIM также может быть инициирован пользователем вручную или запланирован на ежедневной основе.

TRIM, которая является командой, а не аббревиатурой, в настоящее время доступна только для интерфейсов SATA. Комитет SAS добавил UNMAP, похожий на TRIM, в спецификацию SAS / SCSI. Leah Schoeb

EDIT

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

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

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

Не все файловые системы используют Trim. Среди файловых систем, которые могут автоматически выдавать запросы Trim, - Ext4, Btrfs, FAT, GFS2 и XFS. Однако по умолчанию это отключено из-за проблем с производительностью,

Microsoft утверждает, что TRIM была реализована только в NTFS в Windows 7.

0
ответ дан 16 December 2013 в 00:24

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

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