2

У меня есть развертывание около 20 Raspberry Pis с картами Kingston Micro SD HC Class 10 U1 16 ГБ в них, все клонированы из идентичного настроенного образа Raspbian. Небольшой текст на карточке гласит:

SDC10B2/16GB 31608-010-A00LF TAIWAN

Эта установка работает около 6 месяцев, и около 10 карт вышли из строя с некоторыми странными характеристиками.

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

Когда я столкнулся с этой проблемой, я обнаружил, что вошел в какой-то распи:

  • системные двоичные файлы, такие как vim и sudo не смогут загружать общие библиотеки (файлы .so )
  • Мой собственный исходный код будет иметь случайные байтовые ошибки при просмотре в редакторе
  • Повторная загрузка моего источника и запись в файлы пока исправят его для этих файлов.

Теперь я просмотрел все неисправные карты и заметил, что все они доступны и читаемы на моем Mac. Я написал скрипт для контрольной суммы всех файлов в разделе /boot 10 раз, измерил время и посчитал разные контрольные суммы.

На нормальной рабочей карточке это займет в среднем 0,3 секунды на каждую итерацию и, конечно, каждый раз возвращает одинаковую контрольную сумму.

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

Пример выполнения (число за именем файла - это количество различных контрольных сумм):

Повторные запуски на одной из карт, которые дают ошибку только для 1 файла, приводят к 4-10 различным контрольным суммам. Ниже приводится дубль с 5 контрольными суммами в порядке появления:

["9c91d29a602ac91b6db803aff2589099", "4c5e5e134bdd74c385b3ad69b28ea724", "9c91d29a602ac91b6db803aff2589099", "9c91d29a602ac91b6db803aff2589099", "9c91d29a602ac91b6db803aff2589099", "4ea7e6b69623405081f4db7a80d62bb4", "5a9d78acb7eefbc9839bab3fcc3f7599", "9c91d29a602ac91b6db803aff2589099", "1d6f8ad8a528e0abae0f00032eeb712b", "9c91d29a602ac91b6db803aff2589099"]

Как видно - одна контрольная сумма может повторяться даже после выдачи разных результатов между ними.

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

ВОПРОС 1: Связано ли такое повреждение с износом записи на карте и, если да, существует ли какой-нибудь дистрибутив Raspberry, оптимизированный для долгосрочного и низкого использования записи?

ВОПРОС 2: Это из-за дешевых карт, и я должен купить лучшие? Какие?

0