בדף הזה מובאת סקירה כללית על מערכת הקבצים של מערכת הפעלה שמותאמת לקונטיינרים, ומוסבר איך לטעון ולפרמט דיסקים.
מערכת קבצים
פריסת מערכת הקבצים של תמונת הצומת של מערכת הפעלה שמותאמת לקונטיינרים מותאמת כדי לשפר את אבטחת הצומת. השטח בדיסק האתחול מחולק לשלושה סוגים של מחיצות:
- מחיצת הבסיס, שנטענת לקריאה בלבד.
- מחיצות עם שמירת מצב, שהן ניתנות לכתיבה ושומרות מצב.
- מחיצות ללא מצב, שאפשר לכתוב בהן אבל התוכן לא נשמר אחרי הפעלה מחדש.
כשמשתמשים ב-Container-Optimized OS, חשוב לשים לב לחלוקת המחיצות אם מפעילים שירותים משלכם שיש להם ציפיות מסוימות לגבי פריסת מערכת הקבצים מחוץ לקונטיינרים.
מערכת הקבצים ברמה הבסיסית (root) נטענת כקריאה בלבד כדי להגן על שלמות המערכת.
עם זאת, ספריות הבית ו-/mnt/stateful_partition הן קבועות ואפשר לכתוב בהן.
עבודה עם מערכת הקבצים של מערכת הפעלה שמותאמת לקונטיינרים
בהמשך מופיעה רשימה של נתיבים במערכת קבצים של אימג' צומת במערכת הפעלה שמותאמת לקונטיינרים, יחד עם המאפיינים שלהם והשימוש המומלץ:
| נתיב | מאפיינים | מטרה |
|---|---|---|
| / |
|
מערכת הקבצים הבסיסית טעונה לקריאה בלבד כדי לשמור על השלמות שלה. הליבה מאמתת את התקינות של מערכת הקבצים הבסיסית במהלך ההפעלה, ומסרבת לבצע אתחול במקרה של שגיאות. |
| /home /var |
|
הנתיבים האלה מיועדים לאחסון נתונים שנשמרים למשך משך החיים של דיסק האתחול. הם מותקנים מ-/mnt/stateful_partition. |
| /var/lib/google /var/lib/docker /var/lib/toolbox |
|
הנתיבים האלה הם ספריות עבודה לחבילות של Compute Engine (לדוגמה, שירות ניהול החשבונות), Docker ו-Toolbox, בהתאמה. |
| /var/lib/cloud |
|
הנתיב הזה הוא ספריית העבודה של חבילת cloud-init. |
| /etc |
|
בדרך כלל הוא מכיל את ההגדרות שלכם (לדוגמה, systemd שירותים שהוגדרו באמצעות cloud-init). מומלץ לתעד את המצב הרצוי של המכונות ב-cloud-init, כי cloud-init מופעל כשיוצרים מכונה חדשה וגם כשמפעילים מחדש מכונה. |
| /tmp |
|
בדרך כלל משתמשים בו כשטח אחסון זמני, ולא מומלץ לאחסן בו נתונים קבועים. |
| /mnt/disks |
|
אפשר לצרף דיסקים קשיחים קבועים לספריות ב-/mnt/disks. |
הרכבה ופרמוט של דיסקים
כשמשתמשים במערכת הפעלה שמותאמת לקונטיינרים, אפשר לחבר דיסק אחסון מתמיד (persistent disk) או ליצור מכונה עם כונני SSD מקומיים. פועלים לפי ההוראות במאמר עיצוב והרכבה של דיסק מתמשך או במאמר עיצוב והרכבה של מכשיר SSD מקומי, בהתאם לתרחיש השימוש המתאים.
אפשר לטעון את הדיסקים על ידי יצירת תיקיית משנה מתחת לתיקייה /mnt/disks. מכיוון ש-/etc/ הוא בלי שמירת מצב ב-מערכת הפעלה שמותאמת לקונטיינרים, אי אפשר להשתמש ב-/etc/fstab כדי לבצע אוטומטית fsck (בדיקת עקביות של מערכת הקבצים) ולטעון את הדיסקים באתחול. אבל אפשר להשיג את אותה התוצאה על ידי ביצוע הפעולות האלה בקטע bootcmd ב-cloud-config.
בדוגמה הבאה, הדיסק DEVICE_ID נטען בספרייה /mnt/disks.
יוצרים קובץ סקריפט עם התוכן הבא:
#cloud-config bootcmd: - fsck.ext4 -tvy /dev/DEVICE_ID - mkdir -p /mnt/disks/MNT_DIR - mount -t ext4 -o ... /dev/DEVICE_ID /mnt/disks/MNT_DIRמחליפים את מה שכתוב בשדות הבאים:
-
DEVICE_ID: מזהה המכשיר של הדיסק שרוצים לפרמט ולטעון. -
MNT_DIR: הספרייה שבה רוצים לטעון את הדיסק.
במאמרי העזרה של Linux מופיע סט מלא של אפשרויות שנתמכות על ידי הפקודות
fsck.ext4ו-mount.-
מעדכנים את המטא-נתונים של ה-VM כדי לכלול את קובץ הסקריפט באמצעות הדגל
--metadata-from-file.כדי ליצור מכונת VM, משתמשים בפקודה הבאה:
gcloud compute instances create INSTANCE_NAME \ --metadata-from-file user-data=SCRIPT_FILE_NAMEכדי לעדכן מכונה קיימת, משתמשים בפקודה הבאה:
gcloud compute instances add-metadata INSTANCE_NAME \ --metadata-from-file user-data=SCRIPT_FILE_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של מופע ה-VM. -
SCRIPT_FILE_NAME: השם של קובץ הסקריפט של המטא-נתונים.
-