סדרת RHCSA: יסודות של וירטואליזציה וניהול אורחים עם KVM – חלק 15

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

RHCSA Series: Essentials of Virtualization and Guest Administration with KVM – Part 15

באמצעות שימוש במנטחן מכונת הווירטואלי (שם אחר לו הוא היפרוויזור), מכונות וירטואליות (המכונות הנקראות אורחים) מקבלות משאבים וירטואליים (כמו למשל מעבד, זיכרון RAM, אחסון, ממשקי רשת, ועוד) מהחומרה התחתית.

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

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

אנא שימו לב כי המאמר הזה מיועד לשמש נקודת התחלה ללמידת היסודות של הווירטואליזציה ב-RHEL 7 באמצעות KVM (Kernel-based Virtual Machine) עם תוכניות שורת פקודה, ולא דיון מעמיק בנושא.

אימות דרישות החומרה והתקנת חבילות

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

# grep -E 'svm|vmx' /proc/cpuinfo

בתמונת המסך הבאה אנו רואים שהמערכת הנוכחית (עם מעבד AMD) תומך בוירטואליזציה, כפי שמסומן ב-svm. אם היינו משתמשים במעבד מבוסס Intel, כנראה שהיינו רואים vmx במקום בתוצאות של הפקודה לעיל.

Check KVM Support

בנוסף, עליך לוודא שיכולות הוירטואליזציה מופעלות בתוכנה הקרנלית של המארח (BIOS או UEFI).

כעת, התקן את החבילות הנחוצות:

  1. qemu-kvm הינה כלי וירטואליזציה קוד פתוח שמספק הדמיה חומרתית עבור המנהל KVM, בעוד ש-qemu-img מספק כלי שורת פקודה לניהול תמונות דיסק.
  2. libvirt כוללת כלי להתקשרות עם יכולות הוירטואליזציה של מערכת ההפעלה.
  3. libvirt-python מכיל מודול שמאפשר ליישומים שנכתבו ב-Python להשתמש בממשק שסופק על ידי libvirt.
  4. libguestfs-tools: כלי שורת פקודה של מנהלי מערכות שונות עבור מכונות וירטואליות.
  5. 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/