מאיפה מתחילים? Linux ו FreeBSD ב Hyper-V

14 בדצמבר 2014

תגיות: ,
אין תגובות

amir shindler  מאת: אמיר שינדלר, מהנדס תמיכה במחלקת הפרימייר במיקרוסופט ישראל (GTSC), ומתמחה בתחומי וירטואליזציה והענן הפרטי

מטרת מאמר זה היא לתת קצת רקע למתחילים בכל הנוגע להרצת Linux בתוך Hyper-V וגם לתת הסבר קצר על היכולות החדשות ביותר.

ראשית, יש להכיר את המגבלות בהתאם לארכיטקטורה של מערכת ההפעלה שאותה אנו מעוניינים להריץ כ VM בתוך Hyper-V. מדובר למעשה באחת משלושת האפשרויות הבאות:

1. אם מערכת ההפעלה לא משתמשת בארכיטקטורה מסוג x86 או x64 >
לא נתמך ב Hyper-V ולא ניתן יהיה להריץ את ה VM. דוגמא: AIX, HP-UX, Solaris SPARC, Windows RT וכד'.

2. אם מערכת ההפעלה כן מסוג x86 או x64 אבל אין עבור מערכת ההפעלה הזו Integration Services (IS) ל Hyper-V >
ניתן יהיה להריץ את המכונה במגבלות הבאות:
א) ניהול מוגבל וללא אינטגרציה עם Hyper-V. 
ב) מגבלה ברמת ה features הזמינים.
ג) ביצועי CPU סבירים אבל ביצועי רשת ודיסק לא מיטביים.
דוגמא: Solaris x86 או כל מערכת הפעלה מסוג linux/freebsd עבורה לא קיימים Integration Services.

3. אם מערכת ההפעלה גם מסוג x86 או x64 וגם קיימים Integration Services ל Hyper-V >
ניתן יהיה להריץ את המכונה וליהנות מהיתרונות הבאים:
א) אינטגרציה מלאה עם Hyper-V.
ב) אפשרויות ניהול מיטביות.
ג) ניצול כל ה features הזמינים ה IS בהתאם למערכת ההפעלה.
ד) ביצועים אופטימליים וניצול הכי טוב של יכולות רשת, דיסק ו CPU.

אז מהם בעצם אותם Integration Services?
ממש כפי שמערכת הפעלה בשרת פיזי זקוקה לדרייברים כדי לתפעל את רכיבי החומרה המחוברים אליה.
כך גם שרת ה Hyper-V חושף ל guest OS בתוך ה VM התקנים ווירטואליים.
ע"י שימוש ב synthetic drivers, התקנים אלו מאפשרים למערכת ההפעלה בתוך ה VM לפעול באופן מיטבי תוך סנכרון עם ה Host.

רכיבי ה IS אשר קיימים ב Linux ו FreeBSD כוללים כל מיני user-space daemons אשר מבצעים אופרציות מול הדרייברים (daemons הם דומים בפונקציונליות ל services ב windows).

חלק מה features החדשים אשר נקבל בגרסא האחרונה של Integration Services כוללים:
1. Generation 2 support – מאפשר הרצת מכונות linux ב UEFI enabled Generation 2 mode.
2. File Copy from host to guest – מאפשר העתקת קבצים בין ה Hyper-V ל guest VM ללא שימוש ברשת.
3. Dynamic Memory – מאפשר שימוש דינאמי ב RAM ולמעשה מגדיל את כמות המכונות שנוכל להריץ במקביל על אותו ה Hyper-V host.
4. 2D video driver – משפר את ביצועי הגרפיקה ומספק תמיכה ברזולוציות גבוהות יותר עבור משתמשי Linux Desktop.
5. VHDX online resize – מאפשר הרחבת דיסקים ללא השבתת שירות ב fixed size Linux VHD.
6. Synthetic Fibre channel – מספק ל Linux VMs גישה ישירה לחיבורי Fibre channel הקיימים ב Hyper-V host.
7. Live backup – מאפשר גיבוי Linux VM תוך שימוש ב VSS וללא הפרעה לשירות.
8. TRIM support – מאפשר ל Linux VMs לבצע אופטימיזציה לצריכת דיסק תוך שימוש ב Storage features מתקדמים. (שימושי במיוחד עבור מכונות Linux עם thin provisioned storage ב Azure).

רשימת ה features הזו רק הולכת וגדלה ובעתיד הקרוב צפויות לנו עוד יכולות מבוקשות.
להלן רשימת התאימות של היכולות החדשות בהתאם למערכת ההפעלה:
Feature_List_1_thumb3

הרשימה המלאה של ה features הזמינים לפי distribution וגרסא נמצאת ב TechNet:

“Linux Virtual Machines on Hyper-V” – http://technet.microsoft.com/en-us/library/dn531030.aspx

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

הרחבה קצרה על Dynamic Memory:
1. הפרמטרים המרכזיים הניתנים לשינוי הם Startup Memory, Minimum Memory, Maximum Memory
2. כאשר צריכת הזיכרון בתוך ה VM גדלה, שרת ה Hyper-V דואג להקצות זיכרון נוסף בשיטת HotAdd עד הכמות המוגדרת כ Maximum Memory עבור ה VM.
3. כאשר צריכת הזיכרון משתנה בתוך המכונה, Hyper-V נעזר בטכנולוגיה שנקראת “Ballooning” כדי להקצות או לקחת זיכרון מהמכונה הווירטואלית.

איך כל זה נראה בתוך ה VM:
Linux_DynMem_thumb

זהו ה Output של הפקודה “watch free –m” מתוך ה VM.
בעיגול האדום מסומן למעשה ה Available/Addressable memory שהמכונה רואה.

איך זה נראה מצד ה Hyper-V:
Hyper-V_DynMem_thumb

מתוך ה Hyper-V ניתן לראות את כמות הזיכרון האמיתית אשר ניתנה למכונה הווירטואלית.

להלן רשימת גרסאות נפוצות אשר בהן ה Integration Services כבר מובנים:
Feature_List_2_thumb

אז איך ניתן לדעת איזה גרסא של Integration Services רצה בתוך ה Linux VM?
התשובה היא שאם מדובר בגרסא של לינוקס שבה ה LIS מובנים (Ubuntu 13.10, SLES 11 SP3 וכד,) אז אין צורך לבדוק מספרי גרסאות.
אבל אם מדובר במערכת הפעלה ישנה יותר שבה נאלצנו להתקין את ה LIS ידנית (RHEL 5.5-5.8/6.0-6.3 וכד') אז ניתן לבדוק את הגרסא באמצעות הפקודה הבאה:

# rpm –qa | grep hyper-v

ה output מהפקודה למעלה יראה כך:

# microsoft-hyper-v-rhel6012.3.5-1.20131031.x86_64

(החלק המודגש מציג את ה string של ה LIS המותקנים)

באשר ל FreeBSD, זוהי רשימת היכולות בהתאם לגרסאות מערכות ההפעלה:
Feature_List_3_thumb
Feature_List_4_thumb

Note 1: Key/Value pair for FreeBSD 10 will be available through a separate FreeBSD port

למתעניינים קיים גם Image של FreeBSD 10 ל Microsoft Azure אשר זמין באתר ה VMDepot http://vmdepot.msopentech.com

זהו אתר המהווה קטלוג community-driven עבור Images לשימוש מהיר ב Windows Azure.
VM_Depot_thumb

למידע נוסף על הנושאים במאמר הזה יש לפנות ללינקים הבאים:

Channel 9 Talk on Linux/FreeBSD Integration Services on Hyper-V – http://channel9.msdn.com/Shows/Edge/Edge-Show-87-Linux-Integraton-Services-for-Hyper-V

Linux Virtual Machines on Hyper-V – http://technet.microsoft.com/en-us/library/dn531030.aspx

Hyper-V Overview and list of supported guest operating systems – http://technet.microsoft.com/library/hh831531.aspx

Linux Integration Server for Microsoft Hyper-V Forum – http://social.technet.microsoft.com/Forums/windowsserver/en-US/home?forum=linuxintegrationservices

Getting Started with VM Depot – http://blogs.msdn.com/b/interoperability/archive/2013/01/09/getting-started-with-vm-depot.aspx

יש לכם שאלות? מוזמנים לפנות לפורום תשתיות שלנו ושם אני ואחרים נשתדל לענות לכם בהקדם- לכניסה לפורום לחצו כאן

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

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