Перейти к содержанию
    

надежная файловая система для SD (чтоб не появлялись bad blocks или чтоб была малочуствительна к ним)

Устройство безостановочно работает месяцами-годами. Периодически пишет на SD-карту. Используется FAT32 (из FatFS Чина), SDIO интерфейс.

И есть сильные подозрения, что внутренний контроллер SD карты не очень-то и выравнивает количество записей по физическим секторам. В результате появляются bad block, и время чтения некоторых секторов сильно увеличивается. Бэды появляются там, куда часто пишем (FAT). Время доступа тоже очень вырастает для части блоков.

Пример ниже. Тестировал чудесной прогой DiskGenius, карта SаnDisk 16GB после примерно года работы (заполненность файлами примерно 10% и менее): два блока плохих и кучка "тормозных":

image.thumb.png.bac6f9e6d257b79148ca57de567fc705.png

 

Вопрос даже не в том кто виноват (я, конечно), а в том, как с этим бороться (не со мной, а с проблемами на карте)?

Я думаю, что нужно менять файловую систему, но на что? Хотелось бы:

- чтобы не писала в одно и то же место (уменьшить пероятность "затирания" физического сектора)

- чтоб возникновение bad block не было критичным

- устойчивость к резким отключениям не так важна (так как есть резервное питание), но приветствуется.

В наличии STM32F4, память есть. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

LittleFS выравнивание износа и поддержку горячего отключения поддерживает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

55 минут назад, Ruslan1 сказал:

Я думаю, что нужно менять файловую систему, но на что?

Много раз уже перетиралось тут: На кольцевой буфер(-ы).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

35 minutes ago, arhiv6 said:

LittleFS выравнивание износа и поддержку горячего отключения поддерживает.

у LittleFS есть драйвера под Винду? или софт? в Интернете вижу обсуждение "LittleFS Explorer for Windows", может оно?

 

36 minutes ago, jcxz said:

Много раз уже перетиралось тут: На кольцевой буфер(-ы).

При чем тут кольцевые буферы? Мне нужна система работы с файлами. Разными файлами. С функциями создания, удаления, добавления, чтения, и чтобы можно было создавать-удалять директории (хотя бы два уровня вложений от корневого), и поддержка длинных имен очень желательна.

Ну и чтобы не приходилось долго объяснять, как эту SD-карту увидеть на компьютере (ну максимум спец драйвер или спец-ТоталКоммандер какой-то поставить).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, Ruslan1 said:

LittleFS Explorer for Windows

https://github.com/bluscape/LittleFS-Explorer-for-Windows

Всё есть давно уже

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за наводку, буду смотреть. Через недельку собираюсь впихивать что-то на место FAT32/FatFS. 

Уже понятно, что для меня ключевыми критериями для выбора новой файловой системы будут:

- wear levelling (must be)

- возможность чтения-записи этого носителя в операционке Windows, можно с дополнительным софтом (must be).

- интеграция в программу на Си в виде исходника (чтоб дебагить-править можно было)

 

первый кандидат - предложенный выше LittleFS, но посмотрю еще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

07.09.2021 в 13:09, Ruslan1 сказал:

Периодически пишет на SD-карту.

 

11 минут назад, Ruslan1 сказал:

- wear levelling (must be)

Вы о чем сейчас? Чего вы там выравнивать будете, это все уже есть в сд карте, это не голый нанд...

07.09.2021 в 14:55, Ruslan1 сказал:

При чем тут кольцевые буферы? Мне нужна система работы с файлами. Разными файлами. С функциями создания, удаления, добавления, чтения, и чтобы можно было создавать-удалять директории (хотя бы два уровня вложений от корневого), и поддержка длинных имен очень желательна.

Ну и чем тогда фат32 не угодил? Ошибки? Ну дак от этого не застрахует никакая фс. Только безопасное отключение или дублирование (троирование).

ЗЫ. Ну и не факт, что вы сами не накосячили со своей программой.

07.09.2021 в 13:09, Ruslan1 сказал:

И есть сильные подозрения, что внутренний контроллер SD карты не очень-то и выравнивает количество записей по физическим секторам.

Не покупайте дешевый нонейм и все будет гуд...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, mantech said:

 

Вы о чем сейчас? Чего вы там выравнивать будете, это все уже есть в сд карте, это не голый нанд...

Угу. я тоже так думал. Блажен кто верует. Оно может и выравнивает, но в некоторых очень ограниченных пределах (как я понимаю, таблица резервных блоков иссякает, если она вообще есть там внутри):

image.png.d4d3a2f345aaa5639c7cc1d247ec56ae.png

Так что буду выравнивать заранее

 

1 hour ago, mantech said:

Ну и чем тогда фат32 не угодил? Ошибки? Ну дак от этого не застрахует никакая фс. Только безопасное отключение или дублирование (троирование).

Да не в отключении дело, а в появлении bad blocks во время работы.

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

1 hour ago, mantech said:

ЗЫ. Ну и не факт, что вы сами не накосячили со своей программой.

Это всегда возможно, но пока не нашел.

1 hour ago, mantech said:

Не покупайте дешевый нонейм и все будет гуд...

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

Кстати, а что именно Вы считаете лучшим не-дешевым не-ноунеймом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

51 минуту назад, Ruslan1 сказал:

Кстати, а что именно Вы считаете лучшим не-дешевым не-ноунеймом?

Скажем так, были проблемы с quimo, smartbay, хорошо работают trancend, sandisk (только не подделки их, разумеется), ну и индустриалки, например apacer slc...

51 минуту назад, Ruslan1 сказал:

А троирование только увеличит количество записей в область FAT.

Под троированием и дублированием подразумевалась не запись 3х одинаковых файлов, а именно свои разделы. В чем там сложность мне не понятно, пару часов работы, а вот сколь потратите на портирование экзотики - только вам известно...

51 минуту назад, Ruslan1 сказал:

Угу. я тоже так думал. Блажен кто верует.

А точно это аппаратные бэды? В смысле, после переформатирования, и прогона полной записи, например h2testw, они не пропадают?

51 минуту назад, Ruslan1 сказал:

Так что буду выравнивать заранее

Ну дак ставьте тогда нанд slc и будет счастье и надолго, ибо если ставить выравнивание и экзотическую фс - какой смысл в сд карте?

ЗЫ. Хотя от себя замечу - с картами работаю плотно и долго, с норм. производителем никаких проблем, работает годами в 24\7 если все правильно сделать...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/7/2021 at 7:55 PM, Ruslan1 said:

Мне нужна система работы с файлами.

Посмотрите Red FS от Reliance Edge. Использовал её в нескольких проектах. На порядки устойчивее Fat FS. Правда, в редких случаях, при интенсивном тестировании всё-таки сбои были. Разбираться мне время не дали, сказали, что "и так сойдёт".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, haker_fox сказал:

Посмотрите Red FS от Reliance Edge. Использовал её в нескольких проектах. На порядки устойчивее Fat FS. Правда, в редких случаях, при интенсивном тестировании всё-таки сбои были. Разбираться мне время не дали, сказали, что "и так сойдёт".

В репозитории https://github.com/datalightinc/reliance-edge нет описания её устройства и принципов работы. Оригинальный сайт производителя недоступен, поскольку компания была куплена и ссылки протухли. На новом сайте просят регистрацию. У вас где-нибудь осталось её внутреннее описание без регистрации и СМС?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, mantech сказал:

Ну и чем тогда фат32 не угодил? Ошибки? Ну дак от этого не застрахует никакая фс. Только безопасное отключение или дублирование (троирование).

Журналирующая запись сделает любое небезопасное отключение, безопасным.  :good2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, jcxz сказал:

Журналирующая запись сделает любое небезопасное отключение, безопасным.  :good2:

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

07.09.2021 в 13:09, Ruslan1 сказал:

И есть сильные подозрения, что внутренний контроллер SD карты не очень-то и выравнивает количество записей по физическим секторам.

Есть сильное подозрение, что это зависит от контроллера и в частности по этому показатели Industrial grade SD-карты отличаются от прочих. Что, в частности, отличает их по цене и гарантиям от производителя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 minutes ago, makc said:

У вас где-нибудь осталось её внутреннее описание без регистрации и СМС?

Всё, что у меня есть

 

Reliance_Edge_Developers_Guide_PDF_781.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...