אפשר להשתמש ב-Storage Transfer Service כדי להעביר מערכי נתונים גדולים מ-Cloud Storage לשיתופי הקבצים של Filestore.
Storage Transfer Service עוזר להעביר במהירות ובאופן מאובטח מערכי נתונים גדולים בין מערכות אחסון של אובייקטים ושל קבצים, בין אם הנתונים שלכם מתארחים ב-Cloud Storage, אצל ספקי ענן של צד שלישי או בשרתים מקומיים.
Storage Transfer Service תומך בהעברות מואצות של מערכי נתונים גדולים, ומטפל בנתונים בנפח של מאות TB או יותר. העברה של מערכי נתונים גדולים לענן כדי לנצל את הניתוחים ואת פעולות הלמידה החישובית שזמינים ממכונות Compute Engine הבסיסיות שבהן מותקנים מופעי Filestore.
בעזרת Storage Transfer Service, אתם יכולים ליצור העברות בניהול Google או להגדיר העברות באירוח עצמי כדי לקבל שליטה מלאה על ניתוב הרשת ועל השימוש ברוחב הפס.
העברת נתונים מקטגוריה של Cloud Storage לשיתוף קבצים ב-Filestore
כדי להעביר נתונים מ-Cloud Storage לשיתוף קבצים ב-Filestore באמצעות Storage Transfer Service, צריך לבצע את המשימות הבאות:
- מגדירים את הסביבה.
- מגדירים את Filestore.
- מגדירים את Storage Transfer Service.
- יוצרים את עבודת ההעברה ומפעילים אותה.
בקטעים הבאים מפורטות כל המשימות.
מגדירים את הסביבה
בוחרים פרויקט קיים או יוצרים פרויקט חדש.
לצורך המדריך הזה, צריך לוודא שמשאבי המקור והיעד נמצאים באותו פרויקט.
בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב-Google Cloud או יוצרים אותו.
אם אתם בודקים את Filestore ולא מתכננים לשמור את המשאבים שתיצרו, מומלץ ליצור פרויקט חדש במקום לבחור באחד מהפרויקטים הקיימים. אחרי שמסיימים את הבדיקה, אפשר למחוק את הפרויקט ולהסיר את כל המשאבים שמשויכים אליו.
מפעילים את החיוב.
מוודאים שהחיוב מופעל בפרויקט Google Cloud . איך מוודאים שהחיוב מופעל בפרויקט?
-
Filestore API
Resource Manager API
Pub/Sub API
Cloud Storage API
Storage Transfer API
Cloud Logging API
Compute Engine API
Service Usage API
Identity and Access Management API
אופציונלי:
gcloud, רכיב מרכזי ב-SDK של Google Cloud, מותקן בכל מכונת וירטואלית של Compute Engine. אם מבצעים אחד מהשלבים הבאים משורת הפקודה המקומית, צריך להגדיר את Google Cloud SDK.מתקינים ומפעילים את Google Cloud SDK.
אם התקנתם את Google Cloud SDK בעבר, צריך לוודא שפועלת אצלכם הגרסה העדכנית ביותר של:
gcloud components updateיוצרים חשבון שירות. בקטע Grant this service account access to project (הענקת גישה של חשבון השירות הזה לפרויקט), מקצים את התפקידים הבאים:
OwnerProject IAM AdminRole AdministratorPub/Sub EditorCloud Filestore EditorStorage Object AdminStorage Transfer AdminStorage Transfer Agent
מעתיקים ושומרים את השם של חשבון השירות שיצרתם לשלב מאוחר יותר.
יוצרים מפתח לחשבון השירות שזה עתה יצרתם. לצורך המדריך הזה, צריך ליצור רק מפתח אחד. מורידים את קובץ המפתח ושומרים אותו לשלב מאוחר יותר.
הקצאת תפקידים לחשבון משתמש. בדף IAM, מוצאים את חשבון המשתמש ומקצים לו את התפקידים הבאים:
OwnerProject IAM AdminRole AdministratorStorage Transfer AdminStorage Admin
מידע נוסף זמין במאמר בנושא הרשאות משתמש.
הגדרת Filestore
יוצרים מכונת Filestore. כשיוצרים את המופע, צריך להחיל את המפרטים הבאים:
מוודאים שקטגוריית Cloud Storage, המכונה הווירטואלית של הלקוח ומופע Filestore נמצאים באותו אזור.
אופציונלי: אם יש לכם מערכי נתונים גדולים יותר, אתם יכולים לבקש להגדיל את המכסה.
מעתיקים את שם המכונה ואת כתובת ה-IP ושומרים אותם לשלב מאוחר יותר.
טעינת מופע Filestore במכונת לקוח
במדריך הזה מתוארת העברה שבה נעשה שימוש בארבע מכונות וירטואליות של Compute Engine כמכונות לקוח של NFS. תצטרכו ליצור חשבון שירות יחיד שיפעל בשם ארבע מכונות הלקוח. בכל מכונת לקוח יותקנו שלושה סוכנים של Storage Transfer Service.
יצירת מכונה וירטואלית ב-Compute Engine עם גישה לGoogle Cloud שירותים אחרים.
מגדירים מכונה וירטואלית לפי המפרט הבא:
כשמציינים מיקום, צריך לוודא ש Google Cloud הקטגוריה, המכונה הווירטואלית של הלקוח ומופע Filestore נמצאים באותו אזור.
כל סוכן שירות של Storage Transfer Service צריך 4 vCPU ו-8 GB RAM. כדי לקבל את הביצועים הטובים ביותר, מומלץ להריץ כמה סוכנים לכל מכונת VM. לצורך המדריך הזה, צריך להקצות מכונה וירטואלית של Compute Engine
e2-standard-32.בקטע Identity and API Access (זהות וגישה ל-API), מציינים את הפרטים הבאים:
- בתפריט הנפתח Service accounts, בוחרים את חשבון השירות שיצרתם.
אחרי שיוצרים את מכונת ה-VM ב-Compute Engine, מתחברים למכונה באמצעות SSH. בדף Compute Engine VM instance, מאתרים את המכונה שיצרתם ולוחצים על SSH.
משתמשים בכלי לעריכת טקסט כמו Vim כדי ליצור עותק של קובץ המפתח של חשבון השירות ולשמור אותו באופן זמני באופן מקומי במכונה הווירטואלית. לדוגמה,
service-account-key.json.
gcloudכבר מותקן במכונה הווירטואלית של Compute Engine. בשורה של פקודת ה-SSH, מזינים את הפקודה הבאה כדי לתת הרשאה לחשבון השירות להשתמש ב-gcloud:gcloud auth activate-service-account ACCOUNT --key-file=KEY_FILEwhere:
ACCOUNT היא כתובת האימייל של חשבון השירות שיצרתם. לדוגמה,
my-service-account@my-project.iam.gserviceaccount.com.KEY_FILE הוא הנתיב המקומי היחסי לקובץ המפתח שהעתקתם קודם. לדוגמה,
sa-key.json.
עדיין משורת הפקודה של SSH, מתקינים את NFS:
sudo apt-get -y update && sudo apt-get install nfs-commonיוצרים ספרייה מקומית למיפוי לשיתוף הקבצים ב-Filestore. כשחוזרים על השלבים האלה עבור מכונות VM נוספות של Compute Engine, צריך להשתמש באותו שם ובאותה נתיב:
sudo mkdir -p MY_DIRECTORYwhere:
- MY_DIRECTORY הוא השם של ספריית POSIX המקומית של מכונת ה-VM ב-Compute Engine. לדוגמה,
/usr/local/my_dir.
- MY_DIRECTORY הוא השם של ספריית POSIX המקומית של מכונת ה-VM ב-Compute Engine. לדוגמה,
מריצים את הפקודה
mountכדי לטעון את שיתוף הקבצים שמשויך למופע Filestore. אפשר להשתמש בכל אפשרויות ההרכבה של NFS. לקבלת הביצועים הטובים ביותר, כדאי לעיין בהמלצות לגבי NFS mount במאמר Mounting a file share on a Compute Engine VM instance (הוספת שיתוף קבצים למכונה וירטואלית ב-Compute Engine):sudo mount -o rw IP_ADDRESS:/FILE_SHARE MY_DIRECTORYwhere:
IP_ADDRESS היא כתובת ה-IP של מופע Filestore. אפשר למצוא את המידע הזה בדף Filestore instances.
FILE_SHARE הוא שם שיתוף הקבצים במופע. לדוגמה,
my_fs_instance.MY_DIRECTORY הוא שם הספרייה שמיפיתם בשלב הקודם. זוהי ספרייה במכונה וירטואלית של Compute Engine שבה רוצים לטעון את מופע Filestore.
מאשרים את נקודת הטעינה:
mount -l | grep nfsהפלט שמתקבל הוא כזה או דומה:
10.66.55.194:/my_fs_instance on /home/usr/my_dir type nfs (rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.66.55.194,mountvers=3,mountport=2050,mountproto=udp,local_lock=none,addr=10.66.55.194)אפשרות נוספת:
df -h --type=nfsהפלט שמתקבל הוא כזה או דומה:
Filesystem Size Used Avail Use% Mounted on 10.66.55.194:/my_fs_instance 1.0T 0 1.0T 0% /home/usr/my_dirחשוב לרשום את נתיב הספרייה המקומית של POSIX ולשמור אותו לשלב מאוחר יותר.
חוזרים על השלבים הקודמים כדי ליצור עוד שלוש מכונות וירטואליות של Compute Engine ולצרף לכל אחת מהן את אותו מופע Filestore. צריך להשתמש באותו חשבון שירות כדי לנהל את כל ארבע המכונות הווירטואליות של Compute Engine. שמירה זמנית של עותק מקומי של המפתח לחשבון השירות בכל מכונה וירטואלית.
הגדרת Storage Transfer Service
מאשרים לסוכן השירות להשתמש בכל התכונות של Storage Transfer Service.
מזינים את הפקודה הבאה:
gcloud transfer authorize --add-missing --creds-file=KEY_FILEwhere:
- KEY_FILE הוא הנתיב המקומי היחסי לקובץ המפתח שהעתקתם קודם. לדוגמה,
sa-key.json.
שימו לב להודעה שמוחזרת לגבי סוכן השירות ושמרו את כתובת האימייל שמשויכת אליו לשלב הבא.
- KEY_FILE הוא הנתיב המקומי היחסי לקובץ המפתח שהעתקתם קודם. לדוגמה,
אחרי כמה דקות, סוכן השירות אמור להופיע בדף IAM. אחרי ההפצה, צריך לוודא שהתפקידים הבאים הוקצו:
Pub/Sub EditorStorage Admin
התקנת סוכני העברה.
כל סוכן שירות של Storage Transfer Service דורש 4 vCPU ו-8 GB RAM.
מומלץ להתקין כמה סוכנים כדי למקסם את עמידות התקלות וכדי לנצל את היתרונות של שינוי הגודל הדינמי שמוצע על ידי Storage Transfer Service. בדוגמה הבאה אפשר לראות איך מתקינים שלושה סוכנים במכונת לקוח. מריצים את הפקודה הבאה משורת הפקודה של SSH:
gcloud transfer agents install --pool=MY_AGENT_POOL --count=3 \ --creds-file=MY_SERVICE_ACCOUNT_KEY_FILEwhere:
MY_AGENT_POOL הוא שם מאגר הסוכנים שיצרתם קודם. לדוגמה,
my-agent-pool.MY_SERVICE_ACCOUNT_KEY_FILE הוא הנתיב היחסי למפתח של חשבון השירות. לדוגמה,
/relative/path/to/service-account-key.json.
חוזרים על השלבים האלה לכל מכונת לקוח.
יצירה והפעלה של עבודת ההעברה
- יוצרים משימת העברה כדי להעביר נתונים מהקטגוריה של Cloud Storage למופע Filestore.
מציינים את נתיב היעד על ידי הפניה לספריית POSIX המקומית ששמרתם קודם. לדוגמה,
/home/usr/my_dir.
מעקב אחרי סטטוס ההעברה
המסוף
אפשר לעקוב אחרי סטטוס ההעברה בדף Transfer jobs (משימות העברה) במסוף Google Cloud .
שורת הפקודה
אפשר לעקוב אחרי הסטטוס באמצעות שורת הפקודה:
gcloud transfer jobs monitor JOB_NAME
where:
- JOB_NAME הוא השם של עבודת ההעברה. לדוגמה,
transferJobs/OPI6300379522015192941.
התגובה אמורה להיראות כך:
Polling for latest operation name...done.
Operation name: my-sts-project_transferJobs/OPI6300379522015192941_0000000001660692377
Parent job: OPI6300379522015192941
Start time: 2022-08-16T23:26:17.600981Z
SUCCESS | 100% (731.9MiB of 731.9MiB) | Skipped: 129.8kiB | Errors: 0
End time: 2022-08-16T23:27:23.429472Z
מידע נוסף זמין במאמרים בנושא מעקב אחרי פעילות הסוכן או פרטים על העברה של מערכת קבצים.
המאמרים הבאים
- שיפור הביצועים ב Google Cloud משאבים.
- יצירת מכונה וירטואלית ב-Compute Engine עם גישה לשירותים אחרים של Google Cloud