במאמר הזה מוסבר איך לתחזק פריסה של Spanner Omni. תחזוקה של פריסת Spanner Omni כוללת בדיקות תקינות שגרתיות, הוצאה משימוש של רכיבים לא תקינים והחלפה של צמתי שרת או דיסקים פגומים כדי להבטיח את היציבות והעקביות של האשכול. ניהול תקינות מסד הנתונים מגן על מסדי הנתונים מפני הפסקות לא מתוכננות, ושומר על יתירות של קבוצת ההסכמה הבסיסית של Paxos.
ביצוע תחזוקה עוזר לכם:
הבטחת זמינות גבוהה: הקצאה מחדש של מכונות וירטואליות (VM) או של פודים לא תקינים כדי לשמור על יתירות של שרת מסד הנתונים. כך תוכלו להמשיך להריץ את האפליקציות שלכם אם החומרה תיכשל.
הגנה על אבטחת הנתונים ועל תקינותם: הוצאה משימוש של צמתים עם דיסקים פגומים כדי למנוע את התפשטות הכשלים באחסון לחלקים אחרים במסד הנתונים. בנוסף, כך מוודאים ששרתים מנותקים לא יתעדו עדכונים סותרים.
לפני שמתחילים
לפני שמבצעים תחזוקה בפריסת Kubernetes, צריך לבצע את הפעולות הבאות:
יוצרים פריסה של Spanner Omni. מידע נוסף זמין במאמרים יצירת פריסה ב-Kubernetes או יצירת פריסה במכונות וירטואליות.
מורידים ומתקינים את Spanner Omni CLI.
לפריסות ב-Kubernetes, צריך להתקין את Helm וליצור הגדרת תרשים Helm.
החלפת שרת
יכול להיות שתצטרכו להחליף שרת בפריסה כדי לפתור תקלות במערכת או באחסון.
החלפה של שרת שורש
כדי להחליף שרת שורש, בוחרים את הכרטיסייה של הסביבה:
Kubernetes
כדי להחליף שרת בסיס בפריסת Kubernetes, מבצעים את השלבים הבאים. למרות שאי אפשר להוסיף עוד שרתי בסיס לפריסת Kubernetes קיימת, אפשר להחליף שרתי בסיס קיימים כדי לפתור שגיאות שלא ניתן לתקן.
מוחקים את השרת שרוצים להחליף:
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
-
SERVER_ENDPOINT: נקודת הקצה של פוד השרת שרוצים למחוק, בפורמטSERVER.pod.NAMESPACE:PORT. לדוגמה:spanner-a-1.pod.spanner-ns:15000. כדי למצוא את נקודות הקצה של השרת בהטמעה, מריצים את הפקודהspanner deployment servers list --zone=ZONEכדי להציג את רשימת השרתים בהטמעה. -
ZONE: האזור שבו נמצא השרת, לדוגמהus-central1-a.
השלב הזה עשוי להימשך כמה דקות, בהתאם לנפח הנתונים בשרת. Spanner Omni מעביר את הנתונים מהשרת הזה לשרתים אחרים בפריסה. לפני שממשיכים לשלב הבא, צריך לוודא שמחיקת השרת הושלמה.
כדי לעקוב אחרי התקדמות המחיקה, בודקים את הסטטוס של השרת:
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONEמחכים עד שהפקודה מחזירה שגיאה
NOT_FOUNDאו מציינת שהשרת כבר לא רשום.-
מוחקים את התביעה למכסת נפח אחסון קבועה (PVC) עבור הפוד שמארח את השרת:
kubectl delete pvc DATA_VOLUME_NAME -n NAMESPACEמחליפים את מה שכתוב בשדות הבאים:
-
DATA_VOLUME_NAME: שם נפח הנתונים, לדוגמהdata-volume-spanner-a-1. כדי למצוא את השם של נפח הנתונים, מריצים את הפקודהkubectl get pvc -n NAMESPACEכדי להציג את רשימת ה-PVC במרחב השמות. -
NAMESPACE: מרחב השמות של הפריסה, לדוגמהspanner-ns.
-
מוחקים את ה-pod:
kubectl delete pod POD_NAME -n NAMESPACEמחליפים את
POD_NAMEבשם של ה-pod של השרת שרוצים למחוק – לדוגמה,spanner-a-1.מערכת Kubernetes מפעילה באופן אוטומטי שרת חדש בתרמיל חלופי ומצרפת PVC חדש.
מוסיפים את השרת החדש לפריסה:
spanner deployment servers create SERVER_ENDPOINT --zone=ZONEמוודאים שהארגומנטים תואמים לנקודת הקצה ולמיקום החדשים של ה-pod. לדוגמה, משתמשים ב-
spanner-a-1.pod.spanner-ns:15000כנקודת הקצה וב-us-central1-aכמיקום.
VM
כדי להחליף שרת שורש בפריסת מכונה וירטואלית, פועלים לפי השלבים הבאים:
מוחקים את השרת שרוצים להחליף:
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
-
SERVER_ENDPOINT: כתובת ה-IP של השרת או שם המארח והיציאה – לדוגמה,spanner-vm-1.example.com:15000. כדי למצוא את נקודות הקצה של השרת, מריצים את הפקודהspanner deployment servers list --zone=ZONEכדי לראות את רשימת שרתי הפריסה. -
ZONE: האזור שבו נמצא השרת, לדוגמהus-central1-a.
השלב הזה עשוי להימשך כמה דקות, בהתאם לנפח הנתונים בשרת. Spanner Omni מעביר את הנתונים מהשרת הזה לשרתים אחרים בפריסה. לפני שממשיכים לשלב הבא, צריך לוודא שמחיקת השרת הושלמה.
כדי לעקוב אחרי התקדמות המחיקה, בודקים את הסטטוס של השרת:
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONEמחכים עד שהפקודה מחזירה שגיאה
NOT_FOUNDאו מציינת שהשרת כבר לא רשום.-
מבצעים הקצאה מחדש של השרת עם אחסון נקי, כמו שמוסבר במאמר יצירת פריסה של Spanner Omni במכונות וירטואליות:
spanner start \ --root \ --server-address=HOSTNAME \ --zone=ZONE \ --base-dir=BASE_DIRמחליפים את מה שכתוב בשדות הבאים:
-
HOSTNAME: שם המארח או שם הדומיין המלא (FQDN) של המכונה הווירטואלית החדשה שאפשר לפתור – לדוגמה,spanner-vm-1.example.com. -
ZONE: אזור היעד, לדוגמה,us-central1-a. -
BASE_DIR: הנתיב שבו הנתונים מאוחסנים, לדוגמה./span-dir.
-
מוסיפים את השרת החדש לפריסה:
spanner deployment servers create SERVER_ENDPOINT --zone=ZONEמוודאים שהארגומנטים תואמים לפרמטרים של השרת החדש – לדוגמה, משתמשים ב-
spanner-vm-1.example.com:15000כנקודת הקצה וב-us-central1-aכאזור.
החלפת שרת שאינו שרת הבסיס
כדי להחליף שרת שאינו שרת הבסיס, בוחרים את הכרטיסייה של הסביבה:
Kubernetes
כדי להחליף שרת שאינו שרת הבסיס בפריסת Kubernetes, מבצעים את השלבים הבאים:
מוחקים את השרת שרוצים להחליף:
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
-
SERVER_ENDPOINT: נקודת הקצה של פוד השרת שרוצים למחוק, בפורמטSERVER.pod.NAMESPACE:PORT. לדוגמה:spanner-a-4.pod.spanner-ns:15000. כדי למצוא את נקודות הקצה של השרת בהטמעה, מריצים את הפקודהspanner deployment servers list --zone=ZONEכדי להציג את רשימת השרתים בהטמעה. -
ZONE: האזור שבו נמצא השרת, לדוגמהus-central1-a.
השלב הזה עשוי להימשך כמה דקות, בהתאם לנפח הנתונים בשרת. Spanner Omni מעביר את הנתונים מהשרת הזה לשרתים אחרים בפריסה. לפני שממשיכים לשלב הבא, צריך לוודא שמחיקת השרת הושלמה.
כדי לעקוב אחרי התקדמות המחיקה, בודקים את הסטטוס של השרת:
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONEמחכים עד שהפקודה מחזירה שגיאה
NOT_FOUNDאו מציינת שהשרת כבר לא רשום.-
מוחקים את התביעה למכסת נפח אחסון קבועה (PVC) עבור הפוד שמארח את השרת:
kubectl delete pvc DATA_VOLUME_NAME -n NAMESPACEמחליפים את מה שכתוב בשדות הבאים:
-
DATA_VOLUME_NAME: שם נפח הנתונים, לדוגמהdata-volume-spanner-a-4. כדי למצוא את השם של נפח הנתונים, מריצים את הפקודהkubectl get pvc -n NAMESPACEכדי להציג את רשימת ה-PVC במרחב השמות. -
NAMESPACE: מרחב השמות של הפריסה, לדוגמהspanner-ns.
-
מוחקים את ה-pod:
kubectl delete pod POD_NAME -n NAMESPACEמחליפים את
POD_NAMEבשם של ה-pod של השרת שרוצים למחוק – לדוגמה,spanner-a-4.מערכת Kubernetes מפעילה באופן אוטומטי שרת חדש בתרמיל חלופי ומצרפת PVC חדש. מערכת Spanner Omni רושמת אוטומטית את השרת החדש שאינו Root בפריסה.
VM
כדי להחליף שרת שאינו שרת Root בפריסת מכונה וירטואלית, מבצעים את השלבים הבאים:
מוחקים את השרת שרוצים להחליף:
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
-
SERVER_ENDPOINT: כתובת ה-IP של השרת או שם המארח והיציאה – לדוגמה,spanner-vm-4.example.com:15000. כדי למצוא את נקודות הקצה של השרת, מריצים את הפקודהspanner deployment servers list --zone=ZONEכדי לראות את רשימת שרתי הפריסה. -
ZONE: האזור שבו נמצא השרת, לדוגמהus-central1-a.
השלב הזה עשוי להימשך כמה דקות, בהתאם לנפח הנתונים בשרת. Spanner Omni מעביר את הנתונים מהשרת הזה לשרתים אחרים בפריסה. לפני שממשיכים לשלב הבא, צריך לוודא שמחיקת השרת הושלמה.
כדי לעקוב אחרי התקדמות המחיקה, בודקים את הסטטוס של השרת:
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONEמחכים עד שהפקודה מחזירה שגיאה
NOT_FOUNDאו מציינת שהשרת כבר לא רשום.-
מבצעים הקצאה מחדש של שרת שאינו Root עם נפח אחסון נקי, כמו שמוסבר במאמר בנושא הוספת שרתים שאינם Root. השרת יתווסף לפריסה באופן אוטומטי.