25

У меня встроенная система на базе ARM, работающая на SD-карте. В настоящее время это Debian GNU/Linux, использующий ext3 в качестве файловой системы. Когда я собираюсь переустановить систему, я начал задумываться о переходе на более дружественную к флеш файловую систему. Я слышал о JFFS2, YAFFS2 и LogFS, и все они, кажется, подходят для работы. Какой из них вы бы порекомендовали? Кроме того, я слышал, что в ext4 было много улучшений для лучшего соответствия SSD-дискам; я должен интерпретировать это как запуск ext4 должно быть просто отлично? Что мне нужно особенно думать в этом случае?

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

Спасибо за любые ответы.

Редактировать: Википедия сообщает мне (в заявлении "требуется цитирование"), что съемные карты флэш-памяти и флэш-накопители USB имеют встроенные контроллеры для выравнивания износа и исправления ошибок, поэтому использование определенной файловой системы флэш-памяти не добавляет никакой выгоды. Таким образом, я склонен придерживаться файловой системы ext.

6 ответов6

16

Отличная статья о флеш-файловых системах.

При обсуждении файловых систем флэш-памяти важен следующий вопрос: что такое выравнивание износа? Статья в Википедии. В основном, на флэш-дисках вы можете писать ограниченное количество раз, пока блок не выйдет из строя. После этого файловая система (если на оборудовании нет встроенного управления выравниванием износа, как это обычно бывает с твердотельными накопителями) должна пометить этот блок как недействительный и избегать его использования.

Типичные файловые системы (например, ReiserFS, NTFS, ext3 и т.д.) Предназначены для жестких дисков, которые не имеют таких ограничений.

JFFS2

Включает сжатие и элегантную защиту от износа.

YAFFS2

  • Единственная вещь, которая имеет значение: короткое время монтирования, после успешного монтирования.
  • Реализует свойство write Once: когда данные записываются в один блок, нет необходимости перезаписывать его. Это важно, так как снижает износ.

LogFS

  • Не очень зрелый, но уже включенный в дерево ядра Linux.
  • Поддерживает большие файловые системы, чем JFFS2/YAFFS2 без проблем.

UBIFS

  • Более зрелый, чем LogFS
  • Поддержка записи в кеширование
  • О масштабируемости: статья. На больших дисках, лучшая производительность, чем с JFFS2

ext4

Если ни один драйвер или плата (например, SSD-накопители не имеют внутреннего выравнивания износа, по крайней мере, обычно) управляют выравниванием износа, то ext4 - не лучшая идея, поскольку она не предназначена для использования с необработанной флэш-памятью.

Какой из них лучше?

Конечно, это зависит от использования и поддержки. Из того, что я прочитал в Интернете, я бы порекомендовал UBIFS. Хорошая поддержка больших файловых систем, зрелая фаза разработки, адекватная производительность и отсутствие огромных недостатков.

10

Я столкнулся с той же проблемой и провел некоторые исследования. В конце концов я решил пойти с ext2.

Кажется, что некоторые карты SDHC реализуют свое собственное выравнивание износа на аппаратном уровне. Если вы можете заполучить SDHC-карты с выравниванием износа.

Файловые системы, обеспечивающие выравнивание износа, могут мешать выравниванию износа на уровне Flash, поэтому использование флэш-памяти может быть вредным (цитируемая выше статья IBM рассказывает о том, как это делает JFFS, поэтому ясно, что это не будет работать с уровнем вспышки WL). Я решил, что мне не нужно журналирование ext3, так как я не храню на нем критически важные данные и обычно все равно регулярно делаю резервные копии (cron).

Я также установил /tmp и /var как tmpfs, чтобы ускорить процесс. Если у вас достаточно оперативной памяти, вы должны это сделать (но обязательно регулярно меняйте или удаляйте журналы)

СОВЕТ: Установите свои карты памяти SD с опцией "noatime"

1

Я не знаю, вписывается ли это в профиль вашей системы, но как насчет использования файловой системы только для чтения и раздела для чтения и записи (или флешки, которую можно легко заменить)? Таким образом, у вас будет быстрый диск для вашей ОС, и вы сможете легко заменить хранилище rw, когда оно изнашивается.

И еще есть unionfs. Как я понял, он "укладывает" разные файловые системы (то есть ro fs поверх rw fs). Если есть доступ для чтения, unionfs ищет в стеке, пока не достигнет FS, содержащей файл, который мы ищем. При записи unionfs ищет первую записываемую FS в стеке и использует ее.

Я также нашел эти статьи, которые могут быть интересны:http://www.linux-mag.com/id/7357/ http://www.linux-mag.com/id/7345/

И две статьи с советами по использованию твердотельных накопителей:http://danweinreb.org/blog/using-solid-state-disks-on-linux http://www.zdnet.com/blog/perlow/geek-sheet-a- твикеры-гид-к-полупроводниковых-дисков SSDS-и-Linux /9190

1

Выбор (и определение размера) правильной файловой системы важнее всего, не только для безопасности, но и по многим другим причинам, которые люди обычно не распознают. Без файловой системы вся обработка была бы нулевой.

Очень хорошо сформулированный ответ Олли, и ОП сильно устарела, но файловые системы - моя любимая мозоль, я не мог остаться в стороне. Я не был администратором сайта superuser.com, я не являюсь администратором, но я зарегистрировался и собираюсь посетить больше.

С 2011 года многое изменилось, но даже тогда я отформатировал USB-карты в формате FAT и использовал USB-накопители для хранения файлов размером 4 Гб +. Причиной, конечно, была совместимость, а не безопасность (так много для S в SD, но я использую пароли на своих 7z), и я никогда не носил ничего большего, чем CD ISO, они были в основном для сценариев SQL и ежедневных почасовых различий уже зашифрованные снимки базы данных сжаты почти до смерти 7-Zip.

В эти дни я ношу любую SD быстрее, чем кто-либо, кого я знаю. В некоторых производственных машинах у моего работодателя есть USB-накопитель для ежечасного автоматического резервного копирования в формате FAT. Хотя я слежу за ними каждый день и, как вы уже догадались, вручную поддерживаете их (они защищены в автономном режиме при создании ITAR). SSD выровнял некоторые игровые поля, но я до сих пор не доверяю им так же сильно, как обычным HD, а SD хуже оптического. Они испортятся в одно мгновение, и потеря будет полной.

Любая файловая система, которая предлагает операционной системе хоста произвольно записывать в нее (NTFS, Recycle Bin), является плохой новостью для SD. Кроме того, размонтирование очень помогает, ни одна ОС не пытается получить доступ к несмонтированному хранилищу, поэтому любая файловая система будет делать это, пока на SD есть скрипт для размонтирования себя (один из стандартных файлов на каждой моей SD).

Чтение SD сегодня все еще медленное, поэтому я бы порекомендовал что-то вроде дампа диска (dd), чтобы захватывать все изображение при зеркалировании, а не по файлам. dd также сообщит, когда что-то не так, поэтому ваш файловый менеджер не пойдет kaboom.

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

Я избегаю ext4 или каких-либо журналов FS на SD, потому что мне все равно, когда они плохо пишут, но, конечно, больно, когда через день или около того я не могу их прочитать!

0

если вы хотите SD карту без потерь, я предлагаю использовать BTRFS потому что:

BTRFS - это новая файловая система по сравнению с EXT, изначально созданная Oracle в 2007 году.

Он привносит новые возможности в традиционные файловые системы:

  • Клонирование / моментальные снимки
  • Diffs (отправить / получить)
  • Quotat
  • союз
  • Самовосстановление (с периодами коммитов по умолчанию до 30 с)

для дополнительного объяснения и сравнения обратитесь к этому PDF

для новых сравнений обратитесь к этому сайту

0

В ответ на рекомендацию использовать fat (32?): Я провел несколько тестов производительности и выяснил, что fat32 имеет очень предсказуемое время для записи файла (2 ГБ требуют два раза по 1 ГБ + смещение, 3 ГБ - время дерева 1 Гб + смещение). Производительность ext4 немного лучше, чем ext3. И ext3, и ext4 иногда бывают быстрыми, но иногда им требуется дополнительное время для записи файлов журнала на диск (без линейного поведения времени записи). Все тесты были выполнены с помощью fsync (), чтобы убедиться, что файл действительно записан на диск. Я выполнил несколько тестов с помощью sync (). Они приводят к очень плохой производительности записи. Поэтому я вернулся к fsync (). Я сделал несколько проверок, достаточно ли fsync (). Поэтому я включил устройство без выключения системы или извлек SD-карту без размонтирования. Ни в коем случае записанные файлы или структура каталогов не были повреждены. Поэтому мы решили использовать ext4 и только fsync ().

С уважением, Томас

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .