ค้นหาเว็บไซต์

ซีรี่ส์ RHCSA: สิ่งจำเป็นสำหรับการจำลองเสมือนและการดูแลระบบผู้เยี่ยมชมด้วย KVM - ตอนที่ 15


หากคุณค้นหาคำว่า virtualize ในพจนานุกรม คุณจะพบว่าคำว่า virtualize หมายถึง “การสร้างบางสิ่งในเวอร์ชันเสมือนจริง (แทนที่จะเป็นของจริง)” ในการประมวลผล คำว่าการจำลองเสมือนหมายถึงความเป็นไปได้ในการใช้งานระบบปฏิบัติการหลายระบบพร้อมกันและแยกระบบปฏิบัติการออกจากกัน บนระบบทางกายภาพ (ฮาร์ดแวร์) เดียวกัน ซึ่งเป็นที่รู้จักในสคีมาการจำลองเสมือนว่าเป็น โฮสต์

ด้วยการใช้การตรวจสอบเครื่องเสมือน (หรือที่เรียกว่า ไฮเปอร์ไวเซอร์) เครื่องเสมือน (เรียกว่า แขก) จะได้รับทรัพยากรเสมือน (เช่น CPU, RAM, พื้นที่เก็บข้อมูล, เครือข่าย อินเทอร์เฟซ เป็นต้น) จากฮาร์ดแวร์พื้นฐาน

ด้วยเหตุนี้ จึงเห็นได้ชัดเจนว่าข้อดีหลักประการหนึ่งของการจำลองเสมือนคือการประหยัดต้นทุน (ในอุปกรณ์และโครงสร้างพื้นฐานเครือข่าย และในแง่ของความพยายามในการบำรุงรักษา) และการลดพื้นที่ทางกายภาพที่จำเป็นสำหรับการรองรับฮาร์ดแวร์ที่จำเป็นทั้งหมดอย่างมาก

เนื่องจากวิธีการสั้นๆ นี้ไม่ครอบคลุมวิธีการจำลองเสมือนทั้งหมด ฉันขอแนะนำให้คุณดูเอกสารประกอบที่แสดงอยู่ในข้อมูลสรุปเพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้

โปรดทราบว่าบทความนี้มีวัตถุประสงค์เพื่อเป็นจุดเริ่มต้นในการเรียนรู้พื้นฐานของการจำลองเสมือนใน RHEL 7 โดยใช้ KVM (เครื่องเสมือนที่ใช้เคอร์เนล) พร้อมด้วยยูทิลิตี้บรรทัดคำสั่ง ไม่ใช่ใน - การอภิปรายเชิงลึกของหัวข้อ

การตรวจสอบข้อกำหนดฮาร์ดแวร์และการติดตั้งแพ็คเกจ

ในการตั้งค่าการจำลองเสมือน CPU ของคุณต้องรองรับ คุณสามารถตรวจสอบว่าระบบของคุณตรงตามข้อกำหนดหรือไม่ด้วยคำสั่งต่อไปนี้:


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

ในภาพหน้าจอต่อไปนี้ เราจะเห็นว่าระบบปัจจุบัน (ที่มีไมโครโปรเซสเซอร์ AMD) รองรับการจำลองเสมือน ตามที่ระบุโดย svm หากเรามีโปรเซสเซอร์ที่ใช้ Intel เราจะเห็น vmx แทนในผลลัพธ์ของคำสั่งข้างต้น

นอกจากนี้ คุณจะต้องเปิดใช้งานความสามารถในการจำลองเสมือนในเฟิร์มแวร์ของโฮสต์ของคุณ (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. เพิ่มบรรทัดต่อไปนี้ในการกำหนดค่า NIC หลักของเรา (มีแนวโน้มมากที่สุดคือ /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

โปรดทราบว่าคุณอาจต้องแจ้ง ไฟร์วอลล์ ว่าการรับส่งข้อมูลประเภทนี้ควรได้รับอนุญาต โปรดจำไว้ว่าคุณสามารถดูบทความในหัวข้อนั้นในชุดเดียวกันนี้ (ตอนที่ 11: การควบคุมการรับส่งข้อมูลเครือข่ายโดยใช้ FirewallD และ Iptables) หากคุณต้องการความช่วยเหลือในการทำเช่นนั้น