web-dev-qa-db-ja.com

SDカード上のGNU / Linuxのファイルシステムの選択

組み込みのARMベースのシステムをSDカードで実行しています。現在、ファイルシステムとしてext3を使用しているDebian GNU/Linuxです。私はシステムを再インストールしようとしているので、よりフラッシュにやさしいファイルシステムに変更することを考え始めました。 JFFS2、YAFFS2、LogFSについて聞いたことがありますが、どれも仕事に適しているようです。あなたはどちらを勧めますか?また、SSDディスクにより適したext4の改善点がたくさんあると聞いています。私はext4を実行することで問題ないと解釈すべきでしょうか?その場合、特に何を考える必要がありますか?

システムの使い方は重要だと思います。しかし、一般性のために、それが標準のデスクトップ関連のものを実行することを想像してください(実際には小さなARMベースのシステムですが)。

返信ありがとうございます。

Edit:Wikipedia tells me ( "citation required"ステートメント内)thatリムーバブルフラッシュメモリカードとUSBフラッシュドライブには、ウェアレベリングとエラー修正を実行するコントローラーが組み込まれているため、特定のフラッシュファイルシステムを使用してもメリットはありません。したがって、私はextファイルシステムにこだわっています。

33
gspr

flash filesystems に関する優れた記事。

フラッシュファイルシステムについて話すときの重要な質問は次のとおりです。ウェアレベリングとは何ですか。 ウィキペディアの記事 。基本的に、フラッシュディスクでは、ブロックが不良になるまで限られた回数を書き込むことができます。その後、ファイルシステム(SSDのようにハードウェアに組み込みのウ​​ェアレベリング管理がない場合)は、そのブロックを無効としてマークし、それ以上の使用を回避する必要があります。

一般的なファイルシステム(ReiserFS、NTFS、ext3など)は、そのような制限のないハードディスク用に設計されています。

JFFS2

コンプレッションとエレガントなウェアレベリングプロテクションが含まれています。

YAFFS2

  • 違いを生む唯一のこと:アンマウントが成功した後のマウント時間が短い。
  • Write onceプロパティを実装します。データが1つのブロックに書き込まれると、それを書き換える必要はありません。これは摩耗を減らすので重要です。

LogFS

  • あまり成熟していないが、すでにLinuxカーネルツリーに含まれている。
  • JFFS2/YAFFS2よりも大きなファイルシステムを問題なくサポートします。

UBIFS

  • LogFSよりも成熟
  • 書き込みキャッシュのサポート
  • スケーラビリティについて: 記事 。大容量ディスクでは、JFFS2を使用した場合よりもパフォーマンスが向上

ext4

ドライバーまたはカード(たとえば、SSDドライブに少なくとも通常は内部ウェアレベリングがある)がウェアレベリングを処理しない場合、ext4はrawフラッシュでの使用を目的としていないため、最適なアイデアではありません。

どれが一番いいですか?

もちろん、それは使用法とサポートに依存します。インターネットで読んだことから、UBIFSをお勧めします。大規模なファイルシステム、成熟した開発フェーズ、適切なパフォーマンス、および大きなマイナス面のないサポート。

18
Olli

私は同じ問題に直面していて、いくつかの研究もしました。最終的に私はext2を使うことにしました。

一部のSDHCカードは、ハードウェア層で独自のウェアレベリングを実装しているようです。ウェアレベリング機能が組み込まれたSDHCカードを手に入れることができる場合。

ウェアレベリングを提供するファイルシステムは、フラッシュレベルのウェアレベリングに干渉する可能性があるため、フラッシュがそれらを使用することは実際に悪い可能性があります(上で引用したIBMの記事は、JFFSがそれをどのように行うかについて話しているので、それが機能しないことは明らかですフラッシュレベルWLを使用)。重要なデータを保存しておらず、通常はとにかく定期的にバックアップしているので(cron)、ext3のジャーナリングは必要ないと判断しました。

また、/ tmpおよび/ varをtmpfsとしてマウントして、処理を高速化しました。十分なRAM=がある場合は、それを行う必要があります(ただし、ログを定期的にローテーションまたは削除するようにしてください)

ヒント:「noatime」オプションを使用してext SDカードをマウントします

12
Khaled

これがシステムのプロファイルに適合するかどうかはわかりませんが、読み取り専用ファイルシステムと読み取り/書き込みパーティション(または簡単に交換できるUSBスティック)を使用するとどうなりますか?そうすれば、OS用の高速ディスクができ、使い古したrwストレージを簡単に置き換えることができます。

そして、ユニオンがあります。私が理解しているように、それはさまざまなファイルシステムを「スタック」します(つまり、rw fsの上にro fs)。読み取りアクセスがある場合、unionfsは、FS検索するファイルを含む)に達するまでスタックをシークします。書き込み時に、unionfsは最初の書き込み可能ファイルを検索しますFS onスタックとそれを使用します。

私はまた興味深いかもしれないこれらの記事を見つけました: http://www.linux-mag.com/id/7357/http://www.linux-mag.com/id/7345 /

また、SSDの使用に関するヒントを含む2つの記事: http://danweinreb.org/blog/using-solid-state-disks-on-linuxhttp://www.zdnet.com/blog/perlow/geek-sheet-a-tweakers-guide-to-solid-state-drives-ssds-and-linux/919

1
lajuette

ロスのないsdカードが必要な場合は、BTRFSを使用することをお勧めします。

BTRFSは、2007年にOracleによって最初に作成されたEXTと比較した新しいファイルシステムです。

従来のファイルシステムに新機能をもたらします:

  • クローニング/スナップショット
  • 差分(送信/受信)
  • クォータ
  • 連合
  • 自己回復(コミット期間はデフォルトで30秒)

詳細な説明と比較については、 このPDF を参照してください

新しい比較については、 このサイトを参照してください

Fat(32?)の使用を推奨する回答として:いくつかのパフォーマンステストを実行したところ、fat32にはファイルを書き込むための非常に予測可能な時間があることがわかりました(2 GBは1 GB +オフセットの2倍、3 GBは1GB +オフセット)。 ext4のパフォーマンスはext3よりもわずかに優れています。 ext3とext4はどちらも高速な場合がありますが、ジャーナルファイルをディスクに書き込むために追加の時間が必要になる場合があります(線形書き込み時間の動作はありません)。すべてのテストはfsync()を使用して行われ、ファイルが実際にディスクに書き込まれていることを確認しています。 sync()を使用していくつかのテストを実行しました。その結果、書き込みパフォーマンスが非常に低下します。そこで、fsync()に戻りました。 fsync()で十分かどうかを確認しました。したがって、システムをシャットダウンせずにデバイスの電源を入れたり、アンマウントせずにSDカードを取り外したりしました。書き込まれたファイルやディレクトリ構造が破損したことはありません。そこで、ext4とfsync()のみを使用することにしました。

よろしく、トーマス

0
Th. Thielemann

正しいファイルシステムを選択(およびサイジング)することは、セキュリティのためだけでなく、他の人が通常認識しない多くの理由から、何よりも重要です。ファイルシステムがないと、すべての処理がnullになります。

Olliによる非常に適切な応答、およびOPはかなり古くなっていますが、ファイルシステムは私の遠慮がちです。 superuser.comは以前にアクセスしたものではなく、管理者ではありませんが、サインアップしてさらにアクセスします。

2011年以降、状況は大きく変わりましたが、当時もUSBカードをFATでフォーマットし、USBドライブを使用して4Gb +ファイルを持ち運びました。もちろん、セキュリティではなく互換性でした(SDのSは多すぎますが、7zでパスワードを使用しています)。CDISOよりも大きなものを実際に運ぶことはありませんでした。これらは、ほとんどがSQLスクリプト用で、毎日の1時間ごとの差分です。暗号化されたデータベースのスナップショットは7-Zipによってほぼ死に至りました。

最近、私はどのSDも私が知っている誰よりも早く身に着けています。私の雇用者の一部の生産マシンには、1時間ごとの自動バックアップ、フォーマット済みFAT用のUSBスティックがあります。私は毎日それらに目を光らせており、そしてあなたが推測したように、それらを手で宗教的にバックアップします(これらはオフラインで安全なITARの構築物です)。 SSDは一部の競争条件を平準化しましたが、私はそれらを通常のHDほど信頼していません。SDは光学よりも劣っています。彼らは一瞬で悪くなり、損失は合計です。

ホストOSにランダムに書き込むように招待するファイルシステム(NTFS、ごみ箱)は、SDにとって悪いニュースです。また、それをアンマウントすることは大きな助けになります。OSがアンマウントされたストレージにアクセスしようとすることはないので、SDにアンムーブするスクリプトが含まれている限り、どのファイルシステムでも実行できます(私のSD上の標準ファイルの1つ)。

SDの読み取りはまだ遅いので、ファイルごとではなくミラーリングするときにイメージ全体を取得するには、ディスクダンプ(dd)などをお勧めします。 ddはまた、何か問題がある場合に通知するので、ファイルマネージャーはkaboomに行きません。

もちろん、あなたの主な目的がいくつかのペニーストックの寿命を延ばすことである場合、あなたはあなたのビジネスについて間違った方向に進んでいます。私はSDの寿命を延ばすためではなく、見ないときに悪化しないようにするためにやっていることと、違いがあります。

Ext4やジャーナリングは避けますFS SDの場合、書き込みがうまくいかなくてもかまいませんが、1日ほど経つと読めなくなると痛いです。

0
arch-abit