ページ

2009年3月9日月曜日

UnionFS on Pandora

昨日の続きです。今UnionFSについて調べているのですが、どうやらEEE PCにて使われているみたいですね。Windows版じゃなくてLinux版のXandrosで。某巨大掲示版からの引用。
以前、Xandrosを701にインストールしたことがあったが、(isoはネット上に公開されている)インストール先は指定できなかったと思う。SSDに別のOSが入っていようと問答無用にSSDにインストールされる。(今の901用のはインストール先を指定できるかもしれないが未確認)SSD4Gのうち2Gにインストールされて残りの2Gは更新データ用に取られる。

ちょっと特殊なことをやっていて、OSエリアのすべての更新(ファイルの修正、削除、追加)は後ろの2Gの更新エリア(パーティション)に保存される。2GのOSエリアはインストールされてままでまったく変化がないが、unionfsという仕組みであたかも更新されているようにみえる。

また更新エリアにすぐ保存されるのなくて、RAM上にキャッシュされていて、あるタイミング(詳細は不明)でまとめて保存されるようだ。unionfsはCDブートLinuxが使用していて、CDのOS領域が更新できるようにみせているのと同じ仕組みである。
なんでこんなことをしているのかというと、SSDへの書き込み回数の軽減(まとめて保存される)と高速化(一時的にRAMにキャッシュされる)のためである。

しかしファイル削除も実際削除されるのではなく保存領域に保存されるので常にサイズが増えていく。いつか2Gの領域を使いきってしまうのではないかと心配。システムアップグレードしてみてどのくらい使うのはみてみたいものだ。
どうやらSSD4GBのうち、2GBをシステム用としてリードオンリーでマウント(/dev/sda1)、残りの2GBをユーザー用としてリードライトでマウント(/dev/sda2)してUnionFSで重ね合わせて、1つのファイルシステムに見せているみたいですね。実際のシステム変更(ファイルの修正、削除、追加)はユーザー用のみで行って、システム用には一切変更を加えないと。何かあったら、すぐに初期状態に戻れるようになっているのとNANDの書き込み制限緩和の意味合いがあるらしい。

初期状態への復帰というメリットは理解できますがNANDへの負荷緩和はいまいち掴めないです。そんなに気にするなら、NANDは全部リードオンリーにしてSDカードを必ずシステム用に割いて、そちらにパッチ更新用のパーティションを区切った方が分かり易いかもと思いました。
また、更新エリアにすぐ保存されるのなくて、RAM上にキャッシュされていて、あるタイミング(詳細は不明)でまとめて保存されるようだ。
なんでこんなことをしているのかというと、SSDへの書き込み回数の軽減(まとめて保存される)と高速化(一時的にRAMにキャッシュされる)のためである。
まぁこういったコメントがあるので、それなりには効果があるのかもしれません。専門家の意見を聞いてみたいところです。というか、一番気になるのはこの部分。
しかし、ファイル削除も実際削除されるのではなく保存領域に保存されるので常にサイズが増えていく。いつか2Gの領域を使いきってしまうのではないかと心配。
Pandoraの場合はNAND512MBですからね。そこに余計な保存領域を確保するとなると少々心配です。まぁPandoraの場合、そうそう頻繁にソフトウェアのアップグレードが行われるかわかりませんし、更新としてはセキュリティ関係とかバグ関係とかが中心の小規模なものだけかもしれませんしね。

それに半年に一度くらいの割合でファームウェア全体のバージョンアップ(Ubuntuみたいな感じで)か、大きな変更が加えられた時点でバージョンアップ(iPhoneみたい?)が行われるかもしれませんし。それまでの繋ぎと考えれば、そうそう大きな変化はあり得ないかも。全くの妄想ですけどね(笑)。

#追記
EEE PCはtmpfsというのも併用しているのかな。これを併用すると無駄な書き込みが減る? 解らない事だらけです。

0 件のコメント:

コメントを投稿