1.6.9 エンデュランス・ストレージのレプリカの利用

（2016年時点での内容をアーカイブとして掲載しているため、一部の掲載内容が最新情報とは異なる場合がありますので、ご了承ください。最新のIBM Cloudのアップデート情報は[IBM Cloud アップデート情報](https://www.ibm.com/cloud-computing/jp/ja/cloud-update/) や [柔らか層本](https://ibm.ent.box.com/v/ibmcloud-yawaraka)をご参照ください。）

概要
エンデュランス・ストレージは、他のソフトレイヤーのデータセンターの同種ストレージとの間で、複製（レプリカ）を取得することができます。 そして複製ストレージを主ストレージに変更する切換機能（フェイルオーバー）と切戻機能（フェールバック）があります。 本章では、これらの振る舞いと利用法をご紹介します。
 

エンデュランス・ストレージのレプリカ機能の概要
次の図はエンデュランス・ストレージのレプリカ機能の概要を表したものです。この複製機能は、スナップショット機能と連動して動作します。 定期にスナップショットが取得されるタイミングで、複製ストレージへの同期も行なわれます。

これは先の図のレプリカ構成の運用コストの計算例です。20GBの少量で利用することは性能上考えられませんが、分かりやすくするために、最小単位で試算しました。レプリカ先データセンターでも元のデータセンターと同様のコストに加えて、レプリケーション費用が加算されます。

```
東京データセンター側のコスト
ストレージ容量 20GB @ 2 IOPS/GB = 20 x $0.35 = $7.00
スナップショット領域 10GB @ 2 IOPS/GB = 10 x $0.15 = $1.50
東京側コスト = $8.50/month

香港データセンター側のコスト
ストレージ容量 20GB @ 2 IOPS/GB = 20 x $0.35 = $7.00
スナップショット領域 10GB @ 2 IOPS/GB = 10 x $0.15 = $1.50
レプリケーション費 20GB @ 2IOPS/GB = 20 x $0.125 = $2.50
香港側コスト = $11/month

合計レプリカ運用のコスト
合計コスト $8.50/month + $11/month = 19.50/month
```

エンデュランス・ストレージのレプリカの注文
エンデュランス・ストレージのレプリカのオーダー画面にアクセスするには次の順番で進みます。カスタマーポータルから「Storage」->「Block Storage」->「LUN Name」->「Actions」->「Order Replica」 レプリカをオーダーできる条件として、スナップショットが設定されている必要があります。 次の画面の「Choose schedule」で、既に定義されているスナップショットのスケジュールから、レプリカ取得のスケジュールを選択します。そして「Location」の選択リストから、レプリカ先のデータセンターを指定します。この例では、東京の複製を香港データセンターに作成します。 「Continue」をクリックして表示される確認ウィンドの「Place Order」をクリックして注文を確定します。

エンデュランス・ファイルサーバーも同様にレプリケーションを取得することができます。オーダー画面にアクセスするには次の順に進みます。「Storage」->「File Storage」->「LUN Name」->「Actions」->「Order Replica」
 

二つの切換えモードと振る舞い
フェイルオーバーには、次の二通りの方法があります。計画切換は、切換え開始時のストレージ状態を切換え先へ同期した後、複製側を主側に変更します。一方、即時切換では、最後のスナップショット取得の時点の状態で、複製側を主側に変更します。それぞれ、動作とデータの状態を確認していきます。
 

  計画切換（Controlled Failover）
  即時切換（immediate Failover）

 

計画切換（Controlled Failover）の実施
ストレージの最終書込み状態をレプリカへ反映して切り替える「Controlled Failover」の動作を見ていきます。

 

1時間おきに実行されるスナップショットの後に作られたファイルが、切換へ先に引き継がれることを確認するために、次のようにmanコマンドの出力を「ps.txt」にリダイレクトしてファイルを作成します。切換え後に、このファイルが香港のエンデュランス・ストレージに存在することが確認できれば、計画切換えは、成功と見なすことができます。それでは開始していきます。
 
```
[root@tkr05 mnt]# ls
data  lost+found  man.txt  testfile
[root@tkr05 mnt]# man ps > ps.txt
[root@tkr05 mnt]# ls
data  lost+found  man.txt  ps.txt  testfile
```

計画切換（Controlled Failover）ではエンデュランス・ストレージをフリーな状態にする必要があります。 そこで、次のようにアンマウントして、マルチパスとiSCSIのサービスを停止して、計画切換（Controlled Failover）を実行します。 ここでiscsiadmのコマンドでiSCSIのセッションをログアウトしても良いのですが、オプションが不要で簡単なサービスを停止する方法を用いました。
 
```
# umount /mnt
[root@tkr05 ~]# service multipathd stop
Stopping multipathd daemon:                                [  OK  ]
[root@tkr05 ~]# service iscsi stop
Stopping iscsi:                                            [  OK  ]
```

次は切換え前の状態です。「LUN Name」列の「SL01SEL294470-1」が東京データセンターのエンデュランス・ストレージで主側になります。そして「SL01SEL294470-1_REP_1」が香港データセンターの複製側になります。この計画切換（Controlled Failover）を実行することで、「Status」列の「Active」と「Inactive」の関係が逆転して、香港データセンターのストレージを主側としてアクセスできるようになります。

「SL01SEL294470-1」の行の「Actions」から計画切換（Controlled Failover）を選択します。

そうすると次の確認ウィンドが表示されます。 この時点がアンマウントとiSCSI関連のサービスを停止するチャンスです。 準備が整っていれば「Yes」をクリックして先に進みます。

切換えのプロセスが進行している間は、次のメッセージが表示されています。このメッセージが消えると、再度「iSCSI Storages」の画面に戻ります。 ブラウザの問題でメッセージの表示が変わらない場合は、ブラウザの再読み込みをクリックして画面を最新化すると良いでしょう。既に完了していればメッセージが消えて「iSCSI Storages」の画面へ遷移します。

「SL01SEL294470-1_REP_1」が「Active」となり「SL01SEL294470-1」が「Inactive」になって、切換えが完了したことがわかります。この時の所用時間は約3分でした。

それでは、SoftLayer 香港データセンターで、仮想サーバーを立ち上げて、エンデュランス・ストレージへのアクセス権を与え、iSCSIなどの設定をおこない、ファイルシステムにアクセスできる準備を進めます。この方法は1.6.5 エンデュランス・ストレージを利用するには？の「LinuxのiSCSIシングルパス設定」以降の内容が参考になります。

上記への注意事項として、mkfsコマンドで絶対にファイルシステムを再作成しないでくださいね。これを実行すると、再フォーマットされ引き継いだデータを失ってしまいます。

それでは、ファイルシステムをマウントします。
 
```
[root@tkr06 iscsi]# mount -t ext3 /dev/mapper/yellow /mnt
[root@tkr06 iscsi]# df
Filesystem         1K-blocks    Used Available Use% Mounted on
/dev/xvda2          25544012 1270596  22975856   6% /
tmpfs                 508116       0    508116   0% /dev/shm
/dev/xvda1            253871   84526    156238  36% /boot
/dev/mapper/yellow  20642428 2443852  17150000  13% /mnt
```

次に、切換え直前に作成した「ps.txt」が存在していることを確認します。 次のように、確かに香港データセンターのサーバーからアクセスできていました。
 
```
[root@tkr06 iscsi]# ls /mnt
data  lost+found  man.txt  ps.txt  testfile
```
 

計画切戻（Controlled Failback）の実施
今度は香港から東京へ切り戻しを行ないます。 今度は、切換え直前に香港で作ったファイルが、東京に反映されるかを確認していきます。

次のようにmanコマンドの出力をエンデュランス・ストレージ上（/mnt）のファイル hongkong.txt として作成します。
 
```
[root@tkr06 ~]# ls /mnt
data  lost+found  man.txt  ps.txt  testfile
[root@tkr06 ~]# man man > /mnt/hongkong.txt
[root@tkr06 ~]# ls /mnt
data  hongkong.txt  lost+found  man.txt  ps.txt  testfile
```

東京から香港へ切替えた時と同様に、エンデュランス・ストレージをフリーな状態にして、カスターマ・ポータルを操作して切戻します。
 
```
[root@tkr06 ~]# df
Filesystem         1K-blocks    Used Available Use% Mounted on
/dev/xvda2          25544012 1272188  22974264   6% /
tmpfs                 508116       0    508116   0% /dev/shm
/dev/xvda1            253871   84526    156238  36% /boot
/dev/mapper/yellow  20642428 2443864  17149988  13% /mnt
[root@tkr06 ~]# umount /mnt
[root@tkr06 ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/xvda2      25544012 1272240  22974212   6% /
tmpfs             508116       0    508116   0% /dev/shm
/dev/xvda1        253871   84526    156238  36% /boot
[root@tkr06 ~]# service iscsi stop
Stopping iscsi:                                            [  OK  ]
[root@tkr06 ~]# service multipathd stop
Stopping multipathd daemon:                                [  OK  ]
```

香港データセンターでアクティブになっている「SL01SEL294470-1_REP_1」の行の「Actions」をクリックしてメニューを展開します。

「Controlled Failback」を選択して切戻しを開始します。確認ウィンドが表示されるので、準備が整っていれば「Yes」をクリックして先へ進みます。

切戻し中は、切替え中と同様にメッセージが表示されます。このメッセージが、いつまでも消えない時は、ブラウザで再読み込みします。 処理が完了していれば、メッセージが消えストレージの一覧に戻ります。 もし処理が完了していなければ、継続してメッセージが表示されます。

切換えが完了後に、東京データセンターのサーバーでファイルシステムをマウントします。

```
[root@tkr05 ~]# service iscsi start
Starting iscsi:                                            [  OK  ]
[root@tkr05 ~]# service multipathd start
Starting multipathd daemon:                                [  OK  ]
[root@tkr05 ~]# mount -t ext3 /dev/mapper/yellow /mnt
[root@tkr05 ~]# df
Filesystem         1K-blocks    Used Available Use% Mounted on
/dev/xvda2          25544012 1293756  22952696   6% /
tmpfs                 508116       0    508116   0% /dev/shm
/dev/xvda1            253871   84527    156237  36% /boot
/dev/mapper/yellow  20642428 2443864  17149988  13% /mnt
```

香港で切換え直前に追加したファイル hongkong.txt が、東京にきています。これで切戻し時にも、スナップショットの周期ではなく、直前の状態が引き継がれることが確認できました。
 
```
[root@tkr05 ~]# ls /mnt
data  hongkong.txt  lost+found  man.txt  ps.txt  testfile
```

 

即時切換（immediate Failover）
最後に即時切換を試してみます。これは切換時間を優先する切換え方法で、最後のスナップショットとレプリカの時点まで、データが戻ってしまいます。 スナップショットの最小取得間隔は1時間ごとなので、ストレージは最大1時間前の状態に逆戻りします。 この方法は東京データセンターが災害などで使用不能になった場合に、最後の数十分間のデータを失ってでも再開を急ぎたい場合に適用できます。

最後のスナップショットから切換え直前までの更新が、失われることを確認するために、「tokyo.txt」というファイルを作ってから、東京から香港への即時切換を開始します。 lsコマンドで確認しているように、/mntのエンデュランス・ファイルサーバー上に、「tokyo.txt」という名前のファイルができていることがわかります。

```
[root@tkr05 ~]# man bash > /mnt/tokyo.txt
[root@tkr05 ~]# ls /mnt
data  hongkong.txt  lost+found  man.txt  ps.txt  testfile  tokyo.txt
```

前回同様に、エンデュランス・ストレージをフリーな状態にして、カスターマ・ポータルを操作して切換えを実行します。

今度は「Actions」のメニューから「Immediate Failover」をクリックします。同様に確認ウィンドが表示されるので、準備が整っていることを確認して「Yes」をクリックして進めます。

同様に、切換えプロセス進行中のメッセージが表示されるので、ブラウザの更新ボタンをクリックして終了を待ちます。「Immediate Failover」の所要時間は約2分でした。

香港データセンターのサーバーに、エンデュランス・ストレージをマウントして、切換え直前に作ったファイル「tokyo.txt」がどうなったか確認します。 次のコマンド実行結果のとおり、引き継がれていないことがわかります。
 
```
[root@tkr06 ~]# service iscsi start
Starting iscsi:                                            [  OK  ]
[root@tkr06 ~]# service multipathd start
Starting multipathd daemon:                                [  OK  ]
[root@tkr06 ~]# mount -t ext3 /dev/mapper/yellow /mnt
[root@tkr06 ~]# ls /mnt
data  hongkong.txt  lost+found  man.txt  ps.txt  testfile
```

今度は、逆に香港から東京へ切戻しを実行します。 この切戻しは、計画的切戻し「Controlled Failback」だけが提供されています。その他切換えの要領は同じなので、ここで改めての解説は省略します。

以下は、東京に戻った後の結果です。 東京から香港への切換え直前に作成したファイル「tokyo.txt」は、どこにもありません。 香港側の最終状態が上書きされた内容になっています。
 
```
[root@tkr05 ~]# service iscsi start
Starting iscsi:                                            [  OK  ]
[root@tkr05 ~]# service multipathd start
Starting multipathd daemon:                                [  OK  ]
[root@tkr05 ~]# mount -t ext3 /dev/mapper/yellow /mnt
[root@tkr05 ~]# ls /mnt
data  hongkong.txt  lost+found  man.txt  ps.txt  testfile
```

東京地域の災害対策として、海外のデータセンターへデータの複製を取得しておき、被災時には海外のデータセンターへ切替えるという方法は、とても有効な方法に思われます。 しかし、日本で大地震は必ず起きると想定は論理的ですが、時期や規模の予測は簡単ではなく、非常にコストがかかるため、災害対策実施の判断は難しいものです。 しかし、このエンデュランス・ストレージを利用すれば、現状のシステム運用に負担をかけることなく、コストを節約しながら災害へ備えることができます。