סוכני Storage Transfer Service הם אפליקציות שפועלות בתוך קונטיינר של Open Container Initiative (OCI), ומתאמות עם Storage Transfer Service העברות שכוללות מערכות קבצים או אחסון שתואם ל-S3.
כברירת מחדל, Storage Transfer Service משתמש ב-Docker כדי ליצור ולהפעיל קונטיינרים של OCI.
Storage Transfer Service גם תומך ב-Podman לניהול קונטיינרים. כדי להשתמש ב-Podman, צריך להתקין את הסוכנים באמצעות הפקודה podman run.
אם ההעברה לא כוללת מערכת קבצים או אחסון שתואם ל-S3, לא צריך להגדיר סוכנים.
במאמר הזה מוסבר איך לנהל סוכני העברה בשרתים.
סקירה כללית
התהליכים של הסוכן הם דינמיים. במהלך ההעברה, אפשר להוסיף סוכנים כדי לשפר את הביצועים. סוכנים חדשים שהופעלו מצטרפים למאגר הסוכנים שהוקצה ומבצעים עבודה מהעברות קיימות. אפשר להשתמש בזה כדי לשנות את מספר הנציגים הפעילים, או כדי להתאים את ביצועי ההעברה לביקוש המשתנה להעברות.
תהליכי Agent עמידים בכשלים. אם סוכן אחד מפסיק לפעול, הסוכנים הנותרים ממשיכים לבצע את העבודה. אם כל הסוכנים שלכם מפסיקים לפעול, כשתוסיפו סוכנים חדשים ההעברה תתחדש מהמקום שבו הסוכנים הפסיקו לפעול. כך לא צריך לעקוב אחרי סוכנים, לנסות שוב העברות או להטמיע לוגיקה של שחזור. אפשר להחיל תיקונים, להעביר ולשנות את הגודל של מאגרי הסוכנים באופן דינמי בלי השבתה של ההעברה, על ידי תיאום בין הסוכנים לבין Google Kubernetes Engine.
לדוגמה, אתם שולחים שתי העברות בזמן ששני סוכנים פועלים. אם אחד מהסוכנים מפסיק לפעול בגלל הפעלה מחדש של המחשב או תיקון של מערכת ההפעלה, הסוכן שנותר ממשיך לפעול. שני ההעברות עדיין פועלות, אבל הן מתבצעות לאט יותר כי סוכן יחיד מעביר את הנתונים. אם גם הסוכן שנותר מפסיק לפעול, כל ההעברות לא יתקדמו כי לא יהיו סוכנים פעילים. כשמפעילים מחדש את תהליכי הסוכן, ההעברות ממשיכות מהמקום שבו הן הופסקו.
תהליכי נציגים שייכים למאגר. הם מעבירים את הנתונים שלכם במקביל. לכן, לכל הסוכנים במאגר צריכה להיות גישה לכל מקורות הנתונים שרוצים להעביר.
לדוגמה, אם מעבירים נתונים ממערכת קבצים מסוימת, צריך לצרף את מערכת הקבצים לכל מכונה שמארחת סוכנים במאגר הסוכנים. אם חלק מהסוכנים במאגר יכולים להגיע למקור נתונים וחלק לא, ההעברות ממקור הנתונים הזה לא יצליחו.
לפני שמתחילים
לפני שמגדירים את ההעברות, צריך לוודא שהגדרתם גישה: למשתמשים ולחשבונות שירות.
אם אתם מתכוונים להשתמש בפקודות של gcloud, תצטרכו להתקין את ה-CLI של gcloud.
התקנה והפעלה של סוכני העברה
מומלץ להתקין לפחות שלושה סוכנים בכל מאגר סוכנים, רצוי במכונות נפרדות. מידע נוסף על קביעת מספר הסוכנים להפעלה
אל תכללו בקידומת של מזהה הסוכן מידע רגיש כמו פרטים אישיים מזהים (PII) או נתוני אבטחה. יכול להיות ששמות המשאבים יועברו לשמות של משאבים אחרים ב-Google Cloud, ויוצגו למערכות פנימיות של Google מחוץ לפרויקט שלכם.כדי להתקין ולהפעיל סוכני העברה:
מסוף Google Cloud
נכנסים לדף Agent pools במסוף Google Cloud .
בוחרים את מאגר הסוכנים שאליו רוצים להוסיף את הסוכן החדש.
לוחצים על התקנת נציג.
פועלים לפי ההוראות כדי להתקין ולהפעיל את הסוכן.
מידע נוסף על אפשרויות שורת הפקודה של הסוכן זמין במאמר אפשרויות שורת הפקודה של הסוכן.
CLI של gcloud
כדי להתקין סוכן אחד או יותר באמצעות ה-CLI של gcloud, מריצים את הפקודה gcloud transfer agents install:
gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
--mount-directories=MOUNT_DIRECTORIES
הכלי כולל הוראות מפורטות להתקנת הסוכנים. הפקודה הזו מתקינה סוכנים במחשב, שממופים לשם המאגר שצוין כ-POOL_NAME, ומאמתת את הסוכן באמצעות פרטי הכניסה gcloud.NUM_AGENTS שם המאגר חייב להיות קיים, אחרת תוחזר שגיאה.
הוספת הדגל --mount-directories היא אופציונלית, אבל מומלצת מאוד. הערך שלו הוא רשימה מופרדת בפסיקים של ספריות במערכת הקבצים, שלסוכן תינתן גישה אליהן.
אם לא מציינים את הדגל הזה, כל מערכת הקבצים מועלית לקונטיינר של הסוכן. לפרטים נוספים, ראו gcloudמקור המידע.
מקורות שתואמים ל-S3
כשמתקינים סוכנים לשימוש עם מקור שתואם ל-S3, צריך לספק פרטי כניסה ל-AWS כמשתני סביבה עם הערכים AWS_ACCESS_KEY_ID ו-AWS_SECRET_ACCESS_KEY, או כפרטי כניסה שמוגדרים כברירת מחדל בקובצי ההגדרות של המערכת.
export AWS_ACCESS_KEY_ID=ID
export AWS_SECRET_ACCESS_KEY=SECRET
gcloud transfer agents install --pool=POOL_NAME \
--creds-file=/relative/path/to/service-account-key.json
שימוש במפתח של חשבון שירות
כדי להריץ סוכנים באמצעות מפתח של חשבון שירות, משתמשים באפשרות --creds-file:
gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
--creds-file=/relative/path/to/service-account-key.json
מידע נוסף
כדי לראות את הרשימה המלאה של הדגלים האופציונליים, מריצים את הפקודה gcloud transfer agents install --help או קוראים את המאמר בנושא gcloud transfer.
Docker
לפני שמשתמשים ב-Docker כדי להתקין סוכנים, צריך לפעול לפי ההוראות להתקנת Docker.
הפקודה docker run מתקינה סוכן אחד. כדי להגדיל את מספר הסוכנים במאגר, מריצים את הפקודה הזו שוב כמה פעמים שצריך.
כשמתקינים סוכנים, אפשר לבחור אם לבצע אימות באמצעות gcloudפרטי הכניסה שמוגדרים כברירת מחדל או באמצעות חשבון שירות.
פרטי כניסה שמוגדרים כברירת מחדל
כדי לאפשר לקונטיינר Docker לבצע אימות באמצעות gcloud פרטי הכניסה שמוגדרים כברירת מחדל, מריצים את הפקודה הבאה כדי ליצור נפח Docker שמכיל קובץ עם פרטי הכניסה שמוגדרים כברירת מחדל באפליקציה:
sudo docker run -ti --name gcloud-config google/cloud-sdk gcloud auth application-default login
לאחר מכן משתמשים בפקודה הבאה כדי להתקין סוכן, באמצעות הדגל --volumes-from כדי לטעון את אמצעי האימות של gcloud-config:
sudo docker run --ulimit memlock=64000000 -d --rm \ --volumes-from gcloud-config \ -v HOST_DIRECTORY:CONTAINER_DIRECTORY \ gcr.io/cloud-ingest/tsop-agent:latest \ --project-id=PROJECT_ID \ --hostname=$(hostname) \ --agent-pool=POOL_NAME
אימות באמצעות חשבון שירות
כדי להתקין ולהפעיל סוכני העברה docker run באמצעות פרטי כניסה של חשבון שירות, מציינים את הנתיב למפתח של חשבון השירות בפורמט JSON באמצעות הדגל --creds-file.
הנתיב חייב להתחיל במחרוזת /transfer_root.
מידע נוסף על מפתחות לחשבונות שירות זמין במאמר יצירה וניהול של מפתחות לחשבונות שירות.
sudo docker run --ulimit memlock=64000000 -d --rm \ -v HOST_DIRECTORY:CONTAINER_DIRECTORY \ -v PATH/TO/KEY.JSON:/etc/gcloud/key.json:ro \ gcr.io/cloud-ingest/tsop-agent:latest \ --project-id=PROJECT_ID \ --creds-file=/etc/gcloud/key.json \ --hostname=$(hostname) \ --agent-pool=POOL_NAME
אפשרויות ודגלים
מחליפים את המשתנים בדוגמאות שלמעלה במידע הבא:
-
HOST_DIRECTORYהיא הספרייה במחשב המארח שממנה רוצים להעתיק. אפשר להשתמש ביותר מדגל-vכדי לציין ספריות נוספות להעתקה. -
CONTAINER_DIRECTORYהיא הספרייה שממופה בתוך מאגר הסוכנים. הערך חייב להיות זהה לערך שלHOST_DIRECTORY. -
PROJECT_IDהוא מזהה הפרויקט שמארח את ההעברה. -
POOL_NAMEהוא שם מאגר הסוכנים שבו רוצים להתקין את הסוכן הזה. אם לא מציינים את הדגל הזה, הסוכן מותקן במאגרtransfer_service_defaultשל הפרויקט.
הפקודה docker run תומכת בדגלים נוספים.
--enable-mount-directoryמעלה את כל מערכת הקבצים בספרייה/transfer_rootבמאגר התגים. אם מציינים את--enable-mount-directory, לא מוחלות הגבלות על ספריות באמצעות הדגל-v.
--creds-file=/etc/gcloud/key.jsonמציין את הנתיב לקובץ פרטי הכניסה של חשבון השירות בפורמט JSON במאגר. הקובץ הזה מותקן באמצעות הדגל-v <var>HOST_PATH/TO/KEY.JSON</var>:/etc/gcloud/key.json:roבפקודה.הערך
--enable-s3מציין שהסוכן הזה מיועד להעברות מאחסון שתואם ל-S3. אי אפשר להשתמש בסוכנים שהותקנו באמצעות האפשרות הזו להעברות ממערכות קבצים של POSIX.אם ההעברה היא מ-AWS S3 או מאחסון שתואם ל-S3, צריך להעביר את מזהה מפתח הגישה ואת המפתח הסודי באמצעות משתני סביבה:
sudo docker run --ulimit memlock=64000000 -d --rm \ -v HOST_DIRECTORY:CONTAINER_DIRECTORY \ -v PATH/TO/KEY.JSON:/etc/gcloud/key.json:ro \ -e AWS_ACCESS_KEY_ID=AWS_ACCESS_KEY_ID \ -e AWS_SECRET_ACCESS_KEY=AWS_SECRET_ACCESS_KEY \ gcr.io/cloud-ingest/tsop-agent:latest \ --project-id=PROJECT_ID \ --creds-file=/etc/gcloud/key.json \ --hostname=$(hostname) \ --agent-pool=POOL_NAME
--gcs-api-endpoint=storage.LOCATION.rep.googleapis.comמציין נקודת קצה אזורית של Cloud Storage. כשמציינים נקודת קצה אזורית של Cloud Storage, כל תעבורת העברת הנתונים דרך הסוכן נשארת באותו אזור של Google Cloud. פרטים נוספים זמינים במאמר בנושא נקודות קצה אזוריות.
--env HTTPS_PROXY=PROXYמציין שרת proxy קדימה ברשת. הערך שלPROXYהוא כתובת URL מסוג HTTP ומספר היציאה של שרת ה-proxy. כדי למנוע כפילות של בקשות בהצפנת TLS, חשוב לציין כתובת URL מסוג HTTP ולא כתובת URL מסוג HTTPS. בקשות שעברו עטיפה כפולה מונעות משרת ה-proxy לשלוח בקשות יוצאות תקינות.
--agent-id-prefix=ID_PREFIXמציין קידומת אופציונלית שמופיעה לפני מזהה הסוכן כדי לעזור לזהות את הסוכן או את המחשב שלו במסוף Google Cloud . כשמשתמשים בקידומת, מזהה הסוכן מעוצב כ-prefix + hostname + Docker container ID.
--log-dir=LOGS_DIRECTORYמשנה את הספרייה שאליה הסוכן כותב יומנים. ספריית ברירת המחדל היא/tmp/.אם לא ציינתם את
--enable_mount_directory, אתם צריכים להוסיף את הקידומת/transfer_rootלנתיב הזה. לדוגמה:/transfer_root/logs.
--max-physical-mem=MAX_MEMORY: סוכנים מוגדרים כברירת מחדל לשימוש בזיכרון מערכת של עד 8GB. אם ברירת המחדל לא מתאימה לסביבה שלכם, אתם יכולים לציין את השימוש המקסימלי הרלוונטי בזיכרון בפורמטים הבאים:ערך של max-physical-memהגדרת זיכרון מקסימלית 6g6 ג'יגה-בייט 6gb6 ג'יגה-בייט 6GiB6 ג'יביבייט
--network=DOCKER_NETWORK: ציון רשת Docker לקונטיינר הזה. ציון--network=hostיכול לשפר את הביצועים על ידי הפחתת התקורה של הרשת, אבל מאפשר גישה מלאה של מאגר התגים לרשת של המארח.
Podman
לפני שמשתמשים ב-Podman כדי להתקין סוכנים, צריך להתקין את Podman:
sudo apt-get update
sudo apt-get -y install podman
כשמתקינים סוכנים, אפשר לבחור אם לבצע אימות באמצעות gcloudפרטי הכניסה שמוגדרים כברירת מחדל או באמצעות חשבון שירות.
פרטי כניסה שמוגדרים כברירת מחדל
כדי לאפשר לקונטיינר של הסוכן לבצע אימות באמצעות פרטי ברירת המחדל של Google Cloud CLI, יוצרים נפח שמכיל קובץ עם פרטי ברירת המחדל של האפליקציה באמצעות הפקודה הבאה:
gcloud auth print-access-token | podman login -u oauth2accesstoken --password-stdin gcr.io sudo podman pull gcr.io/google.com/cloudsdktool/google-cloud-cli:stable sudo podman run -ti --replace --name gcloud-config gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud auth application-default login
לאחר מכן משתמשים בפקודה הבאה כדי להתקין סוכן, באמצעות הדגל --volumes-from כדי לטעון את אמצעי האימות של gcloud-config.
הפקודה מתקינה סוכן אחד. כדי להגדיל את מספר הסוכנים במאגר, מריצים את הפקודה הזו שוב כמה פעמים שצריך.
sudo podman run --ulimit memlock=64000000 -d --rm \ --volumes-from gcloud-config \ -v HOST_DIRECTORY:CONTAINER_DIRECTORY \ gcr.io/cloud-ingest/tsop-agent:latest \ --project-id=PROJECT_ID \ --hostname=$(hostname) \ --agent-pool=POOL_NAME
אימות באמצעות חשבון שירות
כדי להתקין ולהפעיל סוכני העברה באמצעות פרטי כניסה של חשבון שירות, צריך לוודא שמפתח חשבון השירות בפורמט JSON זמין במאגר. כדי לעשות את זה:
- מטמיעים את מיקום המארח של המפתח בכל נתיב בכלי הקיבול. לדוגמה:
-v $HOME/.config/gcloud/credentials.json:/key.json:ro. ההגדרה הזו מציינת שהמפתח נמצא במחשב המארח בנתיב$HOME/.config/gcloud/credentials.jsonוצריך לטעון אותו כ-/key.jsonבמאגר. הסימןroמציין שהקובץ זמין לקריאה בלבד עבור המאגר. - מציינים את נתיב מאגר התגים של המפתח כערך של
--creds-file. בדוגמה מהשלב הקודם, מציינים את הערך--creds-file=/key.json.
מידע נוסף על מפתחות לחשבונות שירות זמין במאמר יצירה וניהול של מפתחות לחשבונות שירות.
sudo podman run --ulimit memlock=64000000 -d --rm \ -v HOST_DIRECTORY:CONTAINER_DIRECTORY \ -v HOST_PATH/TO/KEY.JSON:/etc/gcloud/key.json:ro \ gcr.io/cloud-ingest/tsop-agent:latest \ --project-id=PROJECT_ID \ --creds-file=/etc/gcloud/key.json \ --hostname=$(hostname) \ --agent-pool=POOL_NAME
אפשרויות ודגלים
מחליפים את המשתנים בדוגמאות שלמעלה במידע הבא:
-
HOST_DIRECTORYהיא הספרייה במחשב המארח שממנה רוצים להעתיק. אפשר להשתמש ביותר מדגל-vכדי לציין ספריות נוספות להעתקה. -
CONTAINER_DIRECTORYהיא הספרייה שממופה בתוך מאגר הסוכנים. הערך חייב להיות זהה לערך שלHOST_DIRECTORY. -
PROJECT_IDהוא מזהה הפרויקט שמארח את ההעברה. -
POOL_NAMEהוא שם מאגר הסוכנים שבו רוצים להתקין את הסוכן הזה. אם לא מציינים את הדגל הזה, הסוכן מותקן במאגרtransfer_service_defaultשל הפרויקט.
הפקודה podman run תומכת בדגלים נוספים.
--enable-mount-directoryמעלה את כל מערכת הקבצים בספרייה/transfer_rootבמאגר התגים. אם מציינים את--enable-mount-directory, לא מוחלות הגבלות על ספריות באמצעות הדגל-v.
--creds-file=/etc/gcloud/key.jsonמציין את הנתיב לקובץ פרטי הכניסה של חשבון השירות בפורמט JSON במאגר. הקובץ הזה מותקן באמצעות הדגל-v <var>HOST_PATH/TO/KEY.JSON</var>:/etc/gcloud/key.json:roבפקודה.הערך
--enable-s3מציין שהסוכן הזה מיועד להעברות מאחסון שתואם ל-S3. אי אפשר להשתמש בסוכנים שהותקנו באמצעות האפשרות הזו להעברות ממערכות קבצים של POSIX.אם ההעברה היא מ-AWS S3 או מאחסון שתואם ל-S3, צריך להעביר את מזהה מפתח הגישה ואת המפתח הסודי באמצעות משתני סביבה:
-e AWS_ACCESS_KEY_ID=AWS_ACCESS_KEY_ID \ -e AWS_SECRET_ACCESS_KEY=AWS_SECRET_ACCESS_KEY ```
--env HTTPS_PROXY=PROXYמציין שרת proxy קדימה ברשת. הערך שלPROXYהוא כתובת URL מסוג HTTP ומספר היציאה של שרת ה-proxy. כדי למנוע כפילות של בקשות בהצפנת TLS, חשוב לציין כתובת URL מסוג HTTP ולא כתובת URL מסוג HTTPS. בקשות שעברו עטיפה כפולה מונעות משרת ה-proxy לשלוח בקשות יוצאות תקינות.
--agent-id-prefix=ID_PREFIXמציין קידומת אופציונלית שמופיעה לפני מזהה הסוכן כדי לעזור לזהות את הסוכן או את המחשב שלו במסוף Google Cloud . כשמשתמשים בקידומת, מזהה הסוכן מעוצב כ-prefix + hostname + OCI container ID.
--log-dir=LOGS_DIRECTORYמשנה את הספרייה שאליה הסוכן כותב יומנים. ספריית ברירת המחדל היא/tmp/.אם לא ציינתם את
--enable_mount_directory, אתם צריכים להוסיף את הקידומת/transfer_rootלנתיב הזה. לדוגמה:/transfer_root/logs.
--max-physical-mem=MAX_MEMORY: סוכנים מוגדרים כברירת מחדל לשימוש בזיכרון מערכת של עד 8GB. אם ברירת המחדל לא מתאימה לסביבה שלכם, אתם יכולים לציין את השימוש המקסימלי הרלוונטי בזיכרון בפורמטים הבאים:ערך של max-physical-memהגדרת זיכרון מקסימלית 6g6 ג'יגה-בייט 6gb6 ג'יגה-בייט 6GiB6 ג'יביבייט
--network=DOCKER_NETWORK: ציון רשת Docker לקונטיינר הזה. ציון--network=hostיכול לשפר את הביצועים על ידי הפחתת התקורה של הרשת, אבל מאפשר גישה מלאה של מאגר התגים לרשת של המארח.
פתרון בעיות
אם ההגדרה של SELinux מחייבת להציב תוויות על תוכן של נפח (volume) שמוטמע בתוך קונטיינר, מוסיפים את הדגל :Z לנפח:
sudo podman run --ulimit memlock=64000000 -d --rm \
-v HOST_DIRECTORY:CONTAINER_DIRECTORY:Z \
-v HOST_PATH/TO/KEY.JSON:/etc/gcloud/key.json:ro \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--creds-file=/etc/gcloud/key.json:ro \
--hostname=$(hostname) \
--agent-pool=POOL_NAME
ללא תווית, יכול להיות שמערכת האבטחה תמנע מהתהליכים שפועלים בתוך הקונטיינר להשתמש בתוכן. כברירת מחדל, Podman לא משנה את התוויות שהוגדרו על ידי מערכת ההפעלה.
אישור החיבורים של הנציג
כדי לוודא שהסוכנים מחוברים:
נכנסים לדף Agent pools במסוף Google Cloud .
מאגרי הסוכנים מוצגים עם מספר הסוכנים המחוברים.
בוחרים מאגר סוכנים כדי לראות פרטים על סוכנים מחוברים.
אם נציג/ת תמיכה חדש/ה לא מופיע/ה בדף של מאגר הנציגים תוך 10 דקות מהיצירה שלו/שלה, אפשר לעיין במאמר נציגי תמיכה לא מחוברים.
מעקב אחר פעילות של סוכנים
אפשר להשתמש ב-Cloud Monitoring כדי לעקוב אחרי פעילות הסוכן.
המעקב זמין במאפיינים project, agent_pool ו-agent_id.
בעזרת נתוני המעקב האלה, תוכלו להגדיר התראות שישלחו לכם אם יהיו בעיות פוטנציאליות בהעברה. כדי לעשות זאת, יוצרים התראה על אחד מהמדדים הבאים של Google Cloud:
| שם המדד | מה הוא מתאר | שימושים מומלצים |
|---|---|---|
| storagetransfer.googleapis.com/agent/transferred_bytes_count | המדד הזה מראה כמה מהר סוכן מסוים מעביר נתונים בכל המשימות שהוא מטפל בהן בנקודת זמן מסוימת. | התראה על ירידות בביצועים. |
| storagetransfer.googleapis.com/agent/connected | ערך בוליאני שהוא True לכל סוכן ש-Google Cloud קיבל ממנו לאחרונה הודעת דופק. |
|
הפסקת סוכן
כדי לעצור סוכן, מריצים את הפקודה docker stop במזהה קונטיינר Docker של הסוכן. כדי למצוא את המזהה ולהפסיק את הסוכן:
נכנסים לדף Agent pools במסוף Google Cloud .
בוחרים את מאגר הסוכנים שמכיל את הסוכן שרוצים להפסיק.
בוחרים סוכן מהרשימה. בשדה מסנן אפשר לחפש קידומות, סטטוס של סוכן, גיל של סוכן ועוד.
לוחצים על הפסקת הסוכן. הפקודה
docker stopעם מזהה מאגר התגים הספציפי מוצגת.מריצים את הפקודה במכונה שבה פועל הסוכן. פקודת
docker stopשמסתיימת ללא שגיאות מחזירה את מזהה מאגר התגים.
אחרי שמפסיקים את הסוכן, הוא מופיע ברשימת מאגרי הסוכנים עם הכיתוב מנותק.
הפעלה מחדש של נציג
אי אפשר להפעיל מחדש נציגים שהופסקו. במקום זאת, מתקינים סוכנים חדשים במאגר הסוכנים.
מחיקת סוכן
כדי למחוק סוכנים ספציפיים, צריך לפרט אילו סוכנים פועלים במחשב:
docker container list --all --filter ancestor=gcr.io/cloud-ingest/tsop-agent
לאחר מכן מעבירים את מזהי הסוכנים אל transfer agents delete:
gcloud transfer agents delete --ids=id1,id2,…
כדי למחוק את כל הסוכנים שפועלים במחשב, משתמשים בדגל --all או בדגל --uninstall. שני הדגלים מוחקים את כל הסוכנים במכונה;
הדגל --uninstall גם מסיר את ההתקנה של קובץ אימג' של Docker של הסוכן.
gcloud transfer agents delete --all
gcloud transfer agents delete --uninstall
פרטים על העברה של מערכת קבצים
העברות מצטברות
Storage Transfer Service מתחיל את כל ההעברות בחישוב הנתונים שקיימים במקור וביעד, כדי לקבוע אילו קבצים במקור הם חדשים, עודכנו או נמחקו מאז ההעברה האחרונה. אנחנו עושים את זה כדי לצמצם את כמות הנתונים שאנחנו שולחים מהמכונות שלכם, כדי להשתמש ברוחב הפס בצורה יעילה וכדי לקצר את זמני ההעברה.
כדי לזהות אם קובץ השתנה, אנחנו בודקים את השעה והגודל של השינוי האחרון בקובץ המקור, ומשווים אותם לשעה ולגודל של השינוי האחרון שתועדו כשהקובץ הועתק לאחרונה. כשמזהים קובץ חדש או קובץ שעבר שינוי, מעתיקים את הקובץ כולו ליעד שלו. מידע נוסף על עדכניות הקובץ זמין במאמר פרטים על עקביות הנתונים.
כברירת מחדל, אנחנו מזהים קבצים שנמחקו במקור, אבל לא מבצעים פעולה לגביהם. אם בוחרים באפשרות הסנכרון מחיקת קובצי היעד שלא נמצאים גם במקור כשיוצרים או עורכים העברה, המערכת תמחק את האובייקט התואם ביעד.
אם בוחרים באפשרות הסנכרון מחיקת קובצי יעד שלא נמצאים גם במקור, קבצים שנמחקו בטעות במקור נמחקים גם ביעד. כדי למנוע אובדן נתונים כתוצאה ממחיקות לא מכוונות, מומלץ להפעיל ניהול גרסאות של אובייקטים בדלי היעד אם בוחרים להשתמש באפשרות הזו. אם מוחקים קובץ בטעות, אפשר לשחזר את האובייקטים ב-Cloud Storage לגרסה ישנה יותר.
פרטים על עקביות הנתונים
בפעולת העברה מוצלחת, כל קובצי המקור שהיו קיימים ולא שונו במהלך כל זמן הפעולה יועברו. יכול להיות ששינויים שבוצעו בקובצי מקור במהלך ההעברה (יצירה, עדכון או מחיקה) ישתקפו במערך נתוני היעד, ויכול להיות שלא.
Storage Transfer Service משתמש בגודל הקובץ ובשעת העדכון האחרון שלו כדי לקבוע אם הוא השתנה. אם קובץ מעודכן בלי לשנות את זמן השינוי האחרון או את הגודל שלו, ואתם מפעילים את האפשרות delete-objects-from-source, יכול להיות שתאבדו נתונים מהשינוי הזה.
כשמשתמשים בתכונה delete-objects-from-source, מומלץ מאוד להקפיא את פעולות הכתיבה למקור למשך ההעברה כדי למנוע אובדן נתונים.
כדי להקפיא את פעולות הכתיבה למקור, אפשר לבצע אחת מהפעולות הבאות:
- משכפלים את הספרייה שרוצים להעביר, ואז משתמשים בספרייה המשוכפלת כמקור להעברה.
- עוצרים את האפליקציות שכותבות לספריית קובצי המקור.
אם חשוב לכם לתעד שינויים שחלו במהלך ההעברה, אתם יכולים להפעיל מחדש את ההעברה או להגדיר את מערכת הקבצים של המקור כקריאה בלבד בזמן שהפעולה פועלת.
מכיוון שב-Cloud Storage אין מושג של ספריות, ספריות מקור ריקות לא מועברות.