File konfigurasi Cloud Storage FUSE

File konfigurasi Cloud Storage FUSE memungkinkan Anda menentukan perilaku Cloud Storage FUSE secara persisten dalam file YAML, alih-alih menentukan opsi setiap kali Anda memasang bucket. Untuk menggunakan file konfigurasi, tentukan jalurnya di opsi --config-file saat Anda menjalankan perintah gcsfuse.

Dokumen ini menjelaskan format file konfigurasi dan kolom yang didukung. Anda juga dapat mengontrol perilaku yang sama menggunakan Cloud Storage FUSE CLI.

Format dan kolom file konfigurasi Cloud Storage FUSE

Contoh konfigurasi YAML berikut menunjukkan format dan kolom yang tersedia di Cloud Storage FUSE.

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
cache-dir: "CACHE_DIR"
file-cache:
  max-size-mb: MAX_SIZE
  cache-file-for-range-read: CACHE_FILE_FOR_RANGE_READ
  enable-parallel-downloads: ENABLE_PARALLEL_DOWNLOADS
  exclude-regex: EXCLUDE_REGEX
  include-regex: INCLUDE_REGEX
  parallel-downloads-per-file: PARALLEL_DOWNLOADS_PER_FILE
  max-parallel-downloads: MAX_PARALLEL_DOWNLOADS
  download-chunk-size-mb: DOWNLOAD_CHUNK_SIZE
metadata-cache:
  negative-ttl-secs: ENABLE_NEGATIVE_TTL_SECS
  stat-cache-max-size-mb: STAT_CACHE_MAX_SIZE
  ttl-secs: TTL_SECS
  enable-metadata-prefetch: ENABLE_METADATA_PREFETCH
  metadata-prefetch-entries-limit: METADATA_PREFETCH_ENTRIES_LIMIT
  metadata-prefetch-max-workers: METADATA_PREFETCH_MAX_WORKERS
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-attempts: MAX_RETRY_ATTEMPTS
  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
  global-max-blocks: MAXIMUM_GLOBAL_BLOCKS
read:
  enable-buffered-read: ENABLE_BUFFERED_READ
  global-max-blocks: MAXIMUM_GLOBAL_READ_BLOCKS
profile: PROFILE

Kolom file konfigurasi Cloud Storage FUSE

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

Kolom Deskripsi Nilai yang valid Nilai default
Nama aplikasi pemasangan. Nilai string, misalnya: "my-bucket-mount". ""
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". ""
Menentukan format file log.
  • text
  • json
json

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

  • off: menonaktifkan semua logging.
  • error: berisi pesan tentang masalah serius yang mencegah Cloud Storage FUSE menyelesaikan operasi, atau menunjukkan kegagalan seperti kegagalan pemasangan, error izin, dan error input/output (I/O) kritis.
  • warning: berisi pesan yang menunjukkan potensi masalah yang tidak kritis, tetapi dapat menyebabkan masalah jika tidak ditangani. Potensi masalah mencakup masalah koneksi non-fatal, peringatan penghentian penggunaan, pertentangan resource yang dapat menyebabkan sedikit penurunan performa, dan percobaan ulang untuk kegagalan sementara. Tingkat keparahan ini juga mencakup informasi yang diberikan dalam tingkat keparahan error.
  • info: berisi informasi logging seperti pesan startup dan shutdown, atau informasi tentang operasi pemasangan yang berhasil, update progres, dan setelan konfigurasi. Tingkat keparahan ini juga mencakup informasi tentang tingkat keparahan warning dan error.
  • debug: berisi informasi logging seperti pesan startup dan shutdown, atau informasi tentang operasi pemasangan yang berhasil, update progres, dan setelan konfigurasi. Tingkat keparahan ini juga mencakup informasi yang diberikan dalam tingkat keparahan info, warning, dan error.
  • trace: berisi detail terperinci tentang setiap operasi dan panggilan fungsi Cloud Storage FUSE, yang menguraikan interaksi gcsfuse dengan driver FUSE kernel dan Cloud Storage. Tingkat keparahan ini juga mencakup detail yang diberikan dalam tingkat keparahan debug, info, warning, dan error.
info
Ukuran maksimum dalam megabyte (MB) yang dapat dicapai file log sebelum dirotasi. Bilangan bulat. Nilai minimum adalah 1. 512
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
Menentukan apakah file log yang dirotasi dikompresi menggunakan gzip. Nilai boolean: true, false true

Mengaktifkan cache file dan menentukan direktori untuk menyimpan data cache file.

Jalur, misalnya: "/tmp/gcsfuse-cache-path". Nilai kosong menunjukkan bahwa kolom ini dinonaktifkan. Kolom ini dinonaktifkan secara default.

Menentukan ukuran maksimum dalam MiB yang dapat digunakan oleh cache file dan memungkinkan Anda membatasi total kapasitas yang dapat digunakan cache file dalam direktori yang dipasang.

  • Bilangan bulat
  • -1: Menentukan penggunaan seluruh kapasitas cache yang tersedia dalam direktori yang Anda tentukan untuk cache-dir. Ini adalah setelan default hanya jika cache-dir diteruskan.
  • 0: Menonaktifkan cache file.
-1
Menentukan apakah objek lengkap harus didownload secara asinkron dan disimpan di direktori cache Cloud Storage FUSE saat pembacaan pertama selesai dari offset bukan nol. Kolom ini harus disetel ke true jika Anda berencana melakukan beberapa pembacaan acak atau pembacaan parsial. Nilai boolean: true, false false

Mempercepat pembacaan file besar dengan menggunakan direktori cache file sebagai buffer pengambilan data di awal menggunakan beberapa worker untuk mendownload beberapa bagian file secara paralel.

Download paralel otomatis diaktifkan saat Anda mengaktifkan penyimpanan file dalam cache. Untuk mempelajari lebih lanjut tentang caching file, lihat Menggunakan caching file Cloud Storage FUSE.

Untuk mempelajari lebih lanjut download paralel dan cara mengonfigurasi properti pendukung, Download paralel.

Nilai boolean: true, false. true
Ekspresi reguler yang menentukan file yang akan dikecualikan dari penyimpanan dalam cache. Jika file cocok dengan ekspresi reguler ini, file tersebut tidak akan di-cache, meskipun juga cocok dengan include-regex. Ekspresi reguler dicocokkan dengan jalur file dalam format bucket_name/object_key. Untuk mengetahui informasi selengkapnya, lihat Mengontrol kemampuan cache pada tingkat perincian file menggunakan ekspresi reguler. Nilai string yang mewakili ekspresi reguler. ""
Ekspresi reguler yang menentukan file yang akan disertakan dalam penyimpanan ke dalam cache. Jika kolom ini digunakan, hanya file yang cocok dengan ekspresi reguler ini yang akan di-cache. Ekspresi reguler dicocokkan dengan jalur file dalam format bucket_name/object_key. Untuk mengetahui informasi selengkapnya, lihat Mengontrol kemampuan cache pada tingkat perincian file menggunakan ekspresi reguler. Nilai string yang mewakili ekspresi reguler. ""
Menentukan jumlah goroutine maksimum yang akan dihasilkan per file untuk mendownload objek dari Cloud Storage ke cache file. Bilangan bulat 16
Jumlah maksimum goroutine yang dapat dihasilkan 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.
Dua kali jumlah core CPU di komputer Anda atau 16, mana saja yang lebih tinggi.
Menentukan ukuran setiap permintaan baca dalam MiB yang dibuat oleh setiap goroutine ke Cloud Storage saat mendownload objek ke dalam cache file. Bilangan bulat 200
Ukuran memori maksimum yang dapat digunakan cache stat, dalam MiB. Cache stat selalu disimpan sepenuhnya di memori.
  • Bilangan bulat. Sebaiknya lakukan tindakan berikut:
    • 34 jika workload Anda melibatkan hingga 20.000 file.
    • Jika workload Anda lebih besar dari 20.000 file, tingkatkan ukuran dengan nilai 10 untuk setiap tambahan 6.000 file, dengan stat cache menggunakan rata-rata 1.720 byte per file.
  • -1: Tidak menetapkan batas, di mana cache stat menggunakan memori sebanyak yang diperlukan.
  • 0: Menonaktifkan cache stat.
34

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

  • Bilangan bulat yang mewakili detik, misalnya: 10 (10 detik).
  • 0: Menonaktifkan caching stat negatif.
  • -1: Mengizinkan caching stat negatif tanpa batas dan menonaktifkan masa berlaku TTL.
5
Menentukan time to live (TTL) dalam detik untuk entri metadata yang di-cache.
  • Bilangan bulat yang mewakili detik, misalnya: 30 (30 detik).
  • -1: Mengabaikan masa berlaku TTL dan menyajikan file dari cache setiap kali tersedia.
  • 0: Gunakan 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.
60
Mengaktifkan pengambilan data di awal latar belakang metadata untuk objek dalam direktori saat cache tidak ditemukan. Opsi ini melakukan kumpulan update ke cache metadata, sehingga mengurangi latensi secara signifikan untuk pencarian file berikutnya dalam direktori. Nilai boolean: true, false. false
Menentukan entri metadata maksimum yang akan diambil di awal per direktori. Nilai yang menentukan lebih dari 5.000 entri metadata akan menghasilkan beberapa panggilan Objects: list Cloud Storage berurutan, karena setiap panggilan individual dibatasi hingga 5.000 hasil. Bilangan bulat antara -1 dan 2147483647. Tetapkan ke -1 untuk mengambil data semua entri. 5000
Jumlah maksimum worker latar belakang serentak yang diizinkan untuk melakukan pengambilan data metadata di semua direktori. Bilangan bulat antara -1 dan 2147483647. Tetapkan ke -1 untuk worker tanpa batas. 10
Hanya memasang direktori tertentu dalam bucket. Jalur, misalnya: "/etc/gcsfuse.yaml".
Menonaktifkan autentikasi untuk permintaan. Kolom ini harus ditetapkan jika Anda menggunakan endpoint kustom yang tidak mendukung autentikasi. Kolom ini juga harus ditetapkan jika Anda menggunakan Cloud Storage FUSE dengan bucket publik. Nilai boolean: true, false false
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 kolom ini tidak ditetapkan, Kredensial Default Aplikasi akan digunakan.
Menentukan apakah akan menggunakan kembali token yang diperoleh dari --token-url. Nilai boolean: true, false true
Menentukan URL untuk mendapatkan token akses jika --key-file tidak ada. URL.
Menentukan project yang akan digunakan untuk penagihan saat bucket yang terpasang diakses. Kolom ini sering diperlukan saat memasang bucket yang diaktifkan dengan Requester Pays. Nilai string yang mewakili "project ID". ""
Menentukan protokol yang digunakan untuk berkomunikasi dengan backend Cloud Storage.
  • http1 untuk HTTP/1.1
  • http2 untuk HTTP/2
  • grpc untuk gRPC. Untuk menggunakan gRPC dengan Cloud Storage FUSE, sebaiknya gunakan Cloud Storage FUSE versi 2.10.0 atau yang lebih baru.
http1
Menentukan endpoint kustom alternatif untuk mengambil data. Endpoint kustom harus mendukung resource dan operasi yang setara dengan endpoint JSON Cloud Storage, storage.UNIVERSE_DOMAIN_NAME:443. Jika endpoint kustom tidak ditentukan, Cloud Storage FUSE akan menggunakan endpoint API Cloud Storage JSON global, storage.googleapis.com:443. Jika autentikasi tidak didukung di endpoint kustom yang Anda tentukan, tetapkan kolom anonymous-access ke true untuk mengabaikan autentikasi. Endpoint, misalnya: storage.googleapis.com:443.
Menentukan durasi tunggu klien HTTP Cloud Storage FUSE untuk mendapatkan respons dari server sebelum waktu habis. Durasi, misalnya: 1h10m10s untuk 1 jam, 10 menit, dan 10 detik. 0s menentukan tidak ada waktu tunggu. 0s, yang menentukan tidak ada waktu tunggu
Menentukan batas bandwidth yang dapat digunakan Cloud Storage FUSE untuk membaca data dari Cloud Storage, yang diukur selama periode 30 detik. "-1", yang menentukan tidak ada batas.
Menentukan batas untuk operasi yang dijalankan per detik, yang diukur selama periode 30 detik. Bilangan floating point. -1 menentukan tidak ada batas. "-1"
Menentukan jumlah maksimum koneksi TCP yang diizinkan per server. Hal ini mulai berlaku jika --client-protocol ditetapkan ke http1. 0
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 menentukan tidak ada batas pada koneksi TCP. 0
Menentukan ukuran potongan data yang akan didownload dari Cloud Storage, dalam megabyte (MB). Bilangan bulat antara 1 dan 1024. 200
Secara implisit menyertakan folder dan folder terkelola. Lihat File dan direktori dalam dokumentasi GitHub Cloud Storage FUSE untuk informasi selengkapnya. Nilai boolean: true, false false

Mengaktifkan cache daftar dan menentukan time to live (TTL) dalam detik untuk entri daftar yang di-cache. Cache daftar disimpan di memori dalam cache halaman, yang dikontrol oleh kernel berdasarkan memori yang tersedia.

  • Bilangan bulat yang mewakili detik, misalnya: 10 (10 detik).
  • 0: Menonaktifkan penyimpanan daftar dalam cache.
  • -1: Mengabaikan masa berlaku entri dan selalu menampilkan respons daftar dari cache jika tersedia.
0
Menginstruksikan Cloud Storage FUSE untuk mengabaikan sinyal gangguan sistem, seperti SIGINT yang dipicu oleh Control+C. Hal ini mencegah sinyal menghentikan operasi yang sedang berjalan. Nilai boolean: true, false. true
Bit izin akses untuk direktori, dalam oktal. Nilai string yang mewakili bilangan bulat oktal antara "000" dan "777" (inklusif), misalnya: "755". "755"
Menentukan bit izin untuk file, dalam oktal. Nilai string yang mewakili bilangan bulat oktal antara "000" dan "777" (inklusif), misalnya: "644". "644"
Menentukan opsi pemasangan tambahan khusus sistem.
Menentukan pemilik ID Grup (GID) dari semua inode.
  • Bilangan bulat yang mewakili GID.
  • -1: GID pemanggil digunakan.
-1
Mengizinkan penggantian nama direktori yang berisi turunan yang lebih sedikit dari batas yang ditentukan. Bilangan bulat antara 0 dan 2147483647. 0
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"
Menentukan pemilik ID Pengguna (UID) semua inode.
  • Bilangan bulat yang mewakili UID.
  • -1: UID pemanggil digunakan.
-1
Menjalankan perintah gcsfuse di latar depan. Nilai boolean: true, false false
Menentukan frekuensi maksimum operasi dicoba ulang jika operasi gagal, sehingga mencegah loop percobaan ulang tanpa akhir.
  • Bilangan bulat yang menunjukkan jumlah maksimum upaya percobaan ulang, misalnya: 10.
  • 0: Memungkinkan upaya percobaan ulang tanpa batas.
0
Menentukan durasi maksimum Cloud Storage FUSE diizinkan 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
Menentukan pengali untuk backoff eksponensial antara percobaan ulang berturut-turut. Angka floating-point "2"

Mengekspor metrik ke Cloud Monitoring dengan interval yang ditentukan.

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

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

Bilangan bulat yang mewakili port yang ingin Anda tentukan. 0
Mencetak pesan debug saat mutex ditahan terlalu lama. Jika kolom 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
Keluar dari program saat pelanggaran varian internal terdeteksi. Nilai boolean: true, false. false
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 Baca/Tulis dalam dokumentasi GitHub Cloud Storage FUSE. Nilai boolean: true, false. true

Menentukan jumlah maksimum potongan data yang tersedia untuk penulisan streaming di semua file. Setiap file menggunakan satu potongan data 32 MiB secara default.

  • Bilangan bulat
  • 0: menonaktifkan penulisan streaming.
  • -1: menetapkan nilai ke potongan tak terbatas.
  • Nilai default untuk perangkat berspesifikasi rendah dengan resource terbatas: 4
  • Nilai default untuk mesin spesifikasi tinggi dengan jumlah resource yang besar: 1600
Menentukan pengambilan data asinkron dari bagian objek Cloud Storage ke dalam buffer dalam memori, sehingga pembacaan berikutnya dapat disajikan dari buffer, bukan memerlukan panggilan jaringan. Nilai boolean: true, false false

Menentukan jumlah maksimum blok yang tersedia untuk pembacaan yang di-buffer di semua proses penanganan file.

  • Bilangan bulat
  • 0: menonaktifkan pembacaan yang di-buffer.
  • -1: menetapkan nilai ke blok tanpa batas.
40
Menerapkan serangkaian konfigurasi Cloud Storage FUSE yang telah ditetapkan dan dioptimalkan untuk caching, threading, dan ukuran buffer guna membantu Anda mencapai performa tinggi untuk jenis workload tertentu, seperti pelatihan, inferensi, dan checkpoint. Untuk mempelajari lebih lanjut setiap konfigurasi yang telah ditetapkan berdasarkan jenis workload Anda, lihat Konfigurasi berbasis profil untuk workload AI/ML.
  • String, misalnya, "aiml-checkpointing".
  • "aiml-training": mengoptimalkan performa untuk pembacaan set data besar dengan throughput tinggi dan mencegah hardware GPU Cloud dan Cloud TPU menunggu data.
  • aiml-checkpointing: mengoptimalkan performa untuk penulisan throughput tinggi untuk file besar dengan mengurangi waktu yang diperlukan untuk menyimpan checkpoint multi-gigabyte secara drastis, sehingga meminimalkan jeda pelatihan.
  • aiml-serving: mengoptimalkan performa untuk menyajikan workload dengan menyederhanakan akses data dan menerapkan mekanisme caching.
""

Kembali ke atas