FlexGroup ボリュームを使用した柔軟なサイジング
環境
- ONTAP 9
- FlexGroup
回答
エラスティックサイジングとは何ですか。
注: エラスティックサイジングの詳細 については、 TR-4571を参照してください。
この記事では、Elastic Sizingとは何か、FlexGroup Volumeとの連携方法、およびElastic Sizingがワークロードに与える影響について説明します。
エラスティックサイジング(ONTAP 9.6で導入)は、ONTAPがFlexGroupボリュームのスペース割り当てを適切に管理できるようにする手段です。これにより、 コンスティチュエントボリュームの「スペース不足」エラーが原因でファイルへの書き込みエラーが発生しないようにすることができます。エラスティックサイジングは、ボリュームの全体的な容量フットプリントを増やすことが目的ではないという点で自動拡張/自動縮小とは異なります。エラスティックサイジングを使用すると、ボリュームの合計サイズはそのまま維持され、FlexGroup内の複数のコンスティチュエントボリュームの空きスペースを活用して、書き込みに対応するためにスペースを借りたり取り替えたりします。
エラスティックサイジングは、FlexGroupで容量を管理する必要性を排除するためのもの ではありません。 ボリューム内およびコンスティチュエント間に十分な空きスペースを確保するための手順を引き続き実行する必要があり、スペース管理の代わりとはみなされません。
FlexGroupボリュームでは引き続き取り込み負荷分散が通常どおり実行されるため、ボリューム間の不均衡に対処する必要があります。手動操作は必要ありません。
仕組み
エラスティックサイジングが有効になるのは、ファイルの書き込みがONTAPが問題を 実行しようとしている時点で、書き込みを実行しているクライアントに「スペース不足」エラーが発生した場合だけです。このメッセージが送信される前に、ONTAPはFlexGroup内のコンスティチュエントボリュームの合計容量の1%(10MBからデフォルトの最大容量10GB)を借りることで、FlexGroup内の利用可能なスペースを探します。
これらの値はノードレベルの「FlexGroup set 」コマンドで調整できますが、エンジニアリングチームの指示がないかぎり変更しないでください。
ファイルの書き込みに失敗すると、ONTAPはコンスティチュエントボリュームをスキャンして使用可能なスペースを確認し、コンスティチュエントボリュームの1つのサイズを縮小して、スペースが不足しそうなコンスティチュエントボリュームにそのスペースを追加します。
エラスティックサイジングの影響
このプロセスはフリーではありません。 スペースを見つけるために書き込みが一時停止すると、パフォーマンスが低下します。これは、ワークロードのレイテンシの急増として表示されます。この影響は、書き込みを完了するために必要なスペースの量と、ONTAPがスペースを検索する回数によって異なります。たとえば、あるコンスティチュエントボリュームから一度に消費されるスペースは1%で、その量は10MBにもなる可能性があるため、書き込みを完了するために1GBが必要なファイルは約100回一時停止して適切な量の空きスペースを確保する必要があります。逆に、コンスティチュエントボリュームの1%が10GBの場合、書き込みの一時停止は1回だけで完了します。
次の例は、ファイルをFlexGroupにコピーしたテストを示しています。最初のテストでは、FlexGroupコンスティチュエントにファイルを格納するのに十分なサイズがないため、エラスティックサイジングを使用しました。6.7GBのファイルのコピーには約2分かかりました。
[root@centos7 /]# time cp Windows.iso /elastic/
real
1m52.950s
user 0m0.028s
sys 1m8.652s
FlexGroupコンスティチュエントボリュームに十分な容量があれば、同じコピーの作成にかかる時間が15秒短縮されます。[root@centos7 /]# time cp Windows.iso /elastic/
real 1m37.233s
user 0m0.052s
sys 0m54.443s
これは、Elasticサイジングが有効になった場合にレイテンシに実際の影響が生じる可能性があることを示しています
次のグラフは、コンスティチュエントボリュームでのレイテンシヒットを示しています。
Elasticサイジングが有効になっている場合、コンスティチュエントボリューム0001のレイテンシは約0.5ミリ秒になります。
エラスティックサイジングに関する問題の修正
エラスティックサイジングがワークロードに影響を与えている場合は、ボリュームのサイズが適切に設定されていないため、パフォーマンスに影響があるかどうかに関係なく修正措置を講じる必要があります。エラスティックサイジングは、失敗した書き込み/破損したファイルに対する保険であり、万能薬とは見なされません。
エラスティックサイジングの影響を防ぐには、次の手順を実行します。
- 環境内のすべてのコンスティチュエントボリュームサイズを確認し、コンスティチュエントボリューム間で均等に分散しているかどうかを確認します。あるコンスティチュエントの使用済みスペースが他のコンスティチュエントよりもはるかに多い場合は、その理由をさらに調査する必要があります(たとえば、大量のデータが削除された場合など)。ファイルのサイズは非常に大きくなりましたか?たくさんのファイルが1つのtarファイルに圧縮されましたか?)。
- 可能であれば、一部のデータを削除してスペースを解放し、そのデータを所定の位置にロックするSnapshotも削除します。
- FlexGroupボリューム全体のサイズを拡張して、使用可能な空きスペースを増やします。
- AFFを使用している場合は、FabricPool階層化のメリットを確認します。Inactive Data Reportingを使用して、アクティブなファイルシステムとSnapshot全体のスペース削減量を概算します。
- 使用可能なすべてのStorage Efficiency機能が有効になっていることを確認
その目的は、1つのファイルで原因他のコンスティチュエントボリュームからスペースを借りる際にElastic Sizingが実行されないように、各コンスティチュエントボリュームに十分なスペースを解放することです。空きスペースのしきい値は、ワークロードの平均ファイルサイズと最大ファイルサイズ、およびボリューム内のファイルが時間の経過とともに増加するかどうかによって異なります。
「ボリュームがほぼフル」に近い場合にアラートや警告を設定したり、クォータを利用して空きスペースを監視することを推奨します。TR-4571 では、FlexGroupボリュームでスペース監視を使用する方法について説明しています。
通常は、コンスティチュエントボリュームの使用率が80%以下になったときに通知することを推奨します。これにより、容量の問題を計画して修正するための十分な時間を確保できます。
その他の考慮事項
ノーマライゼーション
FlexGroup容量が調整されると(のように、ファイルが削除されたり、サイズがFlexGroupに追加されたりすると)、コンスティチュエントボリュームの容量が正常に標準化されて通常の容量レベルに戻ります。
自動拡張
ボリュームの自動拡張はエラスティックサイジングと併用できますが、個別に動作します。つまり、ボリュームでボリュームのオートサイズが有効になっている場合、エラスティックサイジングは使用されなくなります。
::*> 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.
追加情報
AdditionalInformation_text