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

באמצעות שימוש במנטחן מכונת הווירטואלי (שם אחר לו הוא היפרוויזור), מכונות וירטואליות (המכונות הנקראות אורחים) מקבלות משאבים וירטואליים (כמו למשל מעבד, זיכרון RAM, אחסון, ממשקי רשת, ועוד) מהחומרה התחתית.
עם זאת, נראה ברור כי אחד היתרונות העיקריים של הווירטואליזציה הוא חיסכון בעלויות (בציוד ובתשתיות רשת ומבחינת מאמץ התחזוקה) והפחתה משמעותית במרחב הפיזי הנדרש כדי לארח את כל החומרה הנדרשת.
מאחר והמדריך הקצר הזה אינו יכול לכסות את כל שיטות הווירטואליזציה, אני מעודד אתכם להפנות לתיעוד המצוין בסיכום למידע נוסף על הנושא.
אנא שימו לב כי המאמר הזה מיועד לשמש נקודת התחלה ללמידת היסודות של הווירטואליזציה ב-RHEL 7 באמצעות KVM (Kernel-based Virtual Machine) עם תוכניות שורת פקודה, ולא דיון מעמיק בנושא.
אימות דרישות החומרה והתקנת חבילות
כדי להגדיר וירטואליזציה, על המעבד שלך לתמוך בכך. ניתן לוודא האם המערכת שלך עומדת בדרישות עם הפקודה הבאה:
# grep -E 'svm|vmx' /proc/cpuinfo
בתמונת המסך הבאה אנו רואים שהמערכת הנוכחית (עם מעבד AMD) תומך בוירטואליזציה, כפי שמסומן ב-svm. אם היינו משתמשים במעבד מבוסס Intel, כנראה שהיינו רואים vmx במקום בתוצאות של הפקודה לעיל.

בנוסף, עליך לוודא שיכולות הוירטואליזציה מופעלות בתוכנה הקרנלית של המארח (BIOS או UEFI).
כעת, התקן את החבילות הנחוצות:
- qemu-kvm הינה כלי וירטואליזציה קוד פתוח שמספק הדמיה חומרתית עבור המנהל KVM, בעוד ש-qemu-img מספק כלי שורת פקודה לניהול תמונות דיסק.
- libvirt כוללת כלי להתקשרות עם יכולות הוירטואליזציה של מערכת ההפעלה.
- libvirt-python מכיל מודול שמאפשר ליישומים שנכתבו ב-Python להשתמש בממשק שסופק על ידי libvirt.
- libguestfs-tools: כלי שורת פקודה של מנהלי מערכות שונות עבור מכונות וירטואליות.
- virt-install: יישומי שורת פקודה נוספים לניהול מכונות וירטואליות.
# yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install
כאשר ההתקנה הושלמה, וודא שאתה מפעיל ומאפשר את השירות libvirtd:
# systemctl start libvirtd.service # systemctl enable libvirtd.service
בדרך כלל, כל מכונת וירטואלית תוכל לתקשר רק עם שאר המכונות באותו שרת פיזי ועם המארח עצמו. כדי לאפשר לאורחים להגיע למכונות אחרות בתוך ה־LAN שלנו וגם לאינטרנט, עלינו להגדיר ממשק גשר במארח שלנו (נקרא br0, לדוגמה) על ידי:
1. הוספת השורה הבאה לקובץ התצורה של כרטיס הרשת הראשי שלנו (בכל זאת, כנראה /etc/sysconfig/network-scripts/ifcfg-enp0s3
):
BRIDGE=br0
2. יצירת קובץ התצורה עבור br0 (/etc/sysconfig/network-scripts/ifcfg-br0
) עם התוכן הבא (שימו לב שעשויים להיות עליכם לשנות את כתובת ה־IP, כתובת השער והמידע על DNS):
DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.0.18 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 NM_CONTROLLED=no DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=br0 ONBOOT=yes DNS1=8.8.8.8 DNS2=8.8.4.4
3. לבסוף, להפעיל העברת חבילות על ידי יצירת השורות הבאות ב־/etc/sysctl.conf
:
net.ipv4.ip_forward = 1
והעלאת השינויים לתצורת הליבה הנוכחית:
# sysctl -p
שימו לב שעשוי להיות עליכם גם להודיע ל־firewalld כי סוג זה של תעבורה צריך להתרשם. זכרו שתוכלו להתייעץ במאמר בנושא זה בסדרת פרקים זו (חלק 11: בקרת תעבורת רשת באמצעות FirewallD ו־Iptables) אם תזדקקו לעזרה בביצוע זאת.
Source:
https://www.tecmint.com/kvm-virtualization-basics-and-guest-administration/