המסמך הזה מיועד למקבלי החלטות בתחום ה-IT, לאדמינים של גיבויים ולאדמינים של התאוששות מאסון (DR) שרוצים ללמוד על תמונות מצב מתוזמנות של Filestore או ליצור אותן.
מטרות
- מגדירים פונקציות Cloud Run ואת קובץ ההגדרות בפורמט JSON.
- יוצרים משימה של Cloud Scheduler.
- יצירה ותיוג של תמונות מצב מתוזמנות של Filestore.
- עוקבים אחרי תהליך יצירת ה-snapshot.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Filestore, Cloud Scheduler, Cloud Functions, App Engine, and Cloud Build APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Filestore, Cloud Scheduler, Cloud Functions, App Engine, and Cloud Build APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
מודל הפריסה
בתרשים הבא מוצג מודל הפריסה שתומך בפונקציות של Cloud Run לתמונות מצב של Filestore.
המשימה של Cloud Scheduler מתואמת עם פונקציות Cloud Run כדי לתזמן וליצור תמונות מצב של Filestore וקבצי יומן. התמונות הזמניות זמינות בשיתוף של Filestore.
מגבלות ידועות
כשמתכוננים להגדיר מתזמן של צילומי מצב למופעי Filestore, כדאי להביא בחשבון את המגבלות הבאות:
- הפונקציה מוחקת רק תמונת מצב אחת כשצריך, גם אם יש יותר תמונות מצב של מתזמן ממה שהוגדר בקובץ התצורה של מדיניות השמירה, או אם קובץ התצורה של מדיניות השמירה עודכן כך שיישארו פחות תמונות מצב ממה שהיה קודם.
- אם מקטינים את הערך המספרי של
snapshotsבקובץ ההגדרות בפורמט JSON, התמונות המיותרות של מצב המערכת מהמופע לא נמחקות באופן אוטומטי. אם משנים את ההגדרה, צריך למחוק ידנית את התמונות המיותרות. - מכיוון שהמגבלה של מזהה התמונה היא 75 תווים, שם מדיניות השמירה מוגבל ל-50 תווים.
הכנת הסביבה
בקטע הזה מגדירים את משתני הסביבה, משכפלים את המאגר ויוצרים את האפליקציות והקבצים שדרושים למדריך הזה.
הגדרה של משתני סביבה
- ב-Cloud Shell, מזינים את הפקודה הבאה:
gcloud components update
ב-Cloud Shell, יוצרים את המשתנים הבאים:
export PROJECT_ID=PROJECT_ID export GCP_REGION=GCP_REGION export APP_ENGINE_REGION=APP_ENGINE_REGION export FUNCTION_NAME=FUNCTION_NAME export SCHEDULER_NAME=SCHEDULER_NAME export SCHEDULER_EXPRESSION="SCHEDULER_EXPRESSION" export SCHEDULER_TZ=SCHEDULER_TZ export SERVICE_ACCOUNT_NAME=SERVICE_ACCOUNT_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud שבו רוצים להתקין את המופע הארגוני, פונקציית Cloud Run ו-Cloud Scheduler. -
GCP_REGION: האזור שבו רוצים להתקין את המופע הארגוני, את הפונקציה של Cloud Run ואת Cloud Scheduler. Google Cloud -
APP_ENGINE_REGION: אזור מתוך רשימת המיקומים של App Engine שבו רוצים להתקין את App Engine. כדאי להביא בחשבון את הדרישות הבאות:- Google Cloud לפרויקט יכולה להיות רק מופע אחד של App Engine, ואי אפשר לשנות את האזור של App Engine מאוחר יותר.
- המשימה ב-Cloud Scheduler והמכונה של App Engine צריכות להיות באותו אזור.
- לדוגמה, אם משאבי Cloud Scheduler משתמשים ב-
us-central1, צריך להשתמש ב-us-central, שהוא המקבילה ב-App Engine. - ב-App Engine, יש כלל ייחודי למתן שמות לאזורים מסוימים. פרטים נוספים מופיעים ברשימת המיקומים של App Engine.
- לדוגמה, אם משאבי Cloud Scheduler משתמשים ב-
-
FUNCTION_NAME: השם שרוצים לתת לפונקציית Cloud Run. -
SCHEDULER_NAME: השם שרוצים לתת ל-Cloud Scheduler. -
SCHEDULER_EXPRESSION: ביטוי ה-cron של Cloud Scheduler, לדוגמה10 0 * * *. מידע נוסף זמין במאמר בנושא הגדרת לוחות זמנים של משימות cron. -
SCHEDULER_TZ: אזור הזמן שלכם ב-Cloud Scheduler, בפורמט השם מרשימת אזורי הזמן של tz database – לדוגמה,America/Los_Angeles. -
SERVICE_ACCOUNT_NAME: השם של חשבון השירות שנוצר, לדוגמה,scheduler-sa.
-
יצירה של חשבון שירות
בקטע הזה יוצרים חשבון שירות ייעודי, שמאפשר ליצור ולנהל את פונקציית Cloud Run ואת העבודה ב-Cloud Scheduler.
כדי לבצע את הפעולות האלה, לחשבון השירות צריכות להיות ההרשאות הבאות:
file.instances.getfile.snapshots.listfile.snapshots.createfile.operations.getfile.snapshots.deletecloudfunctions.functions.invoke
מידע נוסף זמין במאמרים הרשאות IAM ב-Filestore או הרשאות IAM בפונקציות של Cloud Run.
כדי ליצור את חשבון השירות:
ב-Cloud Shell, יוצרים תפקיד ייעודי למתזמן של תמונות המצב עם ההרשאות הנדרשות:
gcloud iam roles create snapshot_scheduler --project $PROJECT_ID --permissions file.instances.get,file.snapshots.list,file.snapshots.create,file.operations.get,file.snapshots.delete,logging.logEntries.create,cloudfunctions.functions.invoke --stage GAיוצרים את חשבון השירות:
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --project $PROJECT_IDמקשרים את התפקיד לחשבון השירות:
gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com --role projects/$PROJECT_ID/roles/snapshot_scheduler
יצירת מופע של Enterprise
אם עדיין לא יצרתם משתני סביבה למופע Enterprise שבו אתם רוצים להשתמש, ב-Cloud Shell, יוצרים את המשתנים הבאים:
export FILESTORE_INSTANCE_ID=FILESTORE_INSTANCE_ID export FILESTORE_SHARE_NAME=SHARE_NAME export FILESTORE_SHARE_SIZE=NUMERIC_IN_GB export NETWORK_NAME=VPC_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
FILESTORE_INSTANCE_ID: השם של המופע של Enterprise -
SHARE_NAME: השם של השיתוף של המופע הארגוני -
NUMERIC_IN_GB: גודל השיתוף של מכונת הארגון, מספר בין 1024 ל-10240, במרווחים של 256 -
VPC_NAME: השם של רשת ה-VPC שבה רוצים להתקין את המופע של Enterprise
-
אם עדיין לא עשיתם את זה, יוצרים מופע Filestore:
gcloud filestore instances create $FILESTORE_INSTANCE_ID --network name=$NETWORK_NAME --file-share=capacity=$FILESTORE_SHARE_SIZE,name=$FILESTORE_SHARE_NAME --tier ZONAL --project=$PROJECT_ID --location=$GCP_REGION
מידע נוסף מופיע במאמר יצירת מופעים.
יצירת אפליקציית App Engine
בקטע הזה, יוצרים App Engine עבורGoogle Cloud הפרויקט. כך תוכלו ליצור בהמשך המדריך הזה עבודה ב-Cloud Scheduler.
Google Cloud לפרויקט יכול להיות רק App Engine אחד, ואי אפשר לשנות את האזור בשלב מאוחר יותר.
אם אין לכם עדיין אפליקציית App Engine, אתם צריכים ליצור אחת ב-Cloud Shell:
gcloud app create --region=$APP_ENGINE_REGION --project=$PROJECT_ID
יצירת קובץ ההגדרות בפורמט JSON
קובץ התצורה בפורמט JSON יכול להכיל עד שמונה מופעי Filestore, בגלל מגבלה של פונקציות Cloud Run. אם יש לכם יותר משמונה מופעים של Filestore שאתם רוצים לתזמן עבורם צילומי מצב, אתם צריכים להשתמש במשימות נוספות של Cloud Scheduler.
ב-Cloud Shell, יוצרים קובץ חדש בשם
request.jsonועורכים את התוכן בהתאם לסביבה שלכם:{ "retention_policy": "RETENTION_NAME", "instances": [ {"instance_path": "projects/PROJECT_ID/locations/GCP_REGION/instances/FILESTORE_INSTANCE_ID/", "snapshots": NUMBER_OF_SNAPSHOTS } ] }מחליפים את מה שכתוב בשדות הבאים:
-
RETENTION_NAME: השם של סוג השמירה של קובץ ה-snapshot, שיהפוך לחלק משם ה-snapshot. לדוגמה,daily. -
NUMBER_OF_SNAPSHOTS: מספר קובצי ה-snapshot.
-
שכפול המאגר
משכפלים את מאגר ה-Lab ומזינים את הספרייה:
ב-Cloud Shell, משכפלים את מאגר הנתונים של המעבדה:
git clone https://github.com/GoogleCloudPlatform/Filestore-Snapshot-Schedulerהפלט אמור להיראות כך:
Cloning into Filestore-Snapshot-Schedulerמזינים את הספרייה:
cd Filestore-Snapshot-Scheduler
יצירת פונקציית Cloud Run
ב-Cloud Shell, יוצרים את הפתרון של פונקציית Cloud Run:
gcloud functions deploy $FUNCTION_NAME --region $GCP_REGION --runtime=python39 --trigger-http --source scheduler/ --timeout 540 --service-account $SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com --entry-point main --project $PROJECT_ID
לדוגמה:
gcloud functions deploy scheduler_func --region us-central1 --runtime=python39 --trigger-http --source scheduler/ --timeout 540 --service-account scheduler-sa@project1.iam.gserviceaccount.com --entry-point main --project project1
יצירת משימה ב-Cloud Scheduler
המשימה ב-Cloud Scheduler צריכה להיות באזור ששווה לאזור App Engine.
ב-Cloud Shell, יוצרים משימה של Cloud Scheduler עם מתזמן אחד או יותר באותו Filestore instance:
gcloud scheduler jobs create http $SCHEDULER_NAME --schedule "$SCHEDULER_EXPRESSION" --uri "https://$GCP_REGION-$PROJECT_ID.cloudfunctions.net/$FUNCTION_NAME" --http-method POST --message-body-from-file ../request.json --oidc-service-account-email $SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com --time-zone $SCHEDULER_TZ --project $PROJECT_ID
בדוגמה הבאה, מתזמן הפעולות היומי פועל בשעה 20:00:
gcloud scheduler jobs create http daily_scheduler --schedule "0 20 * * *" --uri "https://us-central1-project1.cloudfunctions.net/scheduler_func" --http-method POST --message-body-from-file ../request.json --oidc-service-account-email scheduler-sa@project1.iam.gserviceaccount.com --time-zone America/Los_angeles --project project1
אימות קובצי ה-snapshot המתוזמנים של Filestore
נכנסים לדף Cloud scheduler במסוף Google Cloud .
בשורה של העבודה שיצרתם, לוחצים על פעולות > הפעלת עבודה בכוח.
לוחצים על רענון.
- אם העבודה מופעלת בהצלחה, בעמודה Last run result (תוצאת ההפעלה האחרונה) מוצגת חותמת זמן של העבודה האחרונה שהושלמה בהצלחה.
אם העבודה נכשלת, מבצעים את הפעולות הבאות:
נכנסים לדף Cloud Functions.
בשורה של הפונקציה שיצרתם, לוחצים על פעולות > הצגת יומנים.
מחפשים הודעת שגיאה ומבצעים את פעולות פתרון הבעיות בהתאם.
נכנסים לדף Filestore instances במסוף Google Cloud .
ברשימה Instances, בוחרים את המכונה ומוודאים שיש לה תמונת מצב בפורמט השם הבא:
sched-RETENTION_NAME-DATE-TIMEלדוגמה,
sched-daily-20220315-120640.
הסרת המשאבים
הסרת המשאבים
כדי להימנע מחיובים בחשבון Cloud Platform בגלל השימוש במשאבים שנעשה במסגרת מדריך זה, צריך למחוק את הפרויקט שמכיל את המשאבים.
מחיקת הפרויקט
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
המאמרים הבאים
- מידע נוסף על תמונות מצב של Filestore
- מידע נוסף על גיבויים ב-Filestore
- כדאי להעמיק את הקריאה ולהכיר דוגמאות לארכיטקטורות, תרשימים ושיטות מומלצות בנושאי Google Cloud. כל אלה זמינים במרכז הארכיטקטורה של Cloud.