Digital Acorn

プログラムやサーバーの設定など、技術的な記事を載せております。

CentOS Server

【CentOS4】 通常のディスクからSoftware RAID1に変換する

投稿日:2015-06-15 更新日:

概要

昔wikiに載せていた、diskを通常ディスクからraid1に変換する記事です。
まだ役に立つかもしれないので、載せておきます。

既存のシステムは「/dev/hda」で稼動しており、
/dev/hda1が /boot
/dev/hda2が /
/dev/hda3が swap
とする。そこに同容量以上のディスクを追加しRAID1を構成する。

新ディスクを用意する。

  • パーティションの作成
    ここでは仮に「/dev/hdb」とする。
    既存のシステムと同じ大きさのパーティションを作る。
    パーティションのタイプを0xFDにする。
  • RAID1(ミラーリング)を作る
    本当はチャンクサイズをデフォルトより大きくしたほうがいいかもしれない。
    –chunk=1024 くらい指定したほうがいいのかな? chunkサイズが1MBになる
    Software-RAID HOWTOによると
    RAID-1
    書き込みについては chunk-size はアレイに影響しません。全てのデータはとにかく全てのディスクに書かれなければならないからです。しかし読み込みの場合、chunk-size でアレイのディスクから連続的にどれくらいのデータを読むかを指定します。アレイ中の全てのアクティブなディスクが同じ情報を持つので、RAID-0 のように並列に読み込めるわけです。

    ということなので、大きくしておいたほうが、パフォーマンスはいいかもしれないですね。

    mdadm -C /dev/md0 -l1 -n2 -c1024 /dev/hdb1 missing
    mdadm -C /dev/md1 -l1 -n2 -c1024 /dev/hdb2 missing
    mdadm -C /dev/md2 -l1 -n2 -c1024 /dev/hdb3 missing
    
  • フォーマットする
    mkfs.ext3 /dev/md0
    mkfs.ext3 /dev/md1
    mkswap /dev/md2
    
  • マウントする
    mkdir /mnt/md0  ←二つ同時にマウントするために
    mkdir /mnt/md1  ←ディレクトリを作ってる
    mount /dev/md0 /mnt/md0
    mount /dev/md1 /mnt/md1
    
  • コピーする
    /boot
    cp -a /boot/* /mnt/md0
    

    システム用のマウントポイント等を作ってやっておく

    mkdir /mnt/md1/proc
    mkdir /mnt/md1/sys
    mkdir /mnt/md1/mnt
    mkdir /mnt/md1/boot
    mkdir /mnt/md1/tmp
    
    chmod 1777 /mnt/md1/tmp  ←tmpの特殊なmode
    
    cp -a /bin  /mnt/md1
    cp -a /dev  /mnt/md1
    cp -a /etc  /mnt/md1
    cp -a /home /mnt/md1
    cp -a /lib  /mnt/md1
    cp -a /root /mnt/md1
    cp -a /sbin /mnt/md1
    cp -a /usr  /mnt/md1
    cp -a /var  /mnt/md1
    

    他にも必要なものはコピーしたり作ったりしておく

  • fstabを編集
    起動用に/mnt/md1/etc/fstabを編集

    /dev/md1  /      ext3  defaults  1 1
    /dev/md0  /boot  ext3  defaults  1 2
    /dev/md2  swap   swap  defaults  0 0
    
  • initrdの作り直し
    RAID対応にinitrdを作り直す。RAIDなしでOSをセットアップすると、RAID非対応(–omit-raid-modulesオプション)が付けられているみたい。

    バックアップ

    mv /mnt/md0/initrd-2.6.9-22.EL.img /mnt/md0/initrd-2.6.9-22.EL.img.org

    作成(環境によって異なる)

    mkinitrd --fstab=/mnt/md1/etc/fstab /mnt/md0/initrd-2.6.9-22.EL.img 2.6.9-22.EL
  • テスト再起動
    この状態で、再起動して、grubでパラメータを変更。

    root (hd1,0)
    kernel /vmlinuz-2.6.9-22.EL ro root=/dev/md1
    initrd /initrd-2.6.9-22.EL.img
    

    これでRAID側から起動する。起動しなければ設定を見直す。
    (ここまでなら旧環境で立ち上がるので、ここで不安をつぶすこと)

    通常通り起動するようになったら、旧ディスクを新ディスクに追加する。

旧ディスクの追加

  • パーティションタイプの変更
    fdisk /dev/hda にて、パーティションタイプを0xFDにすべて変更。
    こんな結果になるはず。

    /dev/hda1        1       37      297171  fd  Linux raid 自動検出
    /dev/hda2       38    19799   158738265  fd  Linux raid 自動検出
    /dev/hda3    19800    20023     1799280  fd  Linux raid 自動検出
    
  • アレイに追加
    mdadm /dev/md0 --add /dev/hda1
    mdadm /dev/md1 --add /dev/hda2
    mdadm /dev/md2 --add /dev/hda3
    
  • grub関連
    このままだと、grubがちゃんとしてないので、/boot/grub/grub.confを編集。

    root (hd0,0)
    kernel /vmlinuz-2.6.9-22.EL ro root=/dev/md1
    initrd /initrd-2.6.9-22.EL.img
    

    そして、今までのMBRが使えなくなったので、grubコマンドでインストールする。

    device (hd0) /dev/hda
    root (hd0,0)
    install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf
    quit
    

    スペアディスクにもMBRを書き込んでおくと、マスタ障害時にマスタを取ってスレーブのディスクをマスタに付け替えるだけで起動するので、ここで書き込んでおく。

    device (hd0) /dev/hdb
    root (hd0,0)
    install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf
    quit
    

    必ず前回のgrubを終了してからでないとうまくいかない。

  • 本番再起動
    grubの起動CDを作っておくと、grubでの起動が失敗したときあせらなくてすみます。

お疲れ様でした。再起動してうまく立ち上がれば完了です。

-CentOS, Server


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

さくらVPSのCPU異常使用

なぜか、さくらVPSのCPU消費が、ずーっと300msec近いところで推移していた。 3コア x 1000msecが最大だそうなので、10%を消費していることになる。 topで見ても、CPUを使ってい …

【qmail】 SPFの不正を防御する

スパムでSPFがpassになるのが多いなあ?、と思ってググりました。 ありました(泣) SPF (Sender Policy Framework) チェックをパスしてしまう迷惑 (スパム) メールが増 …

【qmail】携帯キャリアのメールに添付を削除して転送する

qmailでメールを携帯に転送して、メール通知に使っておられる方は結構多いんじゃないでしょうか。 ただ、大きなファイルが添付されていると、エラーメールが送信元に戻ってしまいます。 つまり、クライアント …

MySQL VIEWの一覧

MySQLでVIEWの一覧が欲しいなぁ・・・と思ったら、以下のSQLで可能。 SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.views …

さくらのレンタルサーバーでスパムフィルタを書く

最近、さくらのレンタルサーバーでスパムが多くて参ってました。 「hi」とか「hey」とかのタイトルのやつです。 他にも困っている人がいないかなぁ、と思ってググると、ありました。 rambler.ruが …

広告