Какие шаблоны записи являются «дружественными к флэш»?

416
Archduke Liamus

Предположим, что мы говорим о заурядном USB-накопителе (который может или не может выполнять выравнивание при износе) и «тупой» файловой системе, которая не особенно оптимизирована для флэш-памяти (например, FAT32 и т. Д.). скорее всего, не имеет поддержки TRIM.

Поскольку блоки флэш-накопителей имеют ограниченное количество перезаписей, имеет смысл попытаться свести к минимуму как можно больше перезаписей. Теперь, если бы я создал несколько файлов A, B и C, а затем неоднократно изменил бы файлы на месте, это изнашивало бы диск больше, чем просто добавление B ', C' и т. Д. И, в конечном счете, удаление оригиналов, когда мне не хватало места ?

Я преждевременно оптимизирую или в этом есть доля правды?

(Примечание: это не о том, что диск или операционная система делают внутри. Это о том, как пользователь должен использовать это)

0
Чтобы уточнить, является ли ваш вопрос "Не считается ли изменение файла на месте записью в отношении срока службы флэш-памяти?" Andrew 5 лет назад 0
Скорее, наоборот: «избегать ли модификация на месте, как правило, избежать износа?» Archduke Liamus 5 лет назад 0
Флэш-носители дешевы и гораздо более устойчивы, чем раньше. Просто используйте диск и не беспокойтесь об износе. Keltari 5 лет назад 3
Я думаю, вы обнаружите, что на самом деле вы не собираетесь улучшать ситуацию. Я нашел эту статью на CNET, в которой, в основном, говорится, не беспокойтесь об этом, если вы не пишете что-то вроде 50 ГБ / день на диск. https://www.cnet.com/how-to/how-ssds-solid-state-drives-work-increase-lifespan/ Andrew 5 лет назад 1
Что происходит, когда пришло время удалить лишние файлы? Вам нужно пройти через ГБ файлов, чтобы определить, что нужно удалить. Вам также необходимо отслеживать свободное и использованное пространство и восстанавливать то, что нужно удалить после факта, а не разрешать автоматическое своевременное удаление. Если вы будете ждать слишком долго, ваша реальная работа может быть отложена из-за недостатка места. Похоже, вы хотите использовать свое собственное время и энергию для выполнения функций чипа контроллера на дешевом диске. (Продолжение) fixer1234 5 лет назад 1
Это не поможет вам выполнить свою собственную работу, а добавит работу для вас, чтобы потенциально получить немного больше жизни от дешевого устройства. Кремниевые монеты стоимостью в несколько копеек, предназначенные для облегчения вашей жизни, будут делегировать вам эту работу, чтобы вы могли выполнять ее на много порядков медленнее. Люди как низшие рабы силиконовых мастеров - звучит как фантастический фильм ужасов. :-) fixer1234 5 лет назад 1

1 ответ на вопрос

1
LawrenceC

Все USB-накопители имеют микроконтроллер, который принимает входящие USB-запросы и преобразует их в действия, согласующиеся с фактическим объемом памяти на USB-устройстве.

В случае USB-накопителей с флэш-памятью NAND микропрограмма / микроконтроллер на этих устройствах, вероятно (надеюсь) реализует FTL, который выполняет выравнивание при износе.

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

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

это не о том, что диск или ОС делают внутри.

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


«тупая» файловая система, которая не особенно оптимизирована для флэш-памяти

Файловым системам, «оптимизированным для флэш-памяти», требуется прямой доступ к оборудованию флэш-памяти, чтобы они могли самостоятельно выдавать команды стирания во флэш-память. Общение с устройством через USB, SATA, SCSI через команды запоминающего устройства не является прямым доступом.

Вероятно, самая простая ситуация, в которой вы можете столкнуться с этим, - это основанные на Linux маршрутизаторы потребительского уровня - базовая ОС Linux включена и имеет доступ к 4-мегабайтной, 8-мегабайтной, 16-мегабайтной или подобной флеш-микросхеме и может общаться с ней и управлять ею напрямую. Android телефоны похожи.

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

Теперь, если бы я создал несколько файлов A, B и C, а затем неоднократно изменил бы файлы на месте, это изнашивало бы диск больше, чем просто добавление B ', C' и т. Д.

Флеш-чипы читаются и пишутся на страницах. Они стираются в наборы страниц, которые Linux-проекты называют «стираемыми блоками». (Это сильно отличается от механических жестких дисков).

Устройства хранения данных на основе Flash реализуют FTL - слой трансляции флэш-памяти. Что это такое: они поддерживают внутреннюю таблицу, которая отображает видимые ОС "блоки" на видимые микропрограммой флэш-страницы (от PBA до LBA), и они также будут отслеживать, какие "стираемые блоки" готовы для новых данных. Входящие записи не будут переходить на флэш-страницу только на основе номера входящего блока, но там, где микропрограмма сочтет это хорошим местом, - и микропрограмма обновит свою внутреннюю таблицу PBA до таблицы LBA, чтобы найти ее, когда она потребуется в следующий раз.

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

Затем можно предположить, что записи, даже если один и тот же файл и «блок» с точки зрения ОС, не попадают в одно и то же место на флэш-памяти. Таким образом, вы ничего не получите, заботясь об изменении файлов на месте.


Мораль этой истории: не беспокойся об этом. Относитесь к нему как к обычному жесткому диску и сохраняйте резервные копии. Дрянные флешки умрут раньше хороших.

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