SSブログ

SSDの追加でデバイス名が変わってしまった。mdadm.confの設定を変更 [PC関係]

えーと本日は、LinuxのソフトウェアRAIDのお話である。

うちの環境のサーバーマシン。とりあえず、HDDは壊れるものと考えているので、RAID1でミラーリングしている。といってもハードウェアのRAIDではなく、SATAのHDDをふたつ繋げてLinuxの機能でRAIDを構成している。mdadmで管理するやつね。

ここ数年はHDDドライブが死ぬことなく、動作している。
しかしである。サーバーマシンでOracleを稼働させていると、どうも重たい。普通にLinux上でやればよかったのだが、VirtualPCでやっているものだから、なおさら遅い。Virtual PC上で動かしているのは諸事情があって...

SSD入れたら、速くなるかも?ということで、PCI Expressスロットに入れるSATAⅢとSSDを買ってきた。Mac miniでやったときは、かなりの効果があったので、期待できる。
しかしである。蓋開けて、PCIに突っ込んで、再起動で一発認識、とは行かなかった...

まず、なんか、md1が認識できずに、マウント失敗。md1は、RAID0のストライピングをしているディスク。md0がRAID1のミラーリング。md1に、VirtualPCの仮想HDDが作成されている。
なんで?と思ったが、原因はすぐにわかった。認識されるデバイス番号が変わってしまったからであった。今までは、/dev/sdaがmd0の最初のドライブであったものが、追加したSSDが/dev/sdaになってしまい、その後のドライブがひとつずれてしまった形になってしまったのである。

やばー。

ということで、すかさず、PCI Expressからカードを引っこ抜いて、再起動。
起動ドライブは、IDE(PATA)で接続しているSSDなので、md0やらRAIDとは関係なし。この点は安心できる。
再起動したら、無事に上がってきた。
/proc/mdadm.statを見てみると、おや、ミラーリングしているmd0でデバイスがひとつ死んでいる。あー、やってしまったか。

たぶん、デバイス名が変わってしまった状態でRAIDが構成されたので、ふたつのドライブ(sdaとsdb)に差異ができてしまったのであろう。ドライブ自体は、死んでないと思われる。

でも、しばらく見てなかったから、しらないうちに壊れたのかもと不安に思いつつも、mdadmで使われていないsdbを追加し直す。コマンドの引数はどうやったか忘れた。mdadmの--add /dev/sdb1とかっぽいものを実行したと思う。

リビルドが始まった。sda1からsdb1へコピーが行われているようである。コピーには数時間はかかりそう。500GのHDDだからね。

リビルドは、無事終わった!

なんとか、切り抜けたか。ひと安心である。
しかし、同じことをやると、同じようにRAIDが崩れてしまうしなぁ...どうすればよいのじゃ...

mdadm.confを書き換えて再起動かければよいのかなぁ... なんか自信ないなぁ...
とりあえず、今日のところはバックアップだけしてみよう。

/homeと/home2でかなり使っている。500GのHDDをUSB接続できたので、これに入る分にだけダイエットするか。バックアップ的なものは、DVDに焼いて... なんとか500Gに収まる程度にできた。VirtualBOXのvhdファイルってそのまま、コピーしてOKなんだっけか?

あー、いろいろ不安要素はあるが、一応はバックアップできたので、後日、mdadm.confを書き換えて再起動をかけてみよう。

その後日

/etc/mdadm.confは以下のようになっていた

変更前の/etc/mdadm.conf
# ARRAY1 md0 RAID1 mirroring
DEVICE /dev/sd[ab]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1

# ARRAY2 md1 RAID0 striping
DEVICE /dev/sd[de]1
ARRAY /dev/md1 devices=/dev/sdd1,/dev/sde1


これをSSDを追加した後に認識されるデバイス名に変更していけば、よいのだが、今後HDDやSSDが追加されることも考え、よい設定方法はないものかと調べることに。

デバイス名

そもそも、/dev/sdaやsdbといったデバイス名は、カーネルがブートしてくる際に決定するもの。ドライブを認識すると順番にa、b、cと名前を付けていく感じになる。
このHDDはsdaで、こっちはsdbといった名前付けのルールを書いておけば、udevがなんかうまいことやってくれそう。
しかし、名前付けのルールを書くのなんかめんどう。HDDのシリアル番号を指定しなければならなかったりする。もっとよい方法はないものかと調べると、/dev/disk/by-path以下のデバイス名で書いてしまえばOKらしい。

変更後の/etc/mdadm.conf
# ARRAY1 md0 RAID1 mirroring
#DEVICE /dev/sd[ab]1
#ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1
DEVICE /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0-part1 /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:1:0-part1
ARRAY /dev/md0 devices=/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0-part1,/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:1:0-part1

# ARRAY2 md1 RAID0 striping
#DEVICE /dev/sd[de]1
#ARRAY /dev/md1 devices=/dev/sdd1,/dev/sde1
DEVICE /dev/disk/by-path/pci-0000:03:01.0-scsi-0:0:0:0-part1 /dev/disk/by-path/pci-0000:03:01.0-scsi-1:0:0:0-part1
ARRAY /dev/md1 devices=/dev/disk/by-path/pci-0000:03:01.0-scsi-0:0:0:0-part1,/dev/disk/by-path/pci-0000:03:01.0-scsi-1:0:0:0-part1


/dev/disk/by-pathの中には、認識されたドライブが、パス形式の名前で作成されている。でこれらのファイルは実際はシンボリックリンクで、実際は、sdb1やらsddといったデバイス名にリンクされている。
HDDが接続されているポートを変更しない限り、/dev/disk/by-path以下のデバイス名を使って指定しておけば、mdadm.confの変更はしなくてよくなるはず。

さぁ、再起動してみるか... ちょっと不安だが...

md0 ... [OK]
md1 ... [OK]

おお、認識した。
/proc/mdstatでも確認しておこう。

# more /proc/mdstat
Personalities : [raid1] [raid0]
md1 : active raid0 sde1[0] sdf1[1]
      1113513152 blocks 64k chunks

md0 : active raid1 sdb1[0] sdc1[1]
      488383936 blocks [2/2] [UU]

unused devices: 


OK。動いている。

余談ではあるが、サーバーマシンのマザーをASRockの「C2750D4I」または「C2550D4I」に変更しようかと画策中である。


ASRock マザーボード  Avoton オクタコアC2750オンボードServer MiniITX            C2750D4I

ASRock マザーボード Avoton オクタコアC2750オンボードServer MiniITX C2750D4I

  • 出版社/メーカー: ASROCK
  • メディア: Personal Computers



C2550D4Iは、在庫なしで注文できないなぁ。人気なのかぁ。

サイト内を検索

nice!(0)  コメント(0) 
共通テーマ:携帯コンテンツ

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。



Copyright Atsushi Asai Google+朝井淳
[改訂第4版]SQLポケットリファレンス

[改訂第4版]SQLポケットリファレンス

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/18
  • メディア: 単行本(ソフトカバー)

イラストで理解 SQL はじめて入門

イラストで理解 SQL はじめて入門

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2019/05/16
  • メディア: 単行本(ソフトカバー)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2015/03/03
  • メディア: 単行本(ソフトカバー)

Access クエリ 徹底活用ガイド ~仕事の現場で即使える

Access クエリ 徹底活用ガイド ~仕事の現場で即使える

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/05/25
  • メディア: 大型本

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。