FAQ :『 Over Provisioning aka Thin Provisioning in ONTAP 』
環境
オーバープロビジョニング/シンプロビジョニング
回答
- オーバープロビジョニングはシンプロビジョニングとも呼ばれ、ストレージ管理者は包含アグリゲートよりも多くのストレージスペースをプロビジョニングできます。
- ONTAPには、2種類のシンプロビジョニング機能があります。
- ボリュームのシンプロビジョニング
- LUNシンプロビジョニング
ボリュームのシンプロビジョニング
- シンプロビジョニングボリュームを作成した場合、ONTAPはボリュームの作成時に追加のスペースをリザーブしません。
- ボリュームにデータが書き込まれるときに、書き込み処理に対応するために必要なストレージをアグリゲートから確保するようにボリュームが要求します。
- シンプロビジョニングボリュームを使用すると、アグリゲートをオーバープロビジョニングできます。これにより、アグリゲートの空きスペースが不足した場合、ボリュームが必要なスペースを確保できなくなる可能性があります。
- シンプロビジョニングボリュームを作成するには、スペースギャランティをnoneに設定します。
- スペースギャランティがnoneの場合、ボリュームサイズはアグリゲートサイズによって制限されません。
- すなわち、必要に応じて、各ボリュームを包含アグリゲートよりも大きくできます。
- アグリゲートから提供されるストレージは、データがボリュームに書き込まれるときにのみ使用されます。
LUNのシンプロビジョニング
- ストレージ管理者は、シンプロビジョニングを行い、ボリューム上で実際に利用可能な量よりも多くのストレージをLUNにプロビジョニングできます。
- 要求したスペースをユーザが使い切ることはめったになく、その場合、スペース リザーブLUNを使用するとストレージの効率が低下します。
- ボリュームをオーバープロビジョニングすることで、ボリューム容量を効率よく活用できます。
- シンプロビジョニングLUNが新しく作成されても、その時点ではそのLUNが属するボリューム内のスペースは使用されません。LUNにブロックが書き込まれ、LUN内のスペースが消費された時点で、そのLUNがあるボリューム内で同量のスペースが消費されます。
- シンプロビジョニングを使用すると、 ストレージ コントローラで実際に使用できるよりも多くのストレージスペースを、ストレージコントローラに接続しているホストに割り当てることができます。
- シンプロビジョニングLUNを使用したストレージ プロビジョニングでは、ユーザが必要とした時点でストレージを提供できます。
シンプロビジョニングには次の利点があります。
- ストレージ効率を高める。
- 空きスペースを複数のLUNで共有できる。
- 実際に使用するスペースのみをLUNが消費できる。
例:
次に、シンプロビジョニングLUNを使用するボリュームの例を示します。次の表に示すように、4、000GBのボリュームを5つのシンプロビジョニングLUNでプロビジョニングし、各LUNに1、000GBのスペースを確保できます。
表1.4,000GBボリュームのシンプロビジョニングLUN
LUN名 |
LUNが実際に使用するスペース |
LUNに設定されている使用可能なスペース |
---|---|---|
lun1 |
100GB |
1,000GB |
lun2 |
100GB |
1,000GB |
lun3 |
100GB |
1,000GB |
lun4 |
100GB |
1,000GB |
lun5 |
100GB |
1,000GB |
合計 |
500GB |
5,000GB |
- 5つのLUNそれぞれが100GBのストレージを使用していますが、各LUNで使用可能なストレージは1,000GBです。
- この構成では、ボリュームは1、000GBだけオーバープロビジョニングされていますが、LUNによって実際に使用されているスペースは500GBであるため、このボリュームには3、500GBの空きスペースが残っています。
- シンプロビジョニングでは、LUNの拡大量はさまざまです。
- LUNにデータのブロックが書き込まれるたびに、利用可能なスペースのプールからLUNにスペースが拡充されます。
- それぞれに設定されている全スペースをすべてのLUNで使い切ってしまうと、ボリュームの空きスペースは不足します。
- ストレージ管理者は、 ストレージコントローラを監視し 、必要に応じてボリュームのサイズを拡張する必要があります。
シンプロビジョニングLUNとスペース リザーブLUNを、同じボリュームおよび同じアグリゲートに配置できます。たとえば、クリティカルな本番用アプリケーションにスペース リザーブLUNを使用して、その他のアプリケーションにはシンプロビジョニングLUNを使用できます。
オーバープロビジョニング
- アグリゲートよりも合計サイズが大きい論理コンテナ(ボリュームまたはLUN)を作成できるため、基盤となる物理ストレージよりも多くの論理スペースをホストに提供することが一般的です。
- その結果、アグリゲートがオーバープロビジョニングされます。
アグリゲートがオーバープロビジョニングされている場合、利用可能なスペース不足が原因で次の種類の書き込みが失敗する可能性があります。
- スペースギャランティが noneに設定されたボリュームへの書き込み。
- スペースリザベーションが有効になっておらず、スペースギャランティが fileのボリューム内にあるファイルに書き込みます。
そのため、アグリゲートをオーバープロビジョニングした場合は、使用可能なスペースを監視し、必要に応じてアグリゲートにストレージを追加して、スペース不足による書き込みエラーを回避する必要があります。
この場合のLUNとは、ストレージアレイでストレージに使用されるアレイLUNではなく、Data ONTAPがクライアントに提供するLUNを指します。 |
注: アグリゲートには、アグリゲートに含まれる各ボリュームのメタデータを保持するための十分な空きスペースが必要です。ボリュームのメタデータに必要なスペースは、ボリュームの公称サイズの約0.5%です。
LUNがシンプロビジョニングされているかどうかを表示する方法:
LUNがシンプロビジョニングされているかどうかを確認するには、次のコマンドを実行して、強調表示された出力を書き留めます。
cluster1::> lun show -vserver vs1 -path /vol/vol1/lun1 -instance Vserver Name: vs1 LUN Path: /vol/vol1/lun1 Volume Name: vol1 Qtree Name: "" LUN Name: lun1 LUN Size: 10MB OS Type: linux Space Reservation: disabled Serial Number: wCVt1]IlvQWv Serial Number (Hex): 77435674315d496c76515776 Comment: new comment Space Reservations Honored: false Space Allocation: disabled State: offline LUN UUID: 76d2eba4-dd3f-494c-ad63-1995c1574753 Mapped: mapped Block Size: 512
上記で強調表示されているオプションについては、以下で詳しく説明します。
- [-space-reserve {enabled | disabled}] -スペースリザベーション -このパラメータ値に一致するLUNを選択します。 trueの場合、LUNのスペースがリザーブされます。 falseに設定すると、LUNはシンプロビジョニングされます。デフォルトは trueです。
- [-space-reserve-honored {true | false}] -スペースリザベーションが有効 -指定したパラメータ値に一致するLUNを選択します。 trueを 指定すると、コンテナボリュームでスペースリザベーションが有効になっているLUNが表示されます。 falseを指定 すると、シンプロビジョニングされたLUNが表示されます。
- [-space-allocation {enabled | disabled}] -スペース割り当て -指定したパラメータ値に一致するLUNを選択します。このパラメータを enabledに設定すると、スペース割り当てが有効になり、LUNのプロビジョニングのしきい値イベントが報告されます。このパラメータを disabledに設定すると、スペース割り当ては無効になり、LUNのプロビジョニングしきい値イベントは報告されません。
シンプロビジョニングを使用する場合は、ボリュームのスペースが不足しないように、LUNで使用されているスペースを追跡してください。 |
ボリュームがシンプロビジョニングされているかどうかを確認する方法:
- ボリュームがシンプロビジョニングされているかどうかを確認するには、次のコマンドを実行して、強調表示された出力を書き留めます。
cluster1::*> volume show -vserver vs1 -volume vol1 Vserver Name: vs1 Volume Name: vol1 Aggregate Name: aggr1 Volume Size: 30MB Volume Data Set ID: 1026 Volume Master Data Set ID: 2147484674 Volume State: online Volume Type: RW Volume Style: flex Is Cluster Volume: true Is Constituent Volume: false Export Policy: default User ID: root Group ID: daemon Security Style: mixed Unix Permissions: ---rwx------ Junction Path: - Junction Path Source: - Junction Active: - Junction Parent Volume: - Comment: Available Size: 23.20MB Filesystem Size: 30MB Total User-Visible Size: 28.50MB Used Size: 5.30MB Used Percentage: 22% Volume Nearly Full Threshold Percent: 95% Volume Full Threshold Percent: 98% Maximum Autosize (for flexvols only): 8.40GB Minimum Autosize: 30MB Autosize Grow Threshold Percentage: 85% Autosize Shrink Threshold Percentage: 50% Autosize Mode: off Autosize Enabled (for flexvols only): false Total Files (for user-visible data): 217894 Files Used (for user-visible data): 98 Space Guarantee Style: none Space Guarantee In Effect: true Snapshot Directory Access Enabled: true Space Reserved for Snapshot Copies: 5% Snapshot Reserve Used: 98% Snapshot Policy: default Creation Time: Mon Jul 08 10:54:32 2013 Language: C.UTF-8 Clone Volume: false Node name: cluster-1-01
上記で強調表示されているオプションについては、以下で詳しく説明します。
- [-size{<integer>[KB|MB|GB|TB|PB]}]-ボリュームサイズ
このパラメータを指定すると、指定したサイズに一致するボリュームに関する情報のみが表示されます。サイズは、ボリュームが関連付けられているアグリゲートから消費できるスペースの最大量で、ユーザ データ、メタデータ、Snapshotコピー、およびSnapshotリザーブが含まれます。space-guaranteeがvolumeに設定されていないボリュームの場合、この最大サイズまでボリュームに格納できるかどうかは、関連付けられているアグリゲートで使用可能なスペースによって決まります。 - [-space-guarantee-enabled{true | false}]-有効なスペースギャランティ -このパラメータを指定すると、指定したスペースギャランティ設定に一致するボリュームに関する情報のみが表示されます。space-guaranteeの値がnoneの場合、-space-guarantee-enabledの値は常にtrueになります。つまり、ギャランティが存在しないため、ギャランティは常に有効です。space-guaranteeの値がvolumeの場合、ギャランティされたスペース量がボリュームのマウント時に使用可能であったかどうかに応じて、-space-guarantee-enabledの値をtrueまたはfalseに設定できます。
- [-space-guarantee |-s{none | volume}]-スペースギャランティ形式 -このパラメータを指定すると、指定したスペースギャランティ形式に一致するボリュームに関する情報のみが表示されます。space-guaranteeの値がnoneの場合、-space-guarantee-enabledの値は常にtrueになります。つまり、ギャランティが存在しないため、ギャランティは常に有効です。space-guaranteeの値がvolumeの場合、ギャランティされたスペース量がボリュームのマウント時に使用可能であったかどうかに応じて、-space-guarantee-enabledの値をtrueまたはfalseに設定できます。
ボリュームのストレージフットプリントを表示する方法
volume show-footprint
コマンドを使用して、ボリュームがアグリゲート内で使用している合計スペース量を確認することもできます。
cluster1::> volume show-footprint Vserver : nodevs Volume : vol0 Feature Used Used% -------------------------------- ---------- ----- Volume Data Footprint 103.1MB 11% Volume Guarantee 743.6MB 83% Flexible Volume Metadata 4.84MB 1% Delayed Frees 4.82MB 1% Total Footprint 856.3MB 95%
注: 上記の例はシックプロビジョニングボリュームを示しています。ボリュームがシンプロビジョニングされている場合、ボリュームギャランティは0になります。
- 合計フットプリントの値は、アグリゲート内のボリュームによって使用されているスペースの量を示します。
- これらの数値を追跡しておく必要があります。特にシンプロビジョニングを使用する場合は、アグリゲート内のボリュームによって消費されているスペース量を把握し、それに応じて変更を加える必要があります。
- ボリュームおよびLUNに対してシンプロビジョニングを使用する場合、ストレージスペースの使用量を追跡する最後の手順は、スペース不足を避けるためにアグリゲートで使用されているスペースの量を追跡することです。
アグリゲートの全体的なストレージ使用状況を表示する方法
アグリゲートのスペース使用量を追跡するには、次のコマンドを使用します。
cluster1::> storage aggregate show-space Aggregate : wqa_gx106_aggr1 Feature Used Used% -------------------------------- ---------- ------ Volume Footprints 101.0MB 0% Aggregate Metadata 300KB 0% Snapshot Reserve 5.98GB 5% Total Used 6.07GB 5% Total Physical Used 34.82KB 0%
アグリゲートで使用されているストレージを視覚的に表示
- ボリュームフットプリント –アグリゲート内のすべてのボリュームフットプリントの合計が表示されます。このボリュームには、次の図に示すように、包含アグリゲート内のすべてのボリュームのすべてのデータおよびメタデータ用に使用またはリザーブされているすべてのスペースが含まれます。
- Total Used –ボリューム、メタデータ、またはSnapshotコピーによって使用またはリザーブされているアグリゲート内のすべてのスペースの合計。
- Physical Used –将来使用するためにリザーブされているのではなく、現在データに使用されているスペースの量です。アグリゲートSnapshotコピー用に使用されるスペースが含まれます。
スペース管理
- ストレージ管理者は、 スペース不足を避けるために、クラスタを監視し、必要に応じてアグリゲートのサイズを拡張する必要があります。
- アグリゲート内のスペースを確保する方法
追加情報
詳細については、次のドキュメントを参照してください。