במאמר הזה מוסבר איך להשתמש בקובץ תצורה של Cloud Storage FUSE כדי להגדיר את ההתנהגות של Cloud Storage FUSE באופן קבוע. כדי להשתמש בקובץ התצורה, מציינים את הנתיב לקובץ התצורה באפשרות --config-file כשמריצים את הפקודה gcsfuse.
קובץ התצורה של Cloud Storage FUSE הוא קובץ YAML שמשתמש בפורמט ובשדות הבאים. אפשר גם להגדיר את ההתנהגות שנשלטת על ידי השדות של קובץ התצורה באמצעות Cloud Storage FUSE CLI.
הפורמט והשדות של קובץ התצורה של 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 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
שדות בקובץ התצורה של Cloud Storage FUSE
בטבלה הבאה מתוארים השדות שאפשר לציין בקובץ התצורה של Cloud Storage FUSE. כל השדות הם אופציונליים, אלא אם צוין אחרת.
| שדה | תיאור | ערך תקין | ערך ברירת המחדל |
|---|---|---|---|
|
שם האפליקציה של הטעינה. | ערך מחרוזת, לדוגמה: "my-bucket-mount". |
"" |
|
הנתיב לקובץ היומן שבו ייכתבו היומנים.
אם לא מציינים את השדה הזה, היומנים מנותבים אל stdout כש-Cloud Storage FUSE פועל בחזית, ואל syslogs כש-Cloud Storage FUSE פועל ברקע. |
ערך מחרוזת, לדוגמה: "/var/log". |
"" |
|
מציינת את הפורמט של קובץ היומן. |
|
json |
|
רמת החומרה שרוצים ש-Cloud Storage FUSE ייצור עבורה יומנים. רמות החומרה מסודרות מהנמוכה ביותר לגבוהה ביותר. לדוגמה, כשמציינים את הערך |
|
info |
|
הגודל המקסימלי במגה-בייט (MB) שקבצי יומן יכולים להגיע אליו לפני שהם עוברים רוטציה. | מספר שלם. הערך המינימלי הוא 1. |
512 |
|
המספר המקסימלי של קובצי יומן מסובבים שיישארו, לא כולל הקובץ הפעיל שבו נרשמים היומנים. |
|
10 |
|
ההגדרה קובעת אם קובצי יומן מסובבים יידחסו באמצעות gzip. |
ערך בוליאני: true, false |
true |
|
מפעילה את מטמון הקבצים ומציינת את הספרייה לאחסון נתוני מטמון הקבצים. |
נתיב, לדוגמה: "/tmp/gcsfuse-cache-path".
ערך ריק מציין שהשדה הזה מושבת. השדה הזה מושבת כברירת מחדל. |
|
|
המדיניות הזו מציינת את הגודל המקסימלי ב-MiB שמטמון הקבצים יכול להשתמש בו, ומאפשרת להגביל את הקיבולת הכוללת שמטמון הקבצים יכול להשתמש בה בספרייה שבה הוא מותקן. |
|
-1 |
|
ההגדרה הזו קובעת אם האובייקט המלא יורד באופן אסינכרוני ויישמר בספריית המטמון של Cloud Storage FUSE, כשהקריאה הראשונה תושלם מהיסט שאינו אפס. צריך להגדיר את השדה הזה לערך true אם מתכננים לבצע כמה קריאות אקראיות או קריאות חלקיות.
|
ערך בוליאני: true, false |
false |
|
מאיצה את הקריאה של קבצים גדולים באמצעות ספריית מטמון הקבצים כמאגר אחזור מראש, ומשתמשת בכמה תהליכים להורדה מקבילה של כמה חלקים של קובץ. ההורדות המקבילות מופעלות אוטומטית כשמפעילים את שמירת הקבצים במטמון. מידע נוסף על שמירת קבצים במטמון זמין במאמר שימוש בשמירת קבצים במטמון ב-Cloud Storage FUSE. מידע נוסף על הורדות במקביל ועל הגדרת מאפיינים תומכים זמין במאמר הורדות במקביל. |
ערך בוליאני: true, false. |
true |
|
ביטוי רגולרי שמציין קבצים שצריך להחריג מהשמירה במטמון.
אם קובץ תואם לביטוי הרגולרי הזה, הוא לא נשמר במטמון, גם אם הוא תואם גם ל-include-regex.
הביטוי הרגולרי מותאם לנתיבי קבצים בפורמט
bucket_name/object_key. מידע נוסף זמין במאמר בנושא שליטה באפשרות השמירה במטמון ברמת הקובץ באמצעות ביטויים רגולריים. |
ערך מחרוזת שמייצג ביטוי רגולרי. | "" |
|
ביטוי רגולרי שמציין אילו קבצים לכלול בשמירה במטמון. אם משתמשים בשדה הזה, רק קבצים שתואמים לביטוי הרגולרי הזה נשמרים במטמון.
הביטוי הרגולרי מותאם לנתיבי קבצים בפורמט bucket_name/object_key. מידע נוסף זמין במאמר בנושא שליטה באפשרות השמירה במטמון ברמת הקובץ באמצעות ביטויים רגולריים. |
ערך מחרוזת שמייצג ביטוי רגולרי. | "" |
|
מציינת את המספר המקסימלי של goroutines שנוצרים לכל קובץ כדי להוריד את האובייקט מ-Cloud Storage למטמון הקבצים. | מספר שלם | 16 |
|
המספר המקסימלי של goroutines שאפשר ליצור בכל זמן נתון בכל משימות ההורדה של הקבצים. |
|
פי שניים ממספר ליבות המעבד (CPU) במכונה או 16, הגבוה מביניהם. |
|
מציין את הגודל של כל בקשת קריאה ב-MiB שכל goroutine שולחת ל-Cloud Storage כשמורידים את האובייקט למטמון הקבצים. | מספר שלם | 200 |
|
הגודל המקסימלי של הזיכרון שבו יכול להשתמש מטמון הנתונים הסטטיסטיים, ב-MiB. מטמון הנתונים הסטטיסטיים נשמר תמיד בזיכרון. |
|
34 |
|
מגדירה את אורך החיים (TTL) בשניות של רשומות במטמון הנתונים הסטטיסטיים השליליים, שמאחסן במטמון תוצאות של קבצים שלא קיימים. |
|
5 |
|
המדיניות הזו מגדירה את אורך החיים (TTL) בשניות של רשומות מטא-נתונים שנשמרו במטמון. |
|
60 |
|
האפשרות הזו מאפשרת לאחזר מראש ברקע מטא-נתונים של אובייקטים בתוך ספרייה במקרה של אי מציאה במטמון. היא מבצעת עדכון באצווה למטמון המטא-נתונים, וכך מפחיתה באופן משמעותי את זמן האחזור של חיפושי קבצים בספרייה. | ערך בוליאני: true, false. |
false |
|
מציינת את המספר המקסימלי של רשומות מטא-נתונים לאחזור מראש לכל ספרייה. ערכים שמציינים יותר מ-5,000 רשומות של מטא-נתונים גורמים לכמה קריאות רציפות של Objects: list ב-Cloud Storage, כי כל קריאה בודדת מוגבלת ל-5,000 תוצאות.
|
מספר שלם בין -1 ל-2147483647. מגדירים את הערך -1 כדי לבצע אחזור מראש של כל הרשומות. |
5000 |
|
המספר המקסימלי של תהליכי עבודה ברקע שמותר להפעיל בו-זמנית כדי לבצע אחזור מראש של מטא-נתונים בכל הספריות. | מספר שלם בין -1 ל-2147483647. מגדירים את הערך -1 כדי לאפשר מספר בלתי מוגבל של עובדים. |
10 |
|
טוענת רק ספרייה ספציפית מתוך קטגוריה. | נתיב, לדוגמה: "/etc/gcsfuse.yaml". |
|
|
האפשרות הזו משביתה את האימות של בקשות. צריך להגדיר את השדה הזה אם משתמשים בנקודת קצה מותאמת אישית שלא תומכת באימות. צריך להגדיר את השדה הזה גם אם משתמשים ב-Cloud Storage FUSE עם קטגוריות ציבוריות. | ערך בוליאני: true, false |
false |
|
מציינת נתיב מוחלט לקובץ מפתח ה-JSON של פרטי הכניסה לצורך אימות בקשות ב-Cloud Storage. כברירת מחדל, אימות הבקשות ב-Cloud Storage FUSE מתבצע באמצעות Application Default Credentials. | כתובת URL. | אם השדה הזה לא מוגדר, המערכת משתמשת ב-Application Default Credentials. |
|
מציינת אם לעשות שימוש חוזר באסימון שהתקבל מ---token-url. |
ערך בוליאני: true, false |
true |
|
מציינת כתובת URL לקבלת אסימון גישה
כש---key-file חסר. |
כתובת URL. | |
|
מציינת איזה פרויקט צריך להשתמש לחיוב כשמתבצעת גישה לקטגוריה שהוטענה. השדה הזה נחוץ לרוב במהלך טעינת קטגוריה שמופעלת באמצעות התכונה מגיש הבקשה משלם. | ערך מחרוזת שמייצג מזהה פרויקט. | "" |
|
מציינת באמצעות איזה פרוטוקול תתבצע התקשורת עם הקצה העורפי של Cloud Storage. |
|
http1 |
|
מציינת נקודת קצה (endpoint) מותאמת אישית חלופית לאחזור נתונים.
נקודת הקצה המותאמת אישית חייבת לתמוך בפעולות ובמשאבים המקבילים לאלה של נקודת הקצה של JSON ב-Cloud Storage, storage.UNIVERSE_DOMAIN_NAME:443.
אם לא מצוינת נקודת קצה מותאמת אישית, Cloud Storage FUSE משתמש בנקודת הקצה הגלובלית ל-API בפורמט JSON ב-Cloud Storage, storage.googleapis.com:443.
אם נקודת הקצה המותאמת אישית שציינתם לא תומכת באימות, צריך להגדיר את השדה anonymous-access לערך true כדי לעקוף את האימות. |
נקודת קצה, לדוגמה: storage.googleapis.com:443. |
|
|
מציינת כמה זמן צד הלקוח ב-HTTP ב-Cloud Storage FUSE יכול לחכות לקבלת תשובה מהשרת לפני שהזמן הקצוב יסתיים. | משך, לדוגמה: 1h10m10s לשעה אחת, 10 דקות ו-10 שניות. 0s מציין שאין זמן קצוב לתפוגה. |
0s, שמשמעותו היא שאין פסק זמן |
|
מציינת את מגבלת רוחב הפס שבה Cloud Storage FUSE יכול לקרוא נתונים מ-Cloud Storage. היא נמדדת במשך חלון זמן של 30 שניות. | "-1", שמציין שאין מגבלה. |
|
|
מציינת מגבלת ביצוע של מספר הפעולות לשנייה, שנמדדת במשך חלון זמן של 30 שניות. | מספר בשיטת נקודה צפה. -1 מציין שאין מגבלה. |
"-1" |
|
מציינת את המספר המקסימלי של חיבורי TCP שמותרים לכל שרת.
האפשרות הזו מופעלת כאשר בשדה --client-protocol מגדירים את הערך http1. |
0 |
|
|
מציינת את המספר המקסימלי של חיבורים ללא פעילות שמותרים לכל שרת.
האפשרות הזו מופעלת כאשר בשדה --client-protocol מגדירים את הערך http1. |
מספר שלם בין 0 ל-2147483647.
הערך 0 מציין שאין הגבלה על חיבורי TCP. |
0 |
|
מציינת את גודל המקטע של הנתונים להורדה מ-Cloud Storage, ביחידות מגה-בייט (MB). | מספר שלם בין 1 ל-1024. |
200 |
|
כולל באופן משתמע תיקיות ותיקיות מנוהלות. מידע נוסף זמין במקטע Files and directories במאמרי העזרה של Cloud Storage FUSE GitHub. | ערך בוליאני: true, false |
false |
|
ההגדרה הזו מפעילה את מטמון הרשימה ומגדירה את אורך החיים (TTL) בשניות של רשומות רשימה שנשמרו במטמון. המטמון של הרשימה נשמר בזיכרון במטמון של הדף, שנשלט על ידי הליבה על סמך הזיכרון הזמין. |
| 0 |
|
הפקודה הזו גורמת ל-Cloud Storage FUSE להתעלם מאותות הפרעה של המערכת, כמו SIGINT שמופעל על ידי Control+C. כך נמנעת הפסקת פעולות שנמצאות בתהליך. |
ערך בוליאני: true, false. |
true |
|
ביטים של הרשאות לספריות, על בסיס אוקטלי. | ערך מחרוזת שמייצג מספר שלם אוקטלי בין "000" ל-"777" (כולל), לדוגמה: "755". |
"755" |
|
מציינת ביטים של הרשאות לקבצים, על בסיס אוקטלי. | ערך מחרוזת שמייצג מספר שלם אוקטלי בין "000" ל-"777" (כולל), לדוגמה: "644". |
"644" |
|
מציינת אפשרויות טעינה נוספות שספציפיות למערכת. | ||
|
מציינת מי הבעלים של מזהה הקבוצה (GID) של כל צמתי inode. |
|
-1 |
|
מאפשרת לשנות את השם של ספריות שמכילות פחות צאצאים מהמגבלה שצוינה. | מספר שלם בין 0 ל-2147483647. |
0 |
|
מציינת נתיב לספרייה הזמנית לאחסון הנתונים שנכתבים במחסן ביניים (Stage) לפני ההעלאה ל-Cloud Storage. | נתיב מחרוזת, לדוגמה: "/mnt/ssd/example-user-gcsfuse-temp-dir". |
"/tmp" |
|
מציינת מי הבעלים של מזהה המשתמש (UID) של כל צמתי ה-inode. |
|
-1 |
|
מריצה את הפקודה gcsfuse בחזית. |
ערך בוליאני: true, false |
false |
|
מציינת את המספר המקסימלי של פעמים שמתבצע ניסיון חוזר של פעולה אם הפעולה נכשלת, כדי למנוע לולאות אינסופיות של ניסיונות חוזרים. |
|
0 |
|
מציינת את משך הזמן המקסימלי שבו Cloud Storage FUSE יכול להיות במצב שינה בלולאת ניסיון חוזר עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff). אם משך ההשהיה לפני ניסיון חוזר חורג ממשך הזמן המקסימלי שצוין, הניסיון החוזר ממשיך עם משך הזמן המקסימלי שצוין. | משך, לדוגמה: 1h5m50s (שעה אחת, 5 דקות ו-50 שניות) או 60s (60 שניות). |
30s |
|
מציינת את המכפיל להשהיה מעריכית לפני ניסיון חוזר (exponential backoff) בין ניסיונות חוזרים בזה אחר זה. | מספר בשיטת נקודה צפה | "2" |
|
מייצאת מדדים ל-Cloud Monitoring במרווח הזמן שצוין. |
מספר שלם שמייצג ערך בשניות, לדוגמה: 10 (10 שניות).
0 מציין שלא יתבצע ייצוא. |
0 |
|
חושף את נקודת הקצה של מדדי Prometheus ביציאה ובנתיב |
מספר שלם שמייצג את היציאה שרוצים לציין. | 0 |
|
מדפיסה הודעות ניפוי באגים כאשר מפעילים מניעה הדדית (mutex) למשך זמן רב מדי. אם השדה הזה מצוין, רמת החומרה של היומנים מוגדרת באופן אוטומטי ל-trace, שכוללת יומני מעקב, יומני ניפוי באגים, יומני מידע, יומני אזהרות ויומני שגיאות. |
ערך בוליאני: true, false. |
false |
|
יוצאת מהתוכנית כשמזוהות הפרות של משתנים פנימיים. | ערך בוליאני: true, false. |
false |
|
ההגדרה הזו שולטת בזרימת נתיב הכתיבה, כך שהנתונים מועלים ישירות ל-Cloud Storage בזמן הכתיבה, במקום לאחסן את הכתיבה באופן מקומי ולהעלות אותה אחרי close() או fsync().
מידע נוסף על כתיבה של נתונים בסטרימינג אפשר למצוא במאמר קריאה/כתיבה במאמרי העזרה של Cloud Storage FUSE GitHub. |
ערך בוליאני: true, false. |
true |
|
מציין את המספר המקסימלי של נתונים שזמינים להזרמת כתיבה בכל הקבצים. כברירת מחדל, כל קובץ משתמש במקטע נתונים אחד של 32MiB. |
|
|
|
מציין אחזור מראש אסינכרוני של חלקים מאובייקט ב-Cloud Storage למאגר נתונים (buffer) בזיכרון, כך שפעולות קריאה עוקבות יתבצעו ממאגר הנתונים במקום לדרוש קריאות לרשת. | ערך בוליאני: true, false |
false |
|
מציינת את המספר המקסימלי של בלוקים שזמינים לקריאות במאגר נתונים זמני בכל נקודות האחיזה של הקבצים. |
|
40 |
|
הגדרה שמחילה קבוצה מוגדרת מראש של הגדרות אופטימליות של Cloud Storage FUSE לשמירה במטמון, ל-threading ולשטח אחסון זמני, כדי לעזור לכם להשיג ביצועים גבוהים בסוג ספציפי של עומס עבודה, כמו אימון, הצגת מודעות ונקודות ביקורת. מידע נוסף על כל הגדרה מוגדרת מראש בהתאם לסוג עומס העבודה זמין במאמר הגדרות מבוססות-פרופיל לעומסי עבודה של AI/ML. |
|
"" |