מידע על ייבוא וייצוא של נתונים

בדף הזה מוסבר איך מתבצעים ייבוא וייצוא ב-Memorystore for Redis.

תכונת הייבוא והייצוא משתמשת בתכונת הצילום המקורי של RDB ב-Redis כדי לייבא נתונים למופע של Memorystore for Redis או לייצא נתונים ממנו. השימוש בפורמט RDB המקורי מונע נעילה ומאפשר להעביר נתונים בקלות רבה בתוך Google Cloud או מחוץ ל Google Cloud. בייבוא ובייצוא נעשה שימוש בקטגוריות של Cloud Storage לאחסון קבצים של RDB.

ההתנהגות של מכונת Memorystore for Redis במהלך ייצוא דומה מאוד לפקודה BGSAVE ב-Redis בקוד פתוח. ‫Memorystore for Redis מייבא על ידי העתקת קובץ ה-RDB לספריית הנתונים של המופע.

הוראות לייבוא וייצוא של קובצי RDB מפורטות במאמרים ייבוא נתונים למופע Redis וייצוא נתונים ממופע Redis.

איך התכונה מתנהגת

  • כדי להשיג ביצועים אופטימליים, מומלץ לייבא מקטגוריות של Cloud Storage שנמצאות באותו אזור כמו מופע Redis.

  • מופע Redis לא זמין במהלך פעולת ייבוא. המופע שלכם יהיה זמין אחרי פעולת הייבוא.

  • אם הייבוא מצליח, הנתונים הקיימים במכונה מוחלפים בנתונים שבקובץ RDB.

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

  • אפשר לייבא קובצי RDB מגרסה זהה של Redis ומגרסה קודמת של Redis למופע Memorystore for Redis, אבל אי אפשר לייבא קובצי RDB מגרסה חדשה יותר.

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

  • מופע יכול לייבא גיבויים רק מגרסאות ישנות יותר של Redis. במכונה שמופעלת בה Redis 5.0 אפשר לייבא קובץ RDB שיוצא מ-Redis 4.0, אבל במכונה שמופעלת בה Redis 4.0 אי אפשר לייבא קובץ RDB מ-Redis 5.0.

איך התכונה מתנהגת כשמייצאים אותה

  • אתם יכולים לקרוא ולכתוב נתונים למופע Redis במהלך פעולת ייצוא, אבל אתם לא יכולים לבצע פעולות אדמין כמו שינוי גודל, עדכון או הגדרה של המופע.

  • יכול להיות שיהיה זמן אחזור ארוך יותר במופע במהלך הייצוא.

  • כדי לקבל ביצועים אופטימליים, כדאי לייצא את הגיבויים של RDB לקטגוריות של Cloud Storage שנמצאות באותו אזור כמו מופע Redis.

  • במהלך הייצוא, קובץ ה-RDB נשמר בקטגוריה של Cloud Storage לפי בחירתכם.

  • אתם יכולים לבטל את פעולת הייצוא בכל שלב. ביטול לא משפיע על הנתונים או על הזמינות של מופע.

    • ביטול הייצוא מוחק את קובץ ה-RDB שנכתב לקטגוריה של Cloud Storage, ומפנה את הזיכרון שבו נעשה שימוש בתהליך BGSAVE.
  • כשמשתמשים במסוף Google Cloud , אפשר לייצא קובץ ולשכתב קובץ קיים עם אותו שם בלי צורך בהרשאות נוספות. כדי לייצא לקובץ קיים עם gcloud, לחשבון המשתמש צריך להיות הרשאת storage.objects.delete.

ייצוא תחת עומס כתיבה גבוה

אם מריצים ייצוא בתקופה של עומס כתיבה גבוה, השימוש בזיכרון של המופע יכול לגדול פי 2, מה שגורם לכך שפעולת הייצוא תיכשל. מומלץ לבצע פעולות ייצוא בתקופות שבהן יש מעט פעולות כתיבה. כדי לעקוב אחרי כמות הנתונים של Redis שמאוחסנים במופע, אפשר ליצור לוח בקרה למעקב אחרי השימוש בזיכרון ולעקוב אחרי מדדי השימוש בזיכרון של המופע באמצעות Cloud Monitoring.

ייצוא מ-Memorystore for Redis מתבצע באמצעות התכונה BGSAVE של Redis, שיוצרת תמונת מצב של הנתונים במכונה. כשמבצעים את הפקודה BGSAVE, ‏ Redis יוצר תהליך צאצא חדש כדי לצלם את התמונה. ‫Redis משתמש בהעתקה בעת כתיבה במהלך התהליך הזה.

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

ייצוא במהלך פעולת BGSAVE

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

כדי לוודא שפעולת BGSAVE מתבצעת, אפשר להציג את נקודת קצה ל-API של redis.googleapis.com/persistence/rdb/bgsave_in_progress באמצעות Metrics Explorer.

כדי לראות את המדדים של משאבים שבמעקב באמצעות Metrics Explorer:

  1. נכנסים לדף  Metrics explorer במסוף Google Cloud :

    כניסה אל Metrics Explorer

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

  2. ברכיב Metric, מרחיבים את התפריט Select a metric ובוחרים סוג משאב וסוג מדד. לדוגמה, כדי ליצור תרשים של ניצול המעבד של מכונה וירטואלית, מבצעים את הפעולות הבאות:
    1. (אופציונלי) כדי לצמצם את האפשרויות בתפריט, מזינים חלק משם המדד בסרגל הסינון. בדוגמה הזו, מזינים utilization.
    2. בתפריט Active resources בוחרים באפשרות VM instance.
    3. בתפריט Active metric categories בוחרים באפשרות Instance.
    4. בתפריט Active metrics בוחרים באפשרות CPU utilization ואז לוחצים על Apply.
  3. כדי לסנן את סדרות הזמנים שמוצגות, משתמשים ברכיב Filter.

  4. כדי לשלב סדרות עיתיות, משתמשים בתפריטים ברכיב Aggregation. לדוגמה, כדי להציג את ניצול המעבד של המכונות הווירטואליות לפי האזור שלהן, מגדירים את התפריט הראשון ל-Mean ואת התפריט השני ל-zone.

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

אפשרות אחרת היא להשתמש בכלים משלכם של שורת פקודה ל-API.

ההרשאות שנדרשות לייבוא ולייצוא

משתמש צריך להגדיר הרשאות IAM מספיקות כדי לייבא או לייצא קובצי RDB. הדרך הכי פשוטה להגדיר הרשאות היא להקצות לחשבון המשתמש את תפקידי ה-IAM‏ Cloud Memorystore Redis Admin ו-Storage Admin. עם זאת, יכול להיות שההגדרה הזו לא מתאימה לחלק מחשבונות המשתמשים, כי היא נותנת להם הרשאות ליצור, לערוך או למחוק משאבים שלא אמורה להיות להם גישה אליהם. הוראות להגדרת הרשאות עם הגבלה מינימלית מופיעות במאמר הענקת הרשאות מוגבלות לייבוא ולייצוא.

משך הייבוא והייצוא

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

לדוגמה, אם מייבאים או מייצאים מופע של 10GB עם 8GB של זיכרון בשימוש, הפעולה יכולה להימשך 5 דקות. אם מייבאים או מייצאים מופע של 120GB עם 100GB של זיכרון בשימוש, הפעולה יכולה להימשך שעה.

הפסקה של ייבוא או ייצוא

כדי להפסיק ייבוא או ייצוא, אפשר לעיין בדפים הבאים:

מעקב אחר התקדמות הפעולה

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

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

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

כאשר:

  • [INSTANCE_ID] הוא המזהה של מכונת Memorystore for Redis.
  • [REGION] הוא האזור שבו נמצא המופע.

הפקודה מחזירה state: IMPORTING או state: READY כאחד משדות התיאור.

קטגוריות של Cloud Storage שלא נתמכות

אין תמיכה בקטגוריות של Cloud Storage שבהן מופעלת התכונה 'מגיש הבקשה משלם' לצורך ייבוא וייצוא של נתונים ב-Memorystore.

אבטחת הקטגוריות של Cloud Storage

חשוב לוודא שהקטגוריה שלכם ב-Cloud Storage כוללת את ההגבלות הנכונות כדי למנוע גישה לא מורשית לגיבוי RDB של Redis שהיא מכילה. מידע נוסף על אבטחת הקטגוריות ב-Cloud Storage זמין במאמר בנושא אפשרויות בקרת גישה.

איך מוודאים שיש מספיק זיכרון כדי להשלים ייצוא

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

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

ייצוא וייבוא למופעים עם עותקים לקריאה

בכל מופעי Redis, כולל מופעים עם העתק לקריאה, הנתונים מיוצאים מהצומת הראשי.

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

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

המאמרים הבאים