אפשרויות מתקדמות

במאמר הזה מתוארות אפשרויות מתקדמות להגדרת העברות של מערכות קבצים, כולל:

העתקת נתונים בכרכים של CIFS או SMB

סוכני העברה לא נתמכים ישירות בשרתים של Windows. עם זאת, אפשר להעביר נתונים שמאוחסנים במערכת קבצים שתואמת ל-POSIX על ידי טעינתה בשרת Linux או במכונה וירטואלית (VM), ולאחר מכן הפעלת סוכן משרת Linux או מהמכונה הווירטואלית כדי להעתיק את הנתונים ל-Cloud Storage.

כדי להעביר נתונים מנפח CIFS או SMB:

  1. מקצים שרת או מכונה וירטואלית של Linux.

    רשימת מערכות ההפעלה הנתמכות מופיעה במאמר דרישות מוקדמות.

  2. מריצים את הפקודה הבאה בשרת או במכונה הווירטואלית של Linux שהקציתם כדי לטעון את אמצעי האחסון:

    sudo mount -t cifs -o
    username=WINDOWS-SHARE-USER,password=WINDOWS-SHARE-PASSWORD //IP-ADDRESS/SHARE-NAME /mnt
    

    מחליפים את מה שכתוב בשדות הבאים:

    • IP-ADDRESS: כתובת ה-IP של שרת Microsoft Windows שבו נמצא נפח ה-CIFS או ה-SMB.
    • SHARE-NAME: שם השיתוף שאתם מפעילים.
    • WINDOWS-SHARE-USER: משתמש מורשה לגישה לנפח CIFS או SMB.
    • WINDOWS-SHARE-PASSWORD: הסיסמה של המשתמש המורשה בנפח CIFS או SMB.
  3. מריצים את הפקודה הבאה כדי לוודא שנפח ה-CIFS מותקן:

    findmnt -l
    
  4. מריצים את הפקודות הבאות כדי לוודא שהמשתמש שיריץ את הסוכן יכול להציג רשימה של קבצים ולהעתיק אותם בנפח האחסון המצורף:

    sudo -u USERNAME cp /mnt/FILE1 /mnt/FILE2
    

    מחליפים את מה שכתוב בשדות הבאים:

    • USERNAME: המשתמש שיריץ את הסוכן.
    • FILE1: הקובץ שממנו מעתיקים.
    • FILE2: שם הקובץ שאליו רוצים להעתיק.
  5. התקנת סוכן ההעברה

שימוש בפרטי כניסה לחשבון שירות

אפשר להשתמש בפרטי הכניסה של חשבון שירות כדי להריץ את הסוכן. שימוש בפרטי הכניסה של חשבון השירות מאפשר לאמת את סוכן ההעברה בלי להסתמך על חשבון משתמש יחיד. מידע נוסף על סוגי חשבונות זמין במאמר בנושא חשבונות משתמש.

  1. יוצרים מפתח לחשבון השירות. מידע נוסף זמין במאמר יצירה וניהול של מפתחות לחשבונות שירות.

  2. מעבירים את המיקום של מפתח לנותני שירות לפקודה ליצירת הסוכן:

    gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
      --mount-directories=MOUNT_DIRECTORIES \
      --creds-file=RELATIVE_PATH_TO/KEY_FILE.JSON
    

    קובץ האישורים מותקן אוטומטית על ידי gcloud transfer ואין צורך לציין אותו באמצעות הדגל --mount-directories.

התאמת הזיכרון המקסימלי של הסוכן

כברירת מחדל, סוכני ההעברה משתמשים בזיכרון מערכת של עד 8GiB. אתם יכולים לשנות את כמות הזיכרון המקסימלית שבה משתמשים הסוכנים כדי להתאים אותה לסביבה שלכם. לשם כך, מעבירים את --max-physical-mem=MAXIMUM-MEMORY ומחליפים את MAXIMUM-MEMORY בערך שמתאים לסביבה שלכם. הסימון הזה נתמך רק בפקודה docker run.

אלה דרישות הזיכרון של שירות ההעברה לסוכני נתונים מקומיים:
  • זיכרון מינימלי: 1GiB
  • הזיכרון המינימלי שנדרש כדי לתמוך בהעלאות עם ביצועים גבוהים: 6GiB

מומלץ להשתמש בברירת המחדל של 8GiB.

בטבלה הבאה מפורטות דוגמאות לפורמטים קבילים של MAXIMUM-MEMORY:

ערך של max-physical-mem הגדרת זיכרון מקסימלית
6g ‫6 ג'יגה-בייט
6gb ‫6 ג'יגה-בייט
6GiB ‫6 ג'יביבייט

הגבלת הגישה של סוכנים לספרייה

משתמשים שיש להם הרשאה ליצור משימות העברה יכולים לאחזר נתונים מכל ספרייה במערכת הקבצים שהסוכן יכול לגשת אליה, ולהוריד אליה נתונים.

אם סוכנים מופעלים כ-root ומקבלים גישה לכל מערכת הקבצים, גורם זדוני עלול להשתלט על המארח. מומלץ מאוד להגביל את הגישה של הסוכן רק לספריות הנדרשות.

כדי להגביל את הגישה של נציג לספריות מסוימות:

gcloud

כדי לציין ספריות שהסוכן יכול לגשת אליהן במערכת קבצים, משתמשים בדגל --mount-directories עם gcloud transfer agents install:

gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
  --mount-directories=MOUNT_DIRECTORIES

כדי לציין כמה ספריות, מפרידים ביניהן בפסיק בלי רווח:

gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
  --mount-directories=MOUNT_DIRECTORY_1,MOUNT_DIRECTORY_2

אם מציינים קובץ פרטי כניסה באמצעות הדגל --creds-file,‏ gcloud transfer יטען את קובץ פרטי הכניסה באופן אוטומטי. קבצים אחרים באותה ספרייה של קובץ פרטי הכניסה לא מותקנים.

docker run

כדי לציין ספריות שהסוכן יכול לגשת אליהן במהלך העברה, מעבירים את הערך -v HOST_DIRECTORY:CONTAINER_DIRECTORY לסוכן ומציינים את הפרטים הבאים:

  • HOST_DIRECTORY היא הספרייה במחשב המארח שממנה רוצים להעתיק.
  • CONTAINER_DIRECTORY היא הספרייה שממופה בתוך מאגר הסוכנים.

הערכים של HOST_DIRECTORY ושל CONTAINER_DIRECTORY צריכים להיות זהים כדי שהסוכן יוכל לאתר קבצים להעתקה.

כשמשתמשים באפשרות הזו:

  • אל תציינו את הערך --enable-mount-directory.
  • אל תתחילו את נתיב הקובץ ב-/transfer_root.

האפשרות --enable-mount-directory מטעינה את כל מערכת הקבצים בספרייה /transfer_root במאגר התגים. אם מציינים את --enable-mount-directory, לא מוחלות הגבלות על הספרייה.

אפשר להשתמש ביותר מדגל -v אחד כדי לציין ספריות נוספות להעתקה. לדוגמה:

sudo docker run --ulimit memlock=64000000 -d -rm --volumes-from gcloud-config \
-v /usr/local/research:/usr/local/research \
-v /usr/local/billing:/usr/local/billing \
-v /tmp:/tmp \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--hostname=$(hostname) \
--agent-id-prefix=ID_PREFIX

אם אתם משתמשים בחשבון שירות, ודאו שאתם מטמיעים את קובץ פרטי הכניסה במאגר ומעבירים את --creds-file=CREDENTIAL_FILE. לדוגמה:

sudo docker run --ulimit memlock=64000000 -d -rm \
-v HOST_DIRECTORY:CONTAINER_DIRECTORY \
-v /tmp:/tmp \
-v FULL_CREDENTIAL_FILE_PATH:FULL_CREDENTIAL_FILE_PATH \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--creds-file=CREDENTIAL_FILE \
--hostname=$(hostname) \
--agent-id-prefix=ID_PREFIX

מחליפים את מה שכתוב בשדות הבאים:

  • HOST_DIRECTORY: הספרייה במחשב המארח שרוצים להעתיק ממנה.
  • CONTAINER_DIRECTORY: הספרייה שממופה בקונטיינר של הסוכן.
  • FULL_CREDENTIAL_FILE_PATH: הנתיב המלא לקובץ פרטי הכניסה.
  • PROJECT_ID: מזהה הפרויקט שבו מתארחים משאבי ההעברה שנוצרו ושעליהם מתבצע חיוב.
  • CREDENTIAL_FILE: קובץ של פרטי כניסה לחשבון שירות בפורמט JSON. מידע נוסף על יצירת קובץ פרטי כניסה של חשבון שירות זמין במאמר יצירה וניהול של מפתחות לחשבונות שירות.
  • ID_PREFIX: התחילית שמופיעה לפני מזהה הסוכן כדי לעזור לזהות את הסוכן או את המכונה שלו במסוף. Google Cloud כשמשתמשים בקידומת, מזהה הסוכן מעוצב כ-prefix + hostname + Docker container ID.

תיאום בין סוכנים באמצעות Kubernetes

‫Docker הוא זמן ריצה נתמך של קונטיינרים ל-Kubernetes. אתם יכולים להשתמש ב-Kubernetes כדי לתזמן הפעלה והפסקה של הרבה סוכנים בו-זמנית. מנקודת המבט של Kubernetes, קונטיינר הסוכן נחשב לאפליקציה חסרת מצב (stateless), ולכן אפשר לפעול לפי ההוראות של Kubernetes לפריסת אפליקציה חסרת מצב.

שימוש בנקודות קצה פרטיות של API ב-Cloud Interconnect

כדי להשתמש בנקודות קצה פרטיות של API ב-Cloud Interconnect:

  1. מתחברים למארח המקומי שבו רוצים להריץ את הסוכן.

  2. הגדרת גישה פרטית ל-Google. מידע נוסף זמין במאמר הגדרת גישה פרטית ל-Google למארחים מקומיים.

  3. מוודאים שאפשר להתחבר לממשקי Cloud Storage API:

    1. כדי לבדוק את ההעברה של קובץ לקטגוריה של Cloud Storage באמצעות ממשקי Cloud Storage API, מריצים את הפקודה הבאה מאותו מחשב שבו מותקן סוכן ההעברה: gcloud storage cp test.txt gs://MY-BUCKET כאשר MY-BUCKET הוא השם של הקטגוריה של Cloud Storage. אם ההעברה פועלת, הבדיקה הצליחה.

שימוש בשרת proxy קדימה

סוכני ההעברה תומכים בשימוש בשרת proxy קדימה ברשת שלכם באמצעות העברת משתנה הסביבה HTTPS_PROXY.

לדוגמה:

sudo docker run -d --ulimit memlock=64000000 --rm \
--volumes-from gcloud-config \
-v /usr/local/research:/usr/local/research \
--env HTTPS_PROXY=PROXY\
gcr.io/cloud-ingest/tsop-agent:latest \
--enable-mount-directory \
--project-id=PROJECT_ID \
--hostname=$(hostname) \
--agent-id-prefix=ID_PREFIX

מחליפים את מה שכתוב בשדות הבאים:

  • PROXY: כתובת ה-URL והיציאה של שרת ה-Proxy. כדי למנוע כפילות של בקשות בהצפנת TLS, חשוב לציין את כתובת ה-URL מסוג HTTP ולא כתובת URL מסוג HTTPS. בקשות עם עטיפה כפולה מונעות משרת ה-proxy לשלוח בקשות יוצאות תקינות.
  • PROJECT_ID: מזהה הפרויקט שבו מתארחים משאבי ההעברה שנוצרו ושעליהם מתבצע חיוב.
  • ID_PREFIX: התחילית שמופיעה לפני מזהה הסוכן כדי לעזור לזהות את הסוכן או את המכונה שלו במסוף. Google Cloud כשמשתמשים בקידומת, מזהה הסוכן מעוצב כ-prefix + hostname + Docker container ID.

העתקה לקטגוריה עם מדיניות שמירת נתונים

כדי להעביר לקטגוריה עם מדיניות שמירת נתונים, מומלץ לבצע את התהליך הבא:

  1. יוצרים קטגוריה של Cloud Storage באותו אזור של הקטגוריה הסופית. מוודאים שלקטגוריית היעד הזמנית אין מדיניות שמירת נתונים.

    מידע נוסף על אזורים זמין במאמר מיקומי קטגוריות.

  2. משתמשים ב-Storage Transfer Service כדי להעביר את הנתונים לקטגוריה הזמנית שיצרתם בלי מדיניות שמירת נתונים.

  3. מבצעים העברה מקטגוריה לקטגוריה כדי להעביר את הנתונים לקטגוריה עם מדיניות שמירת נתונים.

  4. מוחקים את הקטגוריה של Cloud Storage שיצרתם כדי לאחסן את הנתונים באופן זמני.

אפשרויות להגדלת רוחב הפס ברשת

יש כמה אפשרויות להגדלת רוחב הפס ברשת להעברות של מערכת קבצים. הגדלת רוחב הפס של הרשת תעזור לקצר את זמני ההעברה, במיוחד כשמדובר במערכי נתונים גדולים.

  • Peering עם Google – פירינג הוא חיבור ישיר עם Google כדי לתמוך בהחלפת תנועה. יש לנו מיקומי קישור ישיר בין רשתות שכנות (direct peering) ברחבי העולם. מידע על היתרונות ועל המדיניות שלנו זמין במאמר בנושא Peering.

  • Cloud Interconnect –‏ Cloud Interconnect דומה לפירינג, אבל משתמשים בחיבור Interconnect כדי להתחבר ל-Google. יש שני סוגים של חיבורים בין רשתות שאפשר לבחור מביניהם:

    • Dedicated Interconnect – אתם מתחברים ישירות ממרכז הנתונים שלכם למרכז נתונים של Google באמצעות חיבור פרטי ייעודי. מידע נוסף זמין במאמר בנושא סקירה כללית של Dedicated Interconnect.

    • Partner Interconnect – אתם עובדים עם ספק שירות כדי ליצור חיבור למרכז נתונים של Google דרך הרשת של שותף שירות. מידע נוסף זמין במאמר סקירה כללית של Partner Interconnect.

  • קבלת רוחב פס מספק האינטרנט (ISP) – יכול להיות שספק האינטרנט יוכל להציע לכם רוחב פס גדול יותר בהתאם לצרכים שלכם. מומלץ ליצור איתם קשר כדי לברר אילו אפשרויות זמינות.