FreeBSD で GEOM を試してみる †FreeBSD に GEOM というフレームワークがあるので,これを試してみます. GEOM を使ってみる †先にも言ったように GEOM は VFS 層とファイルシステム層の中間に位置する層でごにょごにょするフレームワークです.その為,ATA だろうが SCSI だろうが問いません. Master: ad0 <VMware Virtual IDE Hard Drive/00000001> ATA/ATAPI revision 4 Slave: ad1 <VMware Virtual IDE Hard Drive/00000001> ATA/ATAPI revision 4 ATA channel 1: Master: ad2 <VMware Virtual IDE Hard Drive/00000001> ATA/ATAPI revision 4 Slave: ad3 <VMware Virtual IDE Hard Drive/00000001> ATA/ATAPI revision 4 geom01# camcontrol devlist <VMware, VMware Virtual S 1.0> at scbus0 target 0 lun 0 (pass0,da0) <VMware, VMware Virtual S 1.0> at scbus0 target 1 lun 0 (pass1,da1) <VMware, VMware Virtual S 1.0> at scbus0 target 2 lun 0 (pass2,da2) <VMware, VMware Virtual S 1.0> at scbus0 target 3 lun 0 (pass3,da3) <VMware, VMware Virtual S 1.0> at scbus0 target 4 lun 0 (pass4,da4) まずはやっぱり RAID0 †まず,atacontrol の置き換えとする為に,RAID0 ディスクの作成からはじめて見たいと思います. kldload geom_stripe.ko 再起動後も自動で読み込ませるには,/boot/loader.conf に以下の1行を追加します. geom_stripe_load="YES" また,ローダブルモジュールでは無く,kernel に静的に組み込んで使用したい場合,次の行を kernel コンフィグレーションファイルに追加して kernel を再作成して下さい. options GEOM_STRIPE さて,上記作業終了後,実際に RAID0 ディスクの作成が行えます.GEOM 機構を使った RAID0 は gstripe コマンドを使用して作成できます. geom01# gstripe label -v -s 131072 stripe0 ad0 ad2 Metadata value stored on ad0. Metadata value stored on ad2. Done. gstripe コマンドに create 又は label を渡す事で作成の命令となります.-v は冗長モードにしてメッセージを表示させます.-s はストライプサイズで,オプションです.サイズは byte 単位で,無くても構いません.その後作成するデバイス名を指定し,その後に物理デバイス名を並べていきます.エラーが表示されなければ作成は完了です. ステータスを知るには,gstripe status と status オプションを渡します. geom01# gstripe status
Name Status Components
stripe/stripe0 UP ad0
ad2
上記の場合,stripe ディスクで,デバイス名が stripe0,ステータスが UP(正常) となり,物理ディスクとして ad0, ad1 が指定されている事がわかるかと思います. geom01# gstripe list Geom name: stripe0 State: UP Status: Total=2, Online=2 Type: AUTOMATIC Stripesize: 131072 ID: 1056941425 Providers: 1. Name: stripe/stripe0 Mediasize: 17179607040 (16G) Sectorsize: 512 Mode: r0w0e0 Consumers: 1. Name: ad0 Mediasize: 8589934592 (8.0G) Sectorsize: 512 Mode: r0w0e0 Number: 0 2. Name: ad2 Mediasize: 8589934592 (8.0G) Sectorsize: 512 Mode: r0w0e0 Number: 1 stripe0 に関する詳しい情報が表示される事がわかります./dev/stripe 以下に stripe0 というデバイスが作成されますので,これを newfs してマウントする事で RAID0 ディスクが利用出来ます. geom01# gstripe label -v -s 131072 stripe1 ad1 da1 Metadata value stored on ad1. Metadata value stored on da1. Done. 上記のように,stripe1 という名前で,ad1(ATA) と da1(SCSI) をサブディスクに指定して,RAID0 ディスクを作成します.ステータスは以下の通り,正常に UP 状態である事がわかるかと思います. geom01# gstripe status
Name Status Components
stripe/stripe0 UP ad0
ad2
stripe/stripe1 UP ad1
da1
これら作成した RAID0 ディスクは /dev/stripe 以下にデバイスファイルがありますので,newfs してマウントする事が可能です. RAID0 ディスクの削除 †作成済みの RAID0 や,間違って作成されてしまった RAID0 ディスクを削除するには,gstripe destroy コマンドを使用します.このコマンドに,削除したいデバイス名を渡す事で削除が行なわれます.特に確認も無く削除が実行されてしまいますので,destroy は注意して下さい. geom01# gstripe destroy stripe1
geom01# gstripe status
Name Status Components
stripe/stripe0 UP ad0
ad2
RAID1 のミラーリングを試してみる †RAID0 と同様に,作業を行う前に,GEOM RAID1 の為の kernel module をロードしておく必要があります.GEOM RAID1 のモジュールは geom_mirror.ko です.以下のコマンドを発行する事でモジュールのロードが完了します. kldload geom_mirror.ko 再起動後も自動で読み込ませるには,/boot/loader.conf に以下の1行を追加します. geom_mirror_load="YES" また,ローダブルモジュールでは無く,kernel に静的に組み込んで使用したい場合,次の行を kernel コンフィグレーションファイルに追加して kernel を再作成して下さい. options GEOM_MIRROR 今回も上記作業が完了したら,RAID1 ディスクの作成作業に移ることが出来ます.GEOM 機構を使用した RAID1 ディスクを作成するには,gmirror コマンドを使用します. geom01# gmirror label mirror0 ad0 ad2 gmirror で RAID1 ディスクを作成する際も label オプションを渡します.この場合,mirror0 というディスクを作成し,元になるディスクは ad0 及び ad2 になります. geom01# gmirror status
Name Status Components
mirror/mirror0 COMPLETE ad0
ad2
この場合,デバイス名が mirror/mirror0 である事がわかり,RAID ステータスは正常である事がわかります.このままパーティションを切り,newfs してマウントする事で利用が可能です. geom01# mount | grep /mnt
/dev/ad1 on /mnt (ufs, local)
geom01# umount /mnt
geom01# gmirror label -v mirror1 ad1
Metadata value stored on ad1.
Done.
geom01# gmirror insert -v mirror1 ad3
Done.
geom01# gmirror status
Name Status Components
mirror/mirror0 COMPLETE ad0
ad2
mirror/mirror1 DEGRADED ad1
ad3 (9%)
geom01# mount /dev/mirror/mirror1 /mnt
geom01# mount | grep /mnt
/dev/mirror/mirror1 on /mnt (ufs, local)
上記のように,先にマスタ側となる HDD を gmirror label で指定し,ミラーセットの片面を作成します.この場合,mirror1 というデバイスに ad1 を参加させています. RAID1 ディスクの削除 †間違って作成してしまった場合や,RAID1 ディスクの利用をやめたい場合には ''gmirror
remove'' コマンドを使用します. 例えば,RAID1 構成をやめて単発としたい場合は以下のように,ミラーセットの片方を remove で取り外します. geom01# gmirror status
Name Status Components
mirror/mirror0 COMPLETE ad0
ad2
mirror/mirror1 COMPLETE ad1
ad3
geom01# gmirror remove mirror1 ad3
geom01# gmirror status
Name Status Components
mirror/mirror0 COMPLETE ad0
ad2
mirror/mirror1 COMPLETE ad1
また,上記状態より,mirror0 のミラーセットを全て削除したい場合は,次のように参加ディスク全てを指定する事で削除する事が可能です. geom01# gmirror remove mirror0 ad0 ad2
geom01# gmirror status
Name Status Components
mirror/mirror1 COMPLETE ad1
HDD デュプリケータとして使用する †gmirror を使う事で HDD デュプリケーションが簡単に可能になります.atacontrol や camcontrol を併用する事でリブートを行うことが無くどんどん同じ内容の HDD を作成する事が可能です. geom01# gmirror label -v dup0 ad0
Metadata value stored on ad0.
Done.
geom01# gmirror insert -v dup0 ad1
Done.
geom01# gmirror status
Name Status Components
mirror/dup0 DEGRADED ad0
ad1 (6%)
ここでは ad0 を先にミラーのマスタ側として dup0 に組み込み,その後に ad1 をスレーブとして追加しています.gmirror status でリビルドが確認出来ています. geom01# gmirror insert -v dup0 ad2
Done.
geom01# gmirror status
Name Status Components
mirror/dup0 DEGRADED ad0
ad1 (74%)
ad2 (22%)
上記のように,ad1 へリビルド中にもかかわらず,ad2 を追加する事も可能です.当然ながら,リビルド処理は各 HDD にあわせて行われます. RAID10 を試してみる †GEOM 機構は重ねて使う事が可能ですので,先の geom_stripe, geom_mirror を組み合わせて利用する事で RAID10 の環境を作成する事が可能です.はじめに RAID1 のディスクを複数用意し,それらを RAID0 で纏める事で RAID10 と出来ます. geom01# gmirror label mirror0 ad1 da1
geom01# gmirror label mirror1 ad2 da2
geom01# gmirror label mirror2 ad3 da3
geom01# gmirror status
Name Status Components
mirror/mirror0 COMPLETE ad1
da1
mirror/mirror1 COMPLETE ad2
da2
mirror/mirror2 COMPLETE ad3
da3
これで 3つの RAID1 ディスクが作成出来ました.この 3つの RAID1 を RAID0 で纏めてしまいましょう. geom01# gstripe label -s 131072 stripe0 mirror/mirror0 mirror/mirror1 mirror/mirror2
geom01# gstripe status
Name Status Components
stripe/stripe0 UP mirror/mirror0
mirror/mirror1
mirror/mirror2
ステータスを表示するとわかるように,geom_mirror で作成されているディスクが使用されている事がわかります. 作成された RAID10 ディスクは geom_stripe 及び geom_mirror をそのまま利用していますので,運用,管理はそれら geom_stripe 及び geom_mirror のコマンドで管理出来ます. ディスクをコンカチする †GEOM を使った,HDD の連結及びファイルシステムの拡張が可能です.この機能を利用する事で,ホーム領域の拡張が容易になる等,後からの運用が楽になります. 今までと同様に,作業を行う前に,GEOM CONCAT の為の kernel module をロードしておく必要があります.GEOM CONCAT のモジュールは geom_concat.ko です.以下のコマンドを発行する事でモジュールのロードが完了します. kldload geom_concat.ko 再起動後も自動で読み込ませるには,/boot/loader.conf に以下の1行を追加します. geom_concat_load="YES" また,ローダブルモジュールでは無く,kernel に静的に組み込んで使用したい場合,次の行を kernel コンフィグレーションファイルに追加して kernel を再作成して下さい. options GEOM_CONCAT モジュールのロードもしくは kernel への組み込みが完了すると GEOM concat を利用できます.ディスクのコンカチネーションは gconcat label を使用します. geom01# gconcat create -v concat0 ad0
Done.
geom01# gconcat status
Name Status Components
concat/concat0 UP ad0
gconcat status を見ると分かりますが,ad0 が concat0 に参加している事が分かります.このまま newfs 及び mount で利用が可能です. geom01# newfs /dev/concat/concat0
/dev/concat/concat0: 8192.0MB (16777216 sectors) block size 16384, fragment size 2048
using 45 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976,
3387328, 3763680, 4140032, 4516384, 4892736, 5269088, 5645440, 6021792,
geom01# mount /dev/concat/concat0 /mnt
geom01# df
/dev/concat/concat0 8122126 4 7472352 0% /mnt
この状態で,concat0 にディスクを追加して,ファイルシステムの拡張を実行してみます.ただ,残念な事に一度マウントを解除する必要があります. geom01# umount /mnt
geom01# gconcat label concat0 ad0 ad2
geom01# gconcat status
Name Status Components
concat/concat0 UP ad0
ad2
はじめに gconcat label を実行します.この際,既に作成してある名前及びデバイスをそのまま指定し,続いて追加するディスクを指定する事に注意して下さい.問題なく追加が完了したらファイルシステムの拡張を行います.growfs を利用して拡張を行います. geom01# growfs /dev/concat/concat0
We strongly recommend you to make a backup before growing the Filesystem
Did you backup your data (Yes/No) ? Yes
new file systemsize is: 8388607 frags
Warning: 59100 sector(s) cannot be allocated.
growfs: 16355.1MB (33495328 sectors) block size 16384, fragment size 2048
using 89 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
16936000, 17312352, 17688704, 18065056, 18441408, 18817760, 19194112,
19570464, 19946816, 20323168, 20699520, 21075872, 21452224, 21828576,
geom01# mount /dev/concat/concat0 /mnt
geom01# df
/dev/concat/concat0 16220702 4 14923042 0% /mnt
growfs を実行すると実施の確認があらわれますので Yes をタイプする事でファイルシステム拡張が実行されます.No の場合は何もせずに終了します.その後マウントしてみるとサイズが増えていることが確認出来ると思います. RAID3 を試してみる †ここまで来るとお分かりかと思いますが,やはり GEOM RAID3 の為の kernel module をロードしておく必要があります.GEOM RAID3 のモジュールは geom_raid3.ko です.以下のコマンドを発行する事でモジュールのロードが完了します. kldload geom_raid3.ko 再起動後も自動で読み込ませるには,/boot/loader.conf に以下の1行を追加します. geom_raid3_load="YES" また,ローダブルモジュールでは無く,kernel に静的に組み込んで使用したい場合,次の行を kernel コンフィグレーションファイルに追加して kernel を再作成して下さい. options GEOM_RAID3 上記作業を完了後,RAID3 ディスクの作成作業に移ることが出来ます.GEOM 機構を使用した RAID3 ディスクを作成するには,graid3 コマンドを使用します. geom01# graid3 label raid3-0 ad0 ad2 da1 graid3 で RAID3 ディスクを作成する際も label オプションを渡します.この場合,raid3-0 というディスクを作成し,元になるディスクは ad0 及び ad2,da1 になります. 作成されたディスクステータスを確認するには,status オプションを付けて graid3 コマンドを実行します. geom01# graid3 status
Name Status Components
raid3/raid3-0 COMPLETE ad0
ad2
da1
この場合,デバイス名が raid3/raid3-0 である事がわかり,RAID ステータスは正常である事がわかります.このままパーティションを切り,newfs してマウントする事で利用が可能です. geom01# graid3 list raid3-0 Geom name: raid3-0 State: COMPLETE Components: 3 Flags: NONE GenID: 0 SyncID: 1 ID: 4185056656 Zone64kFailed: 0 Zone64kRequested: 0 Zone16kFailed: 0 Zone16kRequested: 0 Zone4kFailed: 0 Zone4kRequested: 38 Providers: 1. Name: raid3/raid3-0 Mediasize: 17179868160 (16G) Sectorsize: 1024 Mode: r0w0e0 Consumers: 1. Name: ad0 Mediasize: 8589934592 (8.0G) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 0 Type: DATA 2. Name: ad2 Mediasize: 8589934592 (8.0G) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 1 Type: DATA 3. Name: da1 Mediasize: 8589934592 (8.0G) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Flags: NONE GenID: 0 SyncID: 1 Number: 2 Type: PARITY status コマンドの場合と比べ,表示される情報量が大幅に増えている事がわかるかと思います.まず,以下の項で,16GB のディスクになっている事がわかります.8GB x 3個 で,1つのドライブがパリティドライブなので,16GB となります. 1. Name: raid3/raid3-0 Mediasize: 17179868160 (16G) Sectorsize: 1024 Mode: r0w0e0 次に,各ディスクの情報が表示されていますが,この中の Type: に注目して下さい.ここにディスクタイプが表示されます.Type: DATA の場合,実際にデータが書かれるディスク,Type: PARITY の場合,パリティディスクとなります.ここでは da1 がパリティディスクになりました.RAID3 ディスク作成時の一番最後の引数に宛てたディスクがパリティディスクになるようです. RAID3 のリビルドを試してみる †RAID3 で構築したボリュームのディスクを1本故障した状態にして,そのまま利用が可能か,リビルドが可能かを試して見ます.今回,ATA ドライブをチャネル別に1本づつ利用していますので,ad2 を切り離してデグレード状態にしたいと思います. geom01# atacontrol detach ata1
geom01# atacontrol list
ATA channel 0:
Master: ad0 <VMware Virtual IDE Hard Drive/00000001> ATA/ATAPI revision 4
Slave: ad1 <VMware Virtual IDE Hard Drive/00000001> ATA/ATAPI revision 4
ATA channel 1:
Master: no device present
Slave: no device present
この状態だと,RAID3 ディスクははデグレードしていると認識されるはずです.先ほどと同様に,graid3 コマンドで確認します. geom01# graid3 status
Name Status Components
raid3/raid3-0 DEGRADED ad0
da1
マウント済みの場合,このまま利用出来るかですが,確認した限りでは問題ありませんでした.では,先ほどの ad2 を元に戻して,リビルド処理を行おうと思います.その際,全く新規のディスクとする為,今回の環境では VMware の HDD を新しく作成して ad2 に割り当てています.つまり,新規ディスクにリプレースするイメージとなっています. geom01# atacontrol attach ata1 ata1 チャネルをアタッチしても,デグレード状態は変わりません.graid3 insert を使用して RAID3 ディスクに ad2 を追加する事で RAID3 ディスクの修復が行われます. geom01# graid3 insert -v -n 1 raid3-0 ad2 Done. ここで -n と,数字をを指定しています.これは graid3 list で出力される結果を見るとわかりますが,ディスク番号となります.今回の場合 ad2 は元々 Number: 1 となっていましたので 1 を指定しています.ディスクの追加が成功するとリビルドが走り,graid3 status を確認するとリビルド中である事が確認出来ます. geom01# graid3 status
Name Status Components
raid3/raid3-0 DEGRADED da1
ad0
ad2 (11%)
入れ替えし,リビルド後のステータスは上記になりますが,graid3 status コマンドでの確認ではディスク番号が分からない事,また,表示されるディスクの順序が入れ替わってしまう事など,把握しづらい状態となります. geom01# graid3 list raid3-0 Geom name: raid3-0 State: DEGRADED Components: 3 Flags: NONE GenID: 0 SyncID: 3 ID: 4185056656 Providers: 1. Name: raid3/raid3-0 Mediasize: 17179868160 (16G) Sectorsize: 1024 Mode: r1w0e0 Consumers: 1. Name: da1 GenID: 0 SyncID: 3 Number: 2 Type: PARITY 2. Name: ad0 GenID: 0 SyncID: 3 Number: 0 Type: DATA 3. Name: ad2 GenID: 0 SyncID: 3 Synchronized: 77% Number: 1 Type: DATA 上記リストの内容は大分省いていますが,それぞれのディスクに番号が振られている事が確認できると思います.raid3 コマンドは,これら番号を指定する事で,ディスクを指定するオペレーションになるようです. RAID3 ディスクの削除 †ディスクが故障していない状態で,明示的に入れ替えたい場合等は graid3 remove コマンドを使用してディスクを取り外します.graid3 remove は RAID3 ディスクから1つの HDD を取り外す為のコマンドになります. geom01# graid3 remove -n 0 raid3-0 この場合,ad0 を取り外しています.graid3 insert と同様にディスクは -n を使用した番号を指定します.コマンドが成功すると,HDD が取り外され RAID3 ディスクはデグレード状態となります.この後,入れるべき HDD を graid3 insert を使用して追加します. geom01# graid3 status
Name Status Components
raid3/raid3-0 DEGRADED da1
ad2
RAID3 ディスクの利用を完全にやめてしまう場合,graid3 stop コマンド及び graid3 clear コマンドを利用します. geom01# graid3 stop raid3-0 geom01# graid3 status 上記の場合は graid3-0 を停止しています.graid3 status からも削除されている事が確認できます.ただ,graid stop コマンドは一時的な停止の状態だけとなりますので,この状態だと再起動後に復活してしまいます.それを防ぐには HDD に記録されているメタデータの削除が必要となり,この作業を graid3 clear コマンドで実施します. geom01# graid3 clear -v ad0 Metadata cleared on ad0. Done. geom01# graid3 clear -v ad2 Metadata cleared on ad2. Done. geom01# graid3 clear -v da1 Metadata cleared on da1. Done. メタデータの削除まで完了する事で RAID3 の情報を完全に削除した事になります. RAID30 を使う †GEOM は,他の GEOM と組み合わせて利用できる事は説明しました.また,RAID10 を作成してみました.せっかくですので,この流れで RAID30 を作成したいと思います. geom01# graid3 label raid3-0 ad0 ad2 da1
geom01# graid3 label raid3-1 ad1 ad3 da2
geom01# graid3 status
Name Status Components
raid3/raid3-0 COMPLETE ad0
ad2
da1
raid3/raid3-1 COMPLETE ad1
ad3
da2
geom01# gstripe create -s 131072 stripe0 raid3/raid3-0 raid3/raid3-1
geom01# gstripe status
Name Status Components
stripe/stripe0 UP raid3/raid3-0
raid3/raid3-1
上記のように,何も問題無く作成する事が可能で,また,利用も問題なく可能です.何度もこういった例を挙げても面白くないと思いますが,GEOM の使い勝手の良さはわかって頂けると思います. GATE を試してみる †FreeBSD の GEOM 機構に面白い機能が追加されています.GEOM GATE という機能です.ブロックデバイスをネットワーク越しに見せる,つかむ事が可能になります.これを利用すると iSCSI のようにリモートの raw デバイスを TCP/IP から利用出来るようになるのです. http://garage.freebsd.pl/GEOM_Gate.pdf にやり方等が書いてありますので,これを元に触って見たいと思います.ただ,リンク元の PDF ドキュメントは古い為,コマンドやコマンドのオプションが少し変わっていました. kldload geom_gate.ko 再起動後も自動で読み込ませるには,/boot/loader.conf に以下の1行を追加します. geom_gate_load="YES" また,ローダブルモジュールでは無く,kernel に静的に組み込んで使用したい場合,次の行を kernel コンフィグレーションファイルに追加して kernel を再作成して下さい. options GEOM_GATE その後,サーバ側では,nfs の exports に良く似た設定ファイルを用意します. geom01# cat /etc/gg.exports 192.168.241.166 RW /dev/da1 192.168.241.166 RW /dev/da2 設定ファイルを作成したら,サーバデーモンを起動します.これでサーバ側の準備は完了のようです. geom01# ggated /etc/gg.exports では次はクライアント側です.クライアントでもデーモンを起動しますが,こちらは引数等が多めです. geom02# ggatec create -n -o rw -u 0 geom01 /dev/da1 マニュアルによると,ggatec はプログラム名で,create を付けるとデバイスの作成フェーズになるようです.以下続きのオプションです. -n TCP_NODELAY を使わない -o rw マウント時のオプション.rw はリード/ライト -u 0 マウントする際のデバイス番号.ggate[n] になる geom01 GEOM GATE でマウントするデバイスがあるサーバ /dev/da1 マウントするサーバ側のデバイス名 マウントが成功すると,クライアント側の /var/log/messages に次のようなメッセージが表示されました. geom02# tail /var/log/messages Jul 2 23:17:11 geom02 ggatec: send_thread: started! Jul 2 23:17:11 geom02 ggatec: recv_thread: started! サーバ側でも同様なメッセージが表示されています. geom01# tail /var/log/messages Jul 2 23:16:30 geom01 ggated: disk_thread: started [/dev/da1]! Jul 2 23:16:30 geom01 ggated: send_thread: started [/dev/da1]! Jul 2 23:16:30 geom01 ggated: recv_thread: started [/dev/da1]! クライアントの /dev 以下に,ggate0 というデバイスが出来ています.これを newfs してマウントする事が可能です. geom02# newfs /dev/ggate0
/dev/ggate0: 4096.0MB (8388608 sectors) block size 16384, fragment size 2048
using 23 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976,
3387328, 3763680, 4140032, 4516384, 4892736, 5269088, 5645440, 6021792,
6398144, 6774496, 7150848, 7527200, 7903552, 8279904
geom02# mount /dev/ggate0 /mnt
geom02# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/da0s1a 507630 36838 430182 8% /
devfs 1 1 0 100% /dev
/dev/da0s1e 507630 12 467008 0% /tmp
/dev/da0s1f 1301002 1109046 87876 93% /usr
/dev/da0s1d 1255886 272 1155144 0% /var
/dev/ggate0 4058062 4 3733414 0% /mnt
TCP で行うため,スピードは速くありませんが,面白い使い方が出来ています.まだまだ安定性に不満がありますが,こなれてくるともっと楽しめそうです. リモートの Disk とローカルの Disk で RAID を組む †GEOM GATE には,もっと面白い方法があり,先の RAID と組み合わせる事が可能です.例えば,現在マウントしてある ggate0 をローカルのディスクとあわせて RAID1 にする事も可能です. geom02# umount /mnt geom02# kldload /boot/kernel/geom_mirror.ko 先の GEOM RAID1 の場合を参考に,ミラーディスクを作成してみます.その結果,次のようになります. geom02# gmirror label mirror0 /dev/ad0 /dev/ggate0 geom02# gmirror status
Name Status Components
mirror/mirror0 COMPLETE ad0
ggate0
ここまできたら newfs してマウントするだけで,ネットワーク越しのミラーディスクが利用できます. geom02# newfs /dev/mirror/mirror0
/dev/mirror/mirror0: 4096.0MB (8388604 sectors) block size 16384, fragment size 2048
using 23 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976,
3387328, 3763680, 4140032, 4516384, 4892736, 5269088, 5645440, 6021792,
6398144, 6774496, 7150848, 7527200, 7903552, 8279904
geom02# mount /dev/mirror/mirror0 /mnt/
Hiroyuki Seino http://www.seichan.org/ http://www.seichan.org/blog/ |