ファイル・システムの使用量および測定

このトピックでは、サービス・コストの理解および管理に役立つファイル・システムの使用量と測定の計算方法について説明します。また、ファイル・システム、クローンおよびスナップショットの使用率を表示する様々な方法、および使用方法に応じて発生するレポートの違いについても説明します。

概要

ファイル・ストレージ・サービスのプロビジョニングは、使用率がスケーリングされるにつれて完全に管理され、自動化されます。詳細は、領域の割当てを参照してください。

ファイル・システム、クローンおよびスナップショットの使用量を表示するのに使用できる方法は次のとおりです:

  • ファイル・ストレージ・サービスは、測定されたファイル・システムの使用率をレポートし、毎時更新します。測定されたファイル・システムの使用率は、APIのmeteredBytes値から取り込まれ、サービス・コストのカウントに使用される認可使用率値を表します。コンソール、コマンドライン・インタフェース(CLI)またはAPIを使用して、各ファイル・システムについてレポートされた使用率にアクセスできます。詳細は、次のファイル・システムの測定された使用率の項を参照してください。
  • ファイル・ストレージ・サービスはネットワーク・ファイル・システム(NFS)プロトコルをサポートしているため、インスタンス・コマンドライン・ツールからdfまたはduコマンドを使用して、マウントされたファイル・システムの使用量を確認できます。ただし、duによりレポートされる使用量は、meteredBytes値およびdf値と異なっている場合があります。詳細は、DFおよびDUコマンドの使用を参照してください。

領域の割当て

ファイル・ストレージ・サービスでは、可変サイズのブロックで領域を割り当てます。これにより、顧客の合計コストを最小限に抑え、パフォーマンスを最適化します。他のストレージ・システムは、Oracle Cloud Infrastructure File Storageと異なる方法でブロックを割り当てることがあります。別のストレージ・デバイスからOracle Cloud Infrastructureファイル・システムにファイルをコピーした場合、コピーの前後で物理ファイルのサイズを比較すると、わずかな差異が確認されることがあります。

測定およびサービス・コスト

この項では、ファイル・システムの使用量の側面と、それがサービス・コスト全体に与える影響について説明します。

ファイル・システムの測定された使用率

ファイル・ストレージ・サービスは、各ファイル・システムの測定された使用率のサイズをレポートします。測定された使用率のサイズは、毎時サイクルで更新されます。ファイル・システムの詳細ページで、測定された使用率のサイズをコンソールに表示できます。この値は、ファイル・ストレージ・サービスAPIのmeteredBytesプロパティで取得されます。このプロパティは、ファイル・システムによって消費されるバイトの合計数です。ファイル・システムが別のファイル・システムのクローンである場合、そのクローンは、クローンに固有の区別されたデータのみについて測定されます。

meteredBytesの値は、ファイル・システムの更新に関して非同期的に更新されます。使用料金は、meteredBytes値に基づいて計算されます。

CLIまたはAPIを使用して、この情報を取得することもできます。ファイル・システムの使用率を表示する方法については、ファイル・システムの管理を参照してください。

重要

ファイル・システムに対してファイルを追加または削除する場合、ファイル・ストレージ・サービスが測定サイズの変更をレポートするのに最大1時間かかる可能性があります。

スナップショットの測定された使用率

スナップショットとは、ファイル・システムのポイントインタイム・ビューです。複製のかわりに元のデータを参照して使用量コストを制限するため、スナップショットは最初、ファイル・システムの追加の使用量を消費しません。スナップショットは、取得後に参照するブロックを変更しません。

スナップショット・データの使用量は、区別されたデータのみに対して測定されます。最後のスナップショットが作成されてからファイル・システム内で何も変更されていない場合、新しいスナップショットはストレージを消費しません。スナップショットの測定サイズは、属するファイル・システムのレポートされたmeteredBytes値に含まれます。

例:

  1. たとえば、MyFileSystemというファイル・システムを作成してFile1を追加するとします。新しいファイル・システムには、メタデータを含む1GBが含まれます。毎時更新サイクルの完了後、ファイル・ストレージ・サービスによって表示される合計のmeteredBytesは、1GBになります。
  2. 次に、Snapshot1という名前のMyFileSystemのスナップショットを作成します。毎時更新サイクルが完了した後、ファイル・ストレージ・サービスによって表示される合計のmeteredBytesは、まだ区別されたデータがないため、1GBのままとなります。

  3. 次に、File1の最初の0.5GBを上書きします。これで、MyFileSystemには、以前にSnapshot1で取得したバージョンとは異なるファイルが含まれます。meteredBytesの値は1.5GBです。これは、稼働中のファイル・システムとスナップショットの間で区別されたデータが0.5GBであるためです。

    1GB (スナップショット) + 0.5GB (区別されたデータ) = 1.5GB

  4. 次に、File1を削除します。これで、MyFileSystemのmeteredBytes値は、Snapshot1の使用量のみを表す1GBになります。
  5. 最後に、Snapshot1を削除します。スナップショットを削除すると、そのスナップショットのファイル・データへの参照が削除されます。他のスナップショットがファイル・データを参照していない場合、領域は放棄され、使用率はゼロに戻ります。

クローンの測定された使用率

ファイル・システム・クローンの初期測定コストは、そのメタデータのみに基づいています。これは、クローンが親ファイル・システムのデータを複製せずに参照するためです。

クローンの親ファイル・システムは、その子孫クローンと共有されているすべてのデータについて測定されます。クローンは、そのすべてのメタデータおよびそのデータに加えられた増分変更について測定されます。クローンが削除されると、そのクローンによってのみ参照されているすべてのブロックが再利用されます。別のクローンが削除されたクローンからハイドレーションしている場合、参照されているメタデータ・ブロックは、ハイドレーションの完了後に再利用されます。

親クローンを削除した場合、子孫クローン間で共有されているデータ・ブロックは解放できません。子孫クローンによって参照されている割当て済ブロックは、測定の目的で新しいクローンの親(親の親)に転送されます。複数のファイル・システム間で共有されているデータについて、2回以上測定されることはありません。

例:

  1. たとえば、FileSystemAのクローンをClone1という名前で作成するとします。作成時、およびデータが変更される前:
    • FileSystemA (親)では、そのデータとメタデータが測定されます。
    • Clone1では、メタデータのみが測定されます。
  2. 次に、File1という名前の1GBの新しいファイルをClone1に作成します:
    • FileSystemA (親)では、Clone1 (クローン)と共有するデータが測定されます。
    • Clone1では、そのメタデータに加えて、File1によって引き起こされた1GBの変更データが測定されます。
  3. FileSystemAの親はOriginalRootです。これがクローン・ツリーのルートです。FileSystemAを削除するとします:
    • OriginalRootがClone1の新しい親になります。
    • OriginalRootでは、Clone1と共有するデータが測定されます。
    • Clone1では、そのメタデータに加えて、File1によって引き起こされた1GBの変更データが測定されます。

レプリケーションの測定された使用率

ファイル・システムのレプリケーションを有効にすると、そのファイル・システムは、指定されたリージョンおよび可用性ドメイン内のターゲット・ファイル・システムにレプリケートされます。ファイル・ストレージは、ソース・ファイル・システムとターゲット・ファイル・システム両方について、ディスク上に格納された容量の合計について測定されます。ソース・ファイル・システムとターゲット・ファイル・システムの価格レートは同じです。

請求には、リージョン間のレプリケーション・プロセスに適用されるすべてのネットワーク・コストが含まれます。レプリケーション・プロセスの一環として、ソース・ファイル・システムで更新されるすべてのデータがファイル・システム・レプリカに転送されるため、継続的に更新されるファイル・システムではネットワーク・コストが高くなります。同一リージョン内の可用性ドメイン間の帯域幅またはインバウンド・データ転送に対して追加料金はありません。

多くのレプリケーション・フェイルバック・シナリオでは、元のソース・ファイル・システムのクローンを使用します。最後に完全に適用されたスナップショットからソースをクローニングすると、ソースとターゲットの互換性が保証されます。フェイルバックのために新しいファイル・システムを使用することもできます。ただし、元のソース・ファイル・システムのクローンを使用する方が、新しいファイル・システムを使用するよりも高速でコスト効率が高い傾向があります。例:

  1. ソース・ファイル・システムFile System Aとターゲット・ファイル・システムFile System Bを作成するとします。File System A (ソース)からFile System B (ターゲット)へのレプリケーションを設定します。File System Aがマウントされ、データがインスタンスまたはアプリケーションからここに書き込まれます。レプリケーション・プロセスによって、File System Aのデータ更新がFile System Bに複製されます。
    • File System A (ソース)では、そのデータとメタデータが測定されます。データが更新されるため、コストが増加する可能性があります。
    • File System Aのユーザー作成スナップショットでは、File System Aの差分データのみが測定されます。
    • File System B (ターゲット)のデータはFile System Aと同一であり、データとメタデータが測定されます。
    • File System Bのユーザー作成スナップショットはFile System Aと同一であり、差分データのみが測定されます。
    • レプリケーション作成スナップショットでは、差分データのみが測定されます。これはレプリケーション・サイクルが完了すると削除されます。
    ノート

    レプリケーション・サイクルが完了するまでの間、File System BのデータとメタデータがFile System Aと異なる可能性があります。
  2. その後、ある時点でFile System Aを含む可用性ドメインの障害が発生し、File System Bにフェイルオーバーします。File System Bがアプリケーション・インスタンスにマウントされ、そこにデータが書き込まれます。
    • File System Aでは、存在しているデータとメタデータが測定されます。データが更新されないため、コストの変化はありません。
    • File System Aのユーザー作成スナップショットでは、引き続き、File System Aに存在する差分データのみが測定されます。
    • File System Bのデータでは、そのデータとメタデータが測定されます。データが更新されるため、コストが増加する可能性があります。
    • File System Bのユーザー作成スナップショットでは、File System Bの差分データのみが測定されます。
    • レプリケーション・スナップショットは作成されません。
  3. File System Aを含む可用性ドメインがリストアされた後で、逆方向のレプリケーションを行い、更新されたデータをFile System BからFile System Aにコピーして、両方を同期します。File System AのクローンをClone1という名前で作成します。作成時、およびデータが変更される前:
    • File System A (元のレプリケーション・ソース、クローンの親)では、そのデータとメタデータが測定されます。
    • Clone1では、メタデータのみが測定されます。
  4. File System BからClone1へのレプリケーションが進行するため、データはFile System BからClone1にコピーされます。
    • File System A (古いレプリケーション・ソース、クローンの親)では、そのデータとメタデータが測定されます。データが更新されないため、コストの変化はありません。
    • File System Aのユーザー作成スナップショットでは、引き続き、File System Aに存在する差分データのみが測定されます。
    • Clone1 (新しいターゲット)では、これとFile System Aの間の差分データが測定されます。データがFile System BからClone1にレプリケートされるため、コストが増加します。
    • File System B (新しいソース)では、そのデータとメタデータが測定されます。
    • File System Bのユーザー作成スナップショットでは、File System Bの差分データのみが測定されます。
    • レプリケーション作成スナップショットでは、Clone1とFile System Bの間の差分データのみが測定されます。これはレプリケーション・サイクルが完了すると削除されます。

詳細は、ファイル・システム・レプリケーションを参照してください。

メタデータの測定された使用率

ファイル・システム内のファイルではメタデータ用に領域を割り当てる必要があります。512バイトがディレクトリ・エントリごとに必要で、8192バイトがsymlinkごとに必要です。ファイルに複数のハードリンクを設定すると、そのファイルに対して複数のディレクトリ・エントリが作成され、メタデータの使用率が増加します。この使用率は、それが属するファイル・システムのmeteredBytes値に含まれています。

DFおよびDUコマンドの使用

インスタンス・コマンドライン・アプリケーションからdfまたはduコマンドを使用して、ファイル・システムに関する使用量情報を表示できます。これらのコマンドを使用してファイル・システムの使用量を表示するには、まずファイル・システムをインスタンスにマウントする必要があります。ファイル・システムのマウント手順については、ファイル・システムのマウントを参照してください。

コマンドの動作

  • dfは、ファイル・システムについて測定されたストレージ量を提供します。結果はすぐに返されますが、最大で1時間古くなる可能性があります。
  • duは、ディレクトリ階層で使用されているストレージを提供します。duコマンドは、ディレクトリ・ツリーを参照し、階層が大きい場合は、実行して結果を返すまでに長時間かかることがあります。

結果の違い

次の項では、dfduの結果がどのように異なるか、およびその理由を説明します。

DFとDUでは、スナップショットとクローンの使用率のレポート方法が異なります

スナップショットとは、ファイル・システムのポイントインタイム・ビューです。スナップショットは、複製するかわりに、変更されていないファイル・システム・データを参照します。スナップショットが参照するファイル・システム・ブロックは、スナップショット使用率に対してカウントされません。区別されたデータのみがスナップショット使用率を増やします。

この動作は、ファイル・システム・クローンについても同じです。クローンは、その親ファイル・システムと共有するデータを参照します。クローンが参照するファイル・システム・ブロックは、クローンの使用率に対してカウントされません。区別されたデータのみがクローン使用率を増やします。

  • dfコマンドは、NFS FSSTATコールを使用して、ファイル・ストレージ・サービスによって提供される情報を取得します。NFS FSSTATコールによって、スナップショットおよびクローンがファイル・システム・データを参照する方法が正しく示されます。区別されたデータによる使用率のみがレポートされます。

    スナップショットは、.snapshot/nameにあるファイル・システムのルート・ディレクトリ下でアクセス可能です。NFSv3クライアントを使用してスナップショット・ディレクトリでlsdufindなどの操作を実行すると、サービスによってディレクトリが自動的にエクスポートされます。クライアントは、nfs_d_automount()を使用してディレクトリを検出およびマウントします。ディレクトリが最初に検出およびマウントされた後は、クライアントはディレクトリを自動的にマウントします。

    ノート

    ファイル・システムをパージしたが、ファイル・システムにスナップショットまたはクローンがある場合、dfコマンドは基礎となるブロックをレポートします。スナップショットやクローンを削除せずにファイル・システムをパージしても、それらのブロックは削除されません。
  • duコマンドは、ファイル・システム・ツリーを下降して使用し、各ファイルのサイズ属性を使用して使用済領域を合計します。スナップショットまたはクローンを作成すると、各ファイルの元のサイズ属性がコピーされます。このため、duコマンドを実行すると、スナップショットは、スナップショットが取得された時点のファイル・システムのサイズをレポートします。必ずしもスナップショットの現在の実際の使用率ではありません。クローンは最初は、ソース・スナップショットが取得された時点での親ファイル・システムのサイズをレポートします。クローン・データが変更されると、duは更新されたファイルのみについて新しいサイズ属性のレポートを開始します。

たとえば、

  1. 「MyFileSystem」というファイル・システムを作成するとします。次に、「FileA」という1GBのファイルをファイル・システムに追加します。各コマンドがどのようにサイズをレポートするかを次に示します。

    対象... duレポート...

    dfレポート...

    FileA 1GB 1GB
    MyFileSystem 1GB 1GB
  2. 次に、「Snapshot1」を作成します。スナップショットはMyFileSystemの/.snapshotフォルダに配置されます。各コマンドがどのようにサイズをレポートするかを次に示します:

    対象... duレポート...

    dfレポート...

    FileA 1GB 1GB
    Snapshot1 1GB 1GB

    MyFileSystem

    2GB 1GB
    • duでは、コピーされたFileAのファイル・サイズ属性(1GB)がレポートされるため、Snapshot1に1GBをレポートします。
  3. 次に、「Snapshot1」を使用して「Clone1」という名前のクローンを作成します。各コマンドがどのようにサイズをレポートするかを次に示します:

    対象... duレポート...

    dfレポート...

    FileA 1GB 1GB
    Snapshot1 1GB 1GB

    MyFileSystem

    2GB 1GB
    Clone1 2GB 0GB
    • dfでは、データがまだ変更されていないため、Clone1に0GBをレポートします。そのため、区別されたデータに領域は割り当てられていません。
    • duでは、コピーされたFileAのファイル・サイズ属性(1GB)およびSnapshot1のサイズ(1GB)がレポートされるため、Clone1に2GBをレポートします。
  4. クローニングされたファイル・システムに「FileB」という名前の1GBのファイルを追加します。各コマンドがどのようにサイズをレポートするかを次に示します:

    対象... duレポート...

    dfレポート...

    FileA 1GB 1GB
    Snapshot1 1GB 1GB

    MyFileSystem

    2GB 1GB
    Clone1 3GB 1GB
    FileB 1GB 1GB
    • dfは、FileBに追加された区別されたデータについて、Clone1に1GBをレポートします。
    • duでは、FileA、FileBおよびSnapshot1のコピーされたファイル・サイズ属性の合計がレポートされるため、Clone1に3GBをレポートします。
重要

料金は、meteredBytes値を使用して計算されます。duからレポートされる使用率のサイズはmeteredBytes値よりも大きくなる可能性があります。dfmeteredBytesと同じ値をレポートするため、これを使用してファイル・システム・サイズを正確に表示できます。