סקירה כללית #
מטרת המאמר הבא היא לספק סקירה אדריכלית של RELIANOID טען איזון תוכנות פנימיות המיועדות למנהלי מערכות ומפתחי תוכנה עם תחומי עניין לדעת יותר כיצד RELIANOID תוכנת ADC עובדת. כל המידע הזה יכול לשמש גם כדי לעזור בהגדרת מערכות הייצור או למטרות פתרון בעיות.
RELIANOID ארכיטקטורה #
RELIANOID מנהל תהליכים הן ממרחב המשתמש והן ממרחב הקרנל, מה שמאפשר לאסוף את מירב הביצועים אך עם הגמישות הגדולה ביותר גם לבצע את כל המשימות המואצלות לבקר אספקת היישומים כגון איזון עומסים, אבטחה וזמינות גבוהה.
התרשים שלהלן נותן תצוגה גלובלית של הרכיבים השונים המרכיבים את RELIANOID מערכת פנימית. חלקים נוספים בעלי חשיבות פחותה הוחמצו כדי להציע תצוגה פשוטה וברורה יותר.
בסעיפים הבאים יתוארו החלקים השונים וכיצד הם קשורים זה לזה.
RELIANOID מאזן עומסים בחלל המשתמש #
מערכות המשנה בהן משתמשים במרחב המשתמשים הן:
ממשק משתמש באינטרנט: ממשק משתמש גרפי אינטרנט המשמש את המשתמשים לניהול התצורה והניהול של המערכת כולה, הוא מנוהל על ידי שרת HTTPS שצורך את RELIANOID API עבור כל הפעולות שנעשו למאזן העומס.
RELIANOID API: or RELIANOID ממשק תוכניות יישומים, שתוכנן בעקבות ה REST ו JSON ממשקים, הנצרכים באמצעות HTTPS, משתמשים בהם בממשקי משתמש שונים אחרים מנקודת המבט של המשתמש, כגון אינטרנט ממשק או ZCLI (RELIANOID ממשק שורת הפקודה). כלי זה בודק כל פעולה נגד תת-המערכת RBAC ואם היא מותרת הפעולה מתבצעת ב- RELIANOID מַכשִׁיר. ה-API מסוגל להתחבר ולנהל כל תת-מערכת אחרת של מרחב המשתמש המתוארת בתרשים.
RBAC: בקרת גישה מבוססת תפקידים היא מנגנון גישה ובקרה המוגדר סביב משתמשים, קבוצות ותפקידים. מודול זה מגדיר אילו פעולות משתמש רשאי לבצע עם רמת תצורה גבוהה בין קבוצות, משתמשים ותפקידים. הוא משולב לחלוטין בממשק הגרפי של האינטרנט המאפשר לטעון את תצוגות האינטרנט בהתבסס על תפקיד המשתמש. בנוסף, תת-מערכת זו נצרכת דרך ה- API או כל כלי אחר המשתמש ב- API.
LSLB – HTTP(S): מודול LSLB (Local Service Load Balancer) המורכב מפרופיל HTTP(S) מבוצע במרחב המשתמש על ידי פרוקסי הפוך בשם Zproxy, המסוגל לנהל יישומים בעלי תפוקה גבוהה ביעילות רבה. תת-מערכת זו מוגדרת על ידי ה-API וניתן להגן עליה על ידי תת-מערכת IPDS (באמצעות רשימות שחורות, כללי DoS, ערכות כללים של RBL ו-WAF).
GSLB: מודול GSLB (Global Service Load Balancer) הממומש עם פרופיל GSLB מבוצע במרחב המשתמש על ידי תהליך שרת DNS בשם Gdnsd המסוגל לפעול כשרת שמות DNS מתקדם עם תכונות איזון עומסים. תת-מערכת זו מוגדרת על ידי ה-API וניתן להגן עליה על ידי תת-מערכת IPDS (באמצעות BlackLists, DoS ו-RBL).
בדיקות תקינות: תת-מערכת זו מוגדרת על ידי ה-API ומשמשת את כל מודולי מאזן העומסים (LSLB, GSLB ו-DSLB) כדי לבדוק את תקינות המערכות האחוריות. בדיקות פשוטות ומתקדמות מבוצעות מול ה-backend, ואם הבדיקה נכשלת, ה-backend עבור החווה הנתונה מסומן כלא תקין ולא מועברת תעבורה נוספת עד שהבדיקה תפעל שוב מול ה-backend. Farm Guardian אחראי על בדיקות אלו והוא מתוכנן עם רמה גבוהה של גמישות ויכולת תצורה.
מערכת קבצי תצורה: ספרייה זו משמשת למטרות שמירת תצורה, כל שינוי בספרייה זו ישוכפל לאשכול, אם שירות כזה מופעל.
Nftlb: תהליך מרחב משתמשים זה מנוהל על ידי תת-מערכת ה-API ומשמש לשתי מטרות עיקריות: ניהול LSLB – L4XNAT ותצורה של מודול תת-מערכת IPDS.
RELIANOID מאזן עומסים בחלל הקרנל #
מערכות המשנה בהן משתמשים בחלל הליבה הן:
מערכת Netfilter LSLB L4xNAT: תת-מערכת Netfilter משמשת את Nftlb למטרות איזון עומסים. כללי Netfilter נטענים בליבת המערכת על ידי תהליך Nftlb זה על מנת לבנות מאזן עומסים L4 בעל ביצועים גבוהים . Nftlb טוען את כללי מאזן העומסים בליבת המערכת בצורה יעילה כדי לנהל את חבילות התעבורה בצורה אופטימלית ככל האפשר. בנוסף, Nftlb יטען כללי Netfilter למניעה והגנה מפני חדירות (BlackLists, RBL ו-DoS).
רשימות שחורות של IPDS: תת-מערכת זו משולבת במערכת Netfilter ומנוהלת על ידי Nftlb. היא מורכבת מקבוצת כללים שתצורתם נקבעה לפני כללי מאזן העומסים על מנת לנתק חיבורים עבור כתובות IP מקור נתונות . באופן פנימי, היא יוצרת קבוצת כללים המסודרת לפי קטגוריה, מדינה, סוגי תוקפים וכו' ומתעדכנת על בסיס יומי.
IPDS RBL : בדומה לקודמת, תת-מערכת זו משולבת גם ב-Netfilter ומנוהלת על ידי Nftlb. כתובת ה-IP המקורית נלכדת לפני יצירת החיבור וכתובת ה-IP של הלקוח מאומתת מול שירות DNS חיצוני . אם כתובת ה-IP נפתרה, היא מסומנת כזדונית והחיבור ינותק.
IPDS DoS: אותה מערכת תצורה כמו שני המודולים הקודמים, משולבת ב-Netfilter ומנוהלת על ידי Nftlb. זוהי קבוצת כללים שתצורתם נקבעה לפני כללי איזון העומס, אשר בודקים אם החבילות הן חלק מהתקפת מניעת שירות . כללים מסוימים מוחלים על זרימת החבילות כדי ליירט את ההתקפה לפני שהיא מתבצעת.
מערכת מעקב חיבורים: מערכת זו משמשת את תת-המערכת Netfilter למטרות ניהול חיבורים, תרגום רשת ומודול סטטיסטיקה , כמו גם את תת-המערכת לבדיקת תקינות על מנת לאלץ פעולות חיבור ברגע שמתגלה בעיה ב-backend. מערכת מעקב החיבורים משמשת גם את שירות אשכולות על מנת להעביר את סטטוס החיבור לצומת השני של האשכול. במקרה של כשל בצומת מאסטר של האשכול, הצומת השני מסוגל לנהל את התעבורה באותו סטטוס חיבור כמו המאסטר הקודם.
מערכת ניתוב ו-DSLB: תת-מערכות אלו מנוהלות על ידי ה-API ומוגדרות במרחב הליבה. תת-מערכת הניתוב בנויה באמצעות iproute2 , המאפשר לנו לנהל טבלאות ניתוב מרובות על מנת להימנע משמירה על מערך כללים מורכב עבור ניתוב סטטי . בנוסף, הודות ל-iproute2, מודול DSLB (Datalink Service Load Balancer) נוצר כדי לספק איזון עומסים של קישורי ערוצים עם מספר שערים.
ברגע כתיבת מאמר זה, RELIANOID 6 נמצא בייצור, כך שתתי-מערכות אלו יכולות להתפתח בגרסאות עתידיות כדי להציע ביצועים טובים יותר או יותר תכונות.
תיעוד נוסף #
RELIANOID zproxy benchmarks, פרופיל LSLB -HTTP(S).
RELIANOID מדדי nftlb, פרופיל LSLB – L4xNAT