FreeBSD、GEOMでミラーリング作ってみる

以前LinuxでmdadmとかでソフトウェアRAIDを作ったことがあったが、なんとなくで進めていた部分もあっていまいち理解度も少ない。LPICでも勉強したとは言え反復も少ないしまだまだだ。ので、またRAIDを試してみようと思う。
FreeBSDだとGEOMかZFSを使うことでソフトウェアRAIDができるらしい。

毎度毎度のことだけど、色々やってみたけど実際に稼働できるようになるまで半日くらいかかってしまったのだが、日記でまとめちゃうとほんのちょこっとになってしまうのだ。
ほんのちょこっとなんだけど、そこに気付いてほしいぞ。

では本題に。

今回はHDDを2個用意してミラーリングを作るという手順になる。
FreeBSDインストールの段階でHDDが2個認識されていて、ad0、ad1ともにスライスを切ることとラベルの割り当ては普通におこなって上手くいった。
今回試したのとは違うけど、すでに運用中のものに増設した場合は、dmesgで認識されているか確認してスライスを初期化すれば大丈夫。

なはず。

% dmesg
ad0: 20480MB <QEMU HARDDISK 0.12.1> at ata0-master WDMA2 
ad1: 20480MB <QEMU HARDDISK 0.12.1> at ata0-slave WDMA2 

% sudo newfs -U /dev/ad1
Password:
/dev/ad1: 20480.0MB (41943040 sectors) block size 16384, fragment size 2048
   using 112 cylinder groups of 183.72MB, 11758 blks, 23552 inodes.
   with soft updates
super-block backups (for fsck -b #) at:
 160, 376416, 752672, 1128928, 1505184, 1881440, 2257696, 2633952, 3010208, 3386464, 3762720, 4138976, 4515232, 4891488, 5267744, 5644000, 6020256, 6396512,
 6772768, 7149024, 7525280, 7901536, 8277792, 8654048, 9030304, 9406560, 9782816, 10159072, 10535328, 10911584, 11287840, 11664096, 12040352, 12416608,
 12792864, 13169120, 13545376, 13921632, 14297888, 14674144, 15050400, 15426656, 15802912, 16179168, 16555424, 16931680, 17307936, 17684192, 18060448,
 18436704, 18812960, 19189216, 19565472, 19941728, 20317984, 20694240, 21070496, 21446752, 21823008, 22199264, 22575520, 22951776, 23328032, 23704288,
 24080544, 24456800, 24833056, 25209312, 25585568, 25961824, 26338080, 26714336, 27090592, 27466848, 27843104, 28219360, 28595616, 28971872, 29348128,
 29724384, 30100640, 30476896, 30853152, 31229408, 31605664, 31981920, 32358176, 32734432, 33110688, 33486944, 33863200, 34239456, 34615712, 34991968,
 35368224, 35744480, 36120736, 36496992, 36873248, 37249504, 37625760, 38002016, 38378272, 38754528, 39130784, 39507040, 39883296, 40259552, 40635808,
 41012064, 41388320, 41764576

sysinstall > configureでもいいみたい。

 

という事でミラーリング作成に進もう。

まずはFreeBSDのイメージDISKを入れてDISKからブートする、一般的にはライブDISKみたいだけど普通のDISKでもいけました。

mirr01

普通に立ち上げて、日本を選択すると ↑ の画面が出てくるはずなのでFIXITを選択。

まずやることはカーネルのモジュールをロードしました。

Fixit# chroot /dist
Fixit# gmirror load
Fixit# exit
Fixit#

gmirrorをロードしただけでラベルとか設定しなくても、下の図みたいにad0だけの構成が出来上がってました。

mirr02

ここにad1を付け足すので

Fixit# gmirror insert gm0 ad1

これだけで同期が始まりました。下の図は

Fixit# gmirror status

で確認しているところ。

mirr03

Fixit# gmirror list

をすると下の図のような確認もできました。

mirr04

うーん。もうちょいだなあ。

同期が終わるとこんな感じになりますってのをgmirror statusで見てみると

mirr04.pn

てことでここから設定に入ります。マウントしてから、loader.confでgeomのモジュールを起動する記述をします。

Fixit# mount /dev/mirror/gm0s1a /mnt
Fixit# edit /mnt/boot/loader.conf
geom_mirror_load=”YES”

続いてFSTABを編集しよう。たけの環境では/dev/ad0の部分を書き換えただけです。

Fixit# edit /mnt/etc/fstab

mirr05

これで完了です。

これで終わり?って思いました? ハイ、これで終わりなのですw
ここまでなのにどれだけかかったことかw

ドキドキしながら再起動しましょう。

mirr06

いけましたね。

では、ほんとに上手く認識しているかチェックしましょう。

mirr07

OKでした。

参考サイトでは1個だけの起動とか試してますので、どうぞ。
たけサイトではここで終わります。

つぎはZFSでRAIDを試してみようと思います。
ZFSはファイルシステムがRAIDに対応しているみたいなので、と言っても具体的には分かりませんけどw

 

参考資料
実践FreeBSDサーバ構築・運用ガイド  佐々木 宣文 (著), 後藤 大地 (著), 佐藤 広生 (監修)

参考サイト
FreeBSD8.0 WEBサーバ構築ノート