OCIFSユーティリティ
OCIFSユーティリティを使用して、Oracle Cloud Infrastructure Object Storageバケットをファイル・システムとしてマウントします。
オブジェクト・ストレージ・バケットがOCIFSでマウントされた後、通常のファイルまたはディレクトリとして、そのバケット内のオブジェクトにアクセスできます。バケット内のオブジェクトはフラット構造に存在しますが、OCIFSは、1つ以上のスラッシュ(/)を含むオブジェクト名に存在する接頭辞文字列を使用して、ディレクトリ構造をシミュレートします。
OCIFSは共有ファイル・システムではありません。オブジェクト・データの破損を回避するために、OCIFSを使用して同じオブジェクト・ストレージ・バケット(または重複するバケット・サブフォルダ)を何度も同時にマウントしないでください。また、Object Storageバケットがマウントされている間は、バケット・オブジェクト(コンソール、CLI、APIなど)を直接変更しないでください。
オブジェクト・ストレージの詳細は、オブジェクト・ストレージの概要を参照してください。
OCIFSユーティリティのインストール
OCIFSユーティリティ・パッケージをインストールして、オブジェクト・ストレージ・バケットをファイル・システムとしてマウントします。
前提条件:
OCIFSユーティリティ(ocifs
)パッケージは、Oracle Linux 8以降で起動されたインスタンスで使用できます。OCIFSユーティリティをインストールする前に、次の前提条件が満たされていることを確認します:
-
OCIオブジェクト・ストレージ - OCIFSは、既存のオブジェクト・ストレージ・バケットにアクセスまたは接続できるシステムまたはOracle Cloud Infrastructure (OCI)コンピュート・インスタンスにインストールする必要があります。マウントする前に、OCIFSでマウントするオブジェクト・ストレージ・バケットがすでに存在している必要があります。オブジェクト・ストレージの詳細は、ストレージ接続の概要を参照してください。オブジェクト・ストレージ・バケットの作成方法の詳細は、「バケットの作成」を参照してください。
-
ローカル・ディスク領域 - OCIFSは、オブジェクト・ストレージ・オブジェクトをキャッシュするためにローカル・ディスク領域を消費します。OCIFSは、マウントされたオブジェクト・ストレージ・バケットのオブジェクトをディレクトリにキャッシュします。最適なパフォーマンスを得るには、高速アクセス時間を持つストレージデバイス上のキャッシュ用のローカルディレクトリを選択します。
また、キャッシュ・ディレクトリが、マウントされたオブジェクト・ストレージ・バケット・パスのコンテンツ全体をホストするのに十分な空き領域を持つストレージ・デバイス上にあること、または少なくともバケット内のすべてのオブジェクトが読取りまたは書込み対象であることを確認してください。キャッシュディレクトリが存在するストレージデバイスがいっぱいになると、OCIFS操作が失敗することがあります。OCIFSキャッシュの詳細は、OCIFSキャッシュ・オプションを参照してください。
OCIFSユーティリティをインストールするには:
OCIFSを使用したマウントおよびアンマウント
OCIFSでは、ファイル・システムとして使用するオブジェクト・ストレージ・バケットをマウントでき、マウントされたバケット内のオブジェクトを通常のディレクトリおよびファイルとして管理できます。
バケット・パスでマウントするオブジェクト・ストレージ・バケットを指定できます。バケット・パスは、次のいずれかです。
-
バケット名: 指定されたオブジェクト・ストレージ・バケットのすべてのオブジェクトは、マウントされたディレクトリ内の通常のファイルまたはディレクトリとしてアクセスできます。
たとえば、オブジェクト・ストレージ・バケットbucket-1
をディレクトリmydir
にマウントするには:$ ocifs bucket-1 mydir
-
そのバケットからのサブフォルダを持つオブジェクト・ストレージ・バケット名であるバケット・サブフォルダ: マウントされたディレクトリ内の通常のファイルまたはディレクトリとしてアクセスできるのは、指定したバケット・サブフォルダのオブジェクトのみです。
たとえば、サブフォルダmarathon/participants
をオブジェクト・ストレージ・バケットbucket-1
からディレクトリmydir
にマウントするには:$ ocifs bucket-1/marathon/participants mydir
オブジェクト・ストレージ・バケットのマウント
前提条件:
OCIFSを使用してオブジェクト・ストレージ・バケットをマウントする前に、次を確認してください:
-
OCIFSマウントの制限事項 - オブジェクト・ストレージ・バケットをマウントするためのガイドラインおよびルール
-
OCIFSマウント・オプション - OCIFS
OCIFS
ユーティリティで使用可能なマウント・オプション -
OCIFS認証 - OCIFSで使用される認証方法、および必要に応じてCLI構成ファイルの編集に関する情報
オブジェクト・ストレージ・バケットをマウントするには:
ocifs
コマンドを使用します:ocifs [<options>] <bucket-path> <dir>
または:
mount(8)
コマンドを使用します。mount -t fuse.ocifs [-o <options>] <bucket-path> <dir>
ノート
mount
コマンドには、適切な権限(rootなど)が必要です。
例:
-
ocifs
コマンドを使用して、オブジェクト・ストレージ・バケットbucket-1
をディレクトリmydir
にマウントします:$ ocifs bucket-1 mydir
-
mount
コマンドを使用して、オブジェクト・ストレージ・バケットbucket-1
をディレクトリ/mnt
にマウントします:# mount
-t fuse.ocifs bucket-1
/mnt
デフォルトでは、オブジェクト・ストレージ・バケットはAPIベースの認証を使用してマウントされます。OCIFS認証を参照してください。
オブジェクト・ストレージ・バケットのアンマウント
fusermount
コマンドを使用します。fusermount -u <dir>
または:
umount(8)
コマンドを使用します。umount <dir>
ノート
umount
コマンドには適切な権限(rootなど)が必要です。
-
fusermount
コマンドを使用して、ディレクトリmydir
にマウントされたオブジェクト・ストレージ・バケットをアンマウントします:$ fusermount -u mydir
-
umount
コマンドを使用して、ディレクトリ/mnt
にマウントされたオブジェクト・ストレージ・バケットをアンマウントします:# umount /mnt
OCIFSファイル・システムをアンマウントすると、ファイル・システムが
cache-keep
オプションでマウントされていないかぎり、対応するキャッシュ・ディレクトリが削除されます。OCIFSキャッシュ・オプションを参照してください。OCIFSのマウントの制限
OCIFSには、考慮する必要があるマウント制限がいくつかあります。
OCIFSを使用してオブジェクト・ストレージ・バケットをマウントする前に、OCIFSマウント・ルールおよび制限を確認します:
ファイル・タイプ、属性およびサイズ設定
OCIFSファイル・タイプ、属性およびサイズ制限を確認します。
- ファイル・タイプ
- OCIFSでは、通常のファイルおよびディレクトリのみがサポートされます。OCIFSでは、シンボリック・リンク、物理リンクおよび特殊ファイル(ブロック、文字、fifo、特殊ファイル)はサポートされません。
- ファイル属性
- ファイル属性(権限、ユーザーおよびグループの所有権、アクセス/変更/変更時間)は、マウント間で永続的ではありません。OCIFSファイル・システムをアンマウントおよび再マウントすると、すべての属性がリセットされます。
- ファイル・サイズ
- OCIFS書込みは50 GBに制限されます。このため、サイズが50 GBを超えるファイルを作成または変更することはできません。
ネーミング・ルール
ファイル、パス、オブジェクトおよび接頭辞のOCIFSネーミング・ルールに従います。
- ファイル名
- OCIFSファイル名のサイズは、OCIFSキャッシュに使用されるファイル・システムでサポートされているサイズに制限されます。ファイル・システムの最も一般的なファイル名サイズ制限は、255文字です。オブジェクト・ストレージ・バケットに、ファイル名サイズが255文字を超えるオブジェクトがある場合、オブジェクトはOCIFSファイル・システムでファイルまたはディレクトリとして表示されることがありますが、オブジェクトは読取り専用であり、キャッシュできません。オブジェクトがキャッシュされないため、オブジェクトのアクセス時間が遅くなる可能性があります。
- パス名
- OCIFSでは、最大1023文字のパス名がサポートされます。
- 互換性のないオブジェクト名
- オブジェクト・ストレージ・バケットには、Linuxファイル・システムのネーミング規則(
//directory
やdirectory////mydirectory
など)と互換性がない名前のオブジェクトを含めることができます。ただし、これらのオブジェクトは、OCIFSではアクセスまたは表示できません。OCIFSで使用できるようにするには、このようなオブジェクトの名前を、Linuxファイル・システムのネーミング規則と互換性のある名前に変更する必要があります。Oracle Cloudコンソールを使用して、オブジェクトの名前を変更できます。
- オブジェクトと接頭辞名の競合
- 同じ名前がオブジェクト・ストレージ・オブジェクト名と接頭辞名の両方として使用されている場合、その名前はOCIFSを含むディレクトリ・エントリとして表示されます。同じ名前のオブジェクトは、OCIFSからアクセスできません。OCIFSを介してオブジェクトを表示するには、接頭辞として使用されていない名前でオブジェクトの名前を変更する必要があります。
データの同期
OCIFSには、データ同期のための様々なオプションが用意されています。
OCIFSファイルに書き込む場合、OCIFSファイルが閉じられると、データは同期されます(データは事実上、対応するオブジェクト・ストレージ・オブジェクトに書き込まれます)。データ同期エラーは、close(2)
システム・コールによって報告されます。close()
からのエラー戻りの処理の詳細は、close(2)
のマニュアル・ページの「ノート」の項を参照してください。fsync(2)
またはfdatasync(2)
を使用して、データを明示的に同期するようにリクエストすることもできます。
O_SYNC
またはO_DSYNC
フラグでファイルを開く)またはすべてのファイル(OCIFSファイル・システムをsync
オプション(-o sync
)でマウントすることによって)のデータを、書込み操作で即座に同期させることができます。 O_SYNC
またはO_DSYNC
オープン・フラグ、またはsync
マウント・オプションを使用すると、パフォーマンスに悪影響を及ぼす可能性があります。OCIFSマウント・オプション
これらのOCIFSマウント・オプションを使用して、オブジェクト・ストレージ・バケットのマウント方法をさらに指定します。
オプション |
説明 |
---|---|
|
認証方法を設定します。OCIFS認証を参照してください。 |
|
キャッシュ・ディレクトリへのパスを設定します。キャッシュを参照してください。 |
|
キャッシュ・ディレクトリが存在するファイル・システムで空き領域を確保する量を指定します。cache-fsfreeを参照してください。 |
|
ファイル・システムがアンマウントされている場合は、キャッシュ・ディレクトリを削除しないでください。cache-keepを参照してください。 |
|
キャッシュ・パージ遅延を指定します。cache-purgeを参照してください |
|
ディレクトリが空でない場合でも、既存のキャッシュ・ディレクトリを再利用します。cache-reuseを参照してください。 |
|
APIキーベースの認証に使用される CLI構成ファイルのパスを設定します。「APIキーベース認証」を参照してください。 |
|
デバッグレベルを設定します。 |
|
リージョン名を上書きします。 |
--<option>[=<value>]
または-o
オプションを指定して、ocifs
コマンドで指定できます: -o <option>[=<value>]
mount
コマンドでは、オプションは -o
オプション -o <option>[=<value>]
で指定されます。
ocifs
コマンドは、次のFUSEオプションを受け入れます。-
-d
: FUSEデバッグ出力を有効にします。 -
-f
:ocifs
コマンドをフォアグラウンドで実行します。 -
-s
: マルチスレッドではなく、ocifs
コマンドをシングルスレッドで実行します。
また、FUSE(8)
のマニュアルページで説明されているFUSEマウントオプションは、-o
オプションで指定できます。
OCIFS認証
OCIFSでは、APIキーベース(デフォルト)またはインスタンス・プリンシパル認証方法を使用します。
OCIFSを使用してオブジェクト・ストレージ・オブジェクトをマウントする場合、ocifs
コマンドでauth=<method>
オプションを使用して認証方法を指定できます。認証メソッドの値は、APIキーベース認証の場合はauth=api_key
、インスタンス・プリンシパル認証の場合はauth=instance_principal
です。
APIキーベース認証
OCIFSを使用してオブジェクト・ストレージ・バケットをマウントするAPIキーベースの認証方法を指定および構成します。
APIキーベース認証は、OCIFSのデフォルトの認証方法であり、OCIコンピュート・インスタンスまたは他のシステムから使用できます。この認証方法には、ローカルのOCI SDKおよびCLI構成ファイルが必要です。構成ファイルを指定するには、ocifs
コマンドでconfig=<file>
オプションを使用します。デフォルトでは、構成ファイルは~/.oci/config
です。
~/my_config
構成ファイルを使用してオブジェクト・ストレージ・バケットをマウントするには:$ ocifs --auth=api_key --config=~/my_config bucket-1 mydir
APIキーベースの認証方法を使用してオブジェクト・ストレージ・バケットをマウントする前に、CLI構成ファイル(~/.oci/config
)に[DEFAULT]
プロファイルと、次の表で指定されているエントリがあることを確認してください。
入力 |
説明 |
例 |
---|---|---|
|
Oracle Cloud Infrastructureにアクセスしているユーザーの |
|
|
テナンシの |
|
|
Oracle Cloud Infrastructureリージョン |
|
|
秘密キーのフルパスとファイル名 |
|
|
このユーザーに使用される公開キーのフィンガープリント |
|
詳細は、SDKおよびCLIの構成ファイルを参照してください。
Instance Principal認証
デフォルトのAPIキーベースの認証方法のかわりに、OCIFSでインスタンス・プリンシパル認証方法を使用できます。
認可されたOracle Cloud Infrastructureインスタンスからのみ、OCIFSのインスタンス・プリンシパル認証方法を使用します。この認証方法では、指定したインスタンスがCLI構成ファイルなしでオブジェクト・ストレージにアクセスできます。その後、インスタンスは情報を自動的に検出して認証します。
インスタンス・プリンシパル認証は、インスタンス・プリンシパルとして構成されたコンピュート・インスタンスにオブジェクト・ストレージ・バケットをマウントするために使用する必要があります。
たとえば、インスタンス・プリンシパル認証を使用してオブジェクト・ストレージ・バケット(bucket-1
)をマウントするには:
$ ocifs --auth=instance_principal bucket-1 mydir
インスタンス・プリンシパル認証を使用するには、コンピュート・インスタンスが動的グループの一部であり、ポリシーで動的グループがオブジェクト・ストレージを管理できるようにする必要があります。manage object-family
動詞とリソース・タイプを使用して、オブジェクト・ストレージ・オブジェクトの管理を許可するポリシーを定義できます。動的グループの詳細は、動的グループの管理を参照してください。
たとえば、コンピュート・インスタンス(インスタンスIDがocid1.instance.<id>
)がインスタンス・プリンシパル認証を使用できるようにするには:
-
コンピュート・インスタンスに一致する次のルールを使用して、動的グループ
dgroup-ocifs
を作成します:All {instance.id = 'ocid1.instance.<id>'}
-
動的グループ(
dgroup-ocifs
)がオブジェクト・ストレージを管理できるようにするポリシーを作成します:Allow dynamic-group dgroup-ocifs to manage object-family in compartment id ocid1.tenancy.<tenancy_id>
詳細は、インスタンスからのサービスのコールを参照してください。
OCIFSキャッシュ・オプション
OCIFSキャッシュ・オプションを使用して、OCIFSキャッシュの機能を指定します。
OCIFSユーティリティは、マウントされたオブジェクト・ストレージ・バケット・パスのオブジェクトをローカル・ディレクトリ(デフォルトでは~/.ocifs/<bucket>/
)にキャッシュします。
キャッシュディレクトリが存在するストレージデバイスがいっぱいになると、一部の OCIFS操作が失敗することがあります。
次のocifs
キャッシュ・オプションを使用して、OCIFSキャッシュの使用方法および関数を指定できます:
キャッシュ
OCIFSキャッシュ・ディレクトリは、cache=<path>
オプションを使用して変更できます。
デフォルトでは、OCIFSは~/.ocifs/
にオブジェクトをキャッシュします。このキャッシュディレクトリは、cache=<path>
オプションを使用して変更できます。このオプションは、指定されたパスにキャッシュディレクトリを設定します。このパスには、ユーザーのホームディレクトリへの絶対パスまたは相対パスを指定できます。
/var/tmp/ocifs-cache
を使用するには:$ ocifs --cache=/var/tmp/ocifs-cache bucket-1 mydir
cache-fsfree
OCIFSがcache-fsfree
オプションを使用してキャッシュ・ファイル・システムの領域を誤っていっぱいにしないようにできます。
cache-fsfree
オプションを使用して、キャッシュファイルシステムで空き領域を確保しておく必要がある領域量を指定します。空き領域が指定された量より大きい場合、OCIFSはデータのキャッシュを試みます。それ以外の場合、OCIFSはキャッシュを実行しません。OCIFSがデータをキャッシュできない場合、書込み操作などの一部のOCIFS操作が失敗する可能性があります。
cache-fsfree
オプションは、OCIFSエントリの属性(サイズなど)のキャッシュ方法を変更しません。次の表に、キャッシュ・ディレクトリ・サイズの値を示します。
値 |
説明 |
例 |
---|---|---|
|
キャッシュ・ファイル・システム上の空き領域をチェックしません。このオプションを使用すると、OCIFSは、キャッシュ・ファイル・システムで使用可能な空き領域量に関係なく、データをキャッシュしようとします。 |
|
|
この値は、キャッシュ・ファイル・システムで空き領域を維持する必要がある領域の割合(0%から100%)を指定します。 パーセンテージが100%の場合、データはキャッシュされません。 |
|
|
この値は、キャッシュ・ファイル・システムで空き状態を維持する必要がある領域の量をKB (K)、MB (M)、ギガバイト(G)またはテラバイト(T)で指定します。 |
|
|
この値は、キャッシュ・ファイル・システムで空き状態を維持する必要がある領域の量をKB (Ki)、MB (Mi)、ギガバイト(Gi)またはテラバイト(Ti)で指定します。 |
|
ノート:
- デフォルト設定は
cache-fsfree=5%
です。 - オプション
0
、0%
、0
[K|M|G|T
]または0
[K|M|G|T
]i
を使用すると、同じ効果が得られます。 - オプション
100%
を使用するか、ファイルシステムのサイズ以上の容量を使用するのも、同じ効果があります。
キャッシュキープ
cache-keep
オプションを使用すると、OCIFSファイル・システムがアンマウントされている場合でも、キャッシュを保持できます。
ファイル・システムをアンマウントすると、cache-keep
オプションを使用してファイル・システムをマウントしないかぎり、OCIFSキャッシュ・ディレクトリが削除されます。
たとえば、バケットをマウントし、アンマウント時にキャッシュを保持するには:
$ ocifs --cache-keep bucket-1 mydir
ノート:
cache-keep
オプションを使用すると、cache-reuse
オプションを使用しないかぎり、ファイルシステムを再度マウントできないことがあります。- ファイル・システムをアンマウントした後にデータをキャッシュに保持すると、次回ファイル・システムをマウントしたときにパフォーマンスが向上する可能性があります。ただし、OCIFSでは、キャッシュ内のデータとオブジェクト・ストレージ・バケット内の実際のデータとの間に相違があるかどうかはチェックされません。
キャッシュ・パージ
cache-purge
オプションを使用すると、指定した期間閉じられたファイルのデータをキャッシュから削除できます。
デフォルトでは、キャッシュはパージされません。キャッシュ・データは、ファイル・システムがマウントされているかぎり、キャッシュ・ディレクトリに保持されます。キャッシュ・ディレクトリは、ファイル・システムがアンマウントされている場合にのみ削除されます。
cache-purge
オプションを使用すると、ファイルが閉じられたあとにデータがキャッシュに残る時間を指定できます。これを使用すると、特にファイルが頻繁にアクセスされない場合に、ディスク領域を保持できます。これは、たとえば、新しいファイルを書き込んで、再度ファイルにアクセスしない場合に便利です。
キャッシュ・パージ遅延は、次の表に示すように指定できます。
値 |
説明 |
例 |
---|---|---|
|
キャッシュをパージしないでください。このオプションを使用すると、キャッシュされたデータは、OCIFSファイル・システムがマウントされているかぎり保持されます。(デフォルト)。 |
|
<遅延> |
キャッシュされたデータをパージするまでのパージ遅延(秒)。パージ遅延が0に設定されている場合、ファイルのキャッシュされたデータは、ファイルが閉じられた直後にパージされます。 |
|
キャッシュ・パージ遅延(特に小さい値)を設定すると、パフォーマンスに悪影響を及ぼす可能性があります。これは、ファイルが使用されていないときにデータが最終的にキャッシュから削除されるためです。後でファイルを再オープンして読み取ると、ファイル・データがキャッシュにないため、パフォーマンスが低下する可能性があります。
キャッシュ再利用
cache-reuse
オプションを使用すると、空でない既存のキャッシュ・ディレクトリがある場合でも、OCIFSファイル・システムをマウントできます。
デフォルトでは、OCIFSは、空でないキャッシュ・ディレクトリがあるファイル・システムのマウントを防止します。cache-reuse
オプションを使用すると、ファイル・システムを再マウントし、既存のキャッシュ・ディレクトリ(存在する場合)を再利用できます。
たとえば、バケット(bucket-1
)をマウントし、既存のキャッシュ・ディレクトリを再利用するには:
$ ocifs --cache-reuse bucket-1 mydir
ノート:
- ファイルシステムが以前に
cache-keep
オプションでマウントされている場合、またはocifs
プロセスが強制終了されたかクラッシュした場合は、空でないキャッシュディレクトリを持つことができます。 - 既存のキャッシュを再利用すると、OCIFSがすでにキャッシュ内にあるデータにすばやくアクセスできるため、パフォーマンスが向上します。ただし、OCIFSでは、キャッシュ内のデータとオブジェクト・ストレージ・バケット内の実際のデータとの相違がチェックされないため、
cache-reuse
オプションの使用はお薦めしません。