!!!概要 {{outline}} !!!目的 *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. !!!参考サイト *http://www.freebsd.org/doc/handbook/geom-mirror.html