Cloud Storage FUSE 設定檔

本頁說明如何使用 Cloud Storage FUSE 設定檔,以持續性的方式設定 Cloud Storage FUSE 的行為。如要使用設定檔,請在 mount 指令--config-file 標記中指定設定檔路徑。

Cloud Storage FUSE 設定檔總覽

設定檔是 YAML 檔案,使用下列格式和欄位。 您也可以使用指令列選項指定部分欄位。

Cloud Storage FUSE 設定檔格式和欄位

下列 YAML 設定範例顯示 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
  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
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
  global-max-blocks: MAXIMUM_GLOBAL_BLOCKS

設定欄位

下表說明可在設定檔中指定的欄位。除非另有說明,否則所有欄位皆為選填。

欄位 說明 有效值 預設值
掛接點的應用程式名稱。 字串值,例如:"my-bucket-mount" ""
記錄檔的路徑,系統會將記錄寫入該檔案。 如果未指定這個欄位,當 Cloud Storage FUSE 在前景模式下執行時,記錄會傳送至 stdout;在背景模式下執行時,記錄會傳送至 syslogs 字串值,例如:"/var/log" ""
指定記錄檔的格式。
  • text
  • json
json

您希望 Cloud Storage FUSE 產生記錄的嚴重程度。嚴重程度由低至高排序。舉例來說,當您指定 warning 時,Cloud Storage FUSE 會產生警告和錯誤的記錄。一般而言,我們建議使用 info 嚴重程度。

  • trace
  • debug
  • info
  • warning
  • error
  • off:停用所有記錄。
info
記錄檔輪替前的大小上限 (以 MB 為單位)。 整數。最小值為 1 512
要保留的輪替記錄檔數量上限,不包括寫入記錄的現用檔案。
  • 整數
  • 0:保留所有輪替的記錄檔
10
指定是否要使用 gzip 壓縮輪替的記錄檔。 布林值:truefalse true

啟用檔案快取,並指定用於儲存檔案快取資料的目錄。

路徑,例如:"/tmp/gcsfuse-cache-path"。 如果值為空白,表示這個欄位已停用。這個欄位預設為停用。

指定檔案快取可使用的最大大小 (以 MiB 為單位),並限制檔案快取在掛接目錄中可使用的總容量。

  • 整數
  • -1:指定在您為 cache-dir 指定的目錄中,使用快取的所有可用容量。只有在傳遞 cache-dir 時,這才是預設值。
  • 0:停用檔案快取。
-1
判斷是否應非同步下載完整物件,並在從非零偏移完成第一次讀取時,儲存在 Cloud Storage FUSE 快取目錄中。如果您打算執行多個隨機讀取或部分讀取作業,請將這個選項設為 true 布林值:truefalse false

使用檔案快取目錄做為預先擷取緩衝區,並使用多個工作站平行下載檔案的多個部分,加快大型檔案的讀取速度。

啟用檔案快取時,系統會自動啟用平行下載功能。 如要進一步瞭解檔案快取,請參閱「使用 Cloud Storage FUSE 檔案快取」。

如要進一步瞭解平行下載功能,以及如何設定支援的屬性,請參閱「平行下載」。

布林值:truefalse true
指定每個檔案可產生的 Goroutine 數量上限,以便從 Cloud Storage 將物件下載至檔案快取。 整數 16
在任何指定時間,所有檔案下載工作可產生的 goroutine 數量上限。
  • 整數
  • -1:指定無限次數的平行下載。
  • 0:停用平行下載功能。只有在未傳遞 --enable-parallel-downloads 或傳遞為 false 時,才能使用。
  • >0:指定無上限。Cloud Storage FUSE 會根據機器設定指定的衍生 goroutine 數量上限,在內部限制值。
機器上的 CPU 核心數的兩倍或 16, 以較高者為準。
指定每個 goroutine 向 Cloud Storage 發出的讀取要求大小 (以 MiB 為單位),用於將物件下載至檔案快取。 整數 200
如果 Cloud Storage 中沒有檔案,則會建立含有 NonexistentType 類型的型別快取項目。如果檔案是在 Cloud Storage 中建立,但檔案的 NonexistentType 項目已快取,則 Cloud Storage FUSE 無法要求該檔案,直到 NonexistentType 項目從類型快取中移除為止。 布林值:truefalse false
統計資料快取可使用的記憶體大小上限 (以 MiB 為單位)。狀態快取一律會完整保留在記憶體中。
  • 整數。建議您採取以下做法:
    • 32,如果工作負載最多包含 20,000 個檔案。
    • 如果工作負載超過 20,000 個檔案,每增加 6,000 個檔案,請將大小增加 10 個值,其中每個檔案的統計資料快取平均使用 1,500 MiB。
  • -1:不設限,統計資料快取會視需要使用記憶體。
  • 0:停用統計資料快取。
32

定義負面狀態快取項目的存留時間 (TTL,以秒為單位),這些項目會儲存快取中不存在的檔案結果。

  • 以整數表示秒數,例如:10 (10 秒)。
  • 0:停用負面統計資料快取。
  • -1:允許無限次負面狀態快取,並停用存留時間到期。
5
定義快取中繼資料項目的存留時間 (TTL),以秒為單位。
  • 以整數表示秒數,例如:30 (30 秒)。
  • -1:略過 TTL 到期時間,並在檔案可用的情況下,一律從快取提供檔案。
  • 0:使用最新檔案。使用這個值會發出 Get 中繼資料呼叫,確保快取中的檔案物件產生與 Cloud Storage 中儲存的內容相符。詳情請參閱「設定快取撤銷」。
60
型別快取可使用的每個目錄大小上限 (以 MiB 為單位)。 型別快取一律會完整保留在記憶體中。
  • 整數。建議您採取下列做法:
    • 4 如果要掛接的 bucket 中,單一目錄內的檔案數量上限為 20,000 個。
    • 如果單一目錄中要掛接的檔案數量超過 20,000 個,請每增加 5,000 個檔案就將值調高 1,平均每個檔案約 200 個位元組。
  • -1:指定無限制,讓型別快取視需要使用記憶體。
  • 0:停用型別快取。
4
只掛接值區內的特定目錄。 路徑,例如:"/etc/gcsfuse.yaml"
停用要求驗證。如果您使用的自訂端點不支援驗證,請設定這個選項。如果您搭配使用 Cloud Storage FUSE 與公開值區,也應設定這個選項。 布林值:truefalse false
指定憑證 JSON 金鑰檔案的絕對路徑,用於驗證對 Cloud Storage 的要求。根據預設,Cloud Storage FUSE 會使用應用程式預設憑證驗證要求。 網址。 如未設定這個選項,系統會使用應用程式預設憑證。
指定是否要重複使用從 --token-url 取得的權杖。 布林值:truefalse true
指定在缺少 --key-file 時,用來取得存取權杖的網址。 網址。
指定存取已掛接值區時要使用的計費專案。掛接已啟用要求者付費功能的值區時,通常需要使用這個選項。 代表「專案 ID」的字串值。 ""
指定與 Cloud Storage 後端通訊時使用的通訊協定。 http1
指定用於擷取資料的替代自訂端點。 自訂端點必須支援與 Cloud Storage JSON 端點 https://storage.googleapis.com/storage/v1 相同的資源和作業。如未指定自訂端點,Cloud Storage FUSE 會使用全域 Cloud Storage JSON API 端點 https://storage.googleapis.com/storage/v1。如果您指定的自訂端點不支援驗證,請將 --anonymous-access 標記設為 true,略過驗證。 端點,例如:"http://localhost:443/storage/v1"
指定 Cloud Storage FUSE HTTP 用戶端等待伺服器回應的時間長度,超過這個時間就會逾時。 時間長度,例如:1h10m10s 代表 1 小時 10 分 10 秒。0s 表示沒有逾時。 0s,表示沒有逾時
指定 Cloud Storage FUSE 從 Cloud Storage 讀取資料時的頻寬限制,以 30 秒為測量時間間隔。 "-1",表示沒有限制。
指定每秒執行的作業數上限,以 30 秒為時間範圍進行測量。 浮點數。-1 表示沒有限制。 "-1"
指定每個伺服器允許的 TCP 連線數上限。 這項屬性只會在 --client-protocol 設為 http1 時生效。 0
指定每個伺服器允許的閒置連線數量上限。 這項屬性只會在 --client-protocol 設為 http1 時生效。 介於 02147483647 之間的整數。 0 指定 TCP 連線沒有限制。 0
指定要從 Cloud Storage 下載的資料區塊大小 (以 MB 為單位)。 介於 11024 之間的整數。 200
隱含包含資料夾代管資料夾。詳情請參閱 GitHub 的檔案和目錄文件 布林值:truefalse false
啟用清單快取,並定義快取清單項目的存留時間 (TTL),以秒為單位。清單快取會保留在頁面快取中的記憶體,並由核心根據可用記憶體控管。
  • 以整數表示秒數,例如:10 (10 秒)。
  • 0:停用清單快取。
  • -1:略過項目到期時間,並在快取可用時一律傳回清單回應。
0
指示 Cloud Storage FUSE 忽略系統中斷信號,例如 Control+C 觸發的 SIGINT。這可防止信號終止進行中的作業。 布林值:truefalse true
目錄的權限位元 (八進位)。 介於 000777 之間的整數 (包含首尾)。 "755"
以八進位表示檔案的權限位元。 介於 000777 之間的整數 (包含首尾)。 "644"
指定其他系統專屬的掛接選項。
指定所有 inode 的群組 ID (GID) 擁有者。
  • 代表 GID 的整數。
  • -1:使用呼叫端的 GID。
-1
允許重新命名後代項目少於指定限制的目錄。 介於 02147483647 之間的整數。 0
指定暫時目錄的路徑,寫入作業會先暫存於該目錄,再上傳至 Cloud Storage。 字串路徑,例如:"/mnt/ssd/example-user-gcsfuse-temp-dir" "/tmp"
指定所有 inode 的使用者 ID (UID) 擁有者。
  • 代表 UID 的整數。
  • -1:使用呼叫端的 UID。
-1
在前台執行 gcsfuse 指令。 布林值:truefalse false
指定 Cloud Storage FUSE 在指數輪詢的重試迴圈中,可休眠的最長時間。一旦輪詢持續時間超過指定上限,重試作業就會繼續進行,但會使用指定上限。 時間長度,例如:1h5m50s (1 小時 5 分 50 秒) 或 60s (60 秒)。 30s
指定連續重試之間指數輪詢的乘數。 浮點數 "2"

以指定間隔將指標匯出至 Cloud Monitoring。

以秒為單位的整數值,例如:10 (10 秒)。 0 指定不匯出。 0

在指定的通訊埠和路徑上公開 Prometheus 指標端點。/metrics

代表要指定連接埠的整數。 0
在互斥鎖持有時間過長時,列印偵錯訊息。如果指定這個選項,系統會自動將記錄的嚴重性等級設為 trace,包括追蹤記錄、偵錯記錄、資訊記錄、警告記錄和錯誤記錄。 布林值:truefalse false
偵測到內部變體違規時,會結束程式。 布林值:truefalse false
控制寫入路徑流程,以便在寫入資料時直接上傳至 Cloud Storage,而不是在本機完全暫存寫入內容,並在 close()fsync() 時上傳。如要進一步瞭解串流寫入作業,請參閱 Cloud Storage FUSE GitHub 說明文件 布林值:truefalse true

指定所有檔案可用的串流寫入資料區塊數量上限。根據預設,每個檔案會使用一個 32 MiB 的資料區塊。

  • 整數
  • 0:停用串流寫入作業。
  • -1:將值設為無限制的區塊。
  • 資源有限的低規格機器的預設值: 4
  • 資源量大的高規格機器的預設值:1600

返回頁首