ソニー、LinuxのexFATディレクトリ操作を特定条件下で劇的に速くするパッチを提供 69
ストーリー by nagazou
改善 部門より
改善 部門より
Phoronixの記事によると、ソニーが提供しているLinuxカーネル用のexFATファイルシステムドライバーが大幅に改善されたという。この最新ドライバではexFATファイルシステムが「dirsync」モードでマウントされている場合、特定条件下でブロック要求が減少する。一般的なSDカードストレージを搭載したArmプラットフォーム上で行った試験の結果では、このブロックリクエスト処理の改善により、73%以上の性能向上が見られたそうだ。クラスタサイズが256KBの場合、11分22秒を要していた処理時間が1分39秒にまで短縮されたとしている(Phoronix)。
何故exFATを使い続けるの? (スコア:2, すばらしい洞察)
リムーバブルメディアこそ、ジャーナルファイルシステムを使うべきなのでは?
Re:何故exFATを使い続けるの? (スコア:3, すばらしい洞察)
リムーバブルメディアは対応しているデバイスの多さも重要。
スマホだけでなくデジカメや音楽プレイヤー、プリンタやコンビニなどの印刷サービスなど幅広く対応するためには事実上exFAT一択。
Re: (スコア:0)
exFATの策定時には、既に種々のジャーナルファイルシステムがあったはずなのにな。
Re: (スコア:0)
FATの延長で実装可能かどうかが最重要じゃね?
Re: (スコア:0)
既にFAT系前提のデバイスが無数にあったから
Re: (スコア:0)
exFATってFAT32までと比べるとかなり大きく変わってて実装を流用してラクできるレベルには見えないんだけどな。少なくともSDカード向けなのにFATに書き込みが集中するようなファイルシステムよりマシなものにできなかったのか? とは思う
Re:何故exFATを使い続けるの? (スコア:3, 興味深い)
それでも、組み込み向けの汎用FATファイルシステム・モジュール [sourceforge.net]がexFATに対応できる程度には、実装の流用はできるみたいですよ。(日本語ページには記述はないですが、英語ページ [elm-chan.org]にはexFAT対応も明記してます)
SDカードには低速ながらも簡単に通信できる「SPI通信モード」があり、
SPIなら簡単にマイコンにつなぐことができるので、
このFatFsを使うことで8bitマイコンでも簡単にSDカードへファイルアクセスできるという組み込みの強い味方。
Re: (スコア:0)
安物SDでなければ上書きしてもカード側で書き込み先を分散させるので、ファイルシステム側がFATに書き込み集中しても関係ない
気にするだけ無駄
Re:何故exFATを使い続けるの? (スコア:1)
ファイルシステムの種類もSDXCの規格の一部であって、勝手に変えられない
Re:何故exFATを使い続けるの? (スコア:1)
一時ストレージとして使用するのか、一次ストレージとして使用するかで
フォーマット変えるのが良いかと思います
Re: (スコア:0)
そのジャーナルファイルシステムにした場合のメリットデメリットを教えてください。
Re: (スコア:0)
組込み機器で実装コスト(容量)がかからないファイルフォーマットじゃないと駄目なんですよ。
Re: (スコア:0)
どうせ今時の組み込み機器はLinuxで動いてる。
このSonyの話もそういう環境だよね。
Re: (スコア:0)
α7IV(2021.12)はα7SIII(2020.10)よりもメモリーカードの操作(フォーマットなど)がかなり高速化されたという報告を見たけどその辺での改善なのかな。
Re: (スコア:0)
LinuxにexFATが載ったのなんて、ここ数年とかだぞ。
VFATにしたってSD規格には完全準拠してないから、真っ当に対応する場合Linux標準のexFAT/VFATは使えない。
Re:何故exFATを使い続けるの? (スコア:2, 興味深い)
微妙なレベルの中の人ですが、
標準の実装だと書き込み中に電源がOFFしたときとか、SDが抜かれたときなどに簡単にファイルシステムが破損してしまいます。
そのあたりの対応※が含まれたドライバを採用するのが普通かなと思います。
※
1) 先にクラスタチェーンの書き込みを済ませる この時点で中断しても不整合が起こらない状態(末尾に空きクラスタを置いた状態にするなど)までやる
2) FATエントリを更新する
3) 続きのクラスタチェーンの書き込みを行う 暫定で置いた末尾クラスタから再開
...
みたいな
Re: (スコア:0)
> そのあたりの対応※が含まれたドライバを採用するのが普通かなと思います。
それをジャーナルファイルシステムと呼ぶような…
このスレッドにぶら下がっている人たちは、いったい何を語った気になってるんだろう?
Aだ。AじゃないBだ。いやAじゃなくてBだろ。って言い合ってるだけで笑う
Re: (スコア:0)
PICとかも高度にはなったしFATのドライバぐらいは書けるけど、Linuxまでは動かんなぁ。
Arduinoぐらいの高機能でもLinuxは無理じゃない?
# 個人的にLinux動くレベルの高性能ハードウェアを組込みって言われるとモニョモニョする。
Re: (スコア:0)
未だに2GBのSDカード保持してくれている業者に謝れ。
Re: (スコア:0)
ジャーナルはファイルシステムの破壊(矛盾発生)を防ぐための仕組みであって、
書き込みを高速化したり書き込みを保証したりする仕組みでは無いですよ。
Re:何故exFATを使い続けるの? (スコア:1)
不意な取り出しや電源断から破壊を防げるじゃない。
そのリスクは普通のパソコンのストレージの比ではない。
Re: (スコア:0)
破壊を防げるいってもファイルシステムの破壊であって、データの破壊は防げないのが普通。
Re: (スコア:0)
そんな当たり前ことを何故連呼してんの?
だれもそんな話してないじゃない。
Re: (スコア:0)
リムーバブルメディアだから破壊を防げるようにジャーナリング欲しいってのが元コメの話じゃないですかね。
Re: (スコア:0)
むしろジャーナルのぶん書き込みは遅くなるよね
Re: (スコア:0)
MicroSDは、電断とかでファイルシステムより下位の部分が飛ぶので、
ジャーナルファイルシステムを使おうが簡単にファイルシステムや、データが吹っ飛ぶ。
下記事例では、ジャーナルファイルシステムのext4が壊れてる。
Raspberry Piで最も多い故障箇所は電源ぶつぎりによるSDカードの故障 [hardware.srad.jp]
Re: (スコア:0)
それ、FATでフォーマットしてるだけだろ。
Re:何故exFATを使い続けるの? (スコア:2, 参考になる)
それ、FATでフォーマットしてるだけだろ。
そいつは、PCのストレージにEFI system partitionが有る事を指して、FATでフォーマットしてるだけだろ。みたいな勘違いセリフですよ。
rpiのFATは基本的にブートパーティションだけ。
NOOBSの初期状態や、その後のブートパーティション兼CONFIG.TXT [raspberrypi.com]置き場がFATパーティションなだけで、FATパーティションには基本的に書き込みされない。
OS入れた後はFAT+そのOSが決めたext?とかNTFSの構造になっていて、通常読み書きされるパーティションはext4とかになる。
問題は、電断対策されてないSDカードが電断されるとHDDやSSDと比較して、セクタとかブロック単位でデータが簡単に飛ぶからファイルシステムが逝ってしまう。
SDにジャーナルファイルシステムを積みたいなら、下層レイヤから規格決めて、「規格非対応では動作保証しません」みたいにしないとジャーナルファイルシステム入れてもどうにもならん。
Re: (スコア:0)
OSが決めるって表記が気になったのかな?
NOOBS経由だとNOOBSが選択したOS配布元が用意したシェルスクリプトがパーティションを切ってくれます。
Re: (スコア:0)
> RPIってユーザーが手作業でSDカードにブートやルートのパーティションを切って、そこにいわゆるOSを載せるよね。
そういう手法が無いわけでもないが、ほぼ無いと言えるぐらいには例外的だよ。
ほとんどのケースは用意された microSDイメージを ddする(初回起動時に残り容量分、パーティションが広げられる)だけだから、ファイルシステムはOS提供元が決めてるものそのままだよ。
Re: (スコア:0)
性能が限られた組込マイコンでも使えるファイルシステムじゃないとね
炊飯器のマイコンも64bit、メモリ16GBとかになる時代なら、ジャーナルファイルシステムでもいいだろうが
Re: (スコア:0)
それで、組み込みで使えるディスクフォーマットが枯れたジャーナルファイルシステムはどこ?
Re: (スコア:0)
枯れてる必要はないのでは?
exFATだって当時新しい規格として策定したのだし。
Re: (スコア:0)
ジャーナル書く処理とexFATとどっちがどう重いのか知らないけど、消費電力の面もあるんでしょうねー。
なぜこの記述を取り上げないの? (スコア:2)
> The patch was queued this week as part of the Linux exFAT file-system driver's development branch. In turn this performance improvement should land for the Linux 5.19 kernel this summer.
現状肯定バイアス大好きの方もこれにはニッコリ。
ソニーが提供? (スコア:1)
ソニーが提供しているLinuxカーネル用のexFATファイルシステムドライバー
今回のパッチを書いたのはSonyの人ですが、exFATのドライバ自体はSamsungが提供したものですよ
https://www.phoronix.com/scan.php?page=news_item&px=New-exFAT-For-... [phoronix.com]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tre... [kernel.org]
Copyright (C) 2012-2013 Samsung Electronics Co., Ltd.
# nagazouの書き方だとSonyがドライバを書いたように受け取れるので
Re: (スコア:0)
タイトルは合ってるのに、本文で間違えてますね。
「特定条件下」 (スコア:0)
まさかSONYの“高音質”microSDカード限定...と一瞬思いましたが違いますよね。
https://av.watch.impress.co.jp/docs/series/dal/691795.html [impress.co.jp]
Re:「特定条件下」 (スコア:1)
そこはメモリーセレクトは、便利な“切り替え式の引き出し”?" [itmedia.co.jp]専用じゃないかと
Re: (スコア:0)
オーディオ製品にとって、消費電力の変動自体がノイズ源で、
消費電力の変動量や、消費電力の変動パターンによって、音質が大きく影響を受ける
SDカードの種類によって、消費電力の変動量や変動パターンが変わるので、音質がそれなりに代わる
Re: (スコア:0)
Sonyの高音質SDカードは、パッケージの色で音が変わるのでそのご指摘には当たらないのだ
Re: (スコア:0)
どんだけ低品質な回路の環境で再生してんの?
Re: (スコア:0)
アンプ部や再生部の電源が分離されていないなんて珍しくもないだろ。
疑わしい (スコア:0)
dirsync って事はディレクトリ書き込みをバッファリングしないって事?むしろ遅くなりそうな気が
FAT って事はルート以外のディレクトリはデータ領域にあるよね。特定条件って何?
Re:疑わしい (スコア:2)
exFATと言うことはきっとSDカードとか使うときの話で、つまりdirsync(かsync)で使うのが多数派なのでは(よく知らないけど)。
その時の遅さを改善しましたという話ですねきっと。
元記事に載ってるパッチコメントみると、dirsyncで複数セクタを消去するときにリクエストをバラバラに投げると遅いので、ひとまとめにしてあげるらしいですね。
消去時に利くのかな。
Re: (スコア:0)
消去=read–modify–writeやGCといった高コスト処理を招くから束ねると効果ある的な話でしょうね。
Re: (スコア:0)
いやほとんどのLinuxユーザーはdirasyncがデフォルトであることすら知らんでしょ
Re:疑わしい (スコア:1)
それは「疑わしい」んじゃなくて「条件次第では有用」「前提条件が気になる」「興味深い」って言うんだよ
ウォークマン利用者ですが (スコア:0)
取り外し後のデータベースをなんたらって時間がやたらにかかるもんね。なんでこんなに時間かかるんだよって調べられたとしても不思議ではない。
安定した? (スコア:0)
タイムスタンプがぶっ壊れるバグを踏んでから敬遠してるのだが。あとTRIM未対応も残念で