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"
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
  negative-ttl-secs: ENABLE_NEGATIVE_TTL_SECS
  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:
  cloud-metrics-export-interval-secs: CLOUD_METRICS_EXPORT_INTERVAL
  prometheus-port: PROMETHEUS_PORT
debug:
  log-mutex: LOG_MUTEX
  exit-on-invariant-violation: EXIT_ON_INVARIANT_VIOLATION
write:
  enable-streaming-writes: STREAMING_WRITES

Kolom konfigurasi

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

Kolom Deskripsi Nilai yang valid Nilai default
app-name Nama aplikasi pemasangan. Nilai string, misalnya: "my-bucket-mount". ""
file-path Jalur ke file log tempat log akan ditulis. Jika kolom ini tidak ditentukan, log akan dirutekan ke stdout saat Cloud Storage FUSE berjalan dalam mode latar depan dan ke syslogs saat Cloud Storage FUSE berjalan dalam mode latar belakang. Nilai string, misalnya: "/var/log". ""
format Menentukan format file log.
  • text
  • json
json
severity

Tingkat keparahan yang Anda inginkan untuk dihasilkan log oleh Cloud Storage FUSE. Tingkat keparahan diurutkan dari tingkat keparahan terendah hingga tertinggi. Misalnya, saat Anda menentukan warning, Cloud Storage FUSE akan menghasilkan log untuk peringatan dan error. Secara umum, sebaiknya gunakan tingkat keparahan info.

  • trace
  • debug
  • info
  • warning
  • error
  • off: Menonaktifkan semua logging.
info
max-file-size-mb Ukuran maksimum dalam megabyte (MB) yang dapat dicapai file log sebelum dirotasi. Bilangan bulat. Nilai minimumnya adalah 1. 512
backup-file-count Jumlah maksimum file log yang dirotasi untuk dipertahankan, tidak termasuk file aktif tempat log ditulis.
  • Bilangan bulat
  • 0: Mempertahankan semua file log yang dirotasi
10
compress Menentukan apakah file log yang dirotasi dikompresi menggunakan gzip. Nilai boolean: true, false 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.

  • Bilangan bulat
  • -1: Menentukan penggunaan seluruh kapasitas cache yang tersedia di direktori yang Anda tentukan untuk cache-dir.
  • 0: Menonaktifkan cache file.
-1
cache-file-for-range-read Menentukan apakah objek lengkap harus didownload secara asinkron dan disimpan di direktori cache Cloud Storage FUSE saat pembacaan pertama selesai dari offset non-nol. Opsi ini harus disetel ke true jika Anda berencana melakukan beberapa pembacaan acak atau pembacaan sebagian.

Catatan: Jika Anda melakukan pembacaan sebagian yang dimulai dari offset 0, Cloud Storage FUSE akan mendownload dan meng-cache objek lengkap secara asinkron.

Nilai Boolean: true, false false
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. Untuk mempelajari download paralel lebih lanjut dan mengonfigurasi properti pendukungnya, lihat Meningkatkan performa baca menggunakan download paralel.

Untuk menggunakan download paralel, Anda harus mengaktifkan penyimpanan dalam cache file terlebih dahulu.

Nilai Boolean: true, false false
parallel-downloads-per-file

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

Bilangan bulat 16
max-parallel-downloads Jumlah maksimum goroutine yang dapat dibuat pada waktu tertentu di semua tugas download file.
  • Bilangan bulat
  • -1: Menentukan download paralel tanpa batas.
  • 0: Menonaktifkan download paralel. Hanya dapat digunakan jika --enable-parallel-downloads tidak diteruskan atau diteruskan sebagai false.
  • >0: Tidak menentukan batas atas. Cloud Storage FUSE secara internal membatasi nilai berdasarkan jumlah maksimum goroutine yang dapat dibuat yang ditentukan oleh konfigurasi mesin Anda.
Dua kali jumlah core CPU di komputer Anda atau 16, mana saja yang lebih tinggi.
download-chunk-size-mb Menentukan ukuran setiap permintaan baca dalam MiB yang dibuat oleh setiap goroutine ke Cloud Storage saat mendownload objek ke cache file. Bilangan bulat 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 Boolean: true, false false
stat-cache-max-size-mb Ukuran memori maksimum yang dapat digunakan cache statistik, dalam MiB. Cache statis selalu disimpan sepenuhnya dalam memori.
  • Bilangan bulat. Sebaiknya lakukan tindakan berikut:
    • 32 jika beban kerja Anda melibatkan hingga 20.000 file.
    • Jika beban kerja Anda lebih besar dari 20.000 file, tingkatkan ukuran dengan nilai 10 untuk setiap tambahan 6.000 file, dengan cache statistik menggunakan rata-rata 1.500 MiB per file.
  • -1: Tidak menetapkan batas, dengan cache statistik menggunakan memori sebanyak yang diperlukan.
  • 0: Menonaktifkan cache statistik.
32
negative-ttl-secs

Menentukan time to live (TTL) dalam hitungan detik dari entri cache statistik negatif, yang menyimpan hasil untuk file yang tidak ada dalam cache.

  • Bilangan bulat yang mewakili detik, misalnya: 10 (10 detik).
  • 0: Menonaktifkan caching statistik negatif.
  • -1: Mengizinkan caching statistik negatif tanpa batas dan menonaktifkan masa berlaku TTL.
5
ttl-secs Menentukan time to live (TTL) dalam detik dari entri metadata yang di-cache.
  • Bilangan bulat yang mewakili detik, misalnya: 30 (30 detik).
  • -1: Mengabaikan akhir masa berlaku TTL dan menayangkan file dari cache setiap kali tersedia.
  • 0: Menggunakan file terbaru. Penggunaan nilai ini akan mengeluarkan panggilan metadata Get untuk memastikan bahwa pembuatan objek untuk file dalam cache cocok dengan yang disimpan di Cloud Storage. Untuk mempelajari lebih lanjut, lihat Mengonfigurasi pembatalan cache.
60
type-cache-max-size-mb Ukuran maksimum dalam MiB per direktori yang dapat digunakan cache jenis. Cache jenis selalu disimpan sepenuhnya di memori.
  • Bilangan bulat. Sebaiknya lakukan tindakan berikut:
    • 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 merupakan rata-rata sekitar 200 byte per file.
  • -1: Tidak menentukan batas dan memungkinkan cache jenis menggunakan memori sebanyak yang diperlukan.
  • 0: Menonaktifkan cache jenis.
4
cache-dir

Menentukan direktori untuk menyimpan data cache file.

Untuk mempelajari cara mengaktifkan penyimpanan dalam cache file, lihat Menggunakan penyimpanan dalam cache file.

Jalur, misalnya: "/tmp/gcsfuse-cache-path".
only-dir Hanya memasang direktori tertentu dalam bucket. Jalur, misalnya: "/etc/gcsfuse.yaml".
anonymous-access Menonaktifkan autentikasi untuk permintaan. Opsi ini harus ditetapkan jika Anda menggunakan endpoint kustom yang tidak mendukung autentikasi. Opsi ini juga harus ditetapkan jika Anda menggunakan Cloud Storage FUSE dengan bucket publik. Nilai Boolean: true, false 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. URL. Jika opsi ini tidak disetel, Kredensial Default Aplikasi akan digunakan.
reuse-token-from-url Menentukan apakah akan menggunakan kembali token yang diperoleh dari --token-url. Nilai boolean: true, false true
token-url Menentukan URL untuk mendapatkan token akses jika --key-file tidak ada. URL.
billing-project Menentukan project yang akan digunakan untuk penagihan saat bucket yang terpasang diakses. Opsi ini sering diperlukan saat memasang bucket yang diaktifkan dengan Requester Pays. Nilai string yang mewakili "project ID". ""
client-protocol Menentukan protokol yang digunakan untuk berkomunikasi dengan backend Cloud Storage.
  • http1 untuk HTTP/1.1
  • http2 untuk HTTP/2
  • grpc untuk gRPC
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. Endpoint, misalnya: "http://localhost:443/storage/v1".
http-client-timeout Menentukan durasi tunggu klien HTTP Cloud Storage FUSE untuk mendapatkan respons dari server sebelum waktu habis. Durasi, misalnya: 1h10m10s selama 1 jam, 10 menit, dan 10 detik. 0s menentukan tidak ada waktu tunggu. 0s, yang menentukan 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. "-1", yang tidak menentukan batas.
limit-ops-per-sec Menentukan batas untuk operasi yang dijalankan per detik, yang diukur selama periode 30 detik. Angka floating point. -1 tidak menentukan batas. "-1"
max-conns-per-host Menentukan jumlah maksimum koneksi TCP yang diizinkan per server. Hal ini mulai berlaku jika --client-protocol ditetapkan ke http1. 0
max-idle-conns-per-host Menentukan jumlah maksimum koneksi tidak ada aktivitas yang diizinkan per server. Hal ini mulai berlaku jika --client-protocol ditetapkan ke http1. Bilangan bulat antara 0 dan 2147483647. 0 tidak menentukan batas pada koneksi TCP. 0
sequential-read-size-mb Menentukan ukuran potongan data yang akan didownload dari Cloud Storage, dalam megabyte (MB). Bilangan bulat antara 1 dan 1024. 200
implicit-dirs Secara implisit menyertakan folder dan folder terkelola. Lihat dokumentasi file dan direktori di GitHub untuk mengetahui informasi selengkapnya. Nilai Boolean: true, false false
kernel-list-cache-ttl-secs Mengaktifkan cache daftar dan menentukan time to live (TTL) dalam hitungan detik dari entri daftar yang di-cache. Cache daftar disimpan dalam memori di cache halaman, yang dikontrol oleh kernel berdasarkan memori yang tersedia.
  • Bilangan bulat yang mewakili detik, misalnya: 10 (10 detik).
  • 0: Menonaktifkan cache daftar.
  • -1: Melewati masa berlaku entri dan selalu menampilkan respons daftar dari cache jika tersedia.
0
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. Nilai boolean: true, false. true
dir-mode Bit izin akses untuk direktori, dalam oktal. Bilangan bulat antara 000 dan 777 (inklusif). "755"
file-mode Menentukan bit izin untuk file, dalam oktal. Bilangan bulat antara 000 dan 777 (inklusif). "644"
fuse-options Menentukan opsi pemasangan tambahan khusus sistem.
gid Menentukan pemilik ID Grup (GID) dari semua inode.
  • Bilangan bulat yang mewakili GID.
  • -1: GID pemanggil digunakan.
-1
rename-dir-limit Mengizinkan penggantian nama direktori yang berisi turunan yang lebih sedikit dari batas yang ditentukan. Bilangan bulat antara 0 dan 2147483647. 0
temp-dir Menentukan jalur ke direktori sementara tempat penulisan dirilis bertahap untuk pengujian sebelum diupload ke Cloud Storage. Jalur string, misalnya: "/mnt/ssd/example-user-gcsfuse-temp-dir". "/tmp"
uid Menentukan pemilik ID Pengguna (UID) semua inode.
  • Bilangan bulat yang mewakili UID.
  • -1: UID pemanggil digunakan.
-1
foreground Menjalankan perintah gcsfuse di latar depan. Nilai Boolean: true, false 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. Durasi, misalnya: 1h5m50s (1 jam, 5 menit, dan 50 detik) atau 60s (60 detik). 30s
multiplier Menentukan pengganda untuk backoff eksponensial di antara percobaan ulang berturut-turut. Angka floating-point "2"
cloud-metrics-export-interval-secs

Mengekspor metrik ke Cloud Monitoring dengan interval yang ditentukan.

Catatan: Penggunaan flag ini memerlukan penyiapan tambahan. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan eksportir Cloud Monitoring.

Bilangan bulat yang mewakili nilai dalam detik, misalnya: 10 (10 detik). 0 menentukan tidak ada ekspor. 0
prometheus-port

Mengekspos endpoint metrik Prometheus di port dan jalur /metrics yang ditentukan.

Catatan: Penggunaan flag ini memerlukan penyiapan tambahan. Untuk informasi selengkapnya, lihat Menyiapkan Prometheus Exporter.

Bilangan bulat yang mewakili port yang ingin Anda tentukan. 0
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 boolean: true, false. false
exit-on-invariant-violation Keluar dari program saat pelanggaran varian internal terdeteksi. Nilai boolean: true, false. false
enable-streaming-writes Mengontrol alur jalur tulis sehingga data diupload langsung ke Cloud Storage saat ditulis, bukan melakukan staging penulisan sepenuhnya secara lokal dan menguploadnya setelah close() atau fsync(). Untuk mengetahui informasi selengkapnya tentang penulisan streaming, lihat dokumentasi GitHub Cloud Storage FUSE. Nilai boolean: true, false. false