NETWORK ENGINEER BLOG

Tips and Reviews for Engineers

Load Sharing SnapMirror について

Load Sharing SnapMirror とは

クアライアントからの Read(読み取り)要求を分散して、スループットを向上させる機能になります。
具体的には、Root を含む任意の Volume のコピー(読み取り専用)を、マスターとは別の Aggregate に作成し、クライアントからの Read 要求を分散します。*1書き込みについては、マスターにのみ行われ、分散されません。

注意点

マスターからコピーに対し、リアルタイムミラーリングが行われないため、マスターで更新されたデータを、読み取れるようにするには、LS ミラーをアップデートする必要があります。これに関連して、Root volume をコピーした際、Root 配下に新たな Volume を作成しても、(LS ミラーをアップデートするまで、コピー先の、Junction Path が更新されないため)当該 Volume にアクセスできない事に注意してください。

設定例

SnapMirror 送信先の Volume を作成します。

cluster1::> volume create -vserver svm-01 -volume rootvol_ls -aggregate aggr2 -type DP

送信先の Volume が作成された事を確認します。

cluster1::> volume show -volume rootvol_ls
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
svm-01    rootvol_ls   aggr2        online     DP         20MB    19.89MB    0%

LS SnapMirror を作成します。

cluster1::> snapmirror create -source-path svm-01:rootvol -destination-path svm-01:rootvol_ls -type LS

LS SnapMirror が作成された事を確認します。

cluster1::> snapmirror show
                                                                       Progress
Source            Destination  Mirror  Relationship  Total             Last
Path        Type  Path         State   Status        Progress  Healthy Updated
----------- ---- ------------ ------- -------------- --------- ------- --------
cluster1://svm-01/rootvol
            LS   cluster1://svm-01/rootvol_ls
                              Uninitialized
                                      Idle           -         -       -

LS SnapMirror の Initialize を行います。

cluster1::> snapmirror initialize-ls-set -source-path svm-01:rootvol

Initialize が完了した事を確認します。

cluster1::> snapmirror show
                                                                       Progress
Source            Destination  Mirror  Relationship  Total             Last
Path        Type  Path         State   Status        Progress  Healthy Updated
----------- ---- ------------ ------- -------------- --------- ------- --------
cluster1://svm-01/rootvol
            LS   cluster1://svm-01/rootvol_ls
                              Snapmirrored
                                      Idle           -         true    -

Volume サイズが、マスターと同様となっている事を確認します。

cluster1::> volume show -volume rootvol,rootvol_ls
Vserver   Volume       Aggregate    State      Type       Size  Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
svm-01    rootvol      aggr1        online     RW          2GB     1.90GB    5%
svm-01    rootvol_ls   aggr2        online     LS          2GB     1.90GB    5%
2 entries were displayed.

新規の Volume を作成すると、下記のとおり、留意事項が通知されます。

cluster1::> volume create -vserver svm-01 -volume vol_nfs02 -aggregate aggr1 -size 1g -security-style unix -space-guarantee none -junction-path /vol_nfs02
[Job 82] Job succeeded: Successful

Notice: Volume vol_nfs02 now has a mount point from volume rootvol.  The load sharing (LS) mirrors of volume
        rootvol have no replication schedule.  Volume vol_nfs02 will not be visible in the global namespace until
        the LS mirrors of volume rootvol have been updated.
        現状、LS SnapMirror スケジュールが設定されていないため、アップデートされるまで、クライントからアクセスできません。

LS SnapMirror をアップデートします。

cluster1::> snapmirror update-ls-set -source-path svm-01:rootvol

LS SnapMirror がアップデートされた事を確認します。

cluster1::> snapmirror show
                                                                       Progress
Source            Destination  Mirror  Relationship  Total             Last
Path        Type  Path         State   Status        Progress  Healthy Updated
----------- ---- ------------ ------- -------------- --------- ------- --------
cluster1://svm-01/rootvol
            LS   cluster1://svm-01/rootvol_ls
                              Snapmirrored
                                      Idle           -         true    -

LS SnapMirror のスケジュールを作成します。

cluster1::> job schedule cron create -name sched01 -hour 1 -minute 0

LS SnapMirror にスケジュールを適用します。

cluster1::> snapmirror modify -destination-path svm-01:rootvol_ls -schedule sched01

LS SnapMirror にスケジュールが設定されている事を確認します。

cluster1::> snapmirror show -fields schedule
source-path               destination-path             schedule
------------------------- ---------------------------- --------
cluster1://svm-01/rootvol cluster1://svm-01/rootvol_ls sched01

以上

*1:クライアントからの Read 要求は、全てコピーされた Volume に向けられます。