virtualization Flashcards
hypervisor תפקידים
- ניהול משאבים: על hypervisor לשלוט בצורה מלאה במשאבי המחשב, בדומה
למערכת הפעלה. - נאמנות למקור: ההתנהגות של תוכנה צריכה להיות זהה על מכונה וירטואלית ועל חומרה אמיתית.
- יעילות: ברוב המקרים, תוכנה צריכה לרוץ ללא התערבות מצידו של ה-hypervisor.
הוראות רגישות )sensitive instructions(
הוראות מכונה הפועלות באופן שונה בעת ביצוע במצב מיוחס מאשר בעת ביצוע במצב משתמש
הוראות מיוחסות )privileged instructions(
הוראות הגורמות ל-TRAP אם הן נקראות במצב משתמש
ממד הנאמנות למקור
אם קבוצת הוראות רגישות בארכיטקטורה
מסוימת יוצרת תת-קבוצה של הוראות מיוחסות, אזי ביצוע ההוראות הרגישות יגרום ל-TRAP, ו-hypervisor יוכל לקחת פיקוד ובסופו של דבר להביא לכך שביצוע של הוראה על החומרה הווירטואלית ועל החומרה האמיתית יביאו לתוצאות זהות. אם יש הוראות רגישות שאינן גורמות ל-TRAP, ביצוע ההוראות הללו במצב משתמש יהיה שונה מביצוען במצב מיוחס. וכאשר ההוראות הללו מתבצעות על ידי מערכת הפעלה אשר רצה מעל hypervisor במצב מיוחד, “וירטואלי”, נצפה לתוצאה שונה מזו שתתקבל כאשר
מערכת ההפעלה מבצעת את ההוראה ישירות על החומרה )הלא-וירטואלית(.
מצב רגיש )sensitive state(
הוא מצב שקריאתו בזמן שהמעבד נמצא במצב משתמש אינה גורמת ל TRAP.
Trap and Emulate או שיטת וירטואליזציה בחומרה ) hardware
.(virtualization
למערכת מחשב”
אופיינית מדור שלישי אפשר לבנות VMM יעיל אם קבוצת הוראות רגישות היא תת- קבוצה אמיתית של הוראות מיוחסות”.
דהיינו, כדי לבנות VMM יעיל מספיק, דרוש שכל ההוראות העלולות להשפיע על פעילות נאמנה למקור של VMM יגרמו ל-TRAP
ויעבירו פיקוד ל-VMM, וכי ה-VMM יעשה להן חיקוי )emulation(.
לעומת זאת, הפעולות הלא-מיוחסות יכולות להתבצע באופן ישיר וביעילות על המחשב הפיזי
(virtualization technology, VT)
הרעיון הבסיסי הוא ש-hypervisor יכול לקבוע בעזרת מפת סיביות חומרתית אילו הוראות מכונה יגרמו ל-TRAP בעת ריצתה של מכונה וירטואלית, ובהמשך לדאוג
לביצוע תוכנית בצורה “נאמנה למקור”.
תרגום בינארי )binary translation(
hypervisor המשכתב קוד של תוכנה שרצה עליו בעת ריצתו )on the fly( ומחליף הוראות רגישות או הוראות המכילות פנייה למצבים רגישים בסדרת הוראות המכילות TRAP ל-hypervisor. אחרי ה-TRAP, ה-hypervisor בודק את חוקיות הפעולה הרגישה
ומבצע את אותה הפעולה כאשר המעבד נמצא במצב מיוחס
כיצד hypervisor אמור לקבל את ה-TRAP שביצעה הוראה שהוא החליף בעת התרגום הבינארי?
?
Hypervisor מטיפוס ראשון
סוג של מערכת הפעלה, שכן זוהי התוכנית היחידה
הפועלת במצב מיוחס )kernel mode(. תפקידו של hypervisor מסוג זה הוא להציג כלפי מעלה עותקים של חומרה הנקראים מכונות וירטואליות, בצורה דומה למדי לתהליכים במערכת הפעלה “רגילה”.19 סוג זה של VMM נועד להריץ הן מערכות הפעלה כלליות והן מערכות הפעלה ייעודיות בעלות סט אפליקציות המממש מטרה מסוימת. כתוצאה מכך, הגודל של VM תלוי בנסיבות ובהיקף השירותים: בין עשרות מגה-בתים לעשרות
ג’יגה-בתים.
Hypervisor מטיפוס שני
טיפוס זה הוא תוכנה
שרצה על מערכת הפעלה מארחת )host operating system( ומספקת שירותי VMM למערכת הפעלה אורחת )guest operating system( או לכמה מערכות. סוג זה של VMM נועד להריץ תוכנות שנכתבו למערכת הפעלה אחת על גבי מערכת הפעלה אחרת, ומכיוון
שמדובר על מערכות הפעלה כלליות, גודל ה-VM יכול להגיע לעשרות ג’יגה-בתים.
hypervisor מטיפוס אפס
עיקר
השימוש ב-VMM מטיפוס זה הוא במערכות משובצות. טיפוס זה הוא שכבת תוכנה דלה מאוד של מנהל משאבים. עיקר שירותי הווירטואליזציה מסופקים על ידי חומרה. הדבר מאפשר להגביל מאוד את היקף הקוד של VMM, לשפר את הביצועים ולהגיע לגודלי
VM קטנים מאוד
מצב מיוחס וירטואל
מערכת ההפעלה האורחת שרצה על המכוה הווירטואלית “חושבת” שהיא רצה במצב
מיוחס, אך למעשה היא רצה במצב משתמש
מה קורה להוראות מכונה שמערכת ההפעלה מבצעת אותן במצב
מיוחס וירטואלי
הוראות
רגילות יתבצעו ישירות על החומרה, ואילו הוראות מיוחסות )כגון גישה ל-I/O( יגרמו ל-TRAP והפיקוד יעבור ל-hypervisor, אשר יבחן את ההוראה ויבצע הוראות נדרשות כחיקוי
מה קורה כאשר מערכת הפעלה שרצה על מכונה וירטואלית מבצעת הוראה רגישה?
כאשר מערכת הפעלה שרצה על מכונה וירטואלית מבצעת הוראה רגישה על מעבדים ללא VT, ההוראה תיכשל ויש סיכוי גבוה שמערכת ההפעלה תקרוס. על מעבדים עם VT, הוראה רגישה תגרום ל-TRAP וה-hypervisor יבחן את ההוראה. אם ההוראה בוצעה על ידי מערכת ההפעלה האורחת במכונה הווירטואלית, אזי היא תבוצע על ידי ה-hypervisor במצב מיוחס. לעומת זאת, אם ההוראה בוצעה על ידי תוכנית המשתמש שרצה על מערכת ההפעלה האורחת, ה-hypervisor יבצע חיקוי של מה שהחומרה
האמיתית הייתה עושה אילו קיבלה לביצוע הוראה רגישה במצב משתמש.