キャッシュの設定とパフォーマンス

キャッシュ メモリは、ドライブ メディアよりも高速なアクセスが可能な、コントローラ上の揮発性の一時ストレージの領域です。

キャッシュを使用すると、全体的なI/Oパフォーマンスが次のように向上します。

デフォルトのキャッシュ設定はほとんどの環境の要件を満たしていますが、必要に応じて設定を変更できます。

ストレージ アレイ キャッシュの設定

ストレージ アレイ内のすべてのボリュームに対して、[システム]ページで次の値を指定できます。
  • フラッシュの開始値 – キャッシュ フラッシュ(ディスクへの書き込み)をトリガーする、キャッシュへの書き込み前のデータの割合。指定した開始の割合の書き込み前のデータがキャッシュに格納されると、フラッシュがトリガーされます。デフォルトでは、キャッシュが80%フルに達すると、コントローラがキャッシュのフラッシュを開始します。
  • キャッシュ ブロック サイズ – 各キャッシュ ブロックの最大サイズ。キャッシュ管理のための組織単位です。キャッシュ ブロック サイズはデフォルトで8KiBですが、4、8、16、32KiBに設定できます。アプリケーションの一般的なI/Oサイズにキャッシュ ブロック サイズを設定するのが理想的です。ファイルシステムやデータベース アプリケーションでは一般的に小さいサイズを使用し、大規模なデータ転送やシーケンシャルI/Oを必要とするアプリケーションには大きいサイズが適しています。

ボリューム キャッシュの設定

ストレージ アレイ内の個々のボリュームに対して、[ボリューム]([ストレージ] > [ボリューム])ページで次の値を指定できます。
  • 読み取りキャッシュ読み取りキャッシュは、ドライブから読み取られたデータを格納するバッファです。読み取り処理の対象となるデータが以前の処理ですでにキャッシュに格納されていれば、ドライブにアクセスする必要はありません。読み取りキャッシュのデータは、フラッシュされるまで保持されます。
    • 動的キャッシュ読み取りプリフェッチ動的キャッシュ読み取りプリフェッチでは、コントローラは、ドライブからキャッシュにデータ ブロックを読み取っているときに、連続する追加のデータ ブロックをキャッシュにコピーすることができます。これにより、以降のデータ要求にキャッシュから対応できる可能性が高まります。動的キャッシュ読み取りプリフェッチは、シーケンシャルI/Oを使用するマルチメディア アプリケーションで重要です。データがキャッシュにプリフェッチされる速度と量は、ホスト読み取りの速度と要求サイズに基づいて自動で調整されます。ランダム アクセスの場合、データがキャッシュにプリフェッチされることはありません。この機能は、読み取りキャッシュが無効になっている場合は適用されません。
  • 書き込みキャッシュ書き込みキャッシュは、ドライブにまだ書き込まれていないホストからのデータを格納するバッファです。書き込みキャッシュのデータは、ドライブに書き込まれるまで保持されます。書き込みキャッシュにより、I/Oパフォーマンスを向上させることができます。
    注意:
    データが失われる可能性 – 保護のためのユニバーサル電源装置がない状況で[バッテリなしの 書き込みキャッシュ]オプションを有効にすると、データが失われる可能性があります。また、コントローラのバッテリがない状況で[バッテリなしの 書き込みキャッシュ]を有効にした場合にも、データが失われる可能性があります。
    • バッテリなしの書き込みキャッシュバッテリなしの書き込みキャッシュでは、バッテリがない、障害が発生している、完全に放電されている、フル充電されていないなどの状況でも書き込みキャッシュが継続されます。バッテリなしの書き込みキャッシュを選択すると電源の喪失時にデータが失われる可能性があるため、一般には推奨されません。通常、書き込みキャッシュは、バッテリが充電されるか障害が発生したバッテリが交換されるまで、コントローラによって一時的にオフにされます。
    • ミラーリングありの書き込みキャッシュミラーリングありの書き込みキャッシュでは、一方のコントローラのキャッシュ メモリに書き込まれたデータがもう一方のコントローラのキャッシュ メモリにも書き込まれます。そのため、一方のコントローラで障害が発生した場合、もう一方のコントローラで未処理の書き込み処理をすべて完了できます。書き込みキャッシュのミラーリングは、書き込みキャッシュが有効で、2台のコントローラが配置されている場合にのみ使用できます。ミラーリングありの書き込みキャッシュは、ボリュームの作成時にデフォルトで設定されます。