הקדמה
איזון העומס הוא רכיב מרכזי של תשתיות הזמינות ביותר המשמש לשיפור הביצועים והאמינות של אתרי האינטרנט, היישומים, מסדי הנתונים ושירותים אחרים על ידי חלוקת העומס בין שרתים מרובים.
A web infrastructure with no load balancing might look something like the following:
בדוגמה זו, המשתמש מתחבר ישירות לשרת האינטרנט, ב- yourdomain.com. אם שרת האינטרנט היחידי הזה תופל, המשתמש לא יוכל יותר לגשת לאתר. בנוסף, אם הרבה משתמשים מנסים לגשת לשרת בו זמנית רבה והוא לא מסוגל להתמודד עם העומס, הם עשויים לחוות זמני טעינה אטיים או אפילו לא להצליח להתחבר כלל.
נקודת הפשילה היחידה הזו ניתנת להפחתה על ידי הכנסת מאיזור איזון עומס ולפחות שרת אינטרנט נוסף בעקבי הפנים. בדרך כלל, כל השרתים בעקבי הפנים יספקו תוכן זהה כך שהמשתמשים יקבלו תוכן עקבי ללא קשר לשרת שמגיב.
בדוגמה המודגמת לעיל, המשתמש גושף לאיזון העומס, אשר מעביר את בקשת המשתמש לשרת אינטרנט בעקבי הפנים, שמגיב ישירות לבקשת המשתמש. בסיטואציה זו, נקודת הפשילה היחידה היא כעת האיזון עצמו. ניתן להפחית את הסיכון על ידי הכנסת איזור איזון עומס שני, אך לפני שנכנס לדיון בזה, נבחן איך איזוני העומס פועלים.
אילו סוגי תעבורה יכולים לטפל מאזני העומס?
מנהלי מאזן העומס יוצרים כללי העברה עבור ארבעה סוגי תעבורה ראשיים:
- HTTP — איזון HTTP סטנדרטי מפנה בקשות על פי מנגנוני HTTP סטנדרטיים. מאזן העומס קובע את כותרות ה־
X-Forwarded-For
,X-Forwarded-Proto
, ו־X-Forwarded-Port
כדי לתת למרכזי האחזור מידע על הבקשה המקורית. - HTTPS — איזון HTTPS פועל באופן זהה לאיזון HTTP, עם הוספת הצפנה. הצפנה ניהולת באחת משני הדרכים: או עם SSL passthrough ששומר על הצפנה עד למרכזי האחזור או עם SSL termination שמקפיץ את הסיכון לפיצוץ למאזן העומס אך שולח את התעבורה לא מצופנת אל מרכז האחזור.
- TCP — ליישומים שאינם משתמשים ב־HTTP או HTTPS, ניתן גם לאזן תעבורה של TCP. לדוגמה, ניתן לפזר תעבורה אל קבוצת מסדי נתונים בכל שרתי השרת.
- UDP — לאחרונה, מאזני עומס מסוימים הוסיפו תמיכה באיזון תעבורת פרוטוקולי האינטרנט המרכזיים כמו DNS ו־syslogd שמשתמשים ב־UDP.
כללי ההעברה הללו יגדירו את הפרוטוקול והיציאה על מאזן העומס עצמו ויחפשו אותם לפי הפרוטוקול והיציאה שמאזן העומס ישתמש בהם להפניה של התעבורה אל המרכזי האחזור.
כיצד מחליט מאזין העומס על השרת האחורי?
מאזני העומס בוחרים איזה שרת להעביר בקשה אליו על פי שילוב של שני גורמים. הם יוודאו תחילה כי כל שרת שהם יכולים לבחור מגיב באופן הולם לבקשות ואז ישתמשו בכלל מוגדר מראש כדי לבחור מתוך בריכת השרתים הבריאה.
בדיקות בריאות
מאזני העומס צריכים להעביר תעבורה רק לשרתים אחוריים "בריאים". כדי לפקח על בריאותו של שרת אחורי, בדיקות בריאות מנסות באופן קבוע להתחבר לשרתים אחוריים באמצעות הפרוטוקול והיציאה שהוגדרו על ידי כללי ההעברה כדי לוודא שהשרתים מאזינים. אם שרת נכשל בבדיקת בריאות, ולכן אינו מסוגל לשרת בקשות, הוא מוסר מהבריכה באופן אוטומטי, ותעבורה לא תישלח אליו עד שיענה שוב על בדיקות הבריאות.
אלגוריתמי הפיצול עומס
האלגוריתם לאיזון עומס שמשמש קובע אילו מהשרתים הבריאים באחורי הקלעים יובחר. מספר אלגוריתמים שמשמשים נפוצים הם:
Round Robin — Round Robin אומר שהשרתים יובחרו בסדר רציונאלי. המאיץ עומס יבחר את השרת הראשון ברשימתו לבקשה הראשונה, ואז ימשיך לרשימה לפי הסדר, מתחיל מחדש בראש כאשר הוא מגיע לסופה.
Least Connections — Least Connections אומר שהמאיץ עומס יבחר את השרת עם מספר החיבורים הכי נמוך ומומלץ כאשר התעבורה מביאה לשיחות ארוכות יותר.
Source — עם האלגוריתם Source, המאיץ עומס יבחר איזה שרת להשתמש בו על פי האש של כתובת ה-IP המקורית של הבקשה, כמו כתובת ה-IP של המבקר. שיטה זו מבטיחה שמשתמש מסוים יתחבר באופן עקבי לאותו שרת.
האלגוריתמים הזמינים למנהלים תלויים בטכנולוגיית האיזון של העומס הספציפית בשימוש.
איך מאיצי עומס מטפלים במצב?
יישומים מסוימים דורשים שמשתמש ימשיך להתחבר לאותו שרת בקודם. אלגוריתם Source יוצר אפיניון המבוסס על מידע של כתובת ה-IP של הלקוח. דרך נוספת להשיג זאת ברמת יישום האינטרנט היא דרך sticky sessions, שבה מאיץ עומס מגדיר עוגייה וכל הבקשות מהסשן הזה מופנות לשרת הפיזי אותו.
מאזיני עומס רב-גורמיים
כדי להסיר את המאזין עומס כנקודת פשיטה יחידה, ניתן לחבר מאזין עומס שני לראשון כדי ליצור אשכול, שבו כל אחד מפקח על הבריאות של השניים האחרים. כל אחד מסוגל באותה מידה לזיהוי כשלים ולשחזור.
במקרה של כשל במאזין העומס הראשי, יש ל-DNS להפנות את המשתמשים אל המאזין עומס השני. מכיוון ששינויים ב-DNS עשויים לדרוש זמן מכריע להתפשטותם באינטרנט וכדי להפוך את הפיצול לאוטומטי, רבים מהמנהלים ישתמשו במערכות שמאפשרות לשנות כתובות IP בצורה גמישה, כמו כתובות IP רזרביות. שינוי כתובת IP על פי דרישה מסיר את הבעיות של התפשטות ושמירה במטמון הקשורות בשינויי DNS על ידי ספק שם IP סטטי שניתן לשנות בקלות כשצריך. שם הדומיין יכול להישאר מקושר לאותה כתובת IP, בעוד הכתובת IP עצמה מועברת בין שרתים.
כך נראית תשתיות זמינות מאוד שמשתמשות בכתובות IP רזרביות:
מסקנה
במאמר זה, סיפקנו סקירה כללית של מושגי מאזין עומס ואיך הם פועלים באופן כללי. כדי ללמוד עוד על טכנולוגיות ספציפיות של מאזני עומס, עשוי להיות לך נעים לבדוק את:
שירות הטעינה של DigitalOcean
- כיצד ליצור את הטעינה הראשונה שלך ב-DigitalOcean
- כיצד להגדיר את העברת SSL על מערכות הטעינה של DigitalOcean
- כיצד להגדיר את הסיום של SSL על מערכות הטעינה של DigitalOcean
- כיצד לאזן תעבורת TCP עם מערכות הטעינה של DigitalOcean
HAProxy
- מבוא ל-HAProxy ולמושגי הטעינה
- כיצד להגדיר שרתי HAProxy בעלי זמינות גבוהה באמצעות Keepalived ו-IPים ריזרביים על Ubuntu 14.04
- טעינת מאזן ב-WordPress עם HAProxy
Nginx
Source:
https://www.digitalocean.com/community/tutorials/what-is-load-balancing