目次: Linux
せっかくファイルサーバのRAIDを組み直すのだから、使用するファイルシステムも再考することにしました。
こんな話、前にも書きましたね(2009年2月1日の日記参照)。Linuxのファイルシステムは一長一短で選ぶのが難しいのです。
ここしばらくXFSを使ってきたけれど、ファイル削除が遅くてもう我慢ならない。じゃあ代替案は?と考えても、ご臨終寸前のReiserFSも、XFSと性能が似たり寄ったりのJFSも、どちらも微妙極まりないんだよなあ。
ダメ元でJFSにしてみるか、無難にext4にするしかなさそうですね…。
この記事にコメントする
先週くらいからファイルサーバに書き込むとプチフリするようになりました。サーバを見に行くと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
この記事にコメントする
Android端末をroot化するのが流行っているようなのでやってみました。使用している端末はXperia acroです。先日配布されたAndroid 2.3.4アップデートを適用済みの状態です。
失敗すると端末が起動しなくなったり重要なデータが消失する可能性があります。Google先生によればroot化を試みて壊してしまっても、ドコモの初期不良対応やメーカー保証が望めないとのことなので、そこも含めて自己責任でお願いします。
Exploitツールはいろいろあるようですが、私はzergRushを使いました(ソースコードはrevolutionaryさんのGitHub にあります)。StarCraft好きとしては何ともたまらない名前ですね。
Xperiaのみならず、Froyo, GingerBreadのExploitを検索するとかなり上位に出ます。Andorid界隈ではかなり有名なツールのようです。ROMを古いバージョンで書き潰す必要もなく、とてもお手軽です。
まず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 | > | ||||
| << | < | 12 | > | >> | ||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| - | - | - | - | 1 | 2 | 3 |
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
25年10月6日
25年10月6日
25年9月29日
25年9月29日
20年8月24日
20年8月24日
16年2月14日
16年2月14日
25年7月20日
25年7月20日
25年7月20日
25年7月20日
25年7月20日
25年7月20日
20年8月16日
20年8月16日
20年8月16日
20年8月16日
24年6月17日
24年6月17日
wiki
Linux JM
Java API
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
2016年
2017年
2018年
2019年
2020年
2021年
2022年
2023年
2024年
2025年
過去日記について
アクセス統計
サーバ一覧
サイトの情報合計:
本日: