File konfigurasi Cloud Storage FUSE

Halaman ini menjelaskan cara menggunakan file konfigurasi Cloud Storage FUSE untuk mengonfigurasi perilaku Cloud Storage FUSE secara persisten. Untuk menggunakan file konfigurasi, tentukan jalur ke file konfigurasi di flag --config-file sebagai bagian dari perintah pemasangan Anda.

File konfigurasi adalah file YAML yang menggunakan format dan kolom berikut. Beberapa kolom juga dapat ditentukan dengan menggunakan opsi command line.

app-name: "APP_NAME"
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:
  enable-nonexistent-type-cache: ENABLE_NONEXISTENT_TYPE_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"
only-dir: "ONLY_DIR"
gcs-auth:
  anonymous-access: ANONYMOUS_ACCESS
  key-file: "KEY_FILE"
  reuse-token-from-url: REUSE_TOKEN_FROM_URL
  token-url: "TOKEN_URL"
gcs-connection:
  billing-project: "BILLING_PROJECT"
  client-protocol: CLIENT_PROTOCOL
  custom-endpoint: "CUSTOM_ENDPOINT"
  http-client-timeout: HTTP_CLIENT_TIMEOUT
  limit-bytes-per-sec: "LIMIT_BYTES_PER_SEC"
  limit-ops-per-sec: "LIMIT_OPS_PER_SEC"
  max-conns-per-host: MAX_CONNS_PER_HOST
  max-idle-conns-per-host: MAX_IDLE_CONNS_PER_HOST
  sequential-read-size-mb: SEQUENTIAL_READ_SIZE
implicit-dirs: IMPLICIT_DIRS
file-system:
  kernel-list-cache-ttl-secs: KERNEL_LIST_CACHE_TTL_SECS
  ignore-interrupts: IGNORE_INTERRUPTS
  dir-mode: "DIR_MODE"
  file-mode: "FILE_MODE"
  fuse-options: FUSE_OPTIONS
  gid: GID
  rename-dir-limit: RENAME_DIR_LIMIT
  temp-dir: "TEMP_DIR"
  uid: UID
foreground: FOREGROUND
gcs-retries:
  max-retry-sleep: MAX_RETRY_SLEEP
  multiplier: "MULTIPLIER"
metrics:
  stackdriver-export-interval: STACKDRIVER_EXPORT_INTERVAL
debug:
  log-mutex: LOG_MUTEX
  exit-on-invariant-violation: EXIT_ON_INVARIANT_VIOLATION

Kolom konfigurasi

Tabel berikut menjelaskan kolom yang dapat Anda tentukan dalam file konfigurasi. Kecuali jika dinyatakan lain, semua kolom bersifat opsional.

Kolom Deskripsi
app-name Nama aplikasi pemasangan.
create-empty-file Nilai Boolean yang menentukan apakah akan membuat file zero-byte di Cloud Storage atau tidak saat Anda mulai menulis ke file baru di bucket yang terpasang. Jika kolom ini tidak ditentukan, nilai defaultnya adalah false.
file-path Jalur ke file log tempat log akan ditulis, yang ditentukan sebagai string. Misalnya, /var/log. Jika kolom ini tidak ditentukan, log akan dirutekan ke stdout saat Cloud Storage FUSE berjalan dalam mode latar depan dan ke syslog saat Cloud Storage FUSE berjalan dalam mode latar belakang.
format Format tempat log dibuat, dinyatakan sebagai enum. Nilainya adalah text atau json. Jika kolom ini tidak ditentukan, nilai defaultnya adalah json.
severity

Tingkat keparahan log yang Anda inginkan untuk dihasilkan oleh Cloud Storage FUSE, yang dinyatakan sebagai enum. Tingkat keparahan diurutkan dari tingkat keparahan terendah hingga tertinggi:

  • trace
  • debug
  • info
  • warning
  • error

Saat Anda menentukan tingkat keparahan, Cloud Storage FUSE akan menghasilkan log yang memiliki tingkat keparahan yang sama atau lebih tinggi. Misalnya, saat Anda menentukan warning, Cloud Storage FUSE akan menghasilkan log untuk peringatan dan error. Anda juga dapat menentukan off untuk menonaktifkan semua logging. Secara umum, sebaiknya gunakan tingkat keparahan info.

Tingkat keparahan akan otomatis ditetapkan ke trace jika salah satu opsi berikut ditentukan sebagai bagian dari perintah Anda:

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

Jika kolom ini tidak ditentukan, nilai defaultnya adalah info.

Catatan: Menggunakan tingkat keparahan trace atau debug saat cache file diaktifkan dapat menyebabkan penurunan performa karena overhead logging dan hanya boleh digunakan untuk sementara atau selama pemecahan masalah.

max-file-size-mb Ukuran maksimum dalam megabyte (MB) yang dapat dicapai file log sebelum dirotasi. Nilai minimumnya adalah 1. Jika kolom ini tidak ditentukan, nilai defaultnya adalah 512.
backup-file-count Jumlah maksimum file log yang dirotasi untuk dipertahankan, tidak termasuk file aktif tempat log ditulis. Jika nilai ditetapkan ke 0, semua file log yang dirotasi akan dipertahankan. Jika kolom ini tidak ditentukan, nilainya akan ditetapkan secara default ke 10.
compress Nilai Boolean yang menentukan apakah file log yang dirotasi dikompresi menggunakan gzip. Jika kolom ini tidak ditentukan, nilai defaultnya adalah true.
max-size-mb

Ukuran maksimum dalam MiB yang dapat digunakan oleh cache file. Jika ada, max-size-mb akan mengaktifkan penyimpanan dalam cache file di Cloud Storage FUSE dan berguna jika Anda ingin membatasi total kapasitas yang dapat digunakan cache Cloud Storage FUSE dalam direktori yang dipasang.

  • Tentukan -1 untuk menggunakan seluruh kapasitas cache yang tersedia di direktori yang Anda tentukan untuk cache-dir.
  • Tentukan 0 untuk menonaktifkan cache file.

Jika kolom ini tidak ditentukan, nilai defaultnya adalah -1.

cache-file-for-range-read

Nilai Boolean yang menentukan apakah objek lengkap harus didownload secara asinkron dan disimpan di direktori cache Cloud Storage FUSE saat pembacaan pertama dilakukan dari offset non-nol. Ini harus disetel ke true jika Anda berencana melakukan beberapa operasi baca acak atau operasi baca sebagian. Jika kolom ini tidak ditentukan, nilai defaultnya adalah false.

Perhatikan bahwa jika Anda melakukan pembacaan sebagian yang dimulai pada offset 0, Cloud Storage FUSE akan selalu mendownload dan meng-cache objek lengkap secara asinkron.

enable-parallel-downloads

Mempercepat pembacaan file besar dengan menggunakan direktori cache file sebagai buffering pengambilan data menggunakan beberapa pekerja untuk mendownload file besar secara paralel. Nilai defaultnya adalah false.


Untuk menggunakan download paralel, Anda harus mengaktifkan penyimpanan dalam cache file. Untuk mempelajari download paralel lebih lanjut dan mengonfigurasi properti pendukungnya, lihat Meningkatkan performa baca menggunakan download paralel.
parallel-downloads-per-file

Menentukan jumlah goroutine maksimum yang akan dibuat per file untuk mendownload objek dari Cloud Storage ke cache file. Nilai defaultnya adalah 16.

max-parallel-downloads

Jumlah maksimum goroutine yang dapat dibuat pada waktu tertentu di semua tugas download file. Defaultnya adalah dua kali jumlah core CPU di mesin. Untuk mengabaikan batas, tentukan nilai -1.

download-chunk-size-mb

Menentukan ukuran setiap permintaan baca dalam MiB yang dibuat setiap goroutine ke Cloud Storage saat mendownload objek ke cache file. Nilai defaultnya adalah 50.

enable-nonexistent-type-cache Membuat entri cache jenis dengan jenis NonexistentType jika file tidak ditemukan di Cloud Storage. Jika file dibuat di Cloud Storage tetapi entri NonexistentType untuk file tersebut disimpan dalam cache, Cloud Storage FUSE tidak dapat meminta file tersebut hingga entri NonexistentType dihapus dari jenis cache. Nilai defaultnya adalah false.
stat-cache-max-size-mb

Ukuran maksimum dalam MiB yang dapat digunakan cache statistik. Cache statistik selalu disimpan sepenuhnya dalam memori.

  • Tentukan 32 jika workload Anda melibatkan hingga 20.000 file. Jika beban kerja Anda lebih besar dari 20.000 file, tingkatkan ukuran sebesar 10 untuk setiap tambahan 6.000 file, yang rata-ratanya sekitar 1.500 byte per file.
  • Tentukan -1 agar cache statistik menggunakan memori sebanyak yang diperlukan.
  • Tentukan 0 untuk menonaktifkan cache statistik.

Jika kolom ini tidak ditentukan, nilai defaultnya adalah 32.

ttl-secs

Menentukan time to live (TTL) entri metadata yang di-cache, yang dinyatakan dalam detik.

  • Tentukan -1 untuk mengabaikan masa berlaku TTL dan menayangkan file dari cache setiap kali tersedia.
  • Tentukan 0 untuk memastikan file terbaru dibaca. Penggunaan nilai ini akan mengeluarkan panggilan Get metadata untuk memastikan bahwa pembuatan objek untuk file dalam cache cocok dengan yang disimpan di Cloud Storage. Untuk mempelajari lebih lanjut, lihat Mengonfigurasi pembatalan cache.

Jika kolom ini tidak ditentukan, nilai defaultnya adalah 60s.

type-cache-max-size-mb

Ukuran maksimum dalam MiB per direktori yang dapat digunakan cache jenis. Cache jenis selalu disimpan sepenuhnya di memori.

  • Tentukan 4 jika jumlah maksimum file dalam satu direktori dari bucket yang Anda pasang berisi 20.000 file atau kurang. Jika jumlah maksimum file dalam satu direktori yang Anda pasang berisi lebih dari 20.000 file, tingkatkan nilai sebesar 1 untuk setiap 5.000 file, yang rata-rata sekitar 200 byte per file.
  • Tentukan -1 agar cache jenis menggunakan memori sebanyak yang diperlukan.
  • Tentukan 0 untuk menonaktifkan cache jenis.

Jika kolom ini tidak ditentukan, nilai defaultnya adalah 4.

cache-dir Menentukan direktori untuk menyimpan data cache file. Kolom ini harus ditentukan agar dapat mengaktifkan penyimpanan dalam cache file.
only-dir Hanya memasang direktori tertentu dalam bucket.
anonymous-access Menonaktifkan autentikasi untuk permintaan. Tetapkan kolom ini jika Anda menggunakan endpoint kustom yang tidak mendukung autentikasi atau jika Anda menggunakan Cloud Storage FUSE untuk memasang bucket publik. Nilai defaultnya adalah false.
key-file Menentukan jalur absolut ke file kunci JSON kredensial untuk mengautentikasi permintaan ke Cloud Storage. Secara default, Cloud Storage FUSE menggunakan Kredensial Default Aplikasi untuk mengautentikasi permintaan.
reuse-token-from-url Menentukan bahwa token yang diperoleh dari token-url akan digunakan. Nilai defaultnya adalah true.
token-url Menentukan URL untuk mendapatkan token akses jika key-file tidak ada.
billing-project Menentukan project yang akan digunakan untuk penagihan saat bucket yang terpasang diakses. Flag ini sering diperlukan saat memasang bucket yang diaktifkan dengan Requester Pays. Project default tidak ada.
client-protocol Menentukan protokol yang digunakan untuk berkomunikasi dengan backend Cloud Storage. Nilainya dapat berupa http1 untuk HTTP/1.1 atau http2 untuk HTTP/2. Nilai defaultnya adalah http1.
custom-endpoint Menentukan endpoint kustom alternatif untuk mengambil data. Endpoint kustom harus mendukung resource dan operasi yang setara dengan endpoint JSON Cloud Storage, https://storage.googleapis.com/storage/v1. Jika endpoint kustom tidak ditentukan, Cloud Storage FUSE akan menggunakan endpoint Cloud Storage JSON API global, https://storage.googleapis.com/storage/v1. Jika autentikasi tidak didukung di endpoint kustom yang Anda tentukan, tetapkan flag anonymous-access ke true untuk mengabaikan autentikasi.
http-client-timeout Menentukan durasi tunggu klien HTTP Cloud Storage FUSE untuk mendapatkan respons dari server sebelum waktu habis. Nilai defaultnya adalah 0s, yang menunjukkan tidak ada waktu tunggu.
limit-bytes-per-sec Menentukan batas bandwidth yang dapat digunakan Cloud Storage FUSE untuk membaca data dari Cloud Storage, yang diukur selama periode 30 detik. Nilai batas default adalah "-1", yang menentukan tidak ada batas.
limit-ops-per-sec Menentukan batas untuk operasi yang dijalankan per detik, yang diukur selama periode 30 detik. Nilai batas default adalah "-1", yang tidak menentukan batas.
max-conns-per-host Menentukan jumlah maksimum koneksi TCP yang diizinkan per server. Hal ini mulai berlaku jika client-protocol ditetapkan ke http1. Nilai defaultnya adalah 0, yang menentukan bahwa tidak ada batasan pada koneksi TCP kecuali untuk batasan yang ditetapkan oleh spesifikasi mesin Anda.
max-idle-conns-per-host Menentukan jumlah maksimum koneksi tidak ada aktivitas yang diizinkan per server. Nilai defaultnya adalah 100.
sequential-read-size-mb Menentukan ukuran potongan data yang akan didownload dari Cloud Storage, dalam megabyte (MB). Nilai defaultnya adalah 200.
implicit-dirs

Secara implisit menyertakan folder dan folder terkelola.

Lihat dokumentasi file dan direktori di GitHub untuk informasi selengkapnya.
kernel-list-cache-ttl-secs Mengaktifkan cache daftar dan menentukan time to live (TTL) dalam hitungan detik dari entri daftar yang di-cache. Alokasi memori untuk cache daftar dikontrol oleh kernel berdasarkan memori yang tersedia. Nilai defaultnya adalah 0 yang menonaktifkan penyimpanan dalam cache daftar.

Untuk menetapkan kolom kernel-list-cache-ttl-secs, tentukan nilai positif dalam detik untuk menyimpan respons daftar direktori di cache halaman kernel. Untuk mengabaikan masa berlaku entri dan selalu menampilkan respons daftar dari cache jika tersedia, tentukan nilai -1.
ignore-interrupts Memberi petunjuk kepada Cloud Storage FUSE untuk mengabaikan sinyal interupsi sistem, seperti SIGINT yang dipicu oleh Control+C. Hal ini mencegah sinyal menghentikan operasi yang sedang berlangsung. Nilainya adalah true atau false. Nilai defaultnya adalah true.
dir-mode Bit izin akses untuk direktori, dalam oktal. Nilai defaultnya adalah "755".
file-mode Menentukan bit izin untuk file, dalam oktal. Nilai defaultnya adalah "644".
fuse-options Menentukan opsi pemasangan tambahan khusus sistem.
gid Menentukan pemilik ID Grup (GID) dari semua inode. Nilai GID default adalah -1.
rename-dir-limit Mengizinkan penggantian nama direktori yang berisi turunan yang lebih sedikit dari batas yang ditentukan. Nilai batas default adalah 0.
temp-dir Menentukan jalur ke direktori sementara tempat penulisan dirilis bertahap untuk pengujian sebelum diupload ke Cloud Storage. Nilai defaultnya adalah default sistem Anda, seperti "/tmp".
uid Menentukan pemilik ID Pengguna (UID) semua inode. Nilai UID defaultnya adalah -1.
foreground Menjalankan perintah gcsfuse di latar depan. Nilai defaultnya adalah false.
max-retry-sleep Menentukan durasi maksimum yang diizinkan Cloud Storage FUSE untuk tidur dalam loop percobaan ulang dengan backoff eksponensial. Setelah durasi backoff melebihi durasi maksimum yang ditentukan, percobaan ulang akan dilanjutkan dengan durasi maksimum yang ditentukan. Nilai batas default adalah 30s (30 detik).
multiplier Menentukan backoff eksponensial di antara percobaan ulang, dengan nilai sebagai pengganda untuk waktu tunggu berikutnya berdasarkan waktu tunggu sebelumnya. Nilai defaultnya adalah "2".
stackdriver-export-interval Mengekspor metrik ke Cloud Monitoring dengan interval yang ditentukan. Nilai defaultnya adalah 0s (0 detik), yang menentukan tidak ada ekspor.
log-mutex Mencetak pesan debug saat mutex ditahan terlalu lama. Jika opsi ini ditentukan, tingkat keparahan log akan otomatis ditetapkan ke trace, yang mencakup log rekaman aktivitas, log debug, log info, log peringatan, dan log error. Nilai defaultnya adalah false.
exit-on-invariant-violation Keluar dari program saat pelanggaran varian internal terdeteksi. Nilai defaultnya adalah false.