OCIFSユーティリティ

OCIFSユーティリティを使用すると、Oracle Cloud Infrastructure Object Storageバケットをファイル・システムとしてマウントできます。その後、バケット内のオブジェクトを通常のファイルおよびディレクトリとして管理できます。

OCIFSの既知の問題

次の既知の問題は、OCIFSユーティリティで検出された一時的なバグです。このバグは積極的に修正されており、回避策が提供されています。

一部のリージョンは、OCIFSユーティリティ、バージョン1.1および1.2で期限切れまたは欠落しています

OCIFSユーティリティのバージョン1.1および1.2では、一部のリージョンが古いか欠落しており、ストレージ・バケットをマウントしようとすると、次のエラーが表示される場合があります。

# mount -t fuse.ocifs bucket1 /mnt/dir 
Failed to get Object Storage namespace
Error: Couldn't resolve host name
ERROR: Failed to init storage connect

回避方法

このメッセージが表示された場合は、mountコマンドでregion=region_name.realm_domainオプションを使用します。APIキーベース認証を使用している場合、regionオプションは、CLI構成ファイルで指定されたリージョンをオーバーライドします。また、インスタンス・プリンシパルおよびリソース・プリンシパル認証方式でこの問題に対処します。

たとえば、oraclegovcloud.ukドメイン内のuk-gov-london-1リージョンにbucket1をマウントするには:

# mount -t fuse.ocifs -o region=uk-gov-london-1.oraclegovcloud.uk bucket1 /mnt/dir 
ノート

OCIFSユーティリティのバージョン1.2でインスタンス・プリンシパル認証方法を使用している場合、region=region_name.realm_domainオプションを指定しても、このエラー・メッセージが引き続き表示されることがあります。その場合は、OCIFSユーティリティのバージョン1.1に切り替えて、回避策を再試行してください。

OCIFSユーティリティのインストール

Oracle Linux 8以降のシステムまたはインスタンスにOCIFSユーティリティをインストールします。

前提条件:

  • OCIオブジェクト・ストレージ: OCIFSをインストールするシステム(インスタンス)が、マウントする既存のオブジェクト・ストレージ・バケットにアクセスできるか、接続できることを確認します。バケットは空にすることも、すでにオブジェクトに移入することもできます。オブジェクト・ストレージの詳細は、オブジェクト・ストレージの概要に関する項を参照してください。オブジェクト・ストレージ・バケットの作成方法の詳細は、バケットの作成を参照してください。

  • ローカル・ディスク領域: OCIFSは、オブジェクト・ストレージ・オブジェクトをキャッシュするためにローカル・ディスク領域を消費します。OCIFSは、マウントされたオブジェクト・ストレージ・バケットのオブジェクトを、指定可能なディレクトリにキャッシュします。最適なパフォーマンスを得るには、高速アクセス時間を持つストレージデバイス上のキャッシュ用のローカルディレクトリを指定します。

    また、キャッシュ・ディレクトリが、マウントされたオブジェクト・ストレージ・バケット・パスのコンテンツ全体をホストするのに十分な空き領域があるストレージ・デバイス上にあること、または少なくともバケット内のすべてのオブジェクトを読取りまたは書込みできることを確認してください。
    ノート

    キャッシュ・ディレクトリがあるストレージ・デバイスがいっぱいになると、OCIFS操作が失敗することがあります。OCIFSキャッシュの詳細は、OCIFSキャッシュ・オプションを参照してください。
  • CLI構成ファイル: デフォルトでは、OCIFSはAPIキーベースの認証方法を使用してオブジェクト・ストレージを認証します。この認証方法では、OCIFS固有のエントリを含むCLI構成ファイルが必要です。OCIFSの構成ファイルの設定方法の詳細は、APIキーベース認証を参照してください。

OCIFSユーティリティをインストールするには:

  1. 前提条件を完了します。
  2. ocifsパッケージを含むoci_includedリポジトリを有効にします。このリポジトリは、Oracle Linuxプラットフォーム・イメージではデフォルトで有効になっています。
  3. ocifsパッケージをインストールします。
    sudo dnf install ocifs

OCIFSユーティリティの更新

最新バージョンのocifsに更新するには:

sudo yum update ocifs

OCIFSユーティリティの詳細

OCIFSを使用してオブジェクト・ストレージ・バケットをマウントする場合、バケットをファイル・システムとして使用して、バケット内のオブジェクトを通常のディレクトリおよびファイルとして管理できます。

オブジェクト・ストレージ・バケット内のオブジェクトはフラット構造に存在しますが、OCIFSでは、1つ以上のフォワード・スラッシュ(/)を含むオブジェクト名に存在する接頭辞文字列を使用してディレクトリ構造をシミュレートします。OCIFSはFUSEファイル・システムとして実装されるため、ファイル・システムを使用するためにroot権限は必要ありません。

ノート

OCIFSファイル・システムは共有ファイル・システムではありません。オブジェクト・データの破損を回避するために、OCIFSを使用して同じオブジェクト・ストレージ・バケット(または重複するバケット・サブフォルダ)を何度も同時にマウントしないでください。また、オブジェクト・ストレージ・バケットのマウント中にバケット・オブジェクト(コンソール、CLI、APIなど)を直接変更しないでください。

オブジェクト・ストレージの詳細は、オブジェクト・ストレージの概要に関する項を参照してください。

OCIFSを使用したマウントの詳細は、「OCIFSを使用したマウントおよびアンマウント」を参照してください。

使用法

ocifs [--auth=method] [--config=file] [--region=name.realm_domain] [--cache=path] [--cache-keep] [--cache-reuse] [--cache-fsfree=] [--cache-purge=never|seconds] [--debug=[,...]] [-o ] [-d] [-f] [-s] [--check-bucket bucket-path] [--version] [--mpu-threshold=size] bucket-path directory

OCIFSユーティリティのオプション

OCIFSオプションは、ocifsコマンドで長いオプション--option[=value]または-oオプション-o option[=value]を使用して指定できます。

OCIFSユーティリティのオプション

オプション

説明

詳細は、次を参照してください:

auth=method

OCI Object Storageへのアクセス時にOCIFSが使用する認証方法を設定します。
  • api_key (デフォルト)

  • instance_principal

  • resource_principal

OCIFS認証

config=file

APIキーベース認証に使用されるCLI構成ファイルへのパスを設定します。

APIキーベース認証

region=name.realm_domain

CLI構成ファイルで指定されたリージョンをオーバーライドします。

APIキーベース認証

キャッシュ・オプション

OCIFSキャッシュの機能を定義します。
  • cache=path: キャッシュ・ディレクトリへのパスを設定します。

  • cache-fsfree: キャッシュ・ディレクトリが存在するファイル・システムで空き領域量を指定します。

  • cache-keep: OCIFSファイル・システムがアンマウントされている場合、キャッシュ・ディレクトリは削除されません。

  • cache-purge: キャッシュ・パージ遅延を指定します。

  • cache-reuse: ディレクトリが空でない場合でも、既存のキャッシュ・ディレクトリを再利用します。

OCIFSキャッシュ・オプション

debug=level

デバッグ・レベルまたはレベルを設定し、ocifsコマンド出力にデバッグ情報を表示します。デバッグ・レベル:

  • all: すべての操作をデバッグします。

  • cache: キャッシュ操作をデバッグします。

  • fops: FUSE操作をデバッグします。

  • oci: OCIリクエストをデバッグします。

  • other: 他の未分類の操作をデバッグします。

複数のデバッグ・レベルでは、レベルをカンマで区切ります。

OCIFS診断の有効化

FUSEオプション
ocifsコマンドでは、次のFUSEオプションを使用できます。
  • d: FUSEデバッグ出力を有効にします。

  • f: フォアグラウンドでocifsプロセスを実行します。

  • s: マルチスレッドではなく、ocifsプロセスをシングルスレッドで実行します。

また、fuse(8)のマニュアルページで説明されているFUSEマウントオプションは、-oオプションで指定できます。

fuse(8)マニュアル・ページ

check-bucket bucket-path

指定されたオブジェクト・ストレージ・バケットにアクセスできること、およびバケット内のオブジェクトの名前がOCIFSマウント・ルールと互換性があることを確認します。

OCIFSマウントの制限事項

version

OCIFSユーティリティのバージョンを表示します。

OCIFSユーティリティの更新

mpu-threshold

マルチパート・アップロードを使用するファイル・サイズを定義します。

OCIFSマルチパート・アップロード・オプション

bucket-path

マウントするオブジェクト・ストレージ・バケットを指定します。

OCIFSを使用したマウントおよびアンマウント

バケットの作成

directory

オブジェクト・ストレージ・バケットをマウントするディレクトリを指定します。

OCIFSを使用したマウントおよびアンマウント

OCIFSを使用したマウントおよびアンマウント

OCIFSユーティリティを使用すると、マウントするオブジェクト・ストレージ・バケットをバケット・パスで指定できます。

バケット・パスには、次のいずれかを指定できます。

  • バケット名: 指定したオブジェクト・ストレージ・バケットのすべてのオブジェクトには、マウントされたディレクトリ内の通常のファイルまたはディレクトリとしてアクセスできます。

    たとえば、オブジェクト・ストレージ・バケットbucket-1をディレクトリmydirにマウントするには:
    $ mkdir ~/mydir
    $ ocifs bucket-1 mydir
  • オブジェクト・ストレージ・バケット名であり、そのバケットのサブフォルダを持つバケット・サブフォルダ: 指定されたバケット・サブフォルダのオブジェクトのみが、マウントされたディレクトリ内の通常のファイルまたはディレクトリとしてアクセスできます。

    たとえば、オブジェクト・ストレージ・バケットbucket-1のサブフォルダmarathon/participantsをディレクトリmydirにマウントするには:
    $ ocifs bucket-1/marathon/participants mydir

オブジェクト・ストレージ・バケットのマウント

前提条件:

OCIFSを使用してオブジェクト・ストレージ・バケットをマウントする前に、次を確認してください:

  • OCIFSマウントの制限事項: オブジェクト・ストレージ・バケットをマウントするためのガイドラインおよびルール

  • OCIFSユーティリティの詳細: OCIFSユーティリティで使用可能なマウント・オプション

  • OCIFS認証: OCIFSで使用される認証方法、および必要に応じてCLI構成ファイルの編集に関する情報

オブジェクト・ストレージ・バケットをマウントするには:

  • ocifsコマンドを使用します。
    ocifs [options] bucket-path directory

    または:

  • mount(8)コマンドを使用して、次の操作を行います。
    mount -t fuse.ocifs [-o options] bucket-path directory
    ノート

    mountコマンドでは、-oオプション(-o option[=value])を使用してオプションを指定します。

    ノート

    mountコマンドには、適切な権限(rootなど)が必要です。

Examples:

  • ocifsコマンドを使用して、オブジェクト・ストレージ・バケットbucket-1をディレクトリmydirにマウントし、アンマウント後にOCIFSキャッシュ・ディレクトリを保持します:

    $ ocifs --cache-keep bucket-1 mydir
  • mountコマンドを使用して、オブジェクト・ストレージ・バケットbucket-1をディレクトリ/mntにマウントし、アンマウント後にOCIFSキャッシュ・ディレクトリを保持します:

    # mount -t fuse.ocifs -o cache-keep bucket-1 /mnt 

デフォルトでは、オブジェクト・ストレージ・バケットはAPIキーベース認証を使用してマウントされます。APIキー・ベース認証を参照してください。

オブジェクト・ストレージ・バケットのアンマウント

  • fusermount -uコマンドを使用します。
    fusermount -u directory

    または:

  • umount(8)コマンドを使用します。
    umount directory
    ノート

    umountコマンドには、適切な権限(rootなど)が必要です。
Examples:
  • fusermountコマンドを使用して、ディレクトリmydirにマウントされているオブジェクト・ストレージ・バケットをアンマウントします:

    $ fusermount -u mydir
  • umountコマンドを使用して、ディレクトリ/mntにマウントされているオブジェクト・ストレージ・バケットをアンマウントします:

    # umount /mnt
ノート

OCIFSファイル・システムをアンマウントすると、対応するキャッシュ・ディレクトリが削除されます。ただし、ファイル・システムがcache-keepオプションでマウントされている場合を除きます。cache-keepを参照してください。

OCIFSマウントの制限事項

OCIFSには、オブジェクト・ストレージ・バケットをマウントする前に考慮する必要があるいくつかのマウント制限があります。

次のマウント規則および制限を確認してください。

ファイルのタイプ、属性およびサイズ設定

OCIFSには、次のファイル・タイプ、属性およびサイズ設定のマウント制限があります。

ファイル・タイプ
OCIFSでは、通常のファイルおよびディレクトリのみがサポートされます。OCIFSは、シンボリック・リンク、物理リンクおよび特殊ファイル(ブロック、文字、fifo、特殊ファイル)をサポートしません
ファイルの属性
ファイル属性(アクセス権、ユーザーおよびグループの所有権、アクセス/変更/変更時間)は、マウント間で永続的ではありません。OCIFSファイル・システムがアンマウントおよび再マウントされると、すべての属性がリセットされます。
デフォルトでは、ディレクトリのアクセス権は0755、ファイルのアクセス権は0644に設定されます。所有権は、ファイル・システムの所有者のuidおよびgidで設定されます。OCIFSファイル・システムがrootユーザーによってマウントされないかぎり、ファイルの権限および所有権は変更できません。ファイルへの書込み権限を削除すると、新しく読み取られたデータがキャッシュされなくなります。この場合、OCIFSには、キャッシュされたファイルに書き込む権限がありません。
ファイル・サイズ
OCIFSの最大ファイル・サイズは10 TiBです。OCIオブジェクト・ストレージの最大オブジェクト・サイズです。

ネーミング・ルール

ファイル、パス、オブジェクトおよび接頭辞のOCIFSマウント・ネーミング・ルールに従います。

ファイル名
OCIFSファイル名のサイズは、OCIFSキャッシュに使用されるファイル・システムでサポートされているサイズに制限されます。ファイル・システムの最も一般的なファイル名のサイズ制限は255文字です。オブジェクト・ストレージ・バケットのファイル名サイズが255文字を超えるオブジェクトがある場合、そのオブジェクトはOCIFSファイル・システムでファイルまたはディレクトリとして表示できますが、オブジェクトは読取り専用であり、キャッシュできません。オブジェクトはキャッシュされないため、オブジェクトのアクセス時間が遅くなる可能性があります。
OCIFSの読取り/書込みアクセスおよびオブジェクトのキャッシュは、OCIFSキャッシュに使用されるファイル・システムと互換性のある名前でオブジェクトの名前を変更することでリストアできます。Oracle Cloudコンソールを使用してオブジェクトの名前を変更することも、mv(1)コマンドを使用してOCIFSを使用してオブジェクトの名前を変更することもできます。
パスの名前
OCIFSでは、最大1023文字のパス名がサポートされています。
互換性のないオブジェクト名
オブジェクト・ストレージ・バケットには、Oracle Linuxファイル・システムのネーミング規則(//directorydirectory////mydirectoryなど)と互換性がない名前のオブジェクトを含めることができます。ただし、これらのオブジェクトはOCIFSではアクセスできず、表示もできません。OCIFSで使用できるようにするには、そのようなオブジェクトの名前を、Oracle Linuxファイル・システムのネーミング規則と互換性のある名前に変更する必要があります。Oracle Cloudコンソールを使用して、オブジェクトの名前を変更できます。
オブジェクト名には最大1024文字を使用でき、通常のファイル・システム・ファイル名の制限(255文字)より大きい対応するOCIFSファイル名を使用できます。ただし、OCIFSを使用したそのようなオブジェクトへのアクセスは制限されています。
オブジェクト・ストレージ・バケットにOCIFSファイル・システムと互換性がない名前があるかどうかを確認するには、ocifsコマンドの--check-bucketオプションを使用します。OCIFSユーティリティの詳細を参照してください。
オブジェクトと接頭辞名の競合
同じ名前がオブジェクト・ストレージのオブジェクト名と接頭辞名の両方として使用されている場合、その名前はOCIFSを含むディレクトリ・エントリとして表示されます。同じ名前のオブジェクトは、OCIFSを介してアクセスできません。OCIFSを介してオブジェクトを表示できるようにするには、接頭辞として使用されていない名前でオブジェクトの名前を変更する必要があります。
たとえば、オブジェクト・ストレージ・バケットにオブジェクトdirectoryおよびdirectory/mydirectoryがある場合、directoryはオブジェクト名と接頭辞名の両方として使用されます。その場合、OCIFSはエントリdirectoryをディレクトリとして表示し、接頭辞directory/で始まるすべてのオブジェクト(オブジェクトdirectory/mydirectoryなど)へのアクセスを提供します。ただし、オブジェクトdirectoryにはアクセスできません。
ocifsコマンドの--check-bucketオプションを使用して、バケットに競合するオブジェクト名と接頭辞名があるかどうかを確認します。

データの同期

OCIFSには、データ同期用の様々なオプションが用意されています。

OCIFSファイルに書き込む場合、データは、OCIFSファイルが閉じられると同期されます(データは、対応するオブジェクト・ストレージ・オブジェクトに効果的に書き込まれます)。データ同期エラーは、close(2)システム・コールによって報告されます。close()からのエラー・リターンの処理の詳細は、close(2)のマニュアル・ページのノートの項を参照してください。fsync(2)またはfdatasync(2)を使用して、データを明示的に同期するようにリクエストすることもできます。

または、特定のファイル(O_SYNCまたはO_DSYNCフラグでファイルを開く)またはすべてのファイル(syncオプション(-o sync)でOCIFSファイル・システムをマウントすることで)に対して、書込み操作によってデータをただちに同期させることができます。
ノート

O_SYNCまたはO_DSYNCオープン・フラグを使用するか、syncマウント・オプションを使用すると、パフォーマンスに悪影響を及ぼす可能性があります。

OCIFS認証

OCIFSユーティリティでは、APIキーベース(デフォルト)、インスタンス・プリンシパルまたはリソース・プリンシパル認証メソッドを使用します。

OCIFSユーティリティを使用してオブジェクト・ストレージ・バケットをマウントする場合、ocifsコマンドでauth=methodオプションを使用して、オブジェクト・ストレージへのアクセスおよび認証に使用する認証方法を指定できます。

詳細は、次を参照してください:

APIキーベース認証

OCIFSでオブジェクト・ストレージ・バケットをマウントするためのAPIキーベースの認証方法を指定および構成します。

APIキーベース認証は、OCIFSのデフォルトの認証方法であり、OCIコンピュート・インスタンスまたは他のシステムから使用できます。この認証方法には、ローカルのOCI SDKおよびCLI構成ファイルが必要です。構成ファイルは、ocifsコマンドでconfig=fileオプションを使用して指定できます。デフォルトでは、構成ファイル~/.oci/configです。

たとえば、オブジェクト・ストレージ・バケットbucket-1mydirディレクトリにマウントし、~/my_config CLI構成ファイルでAPIキーベース認証を使用する場合:
$ ocifs --auth=api_key --config=~/my_config bucket-1 mydir

APIキーベースの認証方法を使用してオブジェクト・ストレージ・バケットをマウントする前に、CLI構成ファイル(~/.oci/config)に[DEFAULT]プロファイルと、次の表で指定されたエントリがあることを確認してください。

APIキーベース認証の構成ファイル・エントリ

エントリ

説明

user

Oracle Cloud InfrastructureにアクセスしているユーザーのOCID

user=ocid1.user.oc1..unique_ID

tenancy

テナンシのOCID

tenancy=ocid1.tenancy.oc1..unique_ID

region

Oracle Cloud Infrastructureリージョン

region=regional_area_name

key_file

秘密鍵のフルパスとファイル名

key_file=~/.oci/oci_api_key.pem

fingerprint

このユーザーに使用される公開キーのフィンガープリント

fingerprint=00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff

詳細は、SDKおよびCLIの構成ファイルを参照してください。

インスタンス・プリンシパル認証

デフォルトのAPIキーベースの認証方法のかわりに、OCIFSユーティリティでインスタンス・プリンシパル認証方法を使用できます。

OCIFSのインスタンス・プリンシパル認証方式は、認可されたOracle Cloud Infrastructureインスタンスからのみ使用します。この認証方法では、指定したインスタンスがCLI構成ファイルなしでオブジェクト・ストレージにアクセスできます。その後、インスタンスは自動的に情報を検出して認証します。

インスタンス・プリンシパル認証を使用して、インスタンス・プリンシパルとして構成されたコンピュート・インスタンスにオブジェクト・ストレージ・バケットをマウントする必要があります。

たとえば、インスタンス・プリンシパル認証を使用して、オブジェクト・ストレージ・バケットbucket-1mydirディレクトリにマウントするには:

$ ocifs --auth=instance_principal bucket-1 mydir

インスタンス・プリンシパル認証を使用するには、コンピュート・インスタンスが動的グループに属している必要があり、ポリシーによって動的グループがオブジェクト・ストレージを管理できるようにする必要があります。manage object-family動詞およびリソース・タイプを使用して、オブジェクト・ストレージ・オブジェクトの管理を許可するポリシーを定義できます。動的グループの詳細は、動的グループの管理を参照してください。

たとえば、コンピュート・インスタンス(インスタンスIDがocid1.instance.OCID)がインスタンス・プリンシパル認証を使用できるようにするには:

  1. コンピュート・インスタンスに一致する次のルールを使用して、動的グループdgroup-ocifsを作成します:

    All {instance.id = 'ocid1.instance.OCID'}
  2. その動的グループdgroup-ocifsがオブジェクト・ストレージを管理できるようにするポリシーを作成します:

    Allow dynamic-group dgroup-ocifs to manage object-family in compartment id ocid1.tenancy.tenancy_ID

詳細は、インスタンスからのサービスのコールを参照してください。

リソース・プリンシパル認証

デフォルトのAPIキーベースの認証方法のかわりに、OCIFSでリソース・プリンシパル認証方法を使用できます。

認可されたOracle Cloud Infrastructure (OCI)関数からのみ、OCIFSでリソース・プリンシパル認証方法を使用します。この認証方法では、指定した関数がCLI構成ファイルなしで別のリソース(オブジェクト・ストレージ)にアクセスできます。その後、OCI関数は、認証する情報を自動的に検出します。

リソース認証を使用するには、OCI関数が動的グループの一部である必要があり、ポリシーによって動的グループがそのリソースまたはオブジェクト・ストレージにアクセスできるようにする必要があります。動的グループの詳細は、動的グループの管理を参照してください。

他のOCIリソースにアクセスするOCI関数の詳細は、他のOracle Cloud Infrastructureリソースへのアクセスを参照してください。

OCIFSでリソース認証方法を使用するには、ocifsコマンドを使用してバケットをマウントするときに--auth=resource_principalと入力します。

たとえば、リソース・プリンシパル認証を使用して、オブジェクト・ストレージ・バケットbucket-1mydirディレクトリにマウントするには:

$ ocifs --auth=resource_principal bucket-1 mydir

OCIFS診断の有効化

OCIFS診断を有効にするには、ocifsコマンドを-fオプションとともに使用して、フォアグラウンドでOCIFSプロセスを実行し、--debugオプションを使用してデバッグ・レベルを指定します。

たとえば、mydirディレクトリにマウントされたオブジェクト・ストレージ・バケットbucket-1のすべてのOCIFS操作の診断情報を表示するには:

$ ocifs -f --debug=all bucket-1 mydir

または、ocifsコマンドで-dオプションを使用すると、すべての操作でFUSEデバッグを有効にできます。

例:

$ ocifs -d --debug=all bucket-1 mydir

OCIFSキャッシュ・オプション

OCIFSキャッシュ・オプションを使用して、OCIFSキャッシュの機能を指定します。

OCIFSユーティリティは、マウントされたオブジェクト・ストレージ・バケット・パスのオブジェクトをローカル・ディレクトリにキャッシュします(デフォルトでは~/.ocifs/bucket/)。

キャッシュ・ディレクトリがあるストレージ・デバイスが一杯になると、一部のOCIFS操作が失敗する可能性があります。

OCIFSキャッシュの使用方法を指定し、次のocifsキャッシュ・オプションを使用してファンクションを実行できます。

キャッシュ

OCIFSキャッシュ・ディレクトリは、ocifsコマンドのcache=pathオプションを使用して変更できます。

デフォルトでは、OCIFSはオブジェクトを~/.ocifs/にキャッシュします。このキャッシュディレクトリは、cache=pathオプションを使用して変更できます。このオプションは、キャッシュディレクトリを指定されたパスに設定します。パスには、ユーザーのホーム・ディレクトリへの絶対パスまたは相対パスを指定できます。

たとえば、オブジェクト・ストレージ・バケットbucket-1mydirディレクトリにマウントし、/var/tmp/ocifs-cacheをOCIFSキャッシュ・ディレクトリとして使用するには:
$ ocifs --cache=/var/tmp/ocifs-cache bucket-1 mydir

cache-fsfree

ocifsコマンドのcache-fsfreeオプションを使用して、OCIFSユーティリティがキャッシュ・ファイル・システムの領域を誤って埋めるのを防ぐことができます。

cache-fsfreeオプションを使用して、キャッシュ・ファイル・システムの空き領域量を指定します。空き領域が指定した量より大きい場合、OCIFSはデータのキャッシュを試みます。それ以外の場合、OCIFSはキャッシュを実行しません。OCIFSがデータをキャッシュできない場合、書込み操作などの一部のOCIFS操作が失敗する可能性があります。

ノート

cache-fsfreeオプションは、OCIFSエントリの属性(サイズなど)のキャッシュ方法を変更しません。

次の表に、キャッシュ・ディレクトリ・サイズの値を示します。

キャッシュディレクトリサイズ値

説明

0

キャッシュ・ファイル・システムの空き領域をチェックしないでください。このオプションを使用すると、OCIFSは、キャッシュ・ファイル・システムで使用可能な空き領域量に関係なく、データをキャッシュしようとします。

$ ocifs --cache-fsfree=0 bucket-1 mydir

percent%

この値は、キャッシュ・ファイル・システムで解放される必要がある領域の割合(0%から100%)を指定します。

パーセンテージが100%の場合、データはキャッシュされません。

$ ocifs --cache-fsfree=20% bucket-1 mydir

number[K|M|G|T]

この値は、キャッシュ・ファイル・システムで解放される必要があるキロバイト(K)、メガバイト(M)、ギガバイト(G)またはテラバイト(T)の領域量を指定します。

$ ocifs --cache-fsfree=1G bucket-1 mydir

number[K|M|G|T]i

この値は、キャッシュ・ファイル・システムで解放される必要があるキビバイト(Ki)、メビバイト(Mi)、ギビバイト(Gi)またはテビバイト(Ti)の領域量を指定します。

$ ocifs --cache-fsfree=1Gi bucket-1 mydir

ノート:

  • デフォルト設定はcache-fsfree=5%です。
  • オプション00%0[K|M|G|T]または0[K|M|G|T]iを使用すると、同じ効果が得られます。
  • オプション100%、またはファイル・システムのサイズ以上の領域の量を使用すると、同じ効果があります。

キャッシュキープ

OCIFSファイル・システムがアンマウントされている場合でも、ocifsコマンドのcache-keepオプションを使用してOCIFSキャッシュを保持できます。

cache-keepオプションを使用してファイル・システムをマウントしないかぎり、OCIFSファイル・システムをアンマウントすると、OCIFSキャッシュ・ディレクトリが削除されます。

たとえば、オブジェクト・ストレージ・バケットbucket-1mydirディレクトリにマウントし、アンマウント後にキャッシュを保持するには:

$ ocifs --cache-keep bucket-1 mydir

ノート:

  • cache-keepオプションを使用した場合、cache-reuseオプションを使用しないかぎり、ファイルシステムを再度マウントできないことがあります。
  • ファイル・システムのアンマウント後にデータをキャッシュに保持すると、次回のファイル・システムのマウント時にパフォーマンスが向上します。ただし、OCIFSでは、キャッシュ内のデータとオブジェクト・ストレージ・バケット内の実際のデータとの間に相違があるかどうかは確認されません。

キャッシュパージ

OCIFSユーティリティのcache-purgeオプションを使用すると、指定した期間クローズされたファイルのデータをOCIFSキャッシュから削除できます。

デフォルトでは、OCIFSキャッシュはパージされません。ファイル・システムがマウントされているかぎり、キャッシュ・データはキャッシュ・ディレクトリに保持されます。キャッシュ・ディレクトリは、OCIFSファイル・システムがアンマウントされている場合にのみ削除されます。

cache-purgeオプションを使用すると、ファイルが閉じられたあとにデータがキャッシュに残る時間を指定できます。これを使用すると、特にファイルが頻繁にアクセスされない場合に、ディスク領域を保持できます。これは、たとえば、新しいファイルを書き、再度ファイルにアクセスしない場合に便利です。

OCIFSキャッシュのパージ遅延は、次の表に示すように指定できます。

OCIFSキャッシュ・パージ遅延値

説明

never

OCIFSキャッシュはパージしないでください。この値を使用すると、OCIFSファイル・システムがマウントされているかぎり、キャッシュされたデータは保持されます。(デフォルト)

$ ocifs --cache-purge=never bucket-1 mydir

遅延時刻

キャッシュされたデータをパージするまでのパージ遅延(秒)。パージ遅延が0に設定されている場合、ファイルのキャッシュされたデータは、ファイルがクローズされた直後にパージされます。

$ ocifs --cache-purge=30 bucket-1 mydir

ノート

OCIFSキャッシュ・パージ遅延(特に小さい値)を設定すると、パフォーマンスに悪影響を及ぼす可能性があります。これは、ファイルが使用されないと、最終的にデータがキャッシュから削除されるためです。ファイルが後で再オープンされて読み取られると、ファイル・データがキャッシュにないため、パフォーマンスが低下する可能性があります。

キャッシュ再利用

OCIFSユーティリティのcache-reuseオプションを使用すると、空でないキャッシュ・ディレクトリが存在する場合でも、OCIFSファイル・システムをマウントできます。

デフォルトでは、OCIFSは、空でないキャッシュ・ディレクトリがあるファイル・システムのマウントを防止します。cache-reuseオプションを使用すると、ファイル・システムを再マウントし、既存のキャッシュ・ディレクトリ(存在する場合)を再利用できます。

たとえば、オブジェクト・ストレージ・バケットbucket-1mydirディレクトリにマウントし、既存のキャッシュ・ディレクトリを再利用するには:

$ ocifs --cache-reuse bucket-1 mydir

ノート:

  • ファイルシステムが以前に cache-keepオプションでマウントされていた場合、または ocifsプロセスが強制終了されたか、またはクラッシュした場合、空でないキャッシュディレクトリを持つことができます。
  • OCIFSユーティリティは、キャッシュにすでに存在するデータにすばやくアクセスできるため、既存のキャッシュを再利用するとパフォーマンスが向上します。ただし、OCIFSではキャッシュ内のデータとオブジェクト・ストレージ・バケット内の実際のデータとの間の相違を確認しないため、cache-reuseオプションを使用することはお薦めしません。

OCIFSマルチパート・アップロード・オプション

OCIFSは、Oracle Cloud Interface (OCI) Object Storageのマルチパート・アップロードを使用して、ラージ・オブジェクトをOCI Object Storageにアップロードします。

OCIFSは、マルチパート・アップロードを使用してオブジェクトをアップロードする場合、最大パート・サイズが50 GiBのパートにオブジェクトをかなり分割します。その後、パートはスレッドのプールによってアップロードされます。

OCIFSのmpu-thresholdコマンド・オプションを使用して、OCIFSでマルチパート・アップロードを使用する方法を指定できます。

mpu-threshold

OCIFSでは、大規模なファイルをオブジェクト・ストレージにアップロードするためにマルチパート・アップロードを使用するタイミングを決定できます。OCIFS mpu-threshold=sizeオプションを使用すると、マルチパート・アップロードを開始するファイル・サイズを指定できます。

デフォルトのマルチパート・アップロード・サイズしきい値は100Mebibytesです(推奨)。

次の表に、サポートされている mpu-threshold=sizeオプション値を示します。

OCIFS mpu-thresholdの値

説明

0

常にマルチパート・アップロードを使用します(非推奨)。

$ ocifs --mpu-threshold=0 bucket-1 mydir

number[KMGT]

マルチパート・アップロードが使用されるKバイト(K)、Mバイト(M)、Gギガバイト(G)またはTバイト(T)のサイズ。

$ ocifs --mpu-threshold=150M bucket-1 mydir

number[KMGT]i

マルチパート・アップロードが使用されるKibibytes (Ki)、Mebibytes (Mi)、Gibibytes (Gi)またはTebibytes (Ti)のサイズ。

$ ocifs --mpu-threshold=150Mi bucket-1 mydir