У коментарях до розповіді про причини поступової деградації флешок наші читачі цікавляться тим, як довго зможе пропрацювати флешка. Відповідь на це питання залежить в тому числі і від кількості циклів запису на флеш-носій. Блогер Джош Брессерс (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 7:44:03 ...
kernel: journal commit I / O error
Цікаво, що комп'ютер як і раніше продовжував «бачити» накопичувач і дозволяв зчитувати з нього інформацію, відмовляючись лише записувати дані. Джош Брессерс передбачає значну ймовірність того, що флешка зберігає здатність до читання з неї даних навіть після того, як вона стала непридатною для запису. Тобто ймовірність втрати даних нижче, ніж втрати здатності до запису.
Втім, мова може йти тільки про ймовірність. Жодної впевненості в таких випадках немає і бути не може. Слід враховувати, що вище викладені результати тестування конкретного екземпляра цілком певної моделі флеш-накопичувача.
Інші експерти вважають, що флешка здатна витримати приблизно один мільйон циклів запису або видалення даних.
За матеріалами bress.net