FileSystem microSD cards/ru

From Openmoko

Jump to: navigation, search



Contents

Какую файловую систему выбрать

Я раздобыл новую SD-карту. Какую файловую систему выбрать?

Краткий ответ: ext3. Другие варианты: ext2, vfat. Не используйте файловые системы, учитывающие износ, вроде jffs2 или ubifs.

Почему ext3

В принципе, вы можете применять любые файловые системы (ФС), которые поддерживаются ядром ОС вашего смартфона. Как правило, это FAT, ext2 и ext3. Поддержка reiserfs на данный момент не включена в стандартное ядро. Отличие ext3 от FAT и ext2 состоит в наличии журналирования (которое также есть в reiserfs).

Журнал — это дополнительная структура данных, которая обеспечивает целостность ФС. Обычно при крахе операционной системы ФС повреждается и даже может стать непригодной к использованию. ФС, имеющая журнал, сначала записывает изменения в журнал, и лишь потом изменяет основные данные. Если что-то пошло не так, ФС может обратиться к журналу, повторить записанные там операции и восстановить данные. Без журнала подобные действия невозможны, и в случае сбоя может оказаться невозможно восстановить ФС.

Если вы почитаете рассылку сообщества (см. прим. 1 ниже), то увидите, что одна часть участников ратует за fat и ext2, в то время как другая часть, имевшая дело с повреждением данных, считает обе системы не лучшим выбором. Хотя ext3 не гарантирует отсутствие ошибок (она не проверяет запись), она остаётся лучшим вариантом с точки зрения минимизации потерь при повреждении ФС.

Журналируемая ФС имеет три недостатка:

  1. Пониженная производительность при записи, поскольку ФС выполняет дополнительные действия с журналом.
  2. Повышенная вероятность повреждения SD-карты, поскольку работа с журналом вызывает дополнительный износ.
  3. Пониженный полезный объём, поскольку часть полного объёма устройства занята журналом.

Касательно производительности: если вы используете SD-карту преимущественно для хранения статичных данных, вроде карт и музыки, то с производительностью проблем не будет. После начальной инициализации хранилища операции чтения не будут замедляться работой с журналом. Рекомендуем также ознакомиться со сравнительным тестированием нескольких ФС Linux.

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

Скорее всего, ваша новая карта уже отформатирована производителем в формате FAT. Плюс FAT в том, что она распознаётся многими операционными системами. Структура FAT проста, а значит, работа с ней требует меньше операций записи (спорное заключение — прим. phantom) и меньше вычислительных затрат (не проверено); кроме того, существует множество инструментов для восстановления данных после сбоев.

Также важно, что ext быстрее FAT (тесты?), но, что самое важное, она поддерживает права, чего нет в FAT. Конечно, FreeRunner в целом предполагает единственного пользователя, и права, наверное, не так важны. Другое преимущество ext2/3 заключается в поддержке жёстких и символических ссылок, что позволяет избавиться от избыточных копий файлов. Например, если вы храните карты, и некоторые фрагменты являются пустыми, вы можете сделать единственный файл для пустого фрагмента и во всех случаях, где это необходимо, сделать ссылки на него (для этого потребуется скрипт).

Почему не jffs2 или ubifs

Как насчёт файловых систем типа jffs2 и ubifs, которые учитывают износ Flash-памяти?

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

Примечания

1: Эта статья написана в основном по отзывам пользователей почтовой рассылки сообщества OpenMoko: подробности здесь и здесь.

2: Файловые системы являются достаточно сложными компонентами операционной системы и имеют разные сильные и слабые стороны, поэтому дать уверенный ответ на вопрос, какая ФС является наилучшей, весьма затруднительно. Если вы почитаете рассылку сообщества, то увидите, что у каждой из трёх упомянутых ФС есть сторонники. Кроме того, хотя приведённые соображения резюмируют известные и проверенные факты, до сих пор нет сравнительных тестов, учитывающих специфику архитектуры OpenMoko в сочетании с microSD-картами.

Personal tools