Windows Server Cluster

  • פותח הנושא ג81
  • פורסם בתאריך

ג81

New member
Windows Server Cluster

שלום,

יש לנו תוכנה שמורכבת מ-Server והרבה Clients. יש דרישה שתוכנת ה-Server תהיה מותקנת על שני מחשבים, אחד מהם לצורך גיבוי - כלומר אם יש בעיה עם המחשב הראשון, ה-Server ירוץ אוטומטית על המחשב השני.
לצורך כך חשבתי להשתמש ב-Windows Server Cluster.
מה שהבנתי עד כה לגבי Windows Server Cluster הוא:
1. העובדה שהתוכנה מותקנת על שני מחשבים שונים תהיה שקופה ל-Clients, כלומר הם תמיד יפנו לאותה כתובת IP.
2. חייבים להשתמש בדיסק מיוחד שיודע להתחבר לרשת.
3. בכל רגע נתון, רק אחד מהמחשבים מוגדר כפעיל.

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

תודה רבה מראש
 

ירון316

New member
זה מאוד תלוי...

הקלאסטר יודע לבד כשהראשי נופל לעבור למשני. אפשר לנהל את זה דרך ממשק הניהול של הקלאסטר.
הקבצים צריכים להיות זהים בשני השרתים. הקלאסטר לא ידאג לזה לבד. כלומר כל קבצי הקונפיגורציה, הדאטה וכולי צריכים להיות על שני השרתים. יש 2 דרכים לדאוג לזה:
1. רפליקציה של הקבצים (נניח DFSR)
2. דיסק משותף של הקלאסטר.

זה באמת תלוי באפליקציה (לא ציינת מה היא) והיא צריכה להיות Cluster Aware, כלומר לדעת לרוץ על קלאסטר.
לא הייתי עושה את זה בלי לוודא קודם שזה נתמך בתצורת קלאסטר כי אם לא (ויש אפילו תוכנות WEBפשוטות שלא מסתדרות עם זה בגלל Cookies שלא יכולים להתחלף וכיוצ"ב), יהיה לך כאב ראש ענק.
 

DuuGi

New member
תוספת קטנה לירון

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

lavifighter

New member
עולים לי כמה רעיונות

כמו שאמרו כבר, הכל תלוי באפליקציה. למשל אם יש מאחורה sql או EXCHANGE או אורקל אז יש כלים מובנים לזה שהמידע יהיה זהה בשני השרתים. באורקל זה נקרא RAC אני חושב, בEXCH זה נקרא DAG ובSQL החדשים זה נקרא always on.
עוד כמה רעיונות שעולים לי:
1. להשתמש בNLB או כלי load balance תקשורתי אחר, כדי לעשות את ההפנייה בין שני שרתים, ושהם לא יהיו בcluster. לגבי ה"דיסק מיוחד שיודע להתחבר לרשת"-הכוונה לNAS? אם כן אפשרי שהוא לא יהיה בכתובת זהה לשרתים? אם כן, אז רוב הNASים הרציניים יודעים לעשות סוג של איזון בני שני פורטים שלהם(למשל בLACP, או dynamic dns ועוד שיטות). לגבי זה שהמידע צריך להיות זהה בשני השרתים אז יש כל מיני פתרונות סינכרון(אני לא יודע כמה זה בlive, אפשרי שאחד השרתים יהיו בפיגור קצר לעומת השני?) וכל מיני פתרונות ברמת אחסון כולל מבוסס תוכנה למשל cluster storage spaces של ווינדוס 2012, VSA או SCALEIO. אזהרה: יקר.
2. אם יש לך vmware אפשר להשתמש באופציה שנראת fault tolerance שעושה שיש לך שני שרתים עם אותה כתובת ואותו המידע, רק שאחד כבוי ואחד דלוק ובמקרה של תקלה הכבוי נהיה דלוק.
3. אפשר לשקול פתרונות DR למיניהם-לא זול בדרך כלל, ולפעמים מצריך חומרה ייעודית(לפעמים לא).
 

ShimiHi

New member
תיקון לגבי ה-FT

עד גרסה 5 זה מחייב שימוש ב-vCPU אחד, מגבלה משמעותית.
ב-6 שינו את זה סופסוף.
שתי המכונות דלוקות בו זמנית, מכונת ה-shadow (הלא פעילה) רצה במקביל
מתעדכנת בהפרש קטן מאוד (לא זוכר אם אלפיות שניה אבל משהו בסגנון)
וברגע שהפעילה לא זמינה, היא הופכת להיות הזמינה.
וזה אומר משאבים כפולים.
 

ShimiHi

New member
ברור
אתה כתבת שהמכונה השניה כבויה וזה לא נכון . . .

 

ג81

New member
תודה רבה לכם על התשובות המהירות

לגבי "דיסק מיוחד שיודע להתחבר לרשת", אכן התכוונתי ל-NAS.
לגבי NLB, מה שאני צריך זה לא Load Balancing, אלא Failover, כלומר שאם יש בעיה עם אחד מהשרתים, התוכנה תרוץ על השרת השני.
לגבי סוג האפליקציה, זאת אפליקציית VOIP, תוכנת הסרבר מקבלת מידע מהקליינטים דרך TCP ו-UDP ושולטת עליהם ושומרת את המידע בקובץ XML שמתעדכן כל הזמן. הסרבר הוא תוכנת קונסול.
לגבי Cluster Aware, מכיוון שאנחנו אלה שכותבים את הקוד, אנחנו יכולים להפוך את התוכנה ל-Cluster Aware, שזה אומר עד כמה שהבנתי, להשתמש ב-Cluster API. מה שלא הבנתי, זה מה בדיוק מה-API צריך כדי להפוך את התוכנה ל-Cluster Aware והאם אפשר לדעת דרך ה-API אם עכשיו אני על המחשב הראשי או המשני והאם Windows יסגור/יעלה את התוכנה כאשר המחשב נהיה משני/ראשי?
 

DuuGi

New member
תיקון שגיאות

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

lavifighter

New member
אני חושב שבSMB3 אפשר לשים מידע קלסטר בNAS

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

kitt

New member
ולא לשכוח שבMS הקלאסטר חייב להיות חלק מAD, וב 2012 לא חייבים

SAN הוא יכול לעבוד עם השיתוף הפנימי של הדיסקים שמובנה ב 2012.
 

lavifighter

New member
זה נקרא cluste storage spaces

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