במאמר הזה מוסבר איך להשתמש בקובץ תצורה של 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: 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-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 שאפשר ליצור בכל זמן נתון בכל משימות ההורדה של הקבצים. |
|
פי שניים ממספר ליבות המעבד במחשב או 16, הגבוה מביניהם. |
|
מציין את הגודל של כל בקשת קריאה ב-MiB שכל goroutine שולחת ל-Cloud Storage כשמורידים את האובייקט למטמון הקבצים. | מספר שלם | 200 |
|
יוצרת רשומה במטמון של נתוני type עם הסוג NonexistentType אם קובץ לא נמצא ב-Cloud Storage. אם הקובץ נוצר ב-Cloud Storage אבל הרשומה NonexistentType של הקובץ שמורה במטמון, Cloud Storage FUSE לא יכול לבקש את הקובץ עד שהרשומה NonexistentType תוסר ממטמון של נתוני type. |
ערך בוליאני: true, false |
false |
|
הגודל המקסימלי של הזיכרון שבו מטמון הנתונים הסטטיסטיים יכול להשתמש, ב-MiB. מטמון הנתונים הסטטיסטיים תמיד נשמר כולו בזיכרון. |
|
32 |
|
המדיניות מגדירה את אורך החיים (TTL) בשניות של רשומות במטמון של נתוני stat שליליים, שמאחסן תוצאות של קבצים שלא קיימים במטמון. |
|
5 |
|
הגדרה שמגדירה את משך החיים (TTL) בשניות של רשומות מטא-נתונים ששמורות במטמון. |
|
60 |
|
הגודל המקסימלי ב-MiB לכל ספרייה שבה יכול מטמון הסוג להשתמש. מטמון הסוגים תמיד נשמר כולו בזיכרון. |
|
4 |
|
טוענת רק ספרייה ספציפית מתוך קטגוריה. | נתיב, לדוגמה: "/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 |
|
כולל באופן מרומז תיקיות ותיקיות מנוהלות. מידע נוסף זמין במאמר קבצים וספריות במאמרי העזרה של Cloud Storage FUSE GitHub. | ערך בוליאני: true, false |
false |
|
ההגדרה הזו מפעילה את מטמון הרשימה ומגדירה את אורך החיים (TTL) בשניות של רשומות רשימה שנשמרו במטמון. המטמון של הרשימה נשמר בזיכרון במטמון הדפים, שמנוהל על ידי ליבת המערכת על סמך הזיכרון הזמין. |
| 0 |
|
הפקודה הזו גורמת ל-Cloud Storage FUSE להתעלם מאותות הפרעה של המערכת, כמו SIGINT שמופעל על ידי Control+C. כך לא יבוטלו פעולות שמתבצעות כרגע. |
ערך בוליאני: true, false. |
true |
|
ביטים של הרשאות לספריות, על בסיס אוקטלי. | מספר שלם בין 000 ל-777 (כולל). |
"755" |
|
מציינת ביטים של הרשאות לקבצים, על בסיס אוקטלי. | מספר שלם בין 000 ל-777 (כולל). |
"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 |
|
מציינת את המכפיל להשהיה מעריכית לפני ניסיון חוזר בין ניסיונות חוזרים עוקבים. | מספר בשיטת נקודה צפה | "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 |
|
מציין את המספר המקסימלי של נתונים שזמינים להזרמה לכתיבה בכל הקבצים. כברירת מחדל, כל קובץ משתמש במקטע נתונים אחד של 32 מיביבייט. |
|
|
|
הגדרה של אחזור מראש אסינכרוני של חלקים מאובייקט ב-Cloud Storage למאגר זמני בזיכרון, כדי שקריאות עוקבות יתבצעו מהמאגר הזמני במקום לדרוש קריאות לרשת. | ערך בוליאני: true, false |
false |
|
מציין את המספר המקסימלי של בלוקים שזמינים לקריאות עם מאגר זמני בכל ידיות הקבצים. |
|
40 |
|
האפשרות הזו מחילה קבוצה מוגדרת מראש ואופטימלית של הגדרות Cloud Storage FUSE לשמירה במטמון, לשרשור ולגדלי מאגרים, כדי לעזור לכם להשיג ביצועים גבוהים לסוג ספציפי של עומס עבודה, כמו אימון, הצגה ונקודות ביקורת. מידע נוסף על כל הגדרה מוגדרת מראש על סמך סוג עומס העבודה זמין במאמר בנושא הגדרות מבוססות-פרופיל לעומסי עבודה של AI/ML. |
|
"" |