FlexGroupボリュームによる柔軟なサイジング
環境
- ONTAP 9
- FlexGroup
回答
エラスティック サイジングとは
注: エラスティック サイジングの詳細については、TR-4571を参照してください。
この記事では、エラスティック サイジングとは何か、FlexGroupボリュームでどのように機能するか、またワークロードにどのような影響を与えるかについて説明します。
エラスティックサイジング(ONTAP 9.6で導入)は、ONTAPがFlexGroupボリューム内のスペース割り当てをより適切に管理するための手段であり、構成ボリュームにおける「スペース不足」エラーによるファイルへの書き込み失敗を防ぐことを目的としています。エラスティックサイジングは、ボリューム全体の容量フットプリントを増やすことを目的としていない点で、自動拡張/自動縮小とは異なります。代わりに、エラスティックサイジングは、ボリューム全体のサイズを維持し、FlexGroup内の構成ボリューム全体の空きスペースを活用して、書き込みに対応するためにスペースを借りたり交換したりします。
エラスティックサイジングは、FlexGroupにおける容量管理の必要性を排除するものではありません(ボリューム内および構成ボリューム全体に十分な空きスペースがあることを確認するための手順を踏む必要があり、スペース管理の代替手段と見なすべきではありません)。
FlexGroupボリュームは通常どおり取り込みロードバランシングを実行するため、ボリューム全体の不均衡は手動による介入なしに解決できます。
仕組み
エラスティックサイジングは、ファイル書き込みが ONTAP が書き込みを実行しているクライアントに「スペース不足」エラーを発行する直前に開始されます。このメッセージが送信される前に、ONTAP は FlexGroup 内の構成ボリュームの総容量の 1%(10MB からデフォルトの最大値である 10GB まで)を借りることで、FlexGroup 内の使用可能なスペースを確保するための最後の手段を試みます。

これらの値は、ノードレベルの「flexgroup set」コマンドで調整できますが、エンジニアリングからの指示がない限り変更しないでください。
ファイルの書き込みが失敗しそうになると、ONTAPは構成ボリュームをスキャンして使用可能なスペースを探し、いずれかの構成ボリュームのサイズを縮小して、スペースが不足しそうな構成ボリュームにその量のスペースを追加します。
エラスティック サイジングの影響
このプロセスは無料ではありません。書き込みがスペースを見つけるために一時停止するため、パフォーマンスが低下します。これは、ワークロードのレイテンシの急増として現れます。影響は、書き込みを完了するために必要なスペースの量と、ONTAPがスペースを検索する回数によって異なります。たとえば、構成ボリュームから一度に取得するスペースは1%のみで、その量は10MB程度になる可能性があるため、書き込みを完了するために1GBを必要とするファイルは、適切な量の空きスペースを確保するために約100回一時停止する必要があります。逆に、構成ボリュームの1%が10GBの場合、書き込みを完了するために一時停止する必要があるのは1回だけです。
次の例は、ファイルをFlexGroupにコピーするテストを示しています。最初のテストでは、FlexGroup構成要素がファイルを保持するのに十分な大きさではなかったため、伸縮自在なサイズ設定が使用されました。6.7GBのファイルのコピーには約2分かかりました。
[root@centos7 /]# time cp Windows.iso /elastic/real 1m52.950suser 0m0.028ssys 1m8.652s
FlexGroup構成ボリュームが十分に大きい場合、同じコピーにかかる時間は15秒短縮されました:[root@centos7 /]# time cp Windows.iso /elastic/
real 1m37.233s
user 0m0.052s
sys 0m54.443s
これは、弾力性のあるサイズ設定を適用すると、レイテンシに実際に影響が出る可能性があることを示しています。
以下のグラフは、構成ボリュームにおけるレイテンシへの影響を示しています:

構成ボリューム 0001 では、弾性サイズ設定が実行されるときに、約 .5ms の遅延が発生します:

エラスティック サイジングに関する問題の修正
ワークロードでエラスティックサイジングが機能している場合、ボリュームのサイズが適切でなくなったことを意味します。パフォーマンスへの影響の有無にかかわらず、修復措置を講じる必要があります。エラスティックサイジングは、書き込み失敗やファイル破損に対する保険であり、万能薬と見なすべきではありません。
エラスティックサイジングの起動を防ぐには:
- 環境内のすべての構成ボリュームのサイズを確認し、構成ボリューム間のバランスが均等であることを確認してください。ある構成ボリュームの使用済みスペースが他の構成ボリュームよりもはるかに大きい場合は、その理由をさらに調査する必要があります(たとえば、大量のデータが削除されたか、ファイルが非常に大きくなったか、多数のファイルが単一のtarファイルに圧縮されたかなど)。
- 可能であれば、一部のデータを削除してスペースを解放し、そのデータを固定しているスナップショットも削除してください。
- FlexGroupボリューム全体のサイズを大きくして、利用可能な空きスペースを増やしてください。
- AFFを使用している場合はFabricPool階層化のメリットを検討してください。また、アクティブ ファイル システムとスナップショット全体のスペース節約量の概算を得るには、非アクティブデータのレポートを検討してください。
- 利用可能なすべてのストレージ効率化が有効になっていることを確認してください。
目標は、各構成ボリュームに十分な空き容量を確保し、単一のファイルが原因でエラスティックサイズ調整によって他の構成ボリュームからスペースが借用されないようにすることです。空き容量のしきい値は、ワークロード内の平均ファイルサイズと最大ファイルサイズ、およびボリューム内のファイルが時間の経過とともに増加するかどうかによって異なります。
「ボリュームがほぼいっぱい」というアラート/警告を設定すること、および/またはクォータを利用して空き容量を監視することをお勧めします。TR-4571 では、FlexGroupボリュームでのスペース監視の使用方法について説明しています。
一般的に、容量の問題を計画および修正するための十分な時間を確保するため、構成ボリュームの使用率が80%以下になった時点で通知するのが最適です。
その他の考慮事項
正規化
FlexGroup容量が調整されると(つまり、ファイルが削除されたり、flexgroupにサイズが追加されたり)、コンスティチュエントボリュームの容量は正常化され、自動的に通常の容量レベルに戻ります。
自動拡張
ボリュームの自動拡張はエラスティックサイズ調整と併用できますが、それぞれ独立して動作します。つまり、ボリュームでvolume autosizeが有効になっている場合、エラスティックサイズ調整は使用されなくなります。
::*> vol show -vserver DEMO -volume elastic* -fields size,used,autosize-mode
vserver volume size used autosize-mode
------- ------------- ------- ------- -------------
DEMO elastic 15.73GB 6.78GB grow
DEMO elastic__0001 2.50GB 68.34MB grow
DEMO elastic__0002 2.50GB 67.44MB grow
DEMO elastic__0003 8.23GB 6.58GB grow
DEMO elastic__0004 2.50GB 69.25MB grow
5 entries were displayed.
::*> event log show -message-name *auto*
Time Node Severity Event
------------------- ---------------- ------------- ---------------------------
11/12/2019 16:55:59 ontap9-8040-01 NOTICE wafl.vol.autoSize.done: Volume autosize: Automatic grow of volume \'elastic__0003@vserver:7e3cc08e-d9b3-11e6-85e2-00a0986b1210\' by 118MB is complete.
追加情報
追加情報_text