トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

FreeBSD gmirror 演習

概要

目的

  • FreeBSD での software-RAID の gmirror
  • 稼働している FreeBSD を対象とする。
  • 障害発生時の復旧方法を確認する。
  • トリプルミラー

作業手順

FreeBSD インストール

FreeBSD gmirror 開始

シングル

  • cd 起動
  • gmirror 設定
# gmirror label -vb round-robin p1 /dev/da0p1
Metadata value stored on /dev/da0p1.
Done.
# gmirror label -vb round-robin p2 /dev/da0p2
Metadata value stored on /dev/da0p2.
Done.
# gmirror label -vb round-robin p3 /dev/da0p3
Metadata value stored on /dev/da0p3.
Done.
  • gmirror 状況確認
# gmirror status
      Name    Status  Components
mirror/p1  COMPLETE  da0p1 (ACTIVE)
mirror/p2  COMPLETE  da0p2 (ACTIVE)
mirror/p3  COMPLETE  da0p3 (ACTIVE)
  • ディスク設定#2
gmirror label -vb round-robin gm0 /dev/ada0
  • gmirror 開始
gmirror load

設定ファイル更新

  • / の領域を /mnt にマウント
# mount /dev/mirror/p2 /mnt
  • gmirror 自動起動
echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf
  • fstab 編集
cp -p /mnt/etc/fstab /etc/fstab.YYYYMMDD
sed -e 's!da0!mirror/!g' < /etc/fstab.YYYYMMDD > /etc/fstab

再起動

  • 起動確認
df
mount
gmirror status

ダブル

  • da1 パーティションテーブル作成
gpart backup /dev/da0 > da0.gpart
gpart restore /dev/da1 < da0.gpart
  • ブートコード書込み
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 da1
  • gmirror 追加
gmirror insert p1 /dev/da1p1
gmirror insert p2 /dev/da1p2
gmirror insert p3 /dev/da1p3
  • gmirror 状況確認
gmirror status

トリプル

  • 上記ダブルと同様、デバイスは /dev/da2

障害時対応確認

HDD 障害

Jun 14 09:18:44 fbsd64 kernel: mpt0: Rescan Port: 0
Jun 14 09:18:44 fbsd64 kernel: (da0:mpt0:0:2:0): lost device - 0 outstanding, 3 refs
Jun 14 09:18:44 fbsd64 kernel: GEOM_MIRROR: Device p3: provider da0p3 disconnected.
Jun 14 09:18:44 fbsd64 kernel: GEOM_MIRROR: Device p2: provider da0p2 disconnected.
Jun 14 09:18:44 fbsd64 kernel: GEOM_MIRROR: Device p1: provider da0p1 disconnected.
Jun 14 09:18:44 fbsd64 kernel: (da0:mpt0:0:2:0): removing device entry

障害の検出

> gmirror status
     Name    Status  Components
mirror/p1  DEGRADED  da0p1 (ACTIVE)
mirror/p2  DEGRADED  da0p2 (ACTIVE)
mirror/p3  DEGRADED  da0p3 (ACTIVE)

シングルでの起動確認

  • 起動できた。
  • 起動できない場合は bootcode を確認

障害の復旧

gmirror forget p1
gmirror forget p2
gmirror forget p3
gmirror insert p1 /dev/da1p1
gmirror insert p2 /dev/da1p2
gmirror insert p3 /dev/da1p3
Jun 14 09:09:28 fbsd64 kernel: GEOM_MIRROR: Device p3: rebuilding provider da1p3.
Jun 14 09:09:29 fbsd64 kernel: GEOM_MIRROR: Device p3: rebuilding provider da1p3 finished.
Jun 14 09:09:36 fbsd64 kernel: GEOM_MIRROR: Device p1: rebuilding provider da1p1.
Jun 14 09:09:36 fbsd64 kernel: GEOM_MIRROR: Device p1: rebuilding provider da1p1 finished.
Jun 14 09:09:47 fbsd64 kernel: GEOM_MIRROR: Device p2: rebuilding provider da1p2.
Jun 14 09:15:40 fbsd64 kernel: GEOM_MIRROR: Device p2: rebuilding provider da1p2 finished.

参考サイト