コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2011年12月4日 >>> 2011年11月21日
link もっと後

2011年12月4日

Linuxのファイルシステム再考

目次: Linux

せっかくファイルサーバのRAIDを組み直すのだから、使用するファイルシステムも再考することにしました。

こんな話、前にも書きましたね(2009年2月1日の日記参照)。Linuxのファイルシステムは一長一短で選ぶのが難しいのです。

ext2/ext3
Linuxのデフォルトだったファイルシステム。枯れていて安定で速度も出る。最大の欠点はfsckが遅すぎること。待てど暮らせど一向に終わらないのです。
ext4
Linuxのデフォルトとなる(もうなってるかな)ジャーナルファイルシステム。一応ext3ベースだけど中身がかなり変わっている?安定で速度も出るけど、欠点はやはりfsckが遅い。ext3(数時間)から劇的改善されたext4(数十分)とのことですが、遅い、遅すぎるわ。
ReiserFS
Hans Reiserさん作のLinux初のジャーナルファイルシステム。Hansさん逮捕につき、NamesysとSuSEのナイスガイ達がメンテしていたものの、唯一の味方SuSE Linuxに標準ファイルシステムから外され、Linux 2.6.33でロック周りをめちゃくちゃイジられてバグバグになり、もはや死亡寸前?
XFS
SGIのジャーナルファイルシステム。SGI IRIXからの移植。シーケンシャルリード、ライトが速い、起動時のチェックもやたら早い。しかしファイル作成は遅い。巨大ファイルを読みながらディレクトリ削除なんて、ハエが止まるレベルの遅さ。
JFS
IBMのジャーナルファイルシステム。IBM AIXからの移植&バージョンアップ。AIXのJFSと区別するためJFS2とも呼ばれる。ネット上のベンチマークを見る限り、XFSに似ている、つまりファイル作成が遅いみたい。微妙だ。
ZFS
Sunのジャーナルファイルシステム。Sunの自信作だけあって、便利で速いらしい。しかしライセンス非互換&特許問題でLinuxに取り込めない。Fuse経由で使うのはイマイチだし、ネット上のベンチマークを見る限り、やはりXFSレベルのファイル作成スピードらしい。微妙だ。
NTFS
Microsoftのジャーナルファイルシステム。仕様は公開されていないはずなのに、カーネルハッカー達により解析され、今やLinuxからread/writeが可能。スゴい。とはいえLinuxで日常的に使うファイルシステムに適しているか?というと疑問符が付く。
BtrFS
Oracleのジャーナルファイルシステム。次期Linux標準を目指しスクラッチから作成された。現在も絶賛開発中なので、これからもしばらくUnstable状態が続きそう。大事なデータを置く場所には適さないだろう。

ここしばらくXFSを使ってきたけれど、ファイル削除が遅くてもう我慢ならない。じゃあ代替案は?と考えても、ご臨終寸前のReiserFSも、XFSと性能が似たり寄ったりのJFSも、どちらも微妙極まりないんだよなあ。

ダメ元でJFSにしてみるか、無難にext4にするしかなさそうですね…。

編集者:すずき(2023/04/29 21:34)

コメント一覧

  • hdkさん(2011/12/04 23:11)
    ReiserFS ってご臨終寸前なの? 性能いいし結構気に入ってるんだけどなぁ。Debian のカーネル 2.6.32 だから大丈夫とか? うーん。

    といいつつ、自宅サーバー PC では NILFS2 を積極的に使ってますw
  • すずきさん(2011/12/05 00:33)
    >hdk さん
    実際にパッチを見たわけではないし、見てもたぶんわからないので「ご臨終」は言い過ぎかも。
    ま、Reiser4 も Linux に入る見込みなさそうですし、明るい未来はないですね…。

    ReiserFSは会社のPC(2.6.33以降のカーネル)で容赦なく使っています。XFSだとコンパイルが遅くてやってられないのです。

    NILFS2 はおもしろそうだけど、容量食いそうだね…。
open/close この記事にコメントする



2011年12月3日

HDDがやばい

先週くらいからファイルサーバに書き込むとプチフリするようになりました。サーバを見に行くとRAID 5のrebuildで頑張っていました。あれ?ディスク入れ替えてないのになんでrebuildが走ってるの??

ひとまずdmesgを見るとHDDのリードエラーが記録されていました。ついでにSMARTもチェックすると、リードエラーだかシークエラーだかが記録されています。どうも故障寸前っぽいです。やばい。

ファイルサーバには、sdb, sdc, sdd, sde, sdfの5台HDDが繋がっていて、そのうちsdbが死にかけているようです。

俺の対応がやばい

本来であればやばくなったsdbを引っこ抜いて、新しいディスクに入れ替えればOKなのですが、間違ってsd"f" を引っこ抜いて再起動してしまいました。

5台縦に並んでいたのを見て、 sdbが一番「下」で、sdfが一番「上」だとは思わなかったのよね。マズったね、どうするね、これ…。

何がやばい?

何を言ってるかわからねーt(略)なので、実際どうやばいのか図示します。


[本来の対処]
1. やばいディスクを取って、元気なディスク4台の縮退モードで動かす
   sdb, sdc, sdd, sde, sdf→ [sdb], sdc, sdd, sde, sdf
   ↑やばいディスク
2. 元気なディスクを足す(ただし足しただけではスペア状態なので、
   読み書きには使えない)
   [sdb'], sdc, sdd, sde, sdf
   ↑元気なディスクと入れ替え(スペア状態)
3. rebuildしてRAID復活
   sdb', sdc, sdd, sde, sdf
   ↑rebuildによりRAIDの仲間入り

以上が本来の対処なのですが、間違って下記のようにしてしまいました。


[俺の対処]
1. 元気なディスクを取って、やばい+元気なディスク4台の
   縮退モードで動かしてしまった(!)
   sdb, sdc, sdd, sde, sdf→sdb, sdc, sdd, sde, [sdf]
   ↑やばいディスク
   (... 再起動 ...)
   sdb, sdc, sdd, sde, [sdf]
   ~~~~~~~~~~~~~~~~~~~
   ↑再起動によりRAIDが書き換わり、sdfの内容と食い違うため、
     sdfは元のRAIDには戻せない!

ここから5台構成に戻すには、何食わぬ顔でsdfを戻しrebuildする方法がありますが、壊れかけのsdbを酷使するため危険です…。もしrebuild中にsdbが壊れるとsdb, sdfの2台が故障したことになり、RAID 5のデータが消滅します。


2-1. 何食わぬ顔でsdfを戻す(sdfはスペアになる)
     sdb, sdc, sdd, sde, [sdf]
                         ↑スペア状態
3-1. rebuildしてRAID復活?
     sdb, sdc, sdd, sde, sdf
     ↑rebuildにより負荷かかって故障→RAIDデータ消滅の可能性大

この方法はリスクがでかすぎるだろってことで、新たにHDDを買ってきてちまちまコピーしています。データが1.5TBもあって面倒くさい…。まあ、全部俺のせいだけどな!ちくしょー…orz

編集者:すずき(2011/12/04 20:26)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2011年11月23日

AndroidといえばRoot Exploit

Android端末をroot化するのが流行っているようなのでやってみました。使用している端末はXperia acroです。先日配布されたAndroid 2.3.4アップデートを適用済みの状態です。

失敗すると端末が起動しなくなったり重要なデータが消失する可能性があります。Google先生によればroot化を試みて壊してしまっても、ドコモの初期不良対応やメーカー保証が望めないとのことなので、そこも含めて自己責任でお願いします。

Exploitツールはいろいろあるようですが、私はzergRushを使いました(ソースコードはrevolutionaryさんのGitHub にあります)。StarCraft好きとしては何ともたまらない名前ですね。

Xperiaのみならず、Froyo, GingerBreadのExploitを検索するとかなり上位に出ます。Andorid界隈ではかなり有名なツールのようです。ROMを古いバージョンで書き潰す必要もなく、とてもお手軽です。

Xperia acroの場合

まずadbの準備。Android SDKのインストール、Android SDK ManagerでAndroid SDK Platform-toolsをインストールします。どこに置いても動きます、好きなところにインストールしてください。
次にsuの準備。SuperUser同梱のバイナリ(制作者のアプリ開発サイトで配っています)を使います。
あとはXperia側でUSBデバッグを有効にして、PCにXperiaを繋ぎます。読むの面倒くさいだろうから、下のように良きに計らってください(説明放棄)。

ホスト側マシンはWindows 7 Ultimate 64bitで試しました。うちにこれしかないだけで、Android SDKが動けば何でも良いので、気にする必要ありません。たぶん…。

C:\work\a\platform-tools>adb push C:\zergRush /data/local/zergRush
2251 KB/s (23060 bytes in 0.010s)

C:\work\a\platform-tools>adb push C:\su /data/local/su
2411 KB/s (22228 bytes in 0.009s)

C:\work\a\platform-tools>adb shell
$ cd /data/local
cd /data/local
$ ls
ls
su
zergRush
$ mkdir tmp
mkdir tmp
$ ./zergRush
./zergRush

[**] Zerg rush - Android 2.2/2.3 local root
[**] (C) 2011 Revolutionary. All rights reserved.

[**] Parts of code from Gingerbreak, (C) 2010-2011 The Android Exploid Crew.

[+] Found a GingerBread ! 0x00000118
[*] Scooting ...
[*] Sending 149 zerglings ...
[+] Zerglings found a way to enter ! 0x10
[+] Overseer found a path ! 0x000151e0
[*] Sending 149 zerglings ...
[+] Zerglings caused crash (good news): 0x2abcccc4 0x0054
[*] Researching Metabolic Boost ...
[+] Speedlings on the go ! 0x6fd193d3 0x6fd39667
[*] Popping 24 more zerglings
[*] Sending 173 zerglings ...

[+] Rush did it ! It's a GG, man !
[+] Killing ADB and restarting as root... enjoy!

C:\work\a\platform-tools>adb shell
# mount -o rw,remount /dev/block/mtdblock0 /system
mount -o rw,remount /dev/block/mtdblock0 /system
# cat /data/local/su > /system/bin/su
cat /data/local/su > /system/bin/su
# chmod 4755 /system/bin/su
chmod 4755 /system/bin/su
# mount -o ro,remount /dev/block/mtdblock0 /system
mount -o ro,remount /dev/block/mtdblock0 /system

(Xperia再起動)
C:\work\a\platform-tools>adb shell
$ su
su
# 

あとはSuperUserアプリを入れるなりなんなりお好きなように…。これにておしまい。

編集者:すずき(2011/11/27 16:13)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2011年12月4日 >>> 2011年11月21日
link もっと後

管理用メニュー

link 記事を新規作成

<2011>
<<<12>>>
----123
45678910
11121314151617
18192021222324
25262728293031

最近のコメント5件

  • link 24年4月22日
    hdkさん (04/24 08:36)
    「うちのHHFZ4310は15年突破しまし...」
  • link 24年4月22日
    すずきさん (04/24 00:37)
    「ちゃんと数えてないですけど蛍光管が10年...」
  • link 24年4月22日
    hdkさん (04/23 20:52)
    「おお... うちのHHFZ4310より後...」
  • link 20年6月19日
    すずきさん (04/06 22:54)
    「ディレクトリを予め作成しておけば良いです...」
  • link 20年6月19日
    斎藤さん (04/06 16:25)
    「「Preferencesというメニューか...」

最近の記事3件

  • link 24年4月25日
    すずき (04/26 16:49)
    「[AVIFの変換] AVIFが読めないアプリケーションがたまにあるので、AVIF(AV1 Image File Format)...」
  • link 24年2月7日
    すずき (04/24 02:52)
    「[複数の音声ファイルのラウドネスを統一したい] PCやデジタル音楽プレーヤーで音楽を聞いていると、曲によって音量の大小が激しく...」
  • link 24年4月22日
    すずき (04/23 20:13)
    「[仕事部屋の照明が壊れた] いきなり仕事部屋のシーリングライトが消えました。蛍光管の寿命にしては去年(2022年10月19日の...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 04/26 16:49