コグノスケ


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

link もっと前
2010年12月15日 >>> 2010年12月2日
link もっと後

2010年12月15日

RAIDが崩壊した

外付けHDDのドライバをカーネルモジュールにして、めでたしめでたし…かと思ったら、起動時に変なメッセージが出ています。読んでみるとHDD 5台構成にしたはずのRAID 5が4台構成で動いています。

RAIDが縮退モードで動いてます
md: md0 stopped.
md: bind<sdb>
md: bind<sdd>
md: bind<sde>
md: bind<sdf>
md: bind<sdc>
md: kicking non-fresh sdb from array!
md: unbind<sdb>
...

あるぇー、なんで /dev/sdbが弾かれてるの?HDD壊れたかしら?って思ったのですが、違いました。内蔵HDDをsdfのままで一度起動したことが原因でした。

RAIDさんの憂鬱

デバイスファイル名だとわかりづらいので、変化前の内蔵HDDがsdaだったときのデバイスファイル名を小文字で、変化後のsdfだったときのデバイスファイル名を大文字で書きましょう。対応表は下記の通り。

変化前変化後コメント
sdaSDF内蔵HDD
sdbSDA外付けHDD 1
sdcSDB外付けHDD 2
sddSDC外付けHDD 3
sdeSDD外付けHDD 4
sdfSDE外付けHDD 5

上記を踏まえて時系列で説明してみましょう。

  • RAIDは(sdb, sdc, sdd, sde, sdf)で組んでいたので、変化後は(SDA, SDB, SDC, SDD, SDE)でRAID 5を再構築しなければなりません。
  • そんなことつゆ知らずのRAIDシステムは同じデバイスファイル名(SDB, SDC, SDD, SDE, SDF)でRAID 5を再構築しようとします。
  • 内蔵HDDのSDFはRAID 5の構成部分ではありませんので、RAIDシステムは「SDFが変になった!」と判断します。
  • RAIDシステムはSDFをアレイから外し、SDB, SDC, SDD, SDEつまりsdc, sdd, sde, sdfの4台構成にします。
  • 内蔵HDDがsdaになって、再び元の構成に戻ります。
  • そんなの関係ねえRAIDシステムはやっぱり同じデバイスファイル名(sdb, sdc, sdd, sde, sdf)でRAID 5を再構築しようとします。
  • 先ほどの4台構成に入っていなかったsdbだけ更新されておらず、情報が古いためRAIDシステムは「sdbが変になった!」と判断します。
  • RAIDシステムはsdbをアレイから外し、sdc, sdd, sde, sdfの4台構成にします。←今ココ

とまあ、RAIDシステムのバカなんだか賢いんだかよくわかんねえ動きをしてくれた結果、4台構成になってしまったわけです。それにしてもHDD認識の順番がころころ変わるのは困るのよねー…。

RAID復っっ活!!

直し方は時間かかりますがとても簡単です。sdbが物理的に壊れたわけではないので、単にsdbをもう一度アレイに追加すれば良いだけです。

アレイにディスクを追加

# mdadm --manage /dev/md0 -a /dev/sdb

こんな感じです。長くても1日ほっとけば直ってると思います。アレイを直している様子が見たければ、$ cat /proc/mdstatで概要が、# mdadm --detail /dev/md0で詳細情報が見られます。

編集者:すずき(2010/12/15 01:32)

コメント一覧

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



2010年12月14日

ファイルサーバのカーネルを入れ替え

家のファイルサーバを復活させたついでに、Linux Kernelを2.6.30からlongterm maintenanceの2.6.35.9に入れ替えました。2.6.30以降のどこかでファイルサーバのCPU(Intel Atom)への対応が入ったのと、longtermなら中途半端なバージョンよりは安定している気がすると思ってのことです。

コンパイルしていざ再起動するとkernel panic…。rootがマウントできないと怒っています。

今までは内蔵HDDがsdaで、外付けのRAIDがsdb, sdc, sdd, sde, sdfだったのですが、カーネルを入れ替えたら内蔵HDDがsdf外付けのRAIDがsda, sdb, sdc, sdd, sdeになってしまったようです。

認識順序が変わったかなと思って、試しにroot=/dev/sda1をroot=/dev/sdf1に変えて再起動したところあっさり起動しました。しかしトラブった時のために昔の環境も残しておきたいのですよ。

カーネルごとに設定を書けるgrubは良いとしても、/etc/fstabはそうはいきません。swap領域に /dev/sda5を使っているので、カーネル入れ換えごとに /dev/sda5にしたり、/dev/sdf5にするのは面倒くさいです。

モジュールにしよう

設定ファイルをいちいち書き換えるのは面倒くさいので、内蔵HDDさんにはなんとしても /dev/sdaで居ていただかなくてはなりません。そのためにはカーネルから一番最初に内蔵HDDを認識してもらう必要があります。

幸運なことに私の環境では内蔵HDDのドライバはata_piixで、外付けHDDのドライバはsata_sil24と異なるドライバが使われていましたので、ata_piixをカーネル組み込みに、sata_sil24だけモジュールにしました。これならata_piixが一番最初に認識され、rootがマウントされ、その後sata_sil24が認識されます。バッチリです。

最初はLinuxのHDD認識のアルゴリズムを見ないとわからないけど、面倒くさそうだなあ??と考えていたのですが、そんなこと調べるまでもなく単純に解決できたのでした。

めでたし、めでたし。

編集者:すずき(2010/12/15 01:31)

コメント一覧

  • hdkさん(2010/12/15 01:49)
    こういうときに LABEL=foo とか UID=bar 方式の指定方法が役に立つんだなぁ、ということを最近知りました。
  • すずきさん(2010/12/18 08:52)
    全くその通りですね。私も最初はudevイラネーとか思ってましたが、RAIDがぶっ飛んで思い知ったのです…。
open/close この記事にコメントする



link もっと前
2010年12月15日 >>> 2010年12月2日
link もっと後

管理用メニュー

link 記事を新規作成

<2010>
<<<12>>>
---1234
567891011
12131415161718
19202122232425
262728293031-

最近のコメント20件

  • link 21年9月20日
    すずきさん (11/19 01:04)
    「It was my pleasure.」
  • link 21年9月20日
    whtさん (11/17 23:41)
    「This blog solves my ...」
  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」
  • link 24年10月1日
    hdkさん (10/03 08:30)
    「おー、面白いですね。xrdpはすでに立ち...」
  • link 14年6月13日
    2048player...さん (09/26 01:04)
    「最後に、この式を出すのに紙4枚(A4)も...」
  • link 14年6月13日
    2048playerさん (09/26 01:00)
    「今のところ最も簡略化した式です。\n--...」
  • link 14年6月13日
    2048playerさん (09/16 01:00)
    「返信ありがとうございます。\nコメントが...」
  • link 14年6月13日
    すずきさん (09/12 21:19)
    「コメントありがとうございます。同じ結果に...」
  • link 14年6月13日
    2048playerさん (09/08 17:30)
    「私も2048の最高スコアを求めたのですが...」
  • link 14年6月13日
    2048さん (09/08 17:16)
    「私も2048の最高スコアを求めたのですが...」
  • link 14年6月13日
    2048playerさん (09/08 16:10)
    「私も2048の最高スコアを求めたのですが...」
  • link 02年8月4日
    lxbfYeaaさん (07/12 10:11)
    「555」
  • link 24年6月17日
    すずきさん (06/23 00:12)
    「ありがとうございます。バルコニーではない...」
  • link 24年6月17日
    hdkさん (06/22 22:08)
    「GPSの最初の同期を取る時は見晴らしのい...」
  • link 24年5月16日
    すずきさん (05/21 11:41)
    「あー、確かにdpkg-reconfigu...」
  • link 24年5月16日
    hdkさん (05/21 08:55)
    「システム全体のlocale設定はDebi...」
  • link 24年5月17日
    すずきさん (05/20 13:16)
    「そうですねえ、普通はStandardなの...」
  • link 24年5月17日
    hdkさん (05/19 07:45)
    「なるほど、そういうことなんですね。Exc...」

最近の記事3件

  • link 23年4月10日
    すずき (11/15 23:48)
    「[Linux - まとめリンク] 目次: Linux関係の深いまとめリンク。目次: RISC-V目次: ROCK64/ROCK...」
  • link 24年11月6日
    すずき (11/15 23:47)
    「[Ubuntu 24.04 LTS on ThinkPad X1 Carbon Gen 12] 目次: Linux会社ではTh...」
  • link 24年11月11日
    すずき (11/15 23:26)
    「[Pythonのテストフレームワーク] 目次: Python最近Pythonを触ることが増えたのでテストについて調べようと思い...」
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

最終更新: 11/19 01:04