אפשרויות ל-CLI של Cloud Storage FUSE
כשאתם טוענים קטגוריה למערכת הקבצים המקומית, אתם יכולים לגשת לנתונים ב-Cloud Storage באמצעות סמנטיקה רגילה של מערכת קבצים. במאמר הזה מוסבר איך לטעון קטגוריות של Cloud Storage למערכת הקבצים המקומית באמצעות Cloud Storage FUSE.
לפני שמתחילים
כדי לטעון קטגוריות ולגשת אליהן, קודם צריך לבצע את המשימות הבאות. אי אפשר להשתמש ב-Cloud Shell כדי לטעון קטגוריות של Cloud Storage. במקום זאת, הריצו את הפקודות שמופיעות במסמך הזה בטרמינל של מכונת Debian או Ubuntu.
התפקידים שנדרשים כדי לטעון קטגוריה ולגשת אליה
כדי לטעון קטגוריה, לגשת אליה ולבצע בה פעולות קריאה וכתיבה, צריך לבקש מהבעלים של הקטגוריה להקצות לכם את התפקיד Storage Object User (roles/storage.objectUser) בקטגוריה.
התפקיד המוגדר מראש הזה מכיל את ההרשאות שנדרשות כדי לקרוא מקטגוריה שנטענה ולכתוב אליה. כדי לראות את ההרשאות הנדרשות, מרחיבים את הקטע Required permissions:
ההרשאות הנדרשות
storage.objects.createstorage.objects.deletestorage.objects.getstorage.objects.liststorage.objects.update
יכול להיות שתוכלו לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות.
התקנת Cloud Storage FUSE
אם עדיין לא עשיתם זאת, מתקינים את Cloud Storage FUSE במכונה.
אימות בקשות של Cloud Storage FUSE
כדי לאמת בקשות של Cloud Storage FUSE ל-Cloud Storage, צריך להגדיר Application Default Credentials. כברירת מחדל ב-Cloud Storage FUSE, טעינת Application Default Credentials הקיימים היא אוטומטית ואין צורך לקבוע הגדרות נוספות.
כך מגדירים Application Default Credentials באמצעות Google Cloud CLI:
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
אם משתמשים במעטפת מקומית, צריך ליצור פרטי כניסה לאימות מקומי בחשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
כשיוצרים מכונה וירטואלית (VM) ב-Compute Engine, אפשר להשתמש בחשבון השירות שלה גם כדי לאמת את הגישה ל-Cloud Storage FUSE.
טעינת קטגוריה
כדי לטעון קטגוריות למערכת הקבצים המקומית, מריצים את הפקודה הבאה במכונה המקומית:
gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT
מחליפים את מה שכתוב בשדות הבאים:
GLOBAL_OPTIONSהן האפשרויות שאפשר לכלול כדי לשלוט באופן הגדרת הטעינה. מידע נוסף על האפשרויות ועל אופן השימוש בהן זמין בדפים הפניית CLI של Cloud Storage FUSE או קובץ תצורה של Cloud Storage FUSE.
BUCKET_NAMEהוא שם הקטגוריה שרוצים לטעון. לדוגמה,my-bucket. אם רוצים לבצע טעינה דינמית, לא כוללים שם של קטגוריה בפקודה.
MOUNT_POINTהיא הספרייה המקומית שאליה טוענים את הקטגוריה. לדוגמה,/path/to/mount/point.
אופציונלי: כדי ליצור ספריות שמוגדרות באופן משתמע ומאפשרות לנווט לתיקיות שמכילות רק אובייקטים שמוטמעים עמוק יותר, מוסיפים את הדגל --implicit-dirs לפקודה gcsfuse. מידע נוסף על ספריות שמוגדרות באופן משתמע זמין בקטע סמנטיקה של ספריות.
אחרי היציאה מ-Cloud Storage FUSE, אפשר לגשת לקטגוריות שנטענו על ידי הרצת ls בנקודת הטעינה של הקטגוריה. אם אתם מעדיפים ש-Cloud Storage FUSE יישאר בחזית (למשל, לרישום ניפוי באגים ביומן), תוכלו להריץ את הפקודה gcsfuse עם השדה foreground או האפשרות --foreground.
דוגמאות לטעינה
בקטע הזה מתוארות פקודות שונות לדוגמה לטעינת קטגוריות.
טעינה סטטית
טעינה סטטית מתייחסת לטעינה של קטגוריה ספציפית. לדוגמה, כדי לטעון קטגוריה בשם my-bucket לספרייה /path/to/mount/point, מריצים את הפקודות הבאות:
mkdir /path/to/mount/pointgcsfuse my-bucket /path/to/mount/point
טעינה דינמית
טעינה דינמית מתייחסת לטעינה של כל הקטגוריות שלמשתמש יש גישה אליהן כספריות משנה.
כשמבצעים טעינה דינמית, לא כוללים שמות של קטגוריות בפקודה.
לדוגמה, נניח שיש לכם גישה לקטגוריות בשמות my-bucket-1, my-bucket-2 ו-my-bucket-3. כדי לטעון את כל הקטגוריות לספרייה /path/to/mount/point, מריצים את הפקודות הבאות:
mkdir /path/to/mount/pointgcsfuse /path/to/mount/point
לאחר מכן אפשר לגשת לקטגוריות כספריות משנה:
ls /path/to/mount/point/my-bucket-1/ls /path/to/mount/point/my-bucket-2/ls /path/to/mount/point/my-bucket-3/
אי אפשר להציג רשימה של קטגוריות שנטענו באופן דינמי מנקודת הטעינה של הרמה הבסיסית (root). במקום זאת, צריך לציין את שם הקטגוריה כחלק מפעולת הרשימה.
טעינת קטגוריה במצב קריאה בלבד
כדי לטעון קטגוריה במצב קריאה בלבד, מעבירים את האפשרות -o ro לפקודה gcsfuse. לדוגמה, כדי לטעון את הקטגוריה my-bucket במצב קריאה בלבד לספרייה /path/to/mount/point, מריצים את הפקודה הבאה:
gcsfuse -o ro my-bucket /path/to/mount/pointטעינת ספרייה בתוך קטגוריה
כברירת מחדל, Cloud Storage FUSE טוען קטגוריות בשלמותן, כולל כל התוכן והמבנים של הספריות. כדי לטעון ספרייה ספציפית בתוך קטגוריה, צריך להעביר את האפשרות --only-dir ל-CLI של gcsfuse או את השדה only-dir בקובץ תצורה של Cloud Storage FUSE. לדוגמה, כדי לטעון את הספרייה my-bucket/a/b לספרייה /path/to/mount/point, מריצים את הפקודה הבאה:
gcsfuse --only-dir a/b my-bucket /path/to/mount/pointטעינה באמצעות הפקודה mount של Linux
התקנת Cloud Storage FUSE כוללת כלי עזר שמתקשר באמצעות הפקודה mount של Linux, וכך אפשר להשתמש בפקודה mount כדי לטעון קטגוריות.
אם משתמשים ב-Linux, צריך להריץ את הפקודה mount מהרמה הבסיסית (root). לדוגמה, הפקודה הבאה טוענת קטגוריה בשם my-bucket לנתיב /path/to/mount/point:
sudo mount -t gcsfuse -o rw,user my-bucket /path/to/mount/pointכשמבצעים טעינה באמצעות הפקודה mount של Linux, אפשר להעביר את האפשרויות של gcsfuse כארגומנט לאפשרות -o, אבל צריך להחליף את המקפים (-) שבהן בקו תחתון (_). לדוגמה, implicit_dirs במקום implicit-dirs.
sudo mount -t gcsfuse -o implicit_dirs my-bucket /path/to/mount/pointטעינה מתמידה
התקנת Cloud Storage FUSE כוללת כלי עזר שמותקן במערכת בנתיב /sbin/mount.gcsfuse. כלי העזר הזה מאפשר ליצור נקודות טעינה באמצעות הקובץ /etc/fstab, כדי שתוכלו לשמר את הטעינות.
לדוגמה, כשמוסיפים את השורה הבאה לקובץ /etc/fstab, היא מגדירה נקודת טעינה לקטגוריה בשם my-bucket בנתיב /mount/point:
my-bucket /mount/point gcsfuse rw,noauto,userכאשר:
האפשרות
rwמציינת שנקודת הטעינה תיווצר עם הרשאות לקריאה ולכתיבה.האפשרות
noautoמציינת שאסור לטעון את מערכת הקבצים בזמן ההפעלה.האפשרות
userמאפשרת לכל אחד ליצור את נקודת הטעינה שמצוינת בקובץ/etc/fstab. אחרי שמוסיפים את השורה לדוגמה לקובץ/etc/fstab, אפשר להריץ אתmount /mount/pointכמשתמש שאינו Root.
אם רוצים לטעון את הקטגוריה באופן אוטומטי בזמן ההפעלה, יכול להיות שתצטרכו לכלול את האפשרות _netdev ברשומת /etc/fstab, כדי לוודא ש-Cloud Storage FUSE ימתין שמערכת הרשת תהיה מוכנה לפני הטעינה. לדוגמה:
my-bucket /mount/point gcsfuse rw,_netdev,userאפשר לטעון קטגוריה באופן אוטומטי כמשתמש ספציפי שאינו משתמש Root, אם כוללים את האפשרויות uid או gid ברשומת /etc/fstab. לדוגמה:
my-bucket /mount/point gcsfuse rw,_netdev,allow_other,uid=1001,gid=1001בדומה לפקודה mount של Linux, הדגלים שמשמשים לטעינה בקובץ /etc/fstab צריכים להשתמש בקו תחתון (_) במקום במקף (-). לדוגמה, implicit_dirs במקום implicit-dirs.
טעינת קטגוריה עם תיקיות
אפשר לטעון קטגוריות עם כמה סוגי תיקיות.
טעינת קטגוריה עם תיקיות מנוהלות
כדי לטעון קטגוריה, כולל התיקיות המנוהלות שלה, צריך לכלול בפקודה את האפשרות --implicit-dirs או את השדה implicit-dirs.
לדוגמה, כדי לטעון קטגוריה בשם my-bucket ואת התיקיות המנוהלות שלה לספרייה /path/to/mount/point, מריצים את הפקודות הבאות:
gcsfuse --implicit-dirs my-bucket /path/to/mount/pointכשמצרפים קטגוריה עם תיקיות מנוהלות, חשוב לזכור את המגבלות והשיקולים הבאים:
תיקיות מנוהלות ריקות לא מופיעות בקטגוריות שנטענו.
אי אפשר להגדיר או לנהל הרשאות IAM בתיקייה מנוהלת באמצעות Cloud Storage FUSE. כדי להגדיר או לנהל הרשאות IAM בתיקייה מנוהלת, קראו את המאמר שימוש ב-IAM עם תיקיות מנוהלות.
אפשר להעתיק ולהעביר תיקייה מנוהלת בקטגוריה שנטענה באמצעות הפקודות
cpו-mv. כשמעתיקים או מעבירים תיקייה מנוהלת, כללי מדיניות ה-IAM של התיקייה המנוהלת המקורית לא נשמרים בתיקייה המנוהלת החדשה. צריך להגדיר מדיניות IAM חדשה בתיקייה המנוהלת החדשה.
התקנת קטגוריה עם תיקיות שמוגדרות באופן משתמע
אפשר לטעון תיקיות שמוגדרות באופן משתמע באמצעות האפשרות --implicit-dirs
gcsfuse ב-CLI של gcsfuse או באמצעות
השדה implicit-dirs בקובץ תצורה של Cloud Storage FUSE. תיקיות שמוגדרות באופן משתמע הן תיקיות שלא נוצרו באופן מפורש כאובייקטים ב-Cloud Storage. האפשרות --implicit-dirs מאפשרת לראות תיקיות כשמגדירים קטגוריה.
לדוגמה, כדי לטעון קטגוריה בשם my-bucket לספרייה /path/to/mount/point עם תיקיות שמוגדרות באופן משתמע, מריצים את הפקודה הבאה:
gcsfuse --implicit-dirs my-bucket /path/to/mount/pointהתקנת קטגוריה עם מרחב שמות היררכי שכוללת תיקיות
אפשר לטעון קטגוריה שמופעל בה מרחב שמות היררכי, כולל התיקיות שלה. כשמצרפים קטגוריה עם מרחב שמות היררכי, לא צריך לציין את האפשרות --implicit-dirs
gcsfuse או את השדה implicit-dirs כדי שהתיקיות יופיעו בקטגוריה המצורפת.
לדוגמה, כדי לטעון קטגוריה בשם my-bucket עם תיקיות לספרייה /path/to/mount/point, מריצים את הפקודה הבאה:
gcsfuse my-bucket /path/to/mount/pointשליטה בהרשאות הגישה לנקודת הטעינה
כברירת מחדל, Cloud Storage FUSE יוצר נקודות טעינה של קטגוריות, עם הרשאות שמאפשרות גישה לתוכן של הקטגוריות שנטענו רק למשתמש שהפעיל את נקודת הטעינה. זהו אמצעי אבטחה שמוטמע בתוך הליבה (kernel) של FUSE.
כדי לטעון קטגוריה ולאפשר לאחרים לגשת לנקודת הטעינה של הקטגוריה, אפשר להריץ את הפקודה mount ברמה הבסיסית (root) עם האפשרות -o allow_other:
mount -t gcsfuse -o allow_other my-bucket /path/to/mount/pointאם רוצים להימנע מטעינת הקטגוריה ברמה הבסיסית (root), צריך להוסיף את user_allow_other לקובץ /etc/fuse.conf כדי לאפשר לאחרים גישה לנקודת הטעינה של הקטגוריה.
ניתוק קטגוריה
כדי לנתק קטגוריה, צריך להשתמש בכלי fusermount:
fusermount -u /path/to/mount/pointהמאמרים הבאים
מידע ולמידה על שיטות מומלצות לכוונון הביצועים של Cloud Storage FUSE, כמו איך לשלוט בהתנהגות השמירה במטמון או איך לרשום פעילות ביומן.
מידע נוסף על הסמנטיקה של ספריות ב-Cloud Storage FUSE