daemonfreaks.com

mdadmのソフトウェアRAID復旧

posted by jun-g at Tue, 25 Sep 2012 17:56 JST

先日、自宅でブレーカーが落ちて停電してしまう事件?が発生しました。よくある過電流による停電の場合、回路ブレーカーが落ちて一部屋だけ停電したりするのですが、今回は主幹ブレーカーが落ちてしまい、全部屋が停電になりました。

とりあえずスマホでネット検索して原因と対策を調べました。原因としては漏電の可能性があること、対策としては問題のある箇所の回路ブレーカーのみを落としておけばとりあえず大丈夫であることがわかりました。

ということで問題となる箇所の回路ブレーカーを探してその日はとりあえず事なきを得ました。後日、電気工事業者に来てもらい、漏電箇所は修理してもらいました。(実際は修理不可能な箇所だったので、壁口コンセントを一箇所殺して終わり。)

で、漏電はこれで良かったのですが、停電した日に何度も家のブレーカーがバチバチ落ちたせいで、UPSを使ってない自宅サーバー(OSはXenServer)がもろに被害を受けてしまいました。

サーバーを起動し、XenCenterからつないでみると、ストレージが見つからないという警告。sshでログインしてRAIDの様子を確認してみると、HDDは4本使っているのに3本しか認識していない状態でした。

で、筐体を開けて確認してみると、何故かこのタイミングでHDDの電源ケーブルが1本抜けかかっていました…。そのケーブルを接続し直して改めてサーバーを起動し直すと、無事に4本認識しました。

しかし、RAIDの様子を確認すると、4本認識しているものの、様子は変わらず。

[root@xenserver ~]# cat /proc/mdstat
Personalities :
md0 : inactive sdb1[0](S) sde1[3](S) sdd1[2](S) sdc1[1](S)
      3907039744 blocks

unused devices: <none>

とりあえずネットでmdadmのraid復旧方法を調べて、そのとおりの手順で復旧を試みてみたところ、無事に復旧しました。手順は以下の通り。

まずはAssembleモードでmdadmを実行。

[root@xenserver ~]# mdadm -A /dev/md0 /dev/sd[bcde]1
mdadm: /dev/md0 assembled from 3 drives - not enough to start the array while not clean - consider --force.

怒られます。なので強制的に行う「--force」オプションを追加して実行。(ついでに詳細を出力する「-v」オプションも追加。)

[root@xenserver ~]# mdadm -v -A --force /dev/md0 /dev/sd[bcde]1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sde1 is identified as a member of /dev/md0, slot 3.
mdadm: added /dev/sdc1 to /dev/md0 as 1
mdadm: added /dev/sdd1 to /dev/md0 as 2
mdadm: added /dev/sde1 to /dev/md0 as 3
mdadm: added /dev/sdb1 to /dev/md0 as 0
mdadm: /dev/md0 has been started with 3 drives (out of 4).

今度は上手くいったようなので、状態を確認。

[root@xenserver ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdb1[0] sde1[3] sdd1[2]
      2930279808 blocks level 5, 64k chunk, algorithm 2 [4/3] [U_UU]

unused devices: <none>
[root@xenserver ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 0.90
  Creation Time : Mon Jul  4 17:39:51 2011
     Raid Level : raid5
     Array Size : 2930279808 (2794.53 GiB 3000.61 GB)
  Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
   Raid Devices : 4
  Total Devices : 3
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Fri Sep 21 21:13:32 2012
          State : clean, degraded
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 64K

           UUID : 11c0d6c2:2c1cae2a:99080105:010c0b1b
         Events : 0.11416776

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       0        0        1      removed
       2       8       49        2      active sync   /dev/sdd1
       3       8       65        3      active sync   /dev/sde1

sdc1が無い3本構成の状態でRAID自体は復旧したみたいです。まずは一安心。

で、次にsdc1をRAIDに再追加。

[root@xenserver ~]# mdadm /dev/md0 -a /dev/sdc1
mdadm: re-added /dev/sdc1

追加されたようなので、確認。

[root@xenserver ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 0.90
  Creation Time : Mon Jul  4 17:39:51 2011
     Raid Level : raid5
     Array Size : 2930279808 (2794.53 GiB 3000.61 GB)
  Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Sun Sep 23 10:10:28 2012
          State : clean, degraded, recovering
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

 Rebuild Status : 0% complete

           UUID : 11c0d6c2:2c1cae2a:99080105:010c0b1b
         Events : 0.11416781

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       4       8       33        1      spare rebuilding   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       3       8       65        3      active sync   /dev/sde1

sdc1がRAIDに追加され、リビルドが始まりました。この数時間後に、無事にRAIDが復旧したことを確認しました。

思ったことなど

  • mdadmどころかLinux自体に不慣れなので、こういう障害が発生すると軽くパニックになります。 仮想ホストOSにも慣れているFreeBSDが使いたいので、 BHyVe の実用化が待ち遠しいです。
  • こういう障害復旧方法はいつかの自分の為にブログに書いてますが、自宅サーバーが死ぬとこのブログも閲覧できなくなるので、障害が発生する度にいつも途方に暮れます…。
  • やはりUPSは必要ですね。買いましょう。

自走ビワイチ

posted by jun-g at Mon, 24 Sep 2012 22:24 JST

久々にロングが走りたくなり、自走でビワイチ(琵琶湖一周)に行って来ました。

往路 自宅〜大津

3時半起床、パンを沢山食べて4時半頃出発。半袖ジャージ、ビブショーツ。外は真っ暗なのでライト必須。

まずはなにわ自転車道からスタート。まだ5時にもなってないのに元気に散歩する老人が多数いてビビりました…。

なにわ自転車道終点先の近畿道沿いの橋を渡って淀川河川敷に。5時半ぐらいになってゆっくり明るくなってきました。桂川・宇治川・木津川の分岐から宇治川沿いに。京都競馬場越えて1号線あたりから観月橋に抜ける良い道を知らなくて、この日も中書島の駅あたりでちょっと迷いました。

6時半ごろに宇治到着。宇治川ラインを走るつもりで天ヶ瀬ダムに向かうと、大雨による土砂崩れの為、全面通行止めになっていました。警備員の方に大津に行く為の迂回路を教えていただき、いったん宇治に戻って国道307号線を通って宇治田原に入り、府道783号を通って瀬田川沿いの道に合流し、想定外のアップダウンに苦戦しつつ無事に大津に到着。8時15分ぐらい。走行距離90kmぐらい。

ビワイチ

近江大橋を渡って半時計周りにビワイチスタート。

予定よりスタート時間が少し遅くなってしまったので少し気持ちがあせっていたのか、ややオーバーペース気味。心を落ち着かせつつ淡々と。コンビニでボトル補給1回。

11時半ぐらいに中間地点の 道の駅 塩津海道あぢかまの里 に到着。走行距離180kmぐらい。オーバーペースが祟ったのか、かなりクタクタでした。

かき揚げ丼、ミニうどん、ブルーベリーソフト、メロンパンを食べて、補給のボトル・おからドーナツをゲット。少し休憩して12時15分頃出発。

またもやひたすら淡々と。じわじわ疲れが溜まってくるので無理しない程度のペースで走りました。堅田から先は車が多いので琵琶湖大橋を渡って湖南の東側を南下。近江大橋を再度西向きに渡って15時前にビワイチ終了。走行距離180kmぐらい。

復路 大津〜自宅

コンビニで少し休憩+ボトル補給してから帰宅開始。

かなりの疲労感+右膝が痛くて、宇治田原を越える道が堪えました。

宇治から先は、またひたすら川沿い・河川敷の平坦路なのですが、右膝が痛くて脚に力も入らなくて30km/hキープも難しい感じでダラダラと。

で、何とか日が落ちきる前の18時半頃に無事帰宅。帰宅後は一度座ると立ち上がれないほど脚が痛くて疲れきってました。情けなや…。

まとめ

総距離は350km、時間は14時間(実走行時間11時間51分)でした。

ペース配分が悪かったのか、過去最長距離だったからなのか、想像以上に疲れました。

しかし、天気も良く、ちょうど気温も高すぎず風が涼しい日だったので、走ってて気持ちよかったです。本当はもっと色々寄り道したりしながら走るともっと楽しそうですが、独りだとちょっとね…。

これから徐々に寒くなってきますが、本格的に冷え込む前にまたロング走りたいですね。

乗鞍レースレポート(当日編)

posted by jun-g at Sun, 02 Sep 2012 21:20 JST

いよいよレース当日。

4時起床。バナナと薄皮粒あんぱんを1個食べる。薄皮粒あんぱんはレースの日の朝に必ず食べてる。でもってゆっくりストレッチして体をほぐす。

5時に宿の朝食。おかずとおにぎりx2とバナナ。もちろん完食。

5時半から宿の前で固定ローラーを使ってアップ開始。気温は低いけど風がなくて半袖でも思ったより肌寒くなかった。20分ほど軽く流して体を暖めてからローラーの負荷をmaxにして3分ほど回して終わり。心拍は最大170ぐらい。膝の痛みもなく疲労も残って無さそうで、脚もよく回って良い感じ。

同じ宿に泊まっていた方々は皆様とっくに会場に向かわれたようなので慌てて着替えてドリンクを用意して受付に出発。バイクのセッティングは普段とまったく変わらない。ボトルゲージすら外してない。ボトルは1本だけで中身はCCD。僕には特殊な機材やセッティングより普段と変わらないフィーリングの方が重要。

手荷物を預けて待機場所に自転車を置いてスタート待ち。都合よく便意を催してきたのでトイレ待ちの行列に並ぶ。スタート時間が遅いので余裕でトイレ完了。7時半頃にメイタンCCC2000補給。まぁこれは気休めみたいな感じ。あとはストレッチしながらひたすらスタート待ち。緊張して胃がムカムカしてきた。相変わらずメンタル弱い。

いよいよスタートの時間。今日の目標は1時間切り。1時間切れればリザルトはおのずとついてくるはず。速そうな人がいれば付いて行く、いなければ普段のレースと同じように独走で行く。それだけ。

3列目ぐらいからスタート。右側から前にするするっと上がって先頭10人ぐらいに混ざる。しばらくするとあっさり先頭に出ちゃった。ローテする感じかなぁ?と思っていたけど誰も前に出てくれないのでしばらく先頭固定で走る。

休暇村手前の駐車場で騒がしく観戦している人たちがいるなぁ、と思ったら妻だったので苦笑。ずっと先頭固定だったので観戦ポイントを過ぎたあたりで「えーずるーい誰か回ってよぉ」と声出してお願いしてみた。しばらくすると2人ほどローテに入ってくれたけど2人ともキツそうでうまくローテできない感じ。

そうこうしているうちにあっさり第1CPに到着。早っ。こんなペースじゃ1時間切れねーよっ!脚もまだまだ余裕だよ!ということで、独走することに決めた。

とはいえいきなりペースアップできるほど強くもないので、無理のない感じでじわーっとペースを上げる。じわーっ。ざっくりとしたコースプロフィールによると13km地点あたりから第2CPまでの2kmが勾配キツ目らしいので、そこまではずっとじわーっ。 で、つづら折りの勾配キツイ区間で見事に脚に力が入らなくなって焦る。うへー、やっぱり先週の最後の追い込みが不足してたかなぁ、と反省しつつ、「今僕がキツイ時間は他の人も絶対キツイので踏ん張るべし」と自分に言い聞かせつつ勾配が緩んだ箇所でフォームとペダリングを落ち着かせてペースを取り戻す。

そこからはサイコンの走行距離とにらめっこしながらひたすらガマンの時間。心拍は170台後半でそんなに上がってないのに息が苦しかった。やっぱり高地だから?

残り2kmあたりに到着した頃、なんと下山が始まっていてショックを受ける。え、ロードCの第2グループがスタートしてまだ1時間経ってないのに何故下山が始まってんの?ただでさえ道幅が狭いのに下山でさらに狭められて、ロードCはまともにレースさせてもらえないの?スタート順が遅いのも、コースに選手が多くて道が塞がれるのも仕方がないけど、最終組スタート後1時間も経たずに下山開始はさすがに無いやろ…。あまりのショックで脚が止まった。

しかし、残り距離も少ないので気を取り直してとにかく脚を回す。走行可能なラインが無くてラストスパートはほぼ不可能だったが、最後100mだけ微妙にもがいてゴール。

サイコンの計測時間を見ると、残念ながら1時間30秒ぐらいで目標達成できず。悔しくて「クソーっ」と何度も連呼してしまった。

悶々としたまま、自転車を置いて荷物を受け取ってすぐに下山準備。しかし下山待ちの行列が全然進まず。1時間ほどかかってようやく下山開始。

http://farm9.staticflickr.com/8038/7909707816_de8ca682bb_z.jpg

去年のレースは結果こそ良くなかったものの、何となくやりきった感じがして下山中は満足感でいっぱいだったけど、今年は目標も達成できず、レースも邪険にあつかわれた印象もあり、下山中ずっと悶々としていた。で、なんだか無性に悔しくなってきて涙がポロリ。これで1位ちゃうかったら本当に救われへんなぁ、と思いながら。

下山して妻と合流すると、昨年大台ケ原で知り合いになった北条さん(男子Fクラス3位!)ご夫妻が一緒だったので、しばし談笑。駐車場では北条さんの奥様をはじめ、選手の奥様方が皆様で応援下さっていたそうで。ありがとうございました。声援が大変力になりました。

受付で完走証をもらったあと、一旦宿にもどってレース結果を宿の方に報告。リザルトはわからないけど表彰台は間違いないですと伝えると大変喜んでもらえて良かった。で、チェックアウトして車を会場近くの駐車場に移動。

リザルトをチェックすると、タイムは1時間18秒で無事クラス優勝。ホッと胸を撫で下ろす…。

表彰式待ちで3位の側溝大尉さん、2位の興梠さん、男子E2位のレッドさんから話しかけてもらって嬉しかった。ゴール地点でも表彰式でもいっつもボッチ全開w

表彰式直後に副賞でいただいた日本酒をその場で割ってしまうトラブル発生。そして抽選会も見事に外れた。何でもかんでも上手くいかないもんですな。厄除けできたのかもねと気を取り直して乗鞍を後に。しかし、渋滞情報を見ると渋滞だらけだったので、ひるがの高原SAで1〜2時間ほど時間を潰してから再出発。結局22時頃に帰宅。

以上が今年の乗鞍でした。リザルトだけ見れば大成功ですが、もっと上手く走れたんじゃねぇの?と自分的には反省点が盛り沢山。ともあれ、ようやくスタート地点に立てた気分です。いよいよ来年はチャンピオンクラスに挑戦します。間違いなく速い人ばかりなので、一緒に走れるのが今から楽しみです!

乗鞍レースレポート(前日編)

posted by jun-g at Sat, 01 Sep 2012 17:03 JST

そろそろレースレポートを書きます。まずは前日。

6時に自家用車で大阪出発。特に渋滞に巻き込まれることもなく、11時半ぐらいに現地到着。

受付は13時からなのでそのまま車で三本滝まで上がって、バスに乗り換えて山頂の畳平まで。試走代わりのコースチェック、のはずがバスの中で爆睡し、気づけば山頂到着…。去年と同じパターン。ちなみに高いバス代を払って畳平に行くのは、高地に少しでも体を慣らしておく為。効果があるかどうかはわかりません。あとは観光目的。

まず売店でお守り購入。去年も買ったけど直後にすぐに無くしちゃったので。で、食堂でお昼ごはん。お蕎麦とおいなりさん。レース前日は意識的に炭水化物ばかり摂るようにしています。

食事後に魔王岳に登ろうとしたけど、先週末に痛めた左膝にまだ違和感が残っていたので大事を取って止めておきました。

そんな感じで小一時間ほど山頂で過ごしてからバスで下山。またもやコースチェックもせずに爆睡。

下山して受付を済ますと時間は15時ぐらい。チェックイン可能な時間だったので本日の宿へ。今年は会場から1kmほど下ったところにある アルパインミズシロ さんに宿泊。去年は松本市のほうまで下ったところにある民宿に泊まって朝の移動が大変だったのですが、今年は会場近くの宿でかなり楽ちん。

チェックインを済ませ、荷物を整理してから早速お風呂に入る。それからゼッケンを付けたり名簿をチェックしたりしつつ、ちょっとウトウト。レース前日は一切自転車に乗りません。

19時に夜ご飯。創作料理で大変美味しくて大満足。もちろん完食。

レース前日は緊張で眠れない事が多いので、入眠剤代わりに少しだけお酒を飲んで、21時に就寝。

つづく。