Выбор файловой системы для GNU / Linux на SD-карте


31

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

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

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

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

Ответы:


18

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

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

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

JFFS2

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

YAFFS2

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

LogFS

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

UBIFS

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

ext4

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

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

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


6
Спасибо, это очень информативно! Тем не менее, «большая красная заметка» на веб-сайте UBIFS гласит: «При работе с UBIFS люди должны понимать, что UBIFS сильно отличается от любой традиционной файловой системы - он не работает поверх блочных устройств (например, жестких дисков). , Карты MMC / SD, флэш-накопители USB, твердотельные накопители и т. Д.) UBIFS был разработан для работы поверх необработанной флэш-памяти, которая не имеет ничего общего с блочными устройствами. Именно поэтому UBIFS не работает на картах MMC и т. П. похожи на блочные устройства для внешнего мира, потому что они реализуют поддержку FTL (Flash Translation Layer) в оборудовании ".
gspr

3
Хороший ответ, плюс есть F2FS от Samsung, тоже очень многообещающая система, но совершенно новая.
13

16
@gspr правильно: SD имеет слой трансляции флэш-памяти, а JFFS2, YAFFS2, LOGFS и UBIFS предназначены для неуправляемой флэш-памяти. Опции для SD - это традиционные файловые системы блочных устройств, такие как ext2 / ext3 / ext4.
Роберт Калхун

@ Olli Является ли NILFS2 хорошим выбором для SSD?
SebMa

12

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

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

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

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

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


У меня были проблемы со старыми SD-картами и ext2 (повреждение данных), которые исчезли при переходе на XFS.
Александр

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
Обратите внимание, что я не тот, кто отрицал этот ответ. В общем, она содержит полезную информацию, но не связана с тем, что мне нужно. В любом случае, спасибо :)
gspr

0

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

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

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

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

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

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

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

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


2
Извините, но это на самом деле не отвечает на вопрос. Это интересное эссе об использовании съемных носителей, а не о выборе файловой системы.
Подозреваемый

Я хотел прокомментировать, но я не мог. Сообщение немного многословно, но я рекомендовал, чтобы ни OP не рассматривал его, я вместо этого рекомендовал FAT. Я должен был составить больше внимания и ясности наверняка.
Arch Abit

Почему есть Any file system which invites the host OS to write randomly to it (NTFS, Recycle Bin) is bad news for an SD.? Он не состоит из вращающихся дисков, поэтому я думаю, что неважно, где вы читаете / пишете. И между прочим, NTFS пишет непрерывно - что приводит к фрагментации. «Случайные хранилища файлов» - это, например, EXTα.
Привет, Ангел,

0

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

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


1
Сравнение несправедливо. Вы сравнили журналирование без журнала FAT с журналом EXT3 / 4. Вы должны сравнить FAT против EXT2. И только FYI, файловая система, которая была предварительно отформатирована производителем, обычно имеет самые оптимальные размеры / смещения блоков. Т.е. после того как вы переформатировали файловую систему, есть вероятность, что IO займет больше времени, чем с оригинальной.
Привет, Ангел,

0

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

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.