Cloud Storage FUSE 構成ファイル

このページでは、Cloud Storage FUSE 構成ファイルを使用して、Cloud Storage FUSE の動作を永続的に構成する方法について説明します。構成ファイルを使用するには、マウント コマンドの一部として、--config-file フラグで構成ファイルのパスを指定します。

構成ファイルは、次の形式とフィールドを使用する YAML ファイルです。一部のフィールドは、コマンドライン オプションで指定することもできます。

write:
  create-empty-file: CREATE_EMPTY_FILE
logging:
  file-path: "FILE_PATH"
  format: FORMAT
  severity: SEVERITY
  log-rotate:
    max-file-size-mb: MAX_FILE_SIZE
    backup-file-count: BACKUP_FILE_COUNT
    compress: COMPRESS
file-cache:
  max-size-mb: MAX_SIZE
  cache-file-for-range-read: CACHE_FILE_FOR_RANGE_READ
  enable-parallel-downloads: ENABLE_PARALLEL_DOWNLOADS
  parallel-downloads-per-file: PARALLEL_DOWNLOADS_PER_FILE
  max-parallel-downloads: MAX_PARALLEL_DOWNLOADS
  download-chunk-size-mb: DOWNLOAD_CHUNK_SIZE
metadata-cache:
  stat-cache-max-size-mb: STAT_CACHE_MAX_SIZE
  ttl-secs: TTL_SECS
  type-cache-max-size-mb: TYPE_CACHE_MAX_SIZE
cache-dir: "CACHE_DIR"
gcs-auth:
  anonymous-access: ANONYMOUS_ACCESS
file-system:
  kernel-list-cache-ttl-secs: KERNEL_LIST_CACHE_TTL_SECS
  ignore-interrupts: IGNORE_INTERRUPTS

構成フィールド

次の表に、構成ファイルで指定できるフィールドを示します。特に記載がない限り、すべてのフィールドは省略可能です。

フィールド 説明
create-empty-file マウントされたバケット内の新しいファイルへの書き込みを開始したときに、Cloud Storage にゼロバイトのファイルを作成するかどうかを指定するブール値。このフィールドを省略した場合、デフォルト値の false が使用されます。
file-path ログが書き込まれるログファイルのパス。文字列で指定します。例: /var/logこのフィールドを省略すると、stdout(Cloud Storage FUSE がフォアグラウンド モードで実行されている場合)または syslog(バックグラウンド モードで実行されている場合)にログが転送されます。
format ログが生成される形式。列挙型で表します。値は textjson です。このフィールドを省略した場合、デフォルト値の json が使用されます。
severity

Cloud Storage FUSE で生成するログの重大度。列挙型で表します。値が小さいほど重大度が低く、大きいほど高くなります。

  • trace
  • debug
  • info
  • warning
  • error

重大度レベルを指定すると、Cloud Storage FUSE は、重大度が同等以上のログを生成します。たとえば、warning を指定すると、Cloud Storage FUSE は警告とエラーのログを生成します。off を指定して、すべてのロギングをオフにすることもできます。次の 3 つのオプションのいずれかがコマンドに指定されている場合、重大度レベルは自動的に trace に設定されます。

  • --debug_fuse
  • --debug_gcs
  • --debug_mutex

このフィールドを省略した場合、デフォルト値の info が使用されます。

max-file-size-mb ログファイルがローテーションされる前に到達可能な最大サイズ(MB 単位)。最小値は 1 です。このフィールドを省略した場合、デフォルト値の 512 が使用されます。
backup-file-count ローテーション後に保持しておくログファイルの最大数。ログが書き込まれているアクティブなファイルは除きます。値を 0 に設定すると、ローテーションされたログファイルがすべて保持されます。このフィールドを省略した場合、デフォルト値の 10 が使用されます。
compress ローテーションされたログファイルを gzip で圧縮するかどうかを指定するブール値。このフィールドを省略した場合、デフォルト値の true が使用されます。
max-size-mb

ファイル キャッシュで使用できる最大サイズ(MiB 単位)。max-size-mb が存在する場合、Cloud Storage FUSE でファイル キャッシュを有効にします。これは、Cloud Storage FUSE キャッシュがマウントされたディレクトリ内で使用できる合計容量を制限する場合に便利です。

  • cache-dir に指定したディレクトリのキャッシュで使用可能な容量をすべて使用するには、-1 を指定します。
  • ファイル キャッシュを無効にするには、0 を指定します。

このフィールドを省略した場合、デフォルト値の -1 が使用されます。

cache-file-for-range-read

最初の読み取りがゼロ以外のオフセットから行われたときに、オブジェクト全体を非同期でダウンロードして Cloud Storage FUSE のキャッシュ ディレクトリに保存するかどうかを決定するブール値。複数のランダム読み取りまたは部分読み取りを行う場合は、true に設定する必要があります。このフィールドを省略した場合、デフォルト値の false が使用されます。

オフセット 0 から部分読み取りを行う場合、Cloud Storage FUSE は常に非同期で完全なオブジェクトをダウンロードしてキャッシュに保存します。

enable-parallel-downloads

ファイル キャッシュ ディレクトリをプリフェッチ バッファとして使用し、複数のワーカーを使用してサイズの大きいファイルを並列でダウンロードすることで、サイズの大きいファイルの読み取りを高速化します。デフォルト値は false です。


並列ダウンロードを使用するには、ファイル キャッシュを有効にする必要があります。並列ダウンロードと、そのサポート プロパティの構成方法について詳しくは、並列ダウンロードを使用して読み取りパフォーマンスを改善するをご覧ください。
parallel-downloads-per-file

Cloud Storage からファイル キャッシュにオブジェクトをダウンロードするために、ファイルごとに生成する goroutine の最大数を指定します。デフォルト値は 16 です。

max-parallel-downloads

ファイルのダウンロード ジョブ全体で、任意の時点で生成できる goroutine の最大数。デフォルトは、マシン上の CPU コア数の 2 倍です。上限をバイパスするには、値 -1 を指定します。

download-chunk-size-mb

オブジェクトをファイル キャッシュにダウンロードするときに、各 goroutine が Cloud Storage に対して行う 1 回の読み取りリクエストのサイズを MiB で指定します。デフォルトは 50 です。

stat-cache-max-size-mb

統計情報キャッシュで使用できる最大サイズ(MiB)。統計情報キャッシュは常にメモリ内に保持されます。

  • ワークロードに最大 20,000 個のファイルが含まれる場合は、32 を指定します。ワークロードのファイルが 20,000 ファイルを超える場合は、6,000 ファイルを追加するごとにサイズを 10 ずつ増やします(ファイルあたり平均約 1,500 バイト)。
  • -1 を指定すると、統計情報キャッシュは必要な量のメモリを使用します。
  • 統計情報キャッシュを無効にするには、0 を指定します。

このフィールドを省略した場合、デフォルト値の 32 が使用されます。

ttl-secs

キャッシュに保存されたメタデータ エントリの有効期間(TTL)を秒単位で定義します。

  • -1 を指定すると、TTL の有効期限をバイパスし、キャッシュから利用可能な場合にファイルを配信します。
  • 最新のファイルが読み取られるようにするには、0 を指定します。この値を使用すると、Get メタデータ呼び出しが行われ、キャッシュ内のファイルのオブジェクトの世代が Cloud Storage に保存されているものと一致していることを確認します。詳細については、キャッシュの無効化の構成をご覧ください。

このフィールドを省略した場合、デフォルト値の 60 が使用されます。

type-cache-max-size-mb

タイプ キャッシュが使用できるディレクトリあたりの最大サイズ(MiB 単位)。タイプ キャッシュは常にメモリ内に保持されます。

  • マウントするバケットの 1 つのディレクトリ内にあるファイルの最大数が 20,000 以下の場合は、4 を指定します。マウントする 1 つのディレクトリ内のファイルの最大数が 20,000 を超える場合は、5,000 ファイルごとに値を 1 増やします(ファイルあたり平均約 200 バイト)。
  • タイプ キャッシュが必要な量のメモリを使用できるようにするには、-1 を指定します。
  • タイプ キャッシュを無効にするには、0 を指定します。

このフィールドを省略した場合、デフォルト値の 4 が使用されます。

cache-dir ファイル キャッシュ データを格納するディレクトリを指定します。ファイル キャッシュを有効にするには、このフィールドを指定する必要があります。
anonymous-access リクエストの認証を無効にします。このフィールドは、認証をサポートしていないカスタム エンドポイントを使用している場合、または Cloud Storage FUSE を使用して一般公開バケットをマウントしている場合に設定します。デフォルト値は false です。
kernel-list-cache-ttl-secs リスト キャッシュを有効にし、キャッシュに保存されたリストエントリの有効期間(TTL)を秒単位で定義します。リスト キャッシュのメモリ割り当ては、使用可能なメモリに基づいてカーネルによって制御されます。デフォルト値は 0 で、リストのキャッシュが無効になります。

--kernel-list-cache-ttl-secs フィールドを設定するには、ディレクトリ リスト レスポンスをカーネルのページ キャッシュに保持する時間を秒単位の正の値で指定します。エントリの有効期限をバイパスし、キャッシュから利用可能な場合に常にキャッシュからリスト レスポンスを返すには、-1 の値を指定します。
ignore-interrupts Control+C によってトリガーされる SIGINT など、システム割り込みシグナルを無視するように Cloud Storage FUSE に指示します。これにより、実行中のオペレーションがシグナルによって終了することがなくなります。値は true または false です。デフォルト値は true です。