ライン

ポイント:ミラーリング機能を使って、レプリ。

ライン

 はじめに

gmirror

 gmirrorによるRAID機能を使って、ハードディスクのバックアップを取ってみました。
ハードディスクが安い時代が続いているので、ミラーリングしているディスクを1本まるごとを時系列に保存しておく…なんていう不精者のバックアップなページです。

 FreeBSD 6.2-RELEASE-p3

準備

 今回手元にあるのは、IBM / DTTA-351010 10.1 GBのハードディスク。5400rpm ATA100。

ad0: 9671MB <IBM DTTA-351010 T56OA73A> at ata0-master UDMA33

古いハードディスクでした。

 ミラーリング(バックアップ)に使う側のハードディスク側もそこそこ古い品物。
SEAGATE TECHNOLOGY / ST340016A 40GBのハードディスク。7200rpm ATA100。流体軸受。

ad1: 38166MB <Seagate ST340016A 3.19> at ata0-slave UDMA100

 見たとおり、大きさもメーカーも異なるディスクを接続して、ミラーリングを行います。

 FreeBSD で ad0とかad1の意味合いは、以下のようなものになっているそうだ。
IDE/ATA とかだと ad[0-3] になるし、シリアルATA(SATA)だと ad[4-7]になる。

DEV 規格 IDE 0/1 M/S
ad0 IDE Primary Master
ad1 IDE Primary Slave
ad2 IDE Secondary Master
ad3 IDE Secondary Slave
ad4 SATA Primary Master
ad5 SATA Primary Slave
ad6 SATA Secondary Master
ad7 SATA Secondary Slave

 今回試している環境の ad0 と ad1というのは、プライマリ側の マスターとスレーブに位置するケーブルに接続されたハードディスク。本来であれば、ad1側 に接続されているハードディスクは ad2側の位置の方が都合がいいのですが、目的がバックアップということでその辺りは無視して眺めてください。

 この他に必要なものは、FIXITのFreeBSDのCD。これがあれば問題ありません。普通に導入に利用したCDやDVDがあれば十分です。

作業

 FreeBSD 6.xではカーネルをリコンパイルするなどの作業無く、gmirrorやgstripeを利用できます。
手間があまり掛からないでRAIDが利用できるのは便利です。gmirrorのマニュアルを眺め、サイト情報を参考にしつつ、作業をしてみることにします。

 さて、次に 準備した FreeBSD 6.2-p4 の CD-ROM (1)でブート。メニューで Fixit を選択。

Fixit# chroot /dist
Fixit# mount_devfs devfs /dev
Fixit# gmirror load -v 
Fixit# gmirror label -v -b split -s 4096 gm0 /dev/ad0
Fixit# gmirror insert -v gm0 /dev/ad1

これでシンクロ開始。gmirror list でもgmirror statusでも見ていて完了したら終わり。

Fixit# gmirror stop gm0
Fixit# gmirror clear ad0
Fixit# gmirror clear ad1

 電源を落としてディスクを抜き取って完了。こんな流れです。

ハードディスクの大きさの差は、容量として不足するものでなければ大丈夫。
わざわざ大きさを変える必要性はないんですが。ありませんから、古い時代のディスクスペアなんて…。
 以上で、今回の目的は果たせました。

 ミラーリングで利用する

バックアップという話ではなく…

 今回のページでは、バックアップ用のとして簡易で使っただけですが、少しだけ普通の設定についてもメモ。

 ミラーリングで使うのであれば、マスター同士での接続が一般的と思うので、ad0 ad2 (IDE) または ad4 ad6 (SATA) での組み合わせがいいでしょう。

 以下は、ad0 ad2とした例での手順。
CD-ROM (1)でブートして メニューで Fixit を選択。

Fixit# chroot /dist
Fixit# mount_devfs devfs /dev
Fixit# gmirror load -v 
Fixit# gmirror label -v -b split -s 4096 gm0 /dev/ad0
Fixit# gmirror insert -v gm0 /dev/ad2

これでシンクロナイズが開始。
gmirror list やgmirror statusで見てシンクロナイズがが完了したら終わり。
この後に、エディタでfstab他を編集。

Fixit# mount /dev/mirror/gm0s1a /mnt
Fixit# edit /mnt/boot/loader.conf

エディタは eeがあがってくる。1行を追加します。

geom_mirror_load="YES"

エディターを使わず、

echo geom_mirror_load=\"YES\" >> /mnt/boot/loader.conf

のような方法で追加することでもかまいませんが。

Fixit# edit /mnt/etc/fstab

で中身を変更。

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/mirror/gm0s1b      none            swap    sw              0       0
/dev/mirror/gm0s1a      /               ufs     rw              1       1
/dev/mirror/gm0s1e      /tmp            ufs     rw              2       2
/dev/mirror/gm0s1f      /usr            ufs     rw              2       2
/dev/mirror/gm0s1d      /var            ufs     rw              2       2

/dev/acd0               /cdrom          cd9660  ro,noauto       0       0

こんな感じにしました。以前の物と比較するべく一応以前ものが以下も出しておきます。

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1b             none            swap    sw              0       0
/dev/ad0s1a             /               ufs     rw              1       1
/dev/ad0s1e             /tmp            ufs     rw              2       2
/dev/ad0s1f             /usr            ufs     rw              2       2
/dev/ad0s1d             /var            ufs     rw              2       2

/dev/acd0               /cdrom          cd9660  ro,noauto       0       0

要するに、ad0 を mirror/gm0 と置き換えるだけ。
実際にあがってきたときには以下のようになってあがってきました。

GEOM_MIRROR: Device gm0 created (id=1191788215).
GEOM_MIRROR: Device gm0: provider ad0 detected.
GEOM_MIRROR: Device gm0: provider ad2 detected.
GEOM_MIRROR: Device gm0: provider ad2 activated.
GEOM_MIRROR: Device gm0: provider ad0 activated.
GEOM_MIRROR: Device gm0: provider mirror/gm0 launched.
Trying to mount root from ufs:/dev/mirror/gm0s1a

簡単だし、便利ですね。で、解除するには同様の手順で CD-ROMでブートして日本語キーボードに選択をし、メインメニューでFixit。

Fixit# chroot /dist
Fixit# mount_devfs devfs /dev
Fixit# gmirror load 
Fixit# mount /dev/mirror/gm0s1a /mnt

ここで、上記と逆に fstabを元に戻す。

Fixit# edit /mnt/etc/fstab
Fixit# /

という感じで。終わったらもう mountしている必要がないので、

Fixit# umount /mnt
Fixit# gmirror stop gm0
Fixit# gmirror clear ad0
Fixit# gmirror clear ad2

 これでちゃんとブートするかを確認。

 OKです。問題なく、ミラーリングで動作を開始して利用をすることができます。

【改訂履歴】作成:2007/05/13
2009/06/18 … Namazu検索の窓を追加

【参考リンク】


デル株式会社

Copyright © 1996,1997-2006,2007- by F.Kimura,