GEOM Gateを使って、ローカル側のgm0にリモート側に付けた2TBのHDDを追加してmirrorした後にHDDを取り換えるという作戦を取ることに。
- サーバ(2TBのHDDを取り付けた方)
- FreeBSD 9.0-RELEASE
- 192.168.10.1/24
- ggatedでexportするHDD
ggated# dmesg|grep ada1 ada1 at ata2 bus 0 scbus1 target 1 lun 0 ada1:
ATA-8 SATA 2.x device ada1: 150.000MB/s transfers (SATA 1.x, UDMA5, PIO 8192bytes) ada1: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C) ada1: Previously was known as ad5 ggated# dmesg | grep ada2 ada2 at ata3 bus 0 scbus2 target 0 lun 0 ada2: ATA-8 SATA 2.x device ada2: 150.000MB/s transfers (SATA 1.x, UDMA5, PIO 8192bytes) ada2: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C) ada2: Previously was known as ad6 - /etc/gg.exports
ggated# cat /etc/gg.exports 192.168.10.0/24 RW /dev/ada1 192.168.10.0/24 RW /dev/ada2
- いらないかもしれないけど、/etc/hosts.allow
ggated# grep 'ggated' /etc/hosts.allow ggated : 192.168.10.0/255.255.255.0 : allow ggated : ALL : deny
- クライアント(250GBのHDDを取り付けた方)
- FreeBSD 9.0-RELEASE
- 192.168.10.2/24
こんな感じでマシンを準備しておいて、以下の手順で。
- 準備ができたら、サーバ側でggatedを起動
ggated# ggated
- クライアント側でデバイスを生やす
% sudo ggatec create -o rw 192.168.10.1 /dev/ada1 パスワード: ggate0 % sudo ggatec create -o rw 192.168.10.1 /dev/ada2 ggate1
- クライアント側の既存のgmirrorに追加する
% gmirror status Name Status Components mirror/gm0 COMPLETE ada0 (ACTIVE) ada1 (ACTIVE) % gmirror list Geom name: gm0 State: COMPLETE Components: 2 Balance: load Slice: 4096 Flags: NONE GenID: 0 SyncID: 1 ID: 474148217 Providers: 1. Name: mirror/gm0 Mediasize: 249999999488 (232G) Sectorsize: 512 Mode: r2w2e3 Consumers: 1. Name: ada0 Mediasize: 250000000000 (232G) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Priority: 0 Flags: DIRTY GenID: 0 SyncID: 1 ID: 4280809814 2. Name: ada1 Mediasize: 250000000000 (232G) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Priority: 1 Flags: DIRTY GenID: 0 SyncID: 1 ID: 1891649756 % sudo gmirror insert gm0 ggate0 パスワード: % sudo gmirror insert gm0 ggate1 % gmirror status Name Status Components mirror/gm0 DEGRADED ada0 (ACTIVE) ada1 (ACTIVE) ggate0 (SYNCHRONIZING, 0%) ggate1 (SYNCHRONIZING, 0%) % gmirror list Geom name: gm0 State: DEGRADED Components: 4 Balance: load Slice: 4096 Flags: NONE GenID: 0 SyncID: 1 ID: 474148217 Providers: 1. Name: mirror/gm0 Mediasize: 249999999488 (232G) Sectorsize: 512 Mode: r4w2e3 Consumers: 1. Name: ada0 Mediasize: 250000000000 (232G) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Priority: 0 Flags: DIRTY GenID: 0 SyncID: 1 ID: 4280809814 2. Name: ada1 Mediasize: 250000000000 (232G) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Priority: 1 Flags: DIRTY GenID: 0 SyncID: 1 ID: 1891649756 3. Name: ggate0 Mediasize: 2000398934016 (1.8T) Sectorsize: 512 Mode: r1w1e1 State: SYNCHRONIZING Priority: 0 Flags: DIRTY, SYNCHRONIZING GenID: 0 SyncID: 1 Synchronized: 0% ID: 989612303 4. Name: ggate1 Mediasize: 2000398934016 (1.8T) Sectorsize: 512 Mode: r1w1e1 State: SYNCHRONIZING Priority: 0 Flags: DIRTY, SYNCHRONIZING GenID: 0 SyncID: 1 Synchronized: 0% ID: 3578002709
- リビルド始まったのでしばらく放置。これをやった時は、同じL2スイッチに100MBでリンクアップした状態で、10分で1%位の速度が出てた。
- リビルドが終わったら、マウント解除してggatedを止める。今回は
ggated# pkill ggated
しちゃいました。