1.はじめに
Endurance Storage/Performance Storageは、非常に色々な用途で利用されていることから、機能拡張も随時行われています。最近では、
- デフォルトで暗号化
- 0.25/2/4 IOPS per GBに加えて、10 IOPS per GBのサポート
- snapshot/replicationのサポート
- duplicate LUN機能
- 月額購入だけでなく、時間単位での購入が可能に
と順に機能を増やしています。今回、これらの新機能に加えて2017/12/4頃に
- 購入済みEndurance Storage/Performance Storgeのサイズを動的に増やしたり(Expandable Volumes)、IOPS性能を動的に変更(Adjustable IOPS)できる機能
が加わりました。いままこれにより、「小さなサイズで始めて、後で大きくする」「平時は遅いIOPSのストレージを利用し、繁忙期のみ高速のIOPSにアップグレードする」「災対の待ち受けには遅いIOPSのストレージを利用し、災害が発生して切り替えが起こった時のみ高速のIOPSにアップグレードする」などのシナリオがストレージの移行なしに可能になります。まさに「これぞクラウド!」っていう機能ですね。
なお、今はAPI経由でしか処理できませんが、そのうちCustomer Portalからも変更可能になるようです。
2.事前準備
一番簡単なのはslcliコマンドを利用することです。最新のslcliコマンドを導入しておきましょう。
# pip install --upgrade SoftLayer
# slcli --version
slcli (SoftLayer Command-line), version 5.3.1
3.使い方
Block Storageにはslcli block volume-modify
を、File Storageにはslcli file volume-modify
を利用します。
# slcli block volume-modify --help
Usage: slcli block volume-modify [OPTIONS] VOLUME_ID
Modify an existing block storage volume.
Options:
-c, --new-size INTEGER New Size of block volume in GB. ***If no size
is given, the original size of volume is
used.***
Potential Sizes: [20, 40, 80, 100,
250, 500, 1000, 2000, 4000, 8000, 12000]
Minimum: [the original size of the volume]
-i, --new-iops INTEGER Performance Storage IOPS, between 100 and 6000
in multiples of 100 [only for performance
volumes] ***If no IOPS value is specified, the
original IOPS value of the volume will be
used.***
Requirements: [If original IOPS/GB
for the volume is less than 0.3, new IOPS/GB
must also be less than 0.3. If original
IOPS/GB for the volume is greater than or
equal to 0.3, new IOPS/GB for the volume must
also be greater than or equal to 0.3.]
-t, --new-tier [0.25|2|4|10] Endurance Storage Tier (IOPS per GB) [only for
endurance volumes] ***If no tier is specified,
the original tier of the volume will be
used.***
Requirements: [If original IOPS/GB
for the volume is 0.25, new IOPS/GB for the
volume must also be 0.25. If original IOPS/GB
for the volume is greater than 0.25, new
IOPS/GB for the volume must also be greater
than 0.25.]
-h, --help Show this message and exit.
# slcli file volume-modify --help
Usage: slcli file volume-modify [OPTIONS] VOLUME_ID
Modify an existing file storage volume.
Options:
-c, --new-size INTEGER New Size of file volume in GB. ***If no size
is given, the original size of volume is
used.***
Potential Sizes: [20, 40, 80, 100,
250, 500, 1000, 2000, 4000, 8000, 12000]
Minimum: [the original size of the volume]
-i, --new-iops INTEGER Performance Storage IOPS, between 100 and 6000
in multiples of 100 [only for performance
volumes] ***If no IOPS value is specified, the
original IOPS value of the volume will be
used.***
Requirements: [If original IOPS/GB
for the volume is less than 0.3, new IOPS/GB
must also be less than 0.3. If original
IOPS/GB for the volume is greater than or
equal to 0.3, new IOPS/GB for the volume must
also be greater than or equal to 0.3.]
-t, --new-tier [0.25|2|4|10] Endurance Storage Tier (IOPS per GB) [only for
endurance volumes] ***If no tier is specified,
the original tier of the volume will be
used.***
Requirements: [If original IOPS/GB
for the volume is 0.25, new IOPS/GB for the
volume must also be 0.25. If original IOPS/GB
for the volume is greater than 0.25, new
IOPS/GB for the volume must also be greater
than 0.25.]
-h, --help Show this message and exit.
4.実験例
4.1 File Storageの確認
# slcli file volume-list
:..........:..................:............:..............:.............:............:.......................................:.....................:................................................................:...................:
: id : username : datacenter : storage_type : capacity_gb : bytes_used : ip_addr : active_transactions : mount_addr : rep_partner_count :
:..........:..................:............:..............:.............:............:.......................................:.....................:................................................................:...................:
: 35170193 : IBM02SEV319556_7 : tok02 : ENDURANCE : 20 : - : fsm-tok0201b-fz.service.softlayer.com : - : fsm-tok0201b-fz.service.softlayer.com:/IBM02SEV319556_7/data01 : - :
: 35185175 : IBM02SEV319556_8 : tok02 : ENDURANCE : 20 : - : fsf-tok0201b-fz.service.softlayer.com : - : fsf-tok0201b-fz.service.softlayer.com:/IBM02SEV319556_8/data01 : - :
:..........:..................:............:..............:.............:............:.......................................:.....................:................................................................:...................:
4.2 ストレージサイズの拡張
20GB -> 100GBに拡張してみます。
# slcli file volume-detail 35170193
:..........................:................................................................:
: Name : Value :
:..........................:................................................................:
: ID : 35170193 :
: Username : IBM02SEV319556_7 :
: Type : ENDURANCE :
: Capacity (GB) : 20GB :
: Used Space : 0B :
: Endurance Tier : LOW_INTENSITY_TIER :
: Data Center : tok02 :
: Target IP : fsm-tok0201b-fz.service.softlayer.com :
: Mount Address : fsm-tok0201b-fz.service.softlayer.com:/IBM02SEV319556_7/data01 :
: Snapshot Capacity (GB) : 5 :
: # of Active Transactions : 0 :
: Replicant Count : 0 :
:..........................:................................................................:
# slcli file volume-modify --new-size 100 35170193
Order #21324119 placed successfully!
> Storage as a Service
> 100 GBs
> 0.25 IOPS per GB
> 5 GB (Snapshot Space)
# slcli file volume-detail 35170193
:............................:................................................................:
: Name : Value :
:............................:................................................................:
: ID : 35170193 :
: Username : IBM02SEV319556_7 :
: Type : ENDURANCE :
: Capacity (GB) : 100GB :
: Used Space : 0B :
: Endurance Tier : LOW_INTENSITY_TIER :
: Data Center : tok02 :
: Target IP : fsm-tok0201b-fz.service.softlayer.com :
: Mount Address : fsm-tok0201b-fz.service.softlayer.com:/IBM02SEV319556_7/data01 :
: Snapshot Capacity (GB) : 5 :
: # of Active Transactions : 0 :
: Replicant Count : 0 :
: Original Volume Properties : :......................:.......: :
: : : Property : Value : :
: : :......................:.......: :
: : : Original Volume Size : 20 : :
: : :......................:.......: :
:............................:................................................................:
4.3 IOPSの変更
2 IOPS per GB(READHEAVY_TIER)
→ 4 IOPS per GB(WRITEHEAVY_TIER)
→ 10 IOPS per GB(10_IOPS_PER_GB)
→ 2 IOPS per GB(READHEAVY_TIER)
と順に変更してみます。
# slcli file volume-detail 35185175
:..........................:................................................................:
: Name : Value :
:..........................:................................................................:
: ID : 35185175 :
: Username : IBM02SEV319556_8 :
: Type : ENDURANCE :
: Capacity (GB) : 20GB :
: Used Space : 0B :
: Endurance Tier : READHEAVY_TIER :
: Data Center : tok02 :
: Target IP : fsf-tok0201b-fz.service.softlayer.com :
: Mount Address : fsf-tok0201b-fz.service.softlayer.com:/IBM02SEV319556_8/data01 :
: Snapshot Capacity (GB) : 5 :
: # of Active Transactions : 0 :
: Replicant Count : 0 :
:..........................:................................................................:
# slcli file volume-modify --new-tier 4 35185175
Order #21335937 placed successfully!
> Storage as a Service
> 20 GBs
> 4 IOPS per GB
> 5 GB (Snapshot Space)
# slcli file volume-detail 35185175
:..........................:................................................................:
: Name : Value :
:..........................:................................................................:
: ID : 35185175 :
: Username : IBM02SEV319556_8 :
: Type : ENDURANCE :
: Capacity (GB) : 20GB :
: Used Space : 0B :
: Endurance Tier : WRITEHEAVY_TIER :
: Data Center : tok02 :
: Target IP : fsf-tok0201b-fz.service.softlayer.com :
: Mount Address : fsf-tok0201b-fz.service.softlayer.com:/IBM02SEV319556_8/data01 :
: Snapshot Capacity (GB) : 5 :
: # of Active Transactions : 0 :
: Replicant Count : 0 :
:..........................:................................................................:
# slcli file volume-modify --new-tier 10 35185175
Order #21335011 placed successfully!
> Storage as a Service
> 20 GBs
> 10 IOPS per GB
> 5 GB (Snapshot Space)
# slcli file volume-detail 35185175
:..........................:................................................................:
: Name : Value :
:..........................:................................................................:
: ID : 35185175 :
: Username : IBM02SEV319556_8 :
: Type : ENDURANCE :
: Capacity (GB) : 20GB :
: Used Space : 0B :
: Endurance Tier : 10_IOPS_PER_GB :
: Data Center : tok02 :
: Target IP : fsf-tok0201b-fz.service.softlayer.com :
: Mount Address : fsf-tok0201b-fz.service.softlayer.com:/IBM02SEV319556_8/data01 :
: Snapshot Capacity (GB) : 5 :
: # of Active Transactions : 0 :
: Replicant Count : 0 :
:..........................:................................................................:
# slcli file volume-modify --new-tier 2 35185175
Order #21336901 placed successfully!
> Storage as a Service
> 20 GBs
> 2 IOPS per GB
> 5 GB (Snapshot Space)
# slcli file volume-detail 35185175
:..........................:................................................................:
: Name : Value :
:..........................:................................................................:
: ID : 35185175 :
: Username : IBM02SEV319556_8 :
: Type : ENDURANCE :
: Capacity (GB) : 20GB :
: Used Space : 0B :
: Endurance Tier : READHEAVY_TIER :
: Data Center : tok02 :
: Target IP : fsf-tok0201b-fz.service.softlayer.com :
: Mount Address : fsf-tok0201b-fz.service.softlayer.com:/IBM02SEV319556_8/data01 :
: Snapshot Capacity (GB) : 5 :
: # of Active Transactions : 0 :
: Replicant Count : 0 :
:..........................:................................................................:
4.4 レプリカの自動更新
すでにレプリカが設定されていた場合には、メインサイトのストレージを変更すると、レプリケーション先のストレージも自動的に変更されます。
#slcli file volume-detail 35185175
:..........................:................................................................:
: Name : Value :
:..........................:................................................................:
: ID : 35185175 :
: Username : IBM02SEV319556_8 :
: Type : ENDURANCE :
: Capacity (GB) : 20GB :
: Used Space : 0B :
: Endurance Tier : WRITEHEAVY_TIER :
: Data Center : tok02 :
: Target IP : fsf-tok0201b-fz.service.softlayer.com :
: Mount Address : fsf-tok0201b-fz.service.softlayer.com:/IBM02SEV319556_8/data01 :
: Snapshot Capacity (GB) : 5 :
: # of Active Transactions : 0 :
: Replicant Count : 1 :
: Replication Status : REPLICATION_PROVISIONING_COMPLETED :
: Replicant Volumes : :..............:.......................................: :
: : : Replicant ID : 35235253 : :
: : :..............:.......................................: :
: : : Volume Name : IBM02SEV319556_8_REP_1 : :
: : : Target IP : fsf-hkg0201b-fz.service.softlayer.com : :
: : : Data Center : hkg02 : :
: : : Schedule : REPLICATION_DAILY : :
: : :..............:.......................................: :
:..........................:................................................................:
# slcli file volume-modify --new-size 21 35185175
Order #21367293 placed successfully!
> Storage as a Service
> 21 GBs
> 21 GBs
> 4 IOPS per GB
> 4 IOPS per GB
> 5 GB (Snapshot Space)
> 5 GB (Snapshot Space)
> Replication for tier-based performance. Replicant of: IBM02SEV319556_8
# slcli file volume-detail 35185175
:............................:................................................................:
: Name : Value :
:............................:................................................................:
: ID : 35185175 :
: Username : IBM02SEV319556_8 :
: Type : ENDURANCE :
: Capacity (GB) : 21GB :
: Used Space : 0B :
: Endurance Tier : WRITEHEAVY_TIER :
: Data Center : tok02 :
: Target IP : fsf-tok0201b-fz.service.softlayer.com :
: Mount Address : fsf-tok0201b-fz.service.softlayer.com:/IBM02SEV319556_8/data01 :
: Snapshot Capacity (GB) : 5 :
: # of Active Transactions : 0 :
: Replicant Count : 1 :
: Replication Status : REPLICATION_PROVISIONING_COMPLETED :
: Replicant Volumes : :..............:.......................................: :
: : : Replicant ID : 35235253 : :
: : :..............:.......................................: :
: : : Volume Name : IBM02SEV319556_8_REP_1 : :
: : : Target IP : fsf-hkg0201b-fz.service.softlayer.com : :
: : : Data Center : hkg02 : :
: : : Schedule : REPLICATION_DAILY : :
: : :..............:.......................................: :
: Original Volume Properties : :......................:.......: :
: : : Property : Value : :
: : :......................:.......: :
: : : Original Volume Size : 20 : :
: : :......................:.......: :
:............................:................................................................:
# slcli file volume-detail 35235253
:..........................:......................................................................:
: Name : Value :
:..........................:......................................................................:
: ID : 35235253 :
: Username : IBM02SEV319556_8_REP_1 :
: Type : ENDURANCE :
: Capacity (GB) : 21GB :
: Used Space : 0B :
: Endurance Tier : WRITEHEAVY_TIER :
: Data Center : hkg02 :
: Target IP : fsf-hkg0201b-fz.service.softlayer.com :
: Mount Address : fsf-hkg0201b-fz.service.softlayer.com:/IBM02SEV319556_8_REP_1/data01 :
: Snapshot Capacity (GB) : 5 :
: Snapshot Used (Bytes) : 172032 :
: # of Active Transactions : 0 :
: Replicant Count : 0 :
:..........................:......................................................................:
4.5 ストレージの拡張単位
上記の結果からわかるように、1GB単位でストレージは拡張できます。
5. 注意点および制約事項
重複の内容もありますが、改めて記載します。
5.1 オンラインで変更されるが即時には反映はされない
Endurance Storageの新規購入に必要な時間と同様の時間が発生します(5-10分程度?)
5.2 サイズ拡張は1GB単位から可能
Customer Portalからは指定されたサイズのストレージしか注文できませんが、API経由であればそもそもサイズは1GB単位で自由に指定して注文可能のようです(知らなかった!)。なので、サイズ変更も任意の1GB単位で任意のサイズで拡張できるんでしょうね。以下は新規購入の際の例です。
# slcli file volume-order --billing hourly --tier 0.25 --size 38 --storage-type endurance --location tok02
Order #21369919 placed successfully!
> Storage as a Service
> File Storage
> 38 GBs
> 0.25 IOPS per GB
5.3 サイズは大きくはできるが、小さくはできない
"Expandable Volumes"という名前だから仕方がないですね。
# slcli file volume-modify --new-size 80 35170193
SoftLayerAPIError(SoftLayer_Exception_Order): Ordered size (80 GB) must be greater than the current size of the volume (100 GB).
5.4 Endurance Storageにおいて、0.25 IOPSのストレージは2 IOPS/4 IOPS/10 IOPSに変更できない。また2 IOPS/4 IOPS/10 IOPSのストレージは0.25IOPSに変更できない。
これはslcliコマンドのヘルプに書いてあります。自由に変更できるのは、2 IOPS/4 IOPS/10 IOPSの間だけのようです。一番安いストレージから徐々に速くしていく構成は、残念ながら今はできません。
以下のマニュアルによると、**「Block Storage and File Storage provisioned with either Endurance or Performance at 2 IOPS per GB or higher with backed by all-flash storage.」**と書かれてあります。0.25 IOPSのDISK構成と2 IOPS以上のDISK構成は異なるのでその間の移行が容易ではないのかもしれません。
https://console.bluemix.net/docs/infrastructure/FileStorage/new-ibm-block-and-file-storage-location-and-features.html#new-locations-and-features-of-block-storage-and-file-storage
# slcli file volume-modify --new-tier 2 35170193
SoftLayerAPIError(SoftLayer_Exception_Order): Volume performance tier is not eligible for performance changes.
5.5 Performance Storageにおいて、0.3 IOPS/GB未満だったストレージは0.3 IOPS/GBより高速なものに変更できない。また、0.3 IOPS/GB以上だったストレージは、0.3 IOPS/GBより低速に変更できない。
これもEundrance Storageの時と同様の制約のようです。
5.6 IOPSのTierを小さくできるのは、30日に1回まで。
2回目の減少は、前回より30日を超過する必要があります。30日以内に2回目のTierの縮小を試みると、以下のエラーが発生します。
# slcli file volume-modify --new-tier 2 35185175
SoftLayerAPIError(SoftLayer_Exception_Order): You can only decrease the performance of this volume every 30 days. This volume had a performance downgrade 0 days ago.
5.7 レプリカ構成済みのストレージは、自動的にレプリカ側も変更が反映される
メインサイトとDRサイトは同一のストレージである必要があるためです。いちいちDRサイト分まで変更しなくて良いのは便利ですね。
6 最後に
今後も、ますますEndurance Storage/Performance Storageの機能は拡張されていくと聞いています。とても楽しみですね!