לדלג בין עננים – Amazon ל Azure – המשימה הושלמה!

בהמשך לפוסט שלי "לעבור לענן של Microsoft בלחיצת כפתור", החלטתי לבצע ניסוי נוסף ומאתגר: לבצע מעבר של שרת וירטואלי עם SQL ו IIS מהענן של Amazon EC2 לענן של Microsoft Azure. המטרה הייתה מעבר של כול השרת באופן מלא (Clone), במינימום השבתה ותוך שמירה על Consistency של SQL ושאר אפליקציות. לצורך כך הקמתי שרת מתבנית ב Amazon של שרת Windows 2008 R2 עם SQL ו IIS. התחברתי אליו ובצעתי מספר שינויים לבדל אותו מהתבנית.

שרת ב Amazon

שרת ב Amazone

כמו כן נרשמת ב Microsoft Azure לשירות ה VM המנוהל בענן ושם הקמתי שרת Windows 2008 R2 נקי. חשוב לדעת ש Amazon מריצה את השרתים הוירטואלים שלה על תשתית וירטואלית של Linux Redhat או XEN ו Microsoft מריצה את השרתים על גבי Hyper-v. לכן, אתגר נוסף הוא מעבר בין תשתית וירטואליזציה שונה.

לאחר שהשרתים היו מוכנים הייתי צריך ליצור בינהם קשר VPN, לצורך כך השתמשתי במוצר שנקרא Hamachi של Logmein שלמעשה מספק שירות VPN site to site חינם. התקנתי את ה Agent של Hamachi על השרת ב EC2, ב Azure ועל השרת במעבדה שלי ולמעשה יצרתי ענן פרטי קטן עם כתובות NAT בין שלושת השרתים האלו. את ההגדרות של ה Hamachi ניתן להגדיר באתר Logmein תחת המשתמש הרשום. ה Hamachi מוסיף כרטיס רשת נוסף לכול שרת עם כתובת פרטית ב NAT. לאחר מכן התקנתי על שתי השרתים בענן Agent של Double-Take Availability 6.0 שבאמצעותו אני אבצע את המעבר. למעשה Double-Take יבצע תהליך שנקרא Full Serever Replication בין השרתים ויתן לי את היכולת לבצע Cutover בזמן שאחליט.

Logmein Harmachi Agent

לאחר התקנת ה Agent של Double-Take, נכנסתי לקונסול הניהול בשרת המעבדה שהוא חלק מה NAT ויצרתי Job שנקרא Full Server Replication בין השרתים. ב Job  הגדרתי את שרת המקור ב Amazon ושרת יעד ב Azure. חשוב לשים לב שמערכת ההפעלה צריכה להיות זהה. כחלק מה Job הגדרתי דחיסה פי 3 לרפליקציה כדי לחסוך ברוחב פס וכדי שהרפליקציה תהיה יותר מהירה. הפעלתי את ה Job. מכיוון שמדובר על שרת בגודל של 30GB לקח לו לילה שלם לסיים את ה Mirror הראשוני אבל היתרון הוא ששתי השרתים היו למעלה ושרת המקור תפקד כרגיל ללא השבתה.

Console הניהול של Double-Take עם Job של הרפליקציה

קונסול הניהול

לאחר סיום ה Mirror למעשה שרת המקור של EC2 היה בשלמותו בתוך שרת היעד ב Azure. הטכנולוגיה של Double-Take מבצעת רפליקציה ב Real Time כול הזמן לכן מאפשרת לי לבצע את ה Cutover מתי שארצה. בצעתי את ה Cutover דרך הקונסול של Double-Take. שרת המקור ב EC2 ירד בצורה מסודרת שרת היעד ב Azure התחיל תהליך של מיזוג. מה שהוא ביצע מאחורי הקלעים זה מיזוג של ה System State של שרת המקור על גבי היעד תוך שמירה על Consistency של מערכת ההפעלה וה Data Base. התהליך הזה לוקח בערך 5 עד 10 דקות שזה למעשה זמן ההשבתה.

בסיום התהליך השרת ב Azure ביצע Restart. התחברתי אליו מרחוק והפלא ופלא, הוא זהה לשרת המקור ב Amazon EC2 לאותה שנייה עם אותם תוכנות מתפקדות ו Services של SQL עובדים רק על תשתית Azure של Microsoft. הטכנולוגיה של Double-Take גם מאפשרת להגן על שרתים ז"א נניח ואתר ה Production שלכם ב Amazon, ניתן לבצע רפליקציה לאתר DRP ב Microsoft Azure או לכול ענן אחר.

דברים שכדאי לשים לב:

  1. ה DNS של Azure נקבע מראש בעת יצירת השרת לכן מומלץ כחלק מהתהליך לשנות את שם השרת על מנת שתוכלו להתחבר אליו מרחוק בסיום התהליך. Double-Take מאפשר הרצת Post Fail Over scripts לכן הכנסתי סקריפט שמריץ Netdom ומשנה את שם השרת של Amazon לשם המקורי של Azure.
  2. ב Amazon יש הגדרות DNS Sufix לכרטיס הרשת שונות מ Azure, לכן הוספתי בסקריפט פקודה למחיקת הגדרות ה Suffix DNS.
  3. ב Amazon יש דריוורים מיוחדים של Redhat שמותקנים על גבי השרת הוירטואלי שכן יושב על תשתית של Linux Redhat. לפני ביצוע ה Fail Over חייבים להעביר את ה Services האלו בשרת המקור ל Disable אחרת מסתכנים בקבלת Blue Screen בשרת היעד. כיוון שהרפליקציה מתבצעת כול הזמן ב Real Time, השינוי הזה מתרפלק באופן מיידי לשרת היעד ואז ניתן לבצע Cut over ללא חשש.
  4. לאחר ביצוע Cut Over צריך לבצע אקטיבציה מחדש לשרת שכן עבר מחומרה וירטואלית אחת לאחרת. גם זה ניתן לבצע בסקריפט.
  5. במקרים ומגנים על שרת ולא מעבירים אותו בין עננים, ניתן לבצע Fail Back באותה שיטה ע"י הגדרת Workflow ב Job ב Double-Take לנושא.

4 תגובות על הפוסט “לדלג בין עננים – Amazon ל Azure – המשימה הושלמה!

  1. רציתי להוסיף שבצעתי גם ניסוי הפוך היום. רפליקציה מ MS AZURE ל Amazon EC2. עבד נהדר! בדיוק באותו אופן: Double-Take Agent על שרת ב Azure ואחד נוסף על Amazon. ביצוע Job של רפליקציה. בסיום ביצוע Fail Over ותוך 10 דקות השרת ב Amazon ביצע Restart ועלה זהה לחלוטין לשרת ב MS Azure. לא הייתי צריך אפילו לשנות שם לשרת או להתקין את ה Drivers של Redhat. הכול הותקן אוטומטית. פשוט התחברתי ל IP הקבוע שיצרתי לשרת ב Amazon ומיד השרת נפתח לי ב TS.
    חבלז!!!!

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

  3. מהנסיון שצברת איזה שירות יותר יעיל ואיזה שירות יותר זול לשימוש
    כאשר מדובר בבלוג פשוט שאני רוצה להתקין על מנת לבצע קידום של האתר
    האם כדאי לי ללכת על השירות של מייקרוסופט או של אמזון
    כמו כן השרת שאני צריך הוא בסיסי ביותר…4 גיגה זכרון 100 גיגה דיסק לכל היותר
    וכמו כן אני צריך מספר כתובות IP.

    • גם אמזון וגם Azure טובים. הם נותנים שרת לתקופה בחינם אך בנפח קטן יותר ממה שאתה מבקש. אם אתה צריך מספר כתובות IP אז כדאי להשתמש ב Amazon כי הם יכולים לספק לך זאת. Azure כרגע יודע לספק כתובת IP אחת בלבד והיא DHCP בלבד.

כתיבת תגובה

האימייל שלך לא יוצג באתר. (*) שדות חובה מסומנים

*

     

תגי HTML מותרים: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>