הקטע הזה מספק קווים מנחים כלליים שעוזרים להגדיל את היקף הפעילות של Cassandra על ידי יצירת קסנדרה ב-Apigee Edge למארז פרטי בענן.
בקישורים הבאים מוסבר למה חשוב לשים לב למארז הטבעות של Cassandra משאבים:
- Replication (תיעוד קסנדרה)
- קסנדרה ארכיטקטורה ו האסטרטגיה של גורם הרפליקציה
מה זה מארז?
מארז קסנדרה הוא קיבוץ לוגי של צומתי Cassandra בתוך הטבעת. קסנדרה משתמשת במארזים כדי להבטיח שרפליקות מפוזרות בין קבוצות לוגיות שונות. בתור כתוצאה מכך, הפעולות נשלחות לא רק לצומת אחד, אלא למספר צמתים, כל אחד במארז נפרד לספק עמידות גדולה יותר לתקלות וזמינות גבוהה יותר.
בדוגמאות בקטע הזה נעשה שימוש בשלושה מארזים של Cassandra, שהם מספר המארזים שנתמכות על ידי Apigee בטופולוגיות של ייצור.
התקנת ברירת המחדל של Cassandra ב-Apigee Edge לענן פרטי מניחה שיש מארז לוגי אחד ומציבה את כל את הצמתים במרכז נתונים שבו. למרות שקל להתקין ולנהל את התצורה הזו, אם פעולה נכשלת באחד מהצמתים האלה, היא עלולה לגרום לכשל.
בתמונה הזו רואים את הגדרות ברירת המחדל של טבעת Cassandra:
בהגדרה חזקה יותר, כל צומת יוקצה למארז ולפעולות נפרדים תפעיל גם רפליקציה בכל אחד מהמארזים האלה.
בתמונה הזו מוצגת טבעת עם 3 צמתים. בתמונה הזו מוצג הסדר שבו הפעולות משוכפלת לאורך העיגול (בכיוון השעון) ומדגישה את העובדה שאין שני צמתים זהים מארז:
בתצורה הזו, הפעולות נשלחות לצומת, אבל נשלחות גם לרפליקות של הצומת במארזים אחרים (בסדר השעון).
הוספת מוּדעוּת למארז (עם 3 צמתים)
לכל טופולוגיות ההתקנה של Apigee Edge לענן פרטי יש לפחות שלושה צמתים של Cassandra, בקטע הזה מתייחס ל-"IP1", "IP2" ו-"IP3". כברירת מחדל, כל אחד מהצמתים האלה נמצא באותו מארז, 'ra-1'.
בקטע הזה מוסבר איך להקצות את צמתים של Cassandra למארזים נפרדים, כך שכל הפעולות נשלחות לצמתים משוכפלים בקבוצות לוגיות נפרדות בתוך הטבעת.
כדי להקצות צמתים של Cassandra למארזים שונים במהלך ההתקנה:
- לפני הפעלת מנהל ההתקנה, היכנסו לצומת Cassandra ופתחו את
קובץ התצורה השקט הבא לעריכה:
/opt/silent.conf
אם הוא לא קיים, יוצרים את הקובץ ומקפידים להגדיר את ה-'apigee' למשתמש בבעלים.
- עריכת המאפיין
CASS_HOSTS
– רשימה של כתובות IP שמופרדות ברווחים (לא DNS או רשומות של שמות מארחים) המשתמשים בתחביר הבא:CASS_HOSTS="IP_address:data_center_number,rack_number [...]"
ערך ברירת המחדל הוא טבעת Cassandra בת שלושה צמתים, כשכל צומת מוקצה למארז 1 ולנתונים Center 1, כפי שאפשר לראות בדוגמה הבאה:
CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
- משנים את הקצאות המארז כך שצומת 2 יוקצה למארז 2 וצומת 3 יוקצה למארז
מארז 3, כפי שאפשר לראות בדוגמה הבאה:
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
כשמשנים את הקצאות המארז, מנחים את קסנדרה ליצור שני תהליכים לוגיים נוספים שלהם (מארזים), שמספקים לאחר מכן רפליקות שמקבלות את כל הפעולות שהתקבלו לצומת הראשון.
מידע נוסף על השימוש במאפיין ההגדרה
CASS_HOSTS
זמין בכתובת קובץ עזר של תצורת קצה. - כדי להתקין את השינויים, שומרים את השינויים בקובץ התצורה ומריצים את הפקודה הבאה
Cassandra עם ההגדרות האישיות המעודכנות:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config
לדוגמה:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
- חוזרים על התהליך הזה לכל צומת של Cassandra בטבעת, לפי הסדר שבו הצמתים
מוקצות בנכס
CASS_HOSTS
. במקרה כזה, עליך להתקין את Cassandra בסדר הבא:- צומת 1 (IP1)
- צומת 2 (IP2)
- צומת 3 (IP3)
לאחר ההתקנה, צריך לבדוק את ההגדרות של Cassandra.
בדיקת ההגדרות האישיות של Cassandra
אחרי שמתקינים תצורה של Cassandra עם מודעות למארז, אפשר לבדוק שהצמתים
שהוקצו למארזים השונים באמצעות הפקודה nodetool status
,
אפשר לראות את הדוגמה הבאה:
/opt/apigee/apigee-cassandra/bin/nodetool status
(ביצוע הפקודה הזו באחד מהצמתים של Cassandra).
התוצאות אמורות להיראות דומות לדוגמה הבאה, שבה העמודה Rack. מציגה את מזהי המארז השונים לכל צומת:
Datacenter: dc-1 ======================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns Host ID Rack UN IP1 737 MB 256 ? 554d4498-e683-4a53-b0a5-e37a9731bc5c ra-1 UN IP2 744 MB 256 ? cf8b7abf-5c5c-4361-9c2f-59e988d52da3 ra-2 UN IP3 723 MB 256 ? 48e0384d-738f-4589-aa3a-08dc5bd5a736 ra-3
אם הפעלת אימות JMX עבור Cassandra, עליך להעביר גם את שם המשתמש שלך וגם
הסיסמה של nodetool
. מידע נוסף זמין במאמר הבא:
שימוש ב-Nodetool לניהול צמתים של אשכולות.
התקנת טבעת עם שישה צמתים
כדי לקבל יתירות נוספת, אפשר להרחיב את טבעת Cassandra לשישה צמתים. במקרה הזה, להקצות שני צמתים לכל אחד משלושת המארזים. להגדרה הזו נדרשים שלושה צמתים נוספים: צומת 4 (IP4), צומת 5 (IP5) וצומת 6 (IP6).
בתמונה הבאה מוצג הסדר שבו פעולות רפליקות בטבעת (בכיוון השעון) ומדגיש את העובדה שבמהלך רפליקציה, אין שני צמתים סמוכים מארז:
בתצורה הזו, לכל צומת יש עוד שתי רפליקות: אחת בכל אחד משני המארזים האחרים. עבור לדוגמה, לצומת 1 במארז 1 יש רפליקה ב-Rock 2 וב-Rack 3. הפעולות שנשלחות לצומת 1 הן גם נשלחו לרפליקות במארזים האחרים, לפי סדר השעון.
כדי להרחיב טבעת קסנדרה בת שלושה צמתים לטבעת של קסנדרה עם שישה צמתים, צריך להגדיר את הצמתים באופן הבא בקובץ התצורה השקט:
CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"
בדומה לטבעת של שלושה צמתים, צריך להתקין את Cassandra באותו סדר שבו הצמתים
מופיעות במאפיין CASS_HOSTS
:
- צומת 1 (IP1)
- צומת 4 (IP4)*
- צומת 2 (IP2)
- צומת 5 (IP5)
- צומת 3 (IP3)
- צומת 6 (IP6)
* בצעו את השינויים בקובץ התצורה השקט לפני הפעלת כלי ההגדרה בצומת הרביעי (המכונה השנייה בסדר ההתקנה של Cassandra).
הרחבה ל-12 צמתים
כדי להגביר עוד יותר את העמידות והזמינות של תקלות, אפשר להגדיל את מספר Cassandra צמתים בטבעת בין שישה ל-12. להגדרה הזו נדרשים שישה צמתים נוספים (IP7 עד IP7) IP12).
בתמונה הבאה מוצג הסדר שבו פעולות רפליקות בטבעת (בכיוון השעון) ומדגיש את העובדה שבמהלך רפליקציה, אין שני צמתים סמוכים מארז:
התהליך להתקנת טבעת עם 12 צמתים דומה להתקנה של טבעת עם שלושה או שישה צמתים:
מגדירים את CASS_HOSTS
לערכים הנתונים ומריצים את מנהל ההתקנה לפי הסדר שנקבע.
כדי להרחיב לטבעת Cassandra עם 12 צמתים, צריך להגדיר את הצמתים באופן הבא במצב השקט קובץ תצורה:
CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"
בדומה לצלצול של שלוש או שישה צמתים, עליך להפעיל את מנהל ההתקנה בצמתים לפי הסדר שבהם הצמתים מופיעים בקובץ התצורה:
- צומת 1 (IP1)
- צומת 7 (IP7)*
- צומת 4 (IP4)
- צומת 8 (IP8)
- צומת 2 (IP2)
- Node 9 (IP9)
- צומת 5 (IP5)
- צומת 10 (IP10)
- צומת 3 (IP3)
- צומת 11 (IP11)
- צומת 6 (IP6)
- צומת 12 (IP12)
* יש לבצע את השינויים האלו לפני התקנת Apigee Edge לענן פרטי בצומת השביעי (המכונה השנייה ב- הזמנת התקנה של Cassandra).