אשכול מחשבים

**אשכול מחשבים** הוא קבוצה של מחשבים המחוברים ביניהם ופועלים יחד בצורה מתואמת, כך שבמובנים רבים הם יכולים להחשב כמחשב אחד.
[שמאל|ממוזער|250px|אשכול מחשבים של [נאס"א]]
המחשבים באשכול מחוברים ביניהם בדרך כלל באמצעות רשת תקשורת מקומית. אשכולות מחשבים משמשים בדרך כלל לצורך שיפור מהירות או אמינות של מחשב בודד, באמצעות הענקת יחס עלות תועלת טוב יותר מאשר מחשב בודד במונחי ביצועים או אמינות.
## סוגי אשכולות מחשבים
### אשכולות זמינות גבוהה - High Availability Clusters או Failover Cluster
אשכולות זמינות גבוהה מיושמים בעיקר לצורך שיפור זמינות השירותים אשר הם מספקים. האשכולות פועלים באמצעות יתירות של נקודות קצה (nodes), אשר משמשות לאספקת שירות כאשר רכיב מערכת אינו מתפקד. בדרך כלל אשכולות מסוג זה מכילים שתי נקודות קצה, אשר מהוות את המינימום ליצירת יתירות. יישום של אשכולות זמינות גבוהה נועד לניצול היתירות הקיימת במערכות אלה על מנת לבטל נקודות כשל בודדות במערכת. ישנם יישומים מסחריים רבים של אשכולות זמינות גבוהה המיועדים למספר רב של מערכות הפעלה.

### אשכולות חלוקת עומס - Load Balancing Clusters
עקרון העבודה באשכולות חלוקת עומס הוא שהמשימות המיועדות לאשכול מופנות לשרתים המיועדים לקבל את המשימות ואלה מפנים אותן למערך שרתים הנמצא מאחורי הקלעים ומטרתו לבצע את המשימות.
אף על פי שתפקידם העיקרי של אשכולות חלוקת עומס הוא שיפור ביצועים, לעיתים קרובות הם מכילים גם מרכיבים המיועדים לשפר את זמינות האשכול. אשכול מעין זה מכונה לעיתים "חוות שרתים". קיימים מספר רב של פתרונות מסחריים המהווים אשכול חלוקת עומסים. ביניהם ניתן למנות את Platform LSF HPC, Moab Cluster Suite, Maui Cluster Schedueler ועוד.
פרויקט ה- Linux Virtual Server מספק פתרון קוד פתוח לסביבת לינוקס.

### אשכולות תפוקה גבוהה - High Performance Cluster - HPC
תפקידם של אשכולות תפוקה גבוהה הוא בעיקר לספק ביצועים חזקים למשתמשים. עקרון הפעולה הוא חלוקת המשימות החישוביות למספר רב של נקודות קצה (nodes) המחוברות לאשכול. עיקר השימושים של HPC הוא לצרכים מדעיים ומחקריים. אחד היישומים הפופולריים ביותר לאשכול מסוג HPC הוא כאשר לינוקס משמשת כמערכת הפעלה, ותוכנה חופשית מתפעלת את האשכול לצורך עיבוד מקבילי. תצורה זו נקראת בדרך כלל Beowulf Cluster. אשכולות כאלה מריצים בדרך כלל תוכנות שנכתבו במיוחד לסביבה מקבילית הקיימת ב-HPC. תוכנות רבות כאלה משתמשות בספריות תכנות (libraries) כגון MPI אשר יעודן העיקרי הוא יישומים מדעיים לסביבה מקבילית.
אשכולות HPC ממוטבים עבור סביבת עבודה עמוסה במשימות או תהליכים אשר מתבצעים במקביל בנקודות הקצה (nodes) של האשכול. משימות אלה מתקשרות ביניהן במהלך ביצוע החישוב. חלק מהמשימות מייצרות תוצאות ביניים אשר משמשים קלט למשימות אחרות ולכן ישפיעו על התוצאה של המשימות העתידיות.

### טכנולוגית גריד - Grid Computing

טכנולוגית גריד קרובה מבחינה טכנית לאשכול מחשבים. ההבדל העיקרי הוא שטכנולוגית גריד מחברת אוסף של מחשבים שהקשר ביניהם רופף, ולכן הם פועלים כישות לוגית אחת המאפשרת ניצול משאבי מערכת. אנלוגיה מתאימה לטכנולוגית גריד היא רשת האינטרנט, המשמשת כמשאב לוגי אחד מנקודת מבטו של המשתמש.
בנוסף לכך, טכנולוגית גריד תומכת בסביבות הטרוגניות של מחשבים שלאו דווקא נתמכות באשכול מחשבים.
טכנולוגית גריד ממוטבת לעומסי עבודה אשר מכילים מספר רב של משימות עצמאיות אשר אינן נדרשות לשתף נתונים אחת עם השנייה. הגריד משמשת לניהול ואיתור המשאבים הנדרשים לביצוע המשימות. כך למשל משאבים כגון אחסון וזיכרון משותפים לכל נקודות הקצה, אך התוצאות של משימה אחת אינן משפיעות על משימות אחרות בתהליך או על נקודות קצה אחרות.

## היסטוריה של אשכול מחשבים
כמו בהרבה תחומים אחרים, גם כאן הצורך היה אבי ההמצאה. הלקוחות הם אלה שהגו את רעיון אשכול המחשבים ברגע שלא יכלו לקבל תפוקות מהירות מספיק ממחשב בודד, או כשנדרשו לגיבוי. הצורך באשכולות הופיע בשנות ה-60 של המאה ה-20 או אולי אפילו שנות ה-50.

הבסיס ההנדסי לבנית אשכולות מחשבים ועבודה מקבילית הונח על ידי הארכיטקט הראשי של IBM, ג'ין אמדל (Gene Amdahl). בשנת 1967 פרסם אמדל נייר עמדה בנושא מחשוב מקבילי, הנודע בשם חוק אמדל. חוק אמדל מתאר בצורה מתמטית את ההאצה בביצועים אותה ניתן לצפות באמצעות הקבלה של תהליכים בהשוואה לביצועם באופן סדרתי. המאמר הגדיר את הבסיס ההנדסי למחשוב רב-מעבדי ולאשכול מחשבים. ההבדל העיקרי בין שני סוגי טכנולוגיות אלה הוא האם הקשר הבין-מעבדי (interprocessor) נעשה בתוך המחשב או בין מחשבים, על גבי הרשת.
בשל כך, ההיסטוריה של אשכולות המחשבים הראשונים קשורה באופן הדוק להיסטוריה של רשתות לתקשורת מחשבים. אחד המניעים החזקים ליצירת ופיתוח רשתות אלו היה קישור משאבים, ובכך נוצר למעשה אשכול מחשבים דה-פקטו.

רשתות מיתוג מנות פותחו על ידי חברת RAND בשנת 1962. פרויקט ARPANet השתמש ברעיון של מיתוג מנות, כאשר בשנת 1969 יצר את הרשת הראשונה שבה חוברו ארבעה מרכזי מחשבים שונים (שבתוך כל אחד מהם היה 'אשכול מחשבים'). פרויקט ARPANet התפתחה לרשת האינטרנט. האינטרנט מאחדת את כל משאבי המחשוב לכדי משאב לוגי מרכזי. רשת ARPANet ביססה את הפרדיגמה אשר רווחת בכל אשכולות המחשוב הקיימים היום: השימוש ברשתות מיתוג מנות לביצוע תקשורת בין-מעבדים המתבצעת בין מעבדים הנמצאים במקומות שונים.

הפיתוח של אשכולות אשר נבנו על ידי משתמשים לצורכי מחקר בוצע במקביל להתפתחות רשתות התקשורת ומערכת ההפעלה יוניקס, מאז ראשית שנות ה-1970. בתקופה זו חברת זירוקס פארק ופרויקט ה-TCP/IP סייעו למיסוד הפרוטוקולים העוסקים בתקשורת מבוססת רשת. אך רק בשנת 1983 לערך פותחו פרוטוקולים שאפשרו לשלוח בקלות עבודות לביצוע, וגם הוגדר שיתוף קבצים. בתקופה זו החלו להתפתח גם פתרונות מסחריים לתחום אשכול המחשבים.

### VAXCluster

המוצר המסחרי הראשון לנושא אשכול מחשבים היא ARCnet, אשר פותח על ידי חברת Datapoint בשנת 1977. ARCnet נכשלה מסחרית, ונושא האשכול לא נחל הצלחה עד שחברת DEC החלה לשווק את VAXCluster בשנת 1983 למערכת VAX/VMS.

ARCNET ו-VAXcluster תמכו במחשוב מקבילי, שיתוף קבצים וציוד היקפי. מטרת המוצרים האלה הייתה להעניק למשתמש עיבוד מקבילי תוך שמירה על אמינות המידע. בפרט אפשר VAXCluster זמינות מחשוב (UpTime) ליישומים קריטיים, כיוון שאפשר הורדת מחשבים לתחזוקה בדירוג מבלי להשבית את המערכת כליל. כמו כן אפשר מתן עוצמת מחשוב של מחשב מרכזי בעלות מופחתת וגמישות הקצאת משאבי מחשוב לצרכים שונים (כגון הפרדת הטיפול בבקשות לקוח מגישות למסד נתונים), תוך ניצול מספר מחשבי מיני קטנים יחסית. מחשבי VAX מסדרה 6000 כללו תמיכה ל-Cluster בחומרה על ידי מחבר תקשורת ייעודי מהיר לחיבור מחשבים בשם CI  (Cluster Interface), מחשבי סדרה 4000 השתמשו בחיבור DSSI לחיבור מארזי דיסקים ומחשבים לאשכול משותף, מחשבי VAX אחרים, כולל מיקרו-VAX היו בעלי יכולת להתחבר ל-cluster על גבי תשתית ה-LAN. המוצר VAXcluster נקרא כיום VMScluster והוא חלק ממערכת ההפעלה OpenVMS השייכת לחברת היולט פקארד.

## טכנולוגיות של אשכולות מחשבים
MPI היא ספרייה זמינה אשר מאפשרת לכתוב תוכנות מקביליות בשפת C או בשפת Fortran. דוגמה לכך היא תוכנת מודלים אקלימיים הנקראת MM5.

סביבת GNU/Linux מציעה כמה תוכנות אשכולות, כגון:
* Beowulf, distcc, MPICH - מיועדים לאשכולות המיועדים לתכנות ייעודי. distcc מאפשר הידור מקבילי בסביבת GCC.
* Linux Virtual Server, Linux-HA - מאפשר למפעיל לחלק שירותים בין מספר רב של נקודות קצה באשכול.
* MOSIX, openMosix, Kerrighed, OpenSSI - אשכולות הנמצאת בתוך הליבה של מערכת ההפעלה. מאפשרים הגירת תהליכים (process migration) בין נקודות קצה זהות. OpenSSI, openMosix, ו- Kerrighed הם יישומים מסוג SSI.
* DragonFly BSD, התפצלה מתוך FreeBSD 4.8 והיא מתוכננת לתמיכה באשכולות ברמת הליבה. יעד נוסף שלה הוא לתמוך ב-SSI.

בסביבת Windows מציעה חברת מיקרוסופט את היישום MSCS לתמיכה באשכולות של זמינות גבוהה (High Availablity). מיקרוסופט התבססה על טכנולוגיה שפותחה בחברת DEC והיא תומכת בעד 8 נקודות קצה המחוברות להתקן אחסון מסוג SAN.

בסביבת VMware vSphere, מנוהל אשכול של שרתי ESXi כמאגר משאבים אחד באמצעות VMware vCenter. שמירת הזמינות הגבוהה מתבצע באמצעות מנגנון ה-HA (זמינות גבוהה; מאנגלית: High Availabilty) של המערכת, ואיזון העומסים מבוצע באמצעות מנגנון ה-DRS (מתזמן הפצת המשאבים; מאנגלית: Distributed Resource Scheduler) של המערכת.

## לקריאה נוספת

* Pfister, Gregory (1997). In Search of Clusters, Prentice Hall PTR. .


## קישורים חיצוניים

קטגוריה:תקשורת מחשבים