В комментариях к рассказу о причинах постепенной деградации флешек наши читатели интересуются тем, сколь долго сможет проработать флешка. Ответ на этот вопрос зависит в том числе и от количества циклов записи на флеш-носитель. Блогер Джош Брессерс (Josh Bressers) решил изучить этот вопрос основательно и провел тестирование, в ходе которого он проверил флешку на выносливость. Результат удивил его самого: флеш-накопитель оказался намного более крепким, чем предполагалось изначально. Нижеописанные действия не рекомендуется повторять, поскольку целью тестирования было проверить флешку на прочность. А сделать это можно только одним способом: вывести ее из строя.
Эксперимент проводился над флешкой Sony Microvault USB Flash Drive емкостью в 1 гигабайт. Важно понимать, что разные флешки будут вести себя по-разному. Это зависит от множества факторов, некоторые из которых были ранее рассмотрены на страницах нашего ресурса.
Тестирование флешки на выносливость
Для проведения тестирования Джош Брессерс написал специальную утилиту, использующую признак O_DIRECT. Это позволило файловой системе получать доступ непосредственно к файлу. Дело в том, что файловая система предпочитает кэшировать данные в оперативной памяти. Как работает кэширование, нашим читателям уже известно, поэтому на сей раз обойдемся без подробностей.
В большинстве случаев кэширование является оптимальным решением, но для задач данного теста оно не подходило, поскольку на прочность проверялась именно флешка. Обращаться каждый раз следовало именно к ней, а не к оперативной памяти. Чтобы использовать O_DIRECT, флешку пришлось переформатировать в файловую систему ext3. Изначально она поставлялась с файловой системой vfat, которая не отличается способностью корректно работать с признаком O_DIRECT.
Файловая система была создана следующим образом:
mkfs.ext3 -m 0 -b 1024 /dev/sdb1
Подготовка к эксперименту была окончена и началось само тестирование.
Сначала накопитель был целиком заполнен данными, оставлен лишь один свободный блок. Предполагалось записывать в него все новые и новые данные до тех пор, пока флешка не откажет. Создание тестового файла было осуществлено следующим образом:
dd if=/dev/urandom of=test-file bs=1024 count=1
Заполнение диска осуществлялось нижеприведенной командой:
dd if=/dev/urandom of=big-file
Далее последовало тестирование, проводившееся при помощи приложения, перезаписывающего тестовый файл до тех пор, пока флешка не отказала.
Оказалось, что одного блока мало. Сам Джош Брессерс не знает причин такого явления. Это особенности файловой системы. Для проведения этого теста потребовалось три свободных блока на флешке.
Джош Брессерс полагал, что флешка выдержит примерно 30 тысяч циклов перезаписи. То есть примерно 10 тысяч циклов записи в каждый блок.
Результаты тестирования
На графиках (здесь и далее), иллюстрирующих процесс тестирования, время приведено в микросекундах, а количество циклов в тысячах циклов.
Флешка отказала после того, как данные были записаны в нее 90 миллионов 593 тысячи 104 раза. Ее выносливость многократно превзошла ожидания. На осуществление каждого из большей части циклов записи требовалось примерно 1 тысяча 500 микросекунд (миллионных долей секунды).
На графике показано, что время от времени происходил «длинный» цикл записи: длительностью более 10 тысяч микросекунд. По всей видимости, флешка «почувствовала», что скоро не выдержит столь напряженной работы и стала замедлять скорость осуществления каждого цикла. При этом скорость чтения оставалась прежней.
Конец флешке пришел во время цикла записи, а не чтения. Терминал (консоль) выдал следующее сообщение об ошибке:
Message from [email protected] at May 15 07:44:03 …
kernel: journal commit I/O error
Интересно, что компьютер по-прежнему продолжал «видеть» накопитель и позволял считывать с него информацию, отказываясь лишь записывать данные. Джош Брессерс предполагает значительную вероятность того, что флешка сохраняет способность к чтению с нее данных даже после того, как она стала непригодной для записи. То есть вероятность потери данных ниже, чем потери способности к записи.
Впрочем, речь может идти только о вероятности. Никакой уверенности в таких случаях нет и быть не может. Следует учитывать, что выше изложены результаты тестирования конкретного экземпляра вполне определенной модели флеш-накопителя.
Другие эксперты полагают, что флешка способна выдержать примерно один миллион циклов записи или удаления данных.
По материалам bress.net