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


31

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

Я думаю, використання системи є важливим. Але задля загальності, уявіть, що вона буде робити стандартні матеріали для робочого столу (навіть якщо це нечисленна система на основі ARM).

Дякую за будь-які відповіді.

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

Відповіді:


18

Чудова стаття про флеш-файлові системи .

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

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

JFFS2

Містить компресію та елегантний захист від вирівнювання.

YAFFS2

  • Єдина річ, яка має різницю: короткий час монтажу, після успішного спуску.
  • Програми пишуть один раз властивість: раз дані записуються в один блок, переписувати їх не потрібно. Це важливо, оскільки це зменшує знос.

LogFS

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

UBIFS

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

ext4

Якщо жоден драйвер або карта (наприклад, накопичувачі SSD не мають внутрішнього рівня зносу, принаймні, як правило) справляються з рівнем зносу, то ext4 - не найкраща ідея, оскільки вона не призначена для використання в режимі необмеженої спалаху.

Який із них найкращий?

Звичайно, це залежить від використання та підтримки. З того, що я читав в Інтернеті, я б рекомендував UBIFS. Хороша підтримка великих файлових систем, зріла фаза розвитку, адекватна продуктивність і відсутність великих недоліків.


6
Дякую, це дуже інформативно! Однак "велика червона примітка" з веб-сайту UBIFS говорить: "Одне, що люди повинні розуміти під час роботи з UBIFS, це те, що UBIFS дуже відрізняється від будь-якої традиційної файлової системи - вона не працює над блоковими пристроями (як жорсткі диски) , Карт MMC / SD, флеш-накопичувачі USB, SSD та ін.) UBIFS був розроблений для роботи над необробленим спалахом, що не має нічого спільного з блоковими пристроями, тому UBIFS не працює на картках MMC тощо - вони виглядають як блокові пристрої у зовнішньому світі, оскільки вони реалізують технічну підтримку FTL (Flash Translate Layer). "
gspr

3
Приємна відповідь, плюс є F2FS від Samsung, також дуже перспективна система, зовсім нове тхо.
lzap

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

Я не знаю, чи вписується це у профіль вашої системи, але як бути з використанням файлової системи readonly плюс розділом для читання-запису (або USB-палицею, яку можна легко замінити)? Таким чином, у вас буде швидкий диск для вашої ОС, і ви зможете легко замінити RW-накопичувач, коли він зношується.

А далі є союзи. Як я зрозумів, він "укладає" різні файлові системи (тобто ro fs поверх rw fs). Якщо є доступ до читання unionfs, що шукає через стек, поки він не потрапить у FS, що містить файл, який ми шукаємо. Під час написання unionfs шукає перший FS, що записується, на стек і використовує його.

Я також виявив ці статті, які можуть бути цікавими: http://www.linux-mag.com/id/7357/ http://www.linux-mag.com/id/7345/

І дві статті з порадами щодо використання SSD: 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-накопичувачі, щоб переносити файли 4Gb +. Причиною, звичайно, була сумісність, а не безпека (стільки для S в SD, але я використовую паролі на 7z), і я ніколи не переносив нічого більшого, ніж CD ISO, вони в основному були для SQL-скриптів і щоденно-погодинно відрізняються вже Знімки в зашифрованій базі даних видавлюються до смерті 7-Zip.

У ці дні я зношу будь-який SD швидше, ніж будь-хто, кого я знаю. Я маю USB-накопичувач у деяких виробничих машинах у свого роботодавця для погодинного автоматизованого резервного копіювання, відформатованого FAT. Я щодня стежу за ними, і, як ви здогадалися, - вручну їх релігійно підтримуйте (вони захищені в режимі офлайн-будівництва). SSD вирівняв частину ігрового поля, але я все ще не довіряю їм настільки, як звичайному HD, а SD гірше оптичного. Вони йдуть погано в одну мить, а втрати - тотальні.

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

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

Звичайно, якщо ваша основна мета - продовжити життя певної запаси, ви будете вести свій бізнес не так. Я роблю те, що не для того, щоб продовжити термін служби SD, а щоб уникнути поганого, коли я не дивлюся, і є різниця.

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


2
Вибачте, але це насправді не відповідає на питання. Це цікавий нарис про використання знімного носія, але не про вибір файлової системи.
підозрюваний

Я хотів прокоментувати, але не зміг. Пост трохи детально, те, що я рекомендував, ні ОП не розглядав, натомість я рекомендував FAT. Я мав би скласти більше уваги та чіткості точно.
арх-абіт

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

0

Як відповідь на рекомендацію використовувати жир (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 році.

Він надає нові функції традиційним файловим системам:

  • Клонування / знімки
  • Відмінності (надсилання / отримання)
  • Квот
  • Союз
  • Самолікування (з періодами дефолта до 30-х років)

для додаткових пояснень та порівняння зверніться до цього PDF

для нових порівнянь зверніться до цього веб-сайту

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.