Oracle Cloud Infrastructureドキュメント

ファイル・システムのキャッシュの構成

ストレージ・ゲートウェイは、頻繁に取得されたデータをローカル・ホストにキャッシュし、Oracle Cloud Infrastructure Object StorageへのREST APIコールの数を最小限に抑え、より高速なデータ検索を可能にします。 ファイル・システムのキャッシュは、ファイル・システムの作成時に構成します。 「最初のファイル・システムの作成」および「ファイル・システムの追加」を参照してください。

ファイル・システム・キャッシュについて

ファイル・システム・キャッシュは、データ・ストレージと取得のために、読取りキャッシュと書込みバッファの両方として機能します。 読み取りキャッシュには、読み取り操作のためにローカルにアクセスできる頻繁に取得されるデータが含まれています。 書込みバッファには、ディスク・キャッシュにコピーされ、Oracle Cloud Infrastructureテナンシへのアップロードのためにキューに入れられたデータが含まれています。

Oracle Cloud Infrastructureからデータを取得すると、データはストレージ・ゲートウェイ読み取りキャッシュに格納されます。 読取りキャッシュを使用すると、後続のI/O操作で、そのデータをローカル・ディスクの速度で処理できるようになります。

読取りキャッシュがいっぱいであるか、構成済の制限に達すると、ストレージ・ゲートウェイは最も最近使用した(LRU)アルゴリズムに基づいて、キャッシュからファイルを削除します。 テナンシへのアップロードが保留中のファイルは、キャッシュから削除されません。 キャッシュから削除しないファイルを保持することもできます。

読取りキャッシュ内のファイルの保持方法の詳細は、「ファイル・システム・キャッシュでのファイルの保持」を参照してください。

アプリケーションがNFS共有を介してファイルを転送する場合、ファイルは書込みバッファに書き込まれます。 書込みバッファには、キューに入れられているファイルやアップロード保留中のファイルが多数含まれている可能性があります。 ストレージ・ゲートウェイがインストールされているホストに障害が発生したり、ストレージ・ゲートウェイが突然停止した場合、保留中のアップロード操作はローカル・ディスクに残ります。 ストレージ・ゲートウェイが再起動すると、保留中のアップロード操作が再開され、データがOracle Cloud Infrastructureにアップロードされます。

ファイル・システムおよびキャッシュのローカル・ストレージの構成

ストレージ・ゲートウェイでは、ファイル・システムとキャッシュをホストするために、サーバー(または仮想サーバー)にアタッチされたローカル・ストレージが使用されます。 ストレージ・ゲートウェイ内のファイル・システムに書き込まれたファイルは、関連するオブジェクト・ストレージ・バケットにアップロードされます。ファイル・セットの一部は、ローカルにファイル・システム内にウォーム・キャッシュとして保持されます。

パフォーマンス、信頼性およびフォルト・トレランスを最適化するには、ローカルのストレージ・ゲートウェイ・ストレージを構成するときに次のガイドラインに従ってください:

  • ストレージ・ゲートウェイ・ファイル・システムごとに専用ローカル・ストレージと、関連するメタデータおよびログを割り当てます。
  • RAID10セット内の複数のディスク(ハードディスク・ドライブまたはソリッド・ステート・ドライブ)は、パフォーマンス、信頼性、およびフォールト・トレランスの最適なバランスを提供します。 または、RAID6を使用できます。

    重要

    ディスク障害時にデータが失われる可能性があるため、RAID0または単一ディスク(RAIDなし)を避けてください。

  • 読取りキャッシュと書込みバッファ(新しいファイルの収集用)の容量をすべて80%を超えなくなるように十分に確保してください。

    通常は、読取りキャッシュに保持するファイル・セットのサイズの1.5倍以上のファイル・システム・キャッシュ・ストレージをプロビジョニングします。 たとえば、ファイル・セット全体の領域が50 TBであるとします。 そのファイル・セットの10% (5 TB)に頻繁にアクセスすると想定されます。 ファイル・システムのキャッシュ・ストレージには、7.5 TB以上の使用可能な容量があることを確認します。 キャッシュ・サイズが負のしきい値に達すると、ストレージ・ゲートウェイの領域不足エラーが発生します。

  • インストール時にローカル・ストレージをプロビジョニングする場合、Oracleでは、読取りキャッシュをファイル・システムのキャッシュ・サイズと目的の書込みバッファ・サイズを引いたものに構成することをお薦めします。 ファイル・システム・キャッシュが300 GB未満の場合、Storage Gatewayによって警告メッセージが生成されます。

ファイルシステム・キャッシュ・サイズの決定

Storage Gatewayファイル・システムのキャッシュは、読取りキャッシュと書込みバッファの両方として機能します。 読取りキャッシュの最大サイズを指定できます。 書込みバッファは、ファイル・システム・キャッシュ内の使用可能な残りの領域を使用します。 書き込みバッファのサイズを明示的に指定するわけではありません。

重要

Oracleでは、読取りキャッシュをファイル・システムのキャッシュ・サイズから必要な書込みバッファのサイズを引いたものに構成することをお薦めします。

読取りキャッシュ・サイズ

ファイル・システムのキャッシュ・サイズが300 GBを超える場合、デフォルトの最大読取りキャッシュ・サイズは300 GBです。 デフォルトの最大読取りキャッシュ・サイズの変更はオプションです。 適切なサイズはStorage Gatewayワークロードによって異なります。 読取りキャッシュのデフォルト設定はほとんどのワークロードに適していますが、Storage Gatewayがクラウドから大量のデータを取得する必要がある場合は、サイズを増やすことを検討してください。

次のガイドラインを使用して、読取りキャッシュ・サイズの適切な設定を確認してください:

  • 読取りキャッシュの最大値をファイル・システム・キャッシュのサイズと同じに設定しないでください。 このように設定すると、読取りキャッシュ用の領域の100%が割り当てられ、新しいファイルを収集するための容量は残りません。 新規ファイル収集に使用可能な領域がない場合、ストレージ・ゲートウェイではデータの収集が停止され、読取りキャッシュからファイルの削除が開始されて領域が作成されます。 収集用のファイル・システム・キャッシュの領域を常に保持してください。
  • 読み取りキャッシュ・サイズは、書き込みバッファに十分な容量を残しながら、頻繁にアクセスすることが予想されるデータ量と等しくなるように設定します。

ノート

ファイル・システムのキャッシュ・サイズの合計が300 GB未満の場合、Storage Gatewayでは、読取りキャッシュの最大サイズがファイル・システム・キャッシュの20%に自動的に設定されます。
ファイル・システム・キャッシュのカスタム読取りキャッシュ構成設定は、300 GB未満には適用されません。

最適なファイル・システム・キャッシュ・サイズを計算した後で、ファイル・システムの作成時またはワークロードのモニタリング後のキャッシュの調整時に読取りキャッシュを構成できます。 「ファイル・システムの追加」および「ファイル・システムのプロパティの変更」を参照してください。

書込みバッファ・サイズ

書込みバッファの領域の最適化は、適切なファイル・システム・キャッシュ・サイズを決定する上で重要な部分です。 データがストレージ・ゲートウェイで取り込まれると書き込みバッファ・サイズが増加し、データがクラウドにアップロードされた後で減少します。

重要

  • 書込みバッファに使用可能なファイル・システムのキャッシュ領域がすべて使用されていると、既存のファイルの一部がアップロードされてキャッシュから削除されるまで、さらにデータ収集がブロックされます。
  • Oracleでは、書込みバッファに対して、常に300 GB以上の容量を付与することをお薦めします。

次のガイドラインに従って、書込みバッファに必要な領域を判断してください:

  • ストレージ・ゲートウェイでアップロードするデータの量を特定します。 大量のデータがアップロードされる場合、ストレージ・ゲートウェイ書き込みバッファが最大サイズに達することがあります。 ファイル・システム・キャッシュに使用可能な領域がないため、書込みバッファを超過するとI/Oの障害が発生します。 データ収集を制御できない場合は、I/Oの障害を回避するためにファイル・システムのキャッシュ容量を増加できます。 特定の量のデータを収集した後、または追加データを収集する前にアップロードを定期的に完了できるため、I/Oを規制できます。 たとえば、ファイル・システムのキャッシュ領域が収集するデータ量未満の場合に、cronジョブとして実行されるバックアップにこの方法を使用できます。
  • ストレージ・ゲートウェイの通常の日または週に収集されたデータの量を計算します。 また、使用可能な帯域幅または履歴データに基づいて、一定期間にわたってアップロードされるデータの量を計算します。 これらの計算の差が、書込みバッファ・サイズを超えないようにしてください。
  • 一部のアプリケーションでは、I/Oエラーが処理され、データの書込みが再開されます。 この場合は、キャッシュ領域が再生される前にアプリケーションが許容するデータ量にキャッシュ・サイズを設定することを検討してください。

前述したように、ファイル・システム・キャッシュが完全にいっぱいになるのを避ける必要があります。 書込みバッファは、収集率とアップロード率の差異により増大します。 ファイル・システムのキャッシュ・サイズは、ジョブのどの時点でも「読取りキャッシュとバッファ済バイトの合計数」より大きくする必要があります。 大量のデータをパラレルにアップロードするワークロードがある場合、次の式を使用して、書込みバッファに必要な容量を決定できます。

WB >= D * (1 - UR/IR) + E

WB =推奨される書込みバッファ・サイズ

D =アップロードされたデータセットの合計サイズ

UR =アップロード率(アップロード率は、実際のアップロード率やディスク読取り速度の低いです)。

IR =収集率(ディスク書込み速度)

E =追加マージン(Oracleは少なくとも50 GBを推奨)

ノート

この式は、アップロード速度が収集レートより低い場合にのみ適用されます。

次のコマンドを実行して、システム収集率を測定します:

sudo docker exec -it ocisg python /opt/oracle/gateway/python/packages/ocisg_helper/disk_speed_test.py

出力例:

Write speed:
2.1 GB copied in 9.4 seconds (228 MB/s)
Read speed:
2.1 GB copied in 6.8 seconds (315 MB/s)

ジョブ実行中に読取りと書込みがパラレルで行われる場合、返される値の約50%が読取り速度と書込み速度で使用されます。

次のコマンドを実行して、システムのアップロード速度を測定します:

sudo docker exec ocisg cat /mnt/gateway/cache-phoenix/:::diag:oci-network-speed-test

出力例:

Average Upload Speed = 125 MB/s

例1

日次データセットは500 GBです

アップロード・レート= 2 MB/秒

ディスク読取り= 600 MB/秒

収集率(ディスク書込み) = 600 MB/秒

次の方程式を適用します:

WB >= 500 GB * (1 - (2/600)) + 50 GB

WB >= 549 GB

この場合、データセット全体が書込みバッファに合致する必要があるため、アップロード率は収集率と比較して非常に遅くなります。

例2

日次データセットは1 TBです

アップロード・レート= 300 MB/秒

ディスク読取り= 400 MB/秒

収集率(ディスク書込み) = 100 MB/秒

アップロード率が収集率より高いため、この場合、最小書込みバッファ・サイズを300 GBにすることをお薦めします。

例3

日次データセットは5 TBです

アップロード・レート= 250 MB/秒

ディスク読取り= 400 MB/秒

収集率(ディスク書込み) = 300 MB/秒

次の方程式を適用します:

WB >= 5 TB * (1 - (250/300)) + 50 GB

WB >= 0.88 TB

WBは880 GBです。

ノート

Storage Gatewayは、空きキャッシュ領域が15 GBを下回ると、I/Oのスロットルを開始します。
アプリケーションでスロットルを処理できるかどうか、またはより多くのキャッシュ・スペースをプロビジョニングするかどうかを決定します。

ファイル・システム・キャッシュでのファイルの保持

ファイルをファイル・システムに書き込むと、ファイルは最初はファイル・システム・キャッシュに格納されてから、Oracle Cloud Infrastructureテナンシにアップロードされます。 ファイルをアップロードした後、キャッシュ・マネージャはファイル・システム・キャッシュからファイルを削除できます。 ファイル・システムに指定されたキャッシュしきい値に達するために、「最近使用されたもの」 (LRU)のキャッシュ管理ポリシーを使用してキャッシュが再利用されます。 キャッシュ内の特定のファイルをすばやくアクセスできるようにする場合は、そのファイルをファイル・システムのキャッシュにpinできます。 確保すると、ファイルは明示的に確保解除されるまでファイル・システム・キャッシュから削除されません。 管理コンソールで、選択したファイルシステムに関する「GiBの最大読み取りキャッシュ・サイズ」「設定」の下に表示できます。

「標準」「アーカイブ」の両方のストレージ層に接続されているファイルをファイル・システム・キャッシュに固定できます。 ファイル・システムに書き込むファイルは、ファイルがキャッシュに確保されているかどうかに関係なく、常にテナンシにアップロードされます。

キャッシュのために確保するファイルがキャッシュに存在しない場合、ファイル・システムが「標準」ストレージ層に接続されていれば、ファイルが自動的にキャッシュにダウンロードされます。 そのファイルが「アーカイブ」ストレージ層に接続されているファイル・システムに属している場合は、ファイルをキャッシュにダウンロードする前に、まずファイルをリストアする必要があります。 詳細については、「アーカイブ・ストレージからのファイルとオブジェクトのリストア」を参照してください。

重要

  • デフォルトでは、キャッシュ固定機能はすべてのファイル・システムで有効になっています。
  • キャッシュ固定用のファイルを選択するときは、キャッシュしきい値全体を考慮し、通常のキャッシュ操作で使用可能な残余キャッシュ領域を計算します。 たとえば、キャッシュしきい値が1 TBで、キャッシュに確保するファイルが300 GBを占有すると想定します。 この場合、ファイルを固定した後も700 GBの使用可能な領域がキャッシュに残されます。
  • Archiveストレージ層からファイルをリストアすると、そのファイルはStandardストレージ層に移動します。 ファイルは、Standardストレージに24時間保持されるか、指定した保存期間に保持されます。 キャッシュ内のファイルの継続可能な可用性は、LRU操作に依存します。 ただし、そのようなファイルをキャッシュにピン止めすると、ファイルを確保解除するまで、リストアされたファイルはキャッシュに残ります。

キャッシュ・ピンニングの有効化と管理

ファイル・システムのキャッシュ保持操作を実行するには、ファイル・システムがマウントされているNFSクライアントから次のコマンドを実行します:

cat /path/to/mountpoint/<file_path>:::cache:cache_command[:argument]

次の表に、キャッシュ・ピン操作と、各操作の対応するコマンドと引数を示します:

操作 キャッシュ・コマンド 引数
ファイル・システムのキャッシュ保持を有効にします。

デフォルトでは、キャッシュの固定はすべてのファイル・システムで有効になっています。

set-preserve-option true
ファイル・システムのキャッシュ固定ステータスを取得します。 get-preserve-option 引数なし
ファイル・システムのキャッシュ保持を無効にします。 set-preserve-option false
キャッシュに固定されているファイルをリストします。 list-preserve 引数なし
保存リストから削除済ファイルを削除します。 list-preserve-update 引数なし
保存リストにファイルを追加します。 add-preserve 引数なし
保存リストからファイルを削除します。 remove-preserve 引数なし
保存リストをクリアします。 clear-preserve 引数なし

コマンド例

  • myFSファイル・システムのキャッシュ固定を有効にするには:

    cat /mnt/gateway/myFS/:::cache:set-preserve-option:true
  • myFSのキャッシュ・ピンニング・ステータスを取得するには、次のようにします:

    cat /mnt/gateway/myFS/:::cache:get-preserve-option

    ファイル・システムのキャッシュ保持が有効になっている場合、このコマンドの出力はtrueになります。 それ以外の場合、出力はfalseです。

  • myFSファイル・システムのキャッシュ固定を無効にするには、次のようにします:

    cat /mnt/gateway/myFS/:::cache:set-preserve-option:false
  • myFSファイル・システムのファイルmyFileを保持リストに追加するには、次の手順を実行します:

    cat /mnt/gateway/myFS/myFile:::cache:add-preserve
  • myFSファイル・システムの保存リストに追加するファイルを調べるには、次の手順を実行します:

    cat /mnt/gateway/myFS/:::cache:list-preserve

    上記のコマンドの出力例:

    ["/doNotDelete.txt", "/myFileMetadata", "/myFile"]
  • myFileファイルを保存リストから削除するには

    cat /mnt/gateway/myFS/myFile:::cache:remove-preserve
  • cache:list-preserveコマンドの出力で、ファイル・システムから固定されたファイルが削除されたことを示す場合に、保持リストを更新するには、次のようにします:

    cat /mnt/gateway/myFS/:::cache:list-preserve-update

    元の保存リストのサンプル:

    ["/doNotDelete.txt", "/myFileMetadata"]

    myFileMetadataファイルがキャッシュから削除された後のcache:list-preserveコマンドの出力:

    ["/doNotDelete.txt", "Status: 1 files appear to no longer exist. Please run list-preserve-update"]

    cache:list-preserve-updateコマンドの出力:

    ["/doNotDelete.txt"]
  • ファイル・システムの保存リストをクリアするには:

    cat /mnt/gateway/myFS/:::cache:clear-preserve