שלום לכולם, במאמר הקרוב אסביר על Virtualization.
Virtualization הינו קונספט של הדמיית תשתיות חומרתיות, על מנת לאפשר להתקין מספר מערכות הפעלה שונות על גבי שרת אחד. כך, ניתן להתקין מספר מערכות הפעלה שונות על גבי שרת פיזי אחד.
מה זה VM?
(Virtual machine(VM הוא שרת וירטואלי שרץ בסביבה נפרדת עם משאבים שהוקצו לו מראש (cpu, ram, storage, network interface).
כך יכולים לרוץ כמה Virtual machines על שרת פיזי אחד שלכל אחד משאבים משלו. התוכנה שאחרית להפריד את המשאבים של השרת הוירטואלי מהשרת הפיזי נקראת hypervisor.
מה זה Hypervisor?
רכיב תוכנתי המנהל הקצאת משאבים והפרדתם לכל vm. הוא אחראי גם לנהל גם רכיבים ברמת מערכת ההפעלה כמו ניהול זיכרון ותזמון processes כדי שיהיה אפשר להריץ VM-ים בצורה נוחה. יש שני סוגים של hypervisor-ים שאפשר להשתמש בהם בשביל Virtualization:
סוג ראשון: נקרא גם native/bare metal hypervisor. הוא רץ ישירות על החומרה של ה-host (השרת הפיזי) ומתקשר איתה ישירות ללא תיווך נוסף כדי לנהל guests vm עם מערכות הפעלה שונות. בנוסף, הוא מתפקד כמערכת הפעלה ומשאבי ה-VM מוקצים ישירות ל-hardware. הוא שימושי בעיקר ל enterprise data center (מקום מרכזי שבו ארגון כלשהו מאחסן שרתים) או לסביבות מבוססות שרתים כמו חוות שרתים המיועדות לתעשיית מחשוב הענן.
יתרון מרכזי של הסוג הראשון: ניצול מיטבי של החומרה כיוון שאין מערך משאבים נוסף שצריך לתחזק עבור גורם מתווך כלשהו.
דוגמאות: KVM, Microsoft Hyper-V, VMware vSphere.
סוג שני: נקרא גם hosted hypervisor. הוא רץ על מערכת ההפעלה כשכבת תוכנה נוספת. הוא מבצע אבסטרקציה (הפשטה) ל-vms מה-host. בסוג הזה, ה-hypervisor מדבר ישירות עם מערכת ההפעלה המארחת (Host operating system) ואז מערכת ההפעלה המארחת מבקשת מהחומרה בדיוק מה שה-hypervisor העביר לה.
יתרון מרכזי של הסוג השני: נוח כשהמטרה היא שימוש או מחקר של מערכת הפעלה כלשהי. סוג זה מספק יותר נוחות למשתמשים.
דוגמאות: VMware Workstation, Oracle VirtualBox
סיכום: בשני הסוגים ה-hypervisor מעביר פקודות לחומרה, ודרך hosted hypervisor זה נעשה דרך מתווך(מערכת ההפעלה של השרת הפיזי). בעזרת hypervisor אפשר להריץ כמה מערכות הפעלה שונות על אותו מחשב ולנהל אותם בצורה נוחה.
דוגמא לתצורת אפליקציה עם וירטואליזציה:
סוגי ה-hypervisorים:
Virtualization שיפרה את העולם בכך שהקלה בהקמת סביבות בדיקות למערכות, אפשרה לבצע בדיקות בצורה נוחה יותר (לפני וירטואליזציה, אם רצית לבדוק שהמערכת שלך עובדת על linux ויש לך windows – היית צריך לדאוג לשרת פיזי חדש. אחרי שוירטואליזציה נכנסה לתמונה, כמה דקות של קנפוג ויש לך vm עם linux על שרת ה-windows).
כיוון ש-vm רץ באיזור מבודד ונפרד מהשרת הפיזי, גם אם נהרס משהו – אפשר להקים vm חדש וזה לא ישפיע על ה-host os. אפשר לשכפל ולשמור הגדרות של vms באמצעות לקיחת snapshot שלהם, לגרום לכמה שרתים להיות ברשת פנימית סגורה ועוד מגוון רחב של פיצ’רים.
יש ל-Virtualization גם כמה חסרונות בולטים:
- ה-vms תפסו הרבה מקום.
- הרצת כמה vms במקביל גרמה לביצועים לא יציבים.
- התהליך של העלאת המכונה(vm) לוקח יחסית הרבה זמן.
כל אלו ועוד הובילו להתהוות טכנולוגיה/טכניקה מתקדמת יותר: Containerization.
ניגע בה בהרחבה במאמר הבא.
אני מצרף למי שמעוניין סרטון קצר ונחמד שמסביר על Virtualization.
מאמר יפה,
מסביר בפשטות את החשיבות שיש ביכולת Virtualization.
תודה רבה. יופי של מאמרים – זה והאחרים.
מקווה שתמשיך
מעניין מאוד, תודה רבה