גיבוי ושחזור ללא Google Cloud

בקטע הזה מוסבר איך להגדיר גיבוי ושחזור של מסד הנתונים של Cassandra באמצעות SSH ומערכת הקבצים, במקום באמצעות Google Cloud. מידע נוסף:

מהו גיבוי ושחזור של Cassandra ללא שירותי Google Cloud?

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

הגדרת גיבויים ללא שירותי ענן:

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

התהליך כולל את החלקים הבאים:

הגדרת השרת ו-SSH

  1. מגדירים שרת Linux או Unix לגיבויים. צריך להיות אפשר להגיע לשרת הזה דרך SSH ממישור זמן הריצה של Apigee Hybrid. צריך שיהיה בו מספיק נפח אחסון לגיבויים.
  2. מגדירים שרת SSH בשרת או מוודאים שמוגדר בו שרת SSH מאובטח.
  3. יוצרים זוג מפתחות SSH ושומרים את קובץ המפתח הפרטי בנתיב שאפשר לגשת אליו ממישור זמן הריצה ההיברידי. אל תשתמשו בסיסמה ריקה לזוג המפתחות. לדוגמה:
    ssh-keygen -t rsa -b 4096 -C exampleuser@example.com
      Enter file in which to save the key (/Users/exampleuser/.ssh/id_rsa): $APIGEE_HOME/hybrid-files/certs/ssh_key
      Enter passphrase (empty for no passphrase):
      Enter same passphrase again:
      Your identification has been saved in ssh_key
      Your public key has been saved in ssh_key.pub
      The key fingerprint is:
      SHA256:DWKo334XMZcZYLOLrd/8HNpjTERPJJ0mc11UYmrPvSA exampleuser@example.com
      The key's randomart image is:
      +---[RSA 4096]----+
      |          +.  ++X|
      |     .   . o.=.*+|
      |    . o . . o==o |
      |   . . . =oo+o...|
      |  .     S +E oo .|
      |   . .   .. . o .|
      |    . . .  . o.. |
      |     .  ...o ++. |
      |      .. .. +o+. |
      +----[SHA256]-----+
  4. צריך ליצור חשבון משתמש בשרת הגיבוי עם השם apigee. חשוב לוודא שלמשתמש החדש apigee יש ספריית בית ב-/home.
  5. בשרת הגיבוי, יוצרים ספרייה בשם ssh בספרייה החדשה /home/apigee.
  6. מעתיקים את המפתח הציבורי (ssh_key.pub בדוגמה הקודמת) לקובץ בשם authorized_keys בספרייה החדשה /home/apigee/ssh. לדוגמה:
    cd /home/apigee
    mkdir .ssh
    cd .ssh
    vi authorized_keys
  7. בשרת הגיבוי, יוצרים ספריית גיבוי בתוך הספרייה /home/apigee/. ספריית הגיבוי יכולה להיות כל ספרייה, בתנאי שלמשתמש 'apigee' יש גישה אליה. לדוגמה:
    cd /home/apigee
    mkdir cassandra-backup
  8. בודקים את החיבור. צריך לוודא שרכיבי ה-pod של Cassandra יכולים להתחבר לשרת הגיבוי באמצעות SSH:
    1. מתחברים למעטפת של Cassandra pod. לדוגמה:
      kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash

      כאשר apigee-cassandra-default-0 הוא השם של פוד Cassandra. מחליפים את השם בשם הפוד שרוצים להתחבר ממנו.

    2. מתחברים באמצעות SSH לשרת הגיבוי, באמצעות כתובת ה-IP של השרת:
      ssh apigee@backup-server-ip

הגדרת לוח הזמנים והיעד לגיבוי

אתם מגדירים את לוח הזמנים ואת היעד לגיבויים בקובץ overrides.yaml.

  1. מוסיפים לקובץ overrides.yaml את הפרמטרים הבאים:

    פרמטרים

    cassandra:backup:
         enabled: true
         keyFile: "path-to-private-key-file"
         server: "backup-server-ip"
         storageDirectory: "/home/apigee/backup-directory"
         cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps)
         schedule: "schedule"
    

    דוגמה

    cassandra:backup:
         enabled: true
         keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key"
         server: "34.56.78.90"
         storageDirectory: "/home/apigee/cassbackup"
         cloudProvider: "HYBRID"
         schedule: "0 2 * * *"
    

    כאשר:

    מאפיין (property) תיאור
    backup:enabled הגיבוי מושבת כברירת מחדל. צריך להגדיר את המאפיין הזה לערך true.
    path-to-private-key-file הנתיב במערכת הקבצים המקומית לקובץ המפתח הפרטי של SSH (שנקרא ssh_key בשלב שבו יצרתם את זוג מפתחות ה-SSH).
    backup-server-ip כתובת ה-IP של שרת הגיבוי.
    backup-directory השם של ספריית הגיבוי בשרת הגיבוי. זו חייבת להיות ספרייה בתוך home/apigee (שם ספריית הגיבוי הוא cassandra_backup, כפי שמופיע בשלב שבו יצרתם את ספריית הגיבוי).
    HYBRID נדרש המאפיין cloudProvider: "HYBRID".
    schedule השעה שבה הגיבוי מתחיל, בפורמט standard crontab syntax. ברירת מחדל: 0 2 * * *

    הערה: מומלץ להימנע מתזמון גיבוי שמתחיל זמן קצר אחרי שמחילים את הגדרת הגיבוי על האשכול. כשמחילים את הגדרות הגיבוי, Kubernetes יוצר מחדש את צמתי Cassandra. אם הגיבוי יתחיל לפני שהצמתים יופעלו מחדש (יכול להיות שייקח כמה דקות) הגיבוי ייכשל.

  2. משתמשים ב-apigeectl כדי להחיל את הגדרות הגיבוי על היקף האחסון של האשכול:
    $APIGEECTL_HOME/apigeectl --datastore -f your-overrides-file

    your-overrides-file הוא הנתיב לקובץ ההחלפות שערכתם.

הגדרת שחזור

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

כדי לשחזר גיבויים של Cassandra:

  1. יוצרים אשכול Kubernetes חדש עם מרחב שמות חדש. אי אפשר להשתמש באותו אשכול או באותו מרחב שמות שבהם השתמשתם בהתקנה ההיברידית המקורית.
  2. בספריית ההתקנה ההיברידית של השורש, יוצרים קובץ overrides-restore.yaml חדש.
  3. מעתיקים את ההגדרה המלאה של Cassandra מקובץ overrides.yaml המקורי לקובץ החדש.
  4. מוסיפים לקובץ overrides-restore.yaml את הפרמטרים הבאים:

    פרמטרים

    namespace: restore-namespace
    
    cassandra:
      restore:
         enabled: true
         keyFile: "path-to-private-key-file"
         server: "backup-server-ip"
         storageDirectory: "/home/apigee/backup-directory"
         cloudProvider: "HYBRID"  # required verbatim "HYBRID" (all caps)
         snapshotTimestamp: "backup-to-restore"
    

    דוגמה

    namespace: cassandra-restore
    
    cassandra:
      restore:
         enabled: true
         keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key"
         server: "34.56.78.90"
         storageDirectory: "/home/apigee/cassbackup"
         cloudProvider: "HYBRID"
         snapshotTimestamp: "20201001183903"
    

    כאשר:

    מאפיין (property) תיאור
    restore-namespace השם של מרחב השמות החדש שאתם רוצים לאשכול Cassandra החדש. אל תשתמשו באותו מרחב שמות שבו השתמשתם באשכול המקורי.
    restore:enabled השחזור מושבת כברירת מחדל. צריך להגדיר את המאפיין הזה לערך true.
    path-to-private-key-file הנתיב במערכת הקבצים המקומית לקובץ המפתח הפרטי של SSH (שנקרא ssh_key בשלב שבו יצרתם את זוג מפתחות ה-SSH).
    backup-server-ip כתובת ה-IP של שרת הגיבוי.
    backup-directory השם של ספריית הגיבוי בשרת הגיבוי. זו חייבת להיות ספרייה בתוך home/apigee (שם ספריית הגיבוי הוא cassandra_backup, כפי שמופיע בשלב שבו יצרתם את ספריית הגיבוי).
    HYBRID נדרש המאפיין cloudProvider: "HYBRID".
    backup-to-restore גיבוי ספציפי שרוצים לשחזר, שצוין בתחביר crontab רגיל (אסור להשתמש בתווים כלליים).
  5. משתמשים ב-apigeectl כדי להחיל את הגדרות הגיבוי על היקף האחסון של האשכול:
    $APIGEECTL_HOME/apigeectl --datastore -f your-overrides-restore-file

    your-overrides-restore-file הוא הנתיב לקובץ overrides-restore.yaml שערכתם.