בקטע הזה מוסבר איך להגדיר גיבוי ושחזור של מסד הנתונים של Cassandra באמצעות SSH ומערכת הקבצים, במקום באמצעות Google Cloud. מידע נוסף:
מהו גיבוי ושחזור של Cassandra ללא שירותי Google Cloud?
גיבוי ללא שירותי ענן שומר גיבויים של מסד הנתונים של Cassandra בקבצים דחוסים במערכת הקבצים של שרת שאתם מציינים. הגיבויים מתבצעים לפי לוח זמנים שמצוין בקובץ ההחלפות. החיבור לשרת מתבצע באמצעות SSH מאובטח.
הגדרת גיבויים ללא שירותי ענן:
בשלבים הבאים מופיעות דוגמאות נפוצות להשלמת משימות ספציפיות, כמו יצירת צמד מפתחות SSH. משתמשים בשיטות שמתאימות להתקנה.
התהליך כולל את החלקים הבאים:
הגדרת השרת ו-SSH
- מגדירים שרת Linux או Unix לגיבויים. צריך להיות אפשר להגיע לשרת הזה דרך SSH ממישור זמן הריצה של Apigee Hybrid. צריך שיהיה בו מספיק נפח אחסון לגיבויים.
- מגדירים שרת SSH בשרת או מוודאים שמוגדר בו שרת SSH מאובטח.
- יוצרים זוג מפתחות SSH ושומרים את קובץ המפתח הפרטי בנתיב שאפשר לגשת אליו ממישור זמן הריצה ההיברידי. אל תשתמשו בסיסמה ריקה לזוג המפתחות. לדוגמה:
ssh-keygen -t rsa -b 4096 -C exampleuser@example.comEnter 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]-----+ - צריך ליצור חשבון משתמש בשרת הגיבוי עם השם
apigee. חשוב לוודא שלמשתמש החדשapigeeיש ספריית בית ב-/home. - בשרת הגיבוי, יוצרים ספרייה בשם
sshבספרייה החדשה/home/apigee. - מעתיקים את המפתח הציבורי (
ssh_key.pubבדוגמה הקודמת) לקובץ בשםauthorized_keysבספרייה החדשה/home/apigee/ssh. לדוגמה:cd /home/apigee
mkdir .sshcd .sshvi authorized_keys - בשרת הגיבוי, יוצרים ספריית גיבוי בתוך הספרייה
/home/apigee/. ספריית הגיבוי יכולה להיות כל ספרייה, בתנאי שלמשתמש 'apigee' יש גישה אליה. לדוגמה:cd /home/apigee
mkdir cassandra-backup - בודקים את החיבור. צריך לוודא שרכיבי ה-pod של Cassandra יכולים להתחבר לשרת הגיבוי באמצעות SSH:
- מתחברים למעטפת של Cassandra pod. לדוגמה:
kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
כאשר apigee-cassandra-default-0 הוא השם של פוד Cassandra. מחליפים את השם בשם הפוד שרוצים להתחבר ממנו.
- מתחברים באמצעות SSH לשרת הגיבוי, באמצעות כתובת ה-IP של השרת:
ssh apigee@backup-server-ip
- מתחברים למעטפת של Cassandra pod. לדוגמה:
הגדרת לוח הזמנים והיעד לגיבוי
אתם מגדירים את לוח הזמנים ואת היעד לגיבויים בקובץ overrides.yaml.
- מוסיפים לקובץ
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. אם הגיבוי יתחיל לפני שהצמתים יופעלו מחדש (יכול להיות שייקח כמה דקות) הגיבוי ייכשל.
- משתמשים ב-
apigeectlכדי להחיל את הגדרות הגיבוי על היקף האחסון של האשכול:$APIGEECTL_HOME/apigeectl --datastore -f your-overrides-file
your-overrides-file הוא הנתיב לקובץ ההחלפות שערכתם.
הגדרת שחזור
השחזור לוקח את הנתונים מקובץ הגיבוי עם חותמת הזמן שציינתם, ומשחזר אותם לאשכול חדש של Cassandra עם אותו מספר של פודים. לצביר החדש צריך להיות מרחב שמות ששונה מהצביר של מישור זמן הריצה.
כדי לשחזר גיבויים של Cassandra:
- יוצרים אשכול Kubernetes חדש עם מרחב שמות חדש. אי אפשר להשתמש באותו אשכול או באותו מרחב שמות שבהם השתמשתם בהתקנה ההיברידית המקורית.
- בספריית ההתקנה ההיברידית של השורש, יוצרים קובץ
overrides-restore.yamlחדש. - מעתיקים את ההגדרה המלאה של Cassandra מקובץ
overrides.yamlהמקורי לקובץ החדש. - מוסיפים לקובץ
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 רגיל (אסור להשתמש בתווים כלליים). - משתמשים ב-
apigeectlכדי להחיל את הגדרות הגיבוי על היקף האחסון של האשכול:$APIGEECTL_HOME/apigeectl --datastore -f your-overrides-restore-file
your-overrides-restore-file הוא הנתיב לקובץ
overrides-restore.yamlשערכתם.