NETWORK ENGINEER BLOG

Tips and Reviews for Engineers

NetApp SnapMirror の設定

NetApp SnapMirror とは

遠隔地へ高速にデータを転送し、筐体間レプリケーションを実現するテクノロジです。初回転送時は、全データをコピーし、次回以降は Snapshot によって取得された変更データブロックのみを転送します。
出典:NetApp Inc,

f:id:FriendsNow:20121127212422j:plain:w600

SnapMirror 送信元設定

コピー元ボリューム"vol_test"を aggr1 に 100g で作成します。オプションを適当に設定します。

src> vol create vol_test -s none aggr1 100g
src> vol options vol_test nosnap on
src> vol options vol_test create_ucode on
src> vol options vol_test convert_ucode on
src> snap reserve vol_test 0
src> snap sched vol_test 0 0 0
SnapMirror 送信先設定

コピー先ボリュームを作成します。基本的にコピー元の構成と合わせます。

dst> vol create vol_test_mirror -s none aggr1 100g
dst> vol options vol_test_mirror nosnap on
dst> vol options vol_test_mirror create_ucode on
dst> vol options vol_test_mirror convert_ucode on
dst> snap reserve vol_test_mirror 0
dst> snap sched vol_test_mirror 0 0 0

コピー先ボリュームを"restricted mode"に指定します。

dst> vol restrict vol_test_mirror
Volume 'vol_test' is now restricted.

vol status コマンドで確認すると"restricted"となっている事が確認できます。

dst> vol status vol_test_mirror
         Volume State           Status            Options
  vol_test restricted      raid_dp, flex     
		Containing aggregate: 'aggr1'

SnapMirror Initialize を実行します。

dst> snapmirror initialize -S src:vol_test dst:vol_test_mirror
Transfer started.
Monitor progress with 'snapmirror status' or the snapmirror log.

snapmirror status で状態を確認します。

dst> snapmirror status
Snapmirror is on.

Source                   Destination               State          Lag        Status
src:vol_test             dst:vol_test_mirror         Snapmirrored   00:00:28   Idle

詳細を確認する場合は、snapmirror status -l を実行します。

dst> snapmirror status -l
Snapmirror is on.

Source:                 src:vol_test
Destination:            dst:vol_test_mirror
Status:                 Idle
Progress:               -
State:                  Uninitialized
Lag:                    -
Mirror Timestamp:       -
Base Snapshot:          -
Current Transfer Type:  Initialize
Current Transfer Error: cannot connect to source filer
Contents:               -
Last Transfer Type:     -
Last Transfer Size:     -
Last Transfer Duration: -
Last Transfer From:     -
SnapMirror スケジュール設定

SnampMirror のスケジュールは、snapmirror.conf 上に定義します。
※wrfile を実行すると、全ての設定が消えますのでご注意ください。
月曜 - 金曜の 9:30, 13:30, 19:30 に SnapMirror を実行する例になります。

> wrfile /etc/snapmirror.conf
src:vol_test dst:vol_test_mirror - 30 9,13,19 * 1,2,3,4,5

毎月10日と20日の7時に SnapMirror を実行する場合は下記のようになります。

> wrfile /etc/snapmirror.conf
src:vol_test dst:vol_test_mirror - 0 7 10,20 *
SnapMirror の手動実行

手動で更新する場合は、snapmirror update コマンドを使用します。

dst> snapmirror update -S src:vol_test dst:vol_test_mirror
SnapMirror Initialize 時のエラー

SnapMirror Initialize 実行時、下記エラーが出力される場合があります。

dst> snapmirror initialize -S src:vol_test dst:vol_test_mirror
Transfer aborted: cannot connect to source filer.
dst> [dst:replication.dst.err:error]: SnapMirror: destination transfer from src:vol_test to vol_test_mirror : cannot connect to source filer.

Source 側で snapmirror.access を定義する事で収束する可能性があります。

src> options snapmirror.access all
src> options snapmirror.access
snapmirror.access            all

通信を許可する Filer を定義する場合は、下記のように定義します。*1

src> options snapmirror.access host=dst
src> options snapmirror.access
snapmirror.access            host=dst
SnapMirror の関係解除

送信先 Filer で実行
snapmirror break を実行します。

dst> snapmirror break vol_test_mirror

Base Snapshot*2 の存在を確認します。

dst> snap list vol_test_mirror

Base Snapshot を削除します。

dst> snap delete vol_test_mirror <Base Snapshot Name>

Snapmirror が削除された事を確認します。

dst> snapmirror status

送信元 Filer で実行
Base Snapshot の存在を確認します。

src> snap list vol_test

snapmirror release を実行します。

src> snapmirror release vol_test dst:vol_test_mirror

Base Snapshot が削除された事を確認します。

src> snap list vol_test

Snapmirror が削除された事を確認します。

src> snapmirror status

*1:複数定義する場合は、カンマで区切ります。

*2:snapmirror status -l で Base Snapshot が確認可能です。