[AWS] Storage Gateway をスナップショットから作り直して、キャッシュストレージ容量を小さくする。

2015/11/10 追記
キャッシュストレージを削減した場合、ご利用中のシステムの要件によっては、パフォーマンスが低下する可能性がございますので、ご注意ください。

こんにちは、与儀です。

以前書いた、[AWS] EC2 上で Storage Gateway (ゲートウェイキャッシュ型ボリューム)を構築する。 の記事にて、Storage Gatewayを構築しましたが、キャッシュストレージを減らしたいと思った場合に、下記ドキュメントにも記載がありますが、「Storage Gatewayのサービス仕様として減らせない」という壁にぶつかります。。。

キャッシュストレージ(ゲートウェイキャッシュ型)を追加する

Note
現在のところ、キャッシュストレージとして割り当てられたディスクを削除することはできません。

なお、追加に関してはゲートウェイを停止せずにオンラインでも可能なのですが、削除となるとオフラインでもそもそも減らせない、ということなのです。

では、どうしても減らしたい時にどうやって減らせばいいのか?、その方法の一つとして、既存Storage Gatewayのボリュームのスナップショットを取得して、そこから新規で(小さいキャッシュストレージがアタッチされた)Storage Gatewayを構築して、そこにiscsiマウントし直すということをします。(減らすというか新規で作り直しですが。。)

図にすると、作業前後では下記のようなイメージになります。

作業前

作業後

「SGW-TEST1」および「SGW-TEST2」が構築された状態からスタート

SGW-TEST1
 プライベートIPアドレス:172.31.2.185
 iscsiターゲット名:testvolume1
 アップロードバッファ 12GB
 キャッシュストレージ 100GB
 ゲートウェイのボリュームサイズ 1TB
 を作成済み。

SGW-TEST2
 プライベートIPアドレス:172.31.12.128
 iscsiターゲット名:myvolume2
 アップロードバッファ 12GB
 キャッシュストレージ 10GB
 を作成済み。
 ゲートウェイのボリュームをこれから作成。

SGW-TEST1は、下記のように /mnt 領域で、ゲートウェイボリューム1TB中、170GB書き込みがある状態です。

[root@ip-172-31-6-255 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       50G  1.1G   48G   3% /
devtmpfs        993M   60K  993M   1% /dev
tmpfs          1002M     0 1002M   0% /dev/shm
/dev/sda       1008G  170G  788G  18% /mnt
[root@ip-172-31-6-255 ~]#

Storage Gateway管理画面にて、ボリュームゲートウェイの「SGW-TEST1」を選択 → ボリュームで対象ボリュームを選択 →「スナップショットを作成」を選択します。
※ここで注意が必要ですが、「スナップショットを作成」を押すと、確認画面などはなく即座にスナップショット取得されます。なお、このスナップショット取得作業によるゲートウェイへの影響はないです。

「スナップショットの取得完了」になるので「閉じる」を押します。

ボリュームゲートウェイの「スナップショット」画面をみると、ほぼ即座~数分足らずで、スナップショット取得完了となっていることがわかります。ここでこのスナップショットIDをメモしておきます。

ボリュームゲートウェイで「SGW-TEST2」を選択 → ボリュームで「ボリュームを作成」選択 します。

「次へ」を選択します。

「スキップ」を選択します。

「スキップ」を選択します。

基づくスナップショットIDへ先ほどメモしたスナップショットIDを入力して、「ボリュームを作成」を押します。
※なお、ゲートウェイの容量1TBについて、元々のスナップショットの容量よりも小さいゲートウェイを作成することはできません。今回の場合だと1TB以上となります。

「スキップ」を選択します。

「閉じる」を選択します。

これで、「SGW-TEST2」へ「スナップショットID:snap-37635aaa」から作成したボリュームを作成することができました。

既存Storage Gateway へのiscsi接続を解除して、新規Storage Gatewayへiscsi接続し直す

ゲートウェイに対して定義されているストレージボリュームターゲットを検出します。
# /sbin/iscsiadm –mode discovery –type sendtargets –portal 172.31.12.128:3260

[root@ip-172-31-6-255 ~]# /sbin/iscsiadm --mode discovery --type sendtargets --portal 172.31.12.128:3260
172.31.12.128:3260,1 iqn.1997-05.com.amazon:myvolume2
[root@ip-172-31-6-255 ~]#

SGW-TEST1への接続確認

[root@ip-172-31-6-255 ~]# ls -l /dev/disk/by-path
total 0
lrwxrwxrwx 1 root root  9 Oct  9 05:34 ip-172.31.2.185:3260-iscsi-iqn.1997-05.com.amazon:testvolume1-lun-0 -> ../../sda
lrwxrwxrwx 1 root root 10 Oct  9 05:26 xen-vbd-51712 -> ../../xvda
lrwxrwxrwx 1 root root 11 Oct  9 05:26 xen-vbd-51712-part1 -> ../../xvda1
[root@ip-172-31-6-255 ~]#
[root@ip-172-31-6-255 ~]#
[root@ip-172-31-6-255 ~]# iscsiadm --mode session --op show
tcp: [1] 172.31.2.185:3260,1 iqn.1997-05.com.amazon:testvolume1
[root@ip-172-31-6-255 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       50G  1.1G   48G   3% /
devtmpfs        993M   60K  993M   1% /dev
tmpfs          1002M     0 1002M   0% /dev/shm
/dev/sda       1008G  170G  788G  18% /mnt
[root@ip-172-31-6-255 ~]#

アンマウント実施

[root@ip-172-31-6-255 ~]# umount /mnt
[root@ip-172-31-6-255 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       50G  1.1G   48G   3% /
devtmpfs        993M   60K  993M   1% /dev
tmpfs          1002M     0 1002M   0% /dev/shm
[root@ip-172-31-6-255 ~]# ls -l /dev/disk/by-path
total 0
lrwxrwxrwx 1 root root  9 Oct  9 05:34 ip-172.31.2.185:3260-iscsi-iqn.1997-05.com.amazon:testvolume1-lun-0 -> ../../sda
lrwxrwxrwx 1 root root 10 Oct  9 05:26 xen-vbd-51712 -> ../../xvda
lrwxrwxrwx 1 root root 11 Oct  9 05:26 xen-vbd-51712-part1 -> ../../xvda1
[root@ip-172-31-6-255 ~]# iscsiadm --mode session --op show
tcp: [1] 172.31.2.185:3260,1 iqn.1997-05.com.amazon:testvolume1
[root@ip-172-31-6-255 ~]#

iscsi解除

[root@ip-172-31-6-255 ~]# iscsiadm --mode node --targetname iqn.1997-05.com.amazon:testvolume1 --logout
Logging out of session [sid: 1, target: iqn.1997-05.com.amazon:testvolume1, portal: 172.31.2.185,3260]
Logout of [sid: 1, target: iqn.1997-05.com.amazon:testvolume1, portal: 172.31.2.185,3260] successful.
[root@ip-172-31-6-255 ~]#

iscsi解除されたことを確認

[root@ip-172-31-6-255 ~]# ls -l /dev/disk/by-path
total 0
lrwxrwxrwx 1 root root 10 Oct  9 05:26 xen-vbd-51712 -> ../../xvda
lrwxrwxrwx 1 root root 11 Oct  9 05:26 xen-vbd-51712-part1 -> ../../xvda1
[root@ip-172-31-6-255 ~]# iscsiadm --mode session --op show
iscsiadm: No active sessions.
[root@ip-172-31-6-255 ~]#

SGW-TEST2へ接続

ゲートウェイに対して定義されているストレージボリュームターゲットを検出します。

[root@ip-172-31-6-255 ~]# /sbin/iscsiadm --mode discovery --type sendtargets --portal 172.31.12.128:3260
172.31.12.128:3260,1 iqn.1997-05.com.amazon:myvolume2
[root@ip-172-31-6-255 ~]#

ターゲットに接続します。

[root@ip-172-31-6-255 ~]# /sbin/iscsiadm --mode node --targetname iqn.1997-05.com.amazon:myvolume2 --portal 172.31.12.128:3260,1 --login
Logging in to [iface: default, target: iqn.1997-05.com.amazon:myvolume2, portal: 172.31.12.128,3260] (multiple)
Login to [iface: default, target: iqn.1997-05.com.amazon:myvolume2, portal: 172.31.12.128,3260] successful.
[root@ip-172-31-6-255 ~]#

ボリュームがクライアントマシン(イニシエータ)にアタッチされていることを確認するには、次のコマンドを使用します。

[root@ip-172-31-6-255 ~]# ls -l /dev/disk/by-path
total 0
lrwxrwxrwx 1 root root  9 Oct  9 09:44 ip-172.31.12.128:3260-iscsi-iqn.1997-05.com.amazon:myvolume2-lun-0 -> ../../sda
lrwxrwxrwx 1 root root 10 Oct  9 05:26 xen-vbd-51712 -> ../../xvda
lrwxrwxrwx 1 root root 11 Oct  9 05:26 xen-vbd-51712-part1 -> ../../xvda1
[root@ip-172-31-6-255 ~]# iscsiadm --mode session --op show
tcp: [2] 172.31.12.128:3260,1 iqn.1997-05.com.amazon:myvolume2
[root@ip-172-31-6-255 ~]#

mount実施

[root@ip-172-31-6-255 ~]# mount /dev/sda /mnt
[root@ip-172-31-6-255 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       50G  1.1G   48G   3% /
devtmpfs        993M   60K  993M   1% /dev
tmpfs          1002M     0 1002M   0% /dev/shm
/dev/sda       1008G  170G  788G  18% /mnt
[root@ip-172-31-6-255 ~]#

このようにして、Storage Gatewayのスナップショットから、新しいStorage Gatewayを構築することができました!

以上です。