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

ติดตั้งและกำหนดค่า KVM Hypervisor บน CentOS/RHEL


ในบทความนี้ เราจะดูวิธีติดตั้งและกำหนดค่า ไฮเปอร์ไวเซอร์ KVM บนเซิร์ฟเวอร์ที่ใช้ Linux RHEL หรือ CentOS เราจะแสดงวิธีสร้างเครื่องเสมือนใน KVM เปลี่ยนการตั้งค่าและติดตั้งระบบปฏิบัติการแขก เราจะอธิบายคำสั่งทั่วไปในการจัดการ VM

KVM (เครื่องเสมือนที่ใช้เคอร์เนล) เป็นไฮเปอร์ไวเซอร์ Linux ที่ใช้เทคโนโลยีการจำลองเสมือนของฮาร์ดแวร์ Intel VT- หรือ AMD SVM เมื่อใช้ KVM คุณสามารถสร้างเครื่องเสมือนแบบแยกได้ด้วยฮาร์ดแวร์เสมือนของตนเอง: อะแดปเตอร์เครือข่าย ดิสก์ การ์ดกราฟิก หรืออุปกรณ์อื่นๆ คุณสามารถติดตั้งระบบปฏิบัติการเกสต์บนเครื่องเสมือน (ไม่เฉพาะ Linux)

จะติดตั้ง KVM บน CentOS/RHEL ได้อย่างไร

เมื่อคุณกำหนดค่า KVM บนเซิร์ฟเวอร์ของคุณ คุณควรเริ่มต้นด้วยการตรวจสอบ CPU คุณต้องตรวจสอบให้แน่ใจว่า CPU ที่ติดตั้งบนโฮสต์ของคุณรองรับการจำลองเสมือนของฮาร์ดแวร์หรือไม่ เรียกใช้คำสั่งต่อไปนี้ในคอนโซลเซิร์ฟเวอร์ของคุณ:

# cat /proc/cpuinfo | egrep "(vmx|svm)"

หากโปรเซสเซอร์ของคุณรองรับ VT-x คุณจะเห็นผลลัพธ์ดังนี้:

หากคำสั่งไม่แสดงผลใดๆ แต่คุณทราบว่า CPU ของคุณสนับสนุนการจำลองเสมือน ตรวจสอบให้แน่ใจว่าไม่ได้ปิดใช้งานตัวเลือกนี้ในเซิร์ฟเวอร์ BIOS มองหาตัวเลือก Intel Virtualization Technology หรือ SVM MODE

เซิร์ฟเวอร์ของฉันรองรับ VT-x และเปิดใช้งานอยู่ เราจึงสามารถติดตั้งแพ็คเกจที่จำเป็นบน CentOS/RHEL โดยใช้ yum/dnf:

# yum install libvirt libvirt-python libguestfs-tools qemu-kvm virt-install -y
  • qemu-kvm - ไฮเปอร์ไวเซอร์ KVM

  • libvirt - ไลบรารีการจัดการการจำลองเสมือน

  • virt-install - เครื่องมือ CLI เพื่อจัดการเครื่องเสมือน KVM

แพ็คเกจจำนวนมากจะถูกติดตั้งบนเซิร์ฟเวอร์ Linux ของคุณ ตรวจสอบให้แน่ใจว่าไม่มีข้อผิดพลาดเกิดขึ้นระหว่างการติดตั้ง

จากนั้นเพิ่มบริการ libvirtd เพื่อเริ่มต้นและเรียกใช้งาน:

# systemctl enable libvirtd
# systemctl start libvirtd

ตรวจสอบให้แน่ใจว่าโหลดโมดูล kvm_intel และ เคอร์เนล kvm แล้ว:

# lsmod | grep kvm
kvm_intel 188688 0
kvm 636931 1 kvm_intel
irqbypass 13503 1 kvm

หากคำสั่งไม่ส่งคืนสิ่งใด ให้รีสตาร์ทโฮสต์และตรวจสอบอีกครั้ง

สร้างและกำหนดค่า Bridge Networking สำหรับ KVM

จากนั้นสร้างไดเร็กทอรีเพื่อจัดเก็บดิสก์เครื่องเสมือนและอิมเมจ ISO ใน:

# mkdir -p /vz/{disk,iso}

เพื่อให้เครื่องเสมือนของคุณสามารถเข้าถึงอินเทอร์เน็ต คุณต้องกำหนดค่าเครือข่ายโดยใช้ บริดจ์ ในการดำเนินการนี้ คุณจะต้องมี เครื่องมือบริดจ์ ตรวจสอบให้แน่ใจว่าติดตั้งบนโฮสต์ Linux ของคุณโดยใช้คำสั่งนี้:

# rpm -qa | grep bridge-utils

ติดตั้งหากจำเป็น:

# yum install bridge-utils -y

หลังจากติดตั้งแพ็คเกจ อินเทอร์เฟซเครือข่าย virbr0 ปรากฏในระบบปฏิบัติการ:

# ip a

หากต้องการสร้าง บริดจ์ คุณต้องตั้งค่าไฟล์การกำหนดค่าของอินเทอร์เฟซเครือข่ายเซิร์ฟเวอร์ของคุณ:

# cp /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 /etc/sysconfig/network-scripts/ifcfg-enp1s0f0_bak

- สำรองไฟล์

# nano /etc/sysconfig/network-scripts/ifcfg-enp1s0f0

- เปิดเพื่อแก้ไข

ลบเนื้อหาไฟล์และแทนที่ด้วยสิ่งต่อไปนี้:

DEVICE="enp1s0f0"
ONBOOT="yes"
BRIDGE=br0

ในกรณีของคุณ ชื่ออินเทอร์เฟซอาจแตกต่างออกไป (ใช้คำสั่ง ip a)

จากนั้นสร้างไฟล์:

# nano /etc/sysconfig/network-scripts/ifcfg-br0

มีการกำหนดค่าต่อไปนี้:

DEVICE="br0"
TYPE=BRIDGE
ONBOOT=yes
BOOTPROTO=static
IPADDR="IP_address_of_the_server"
NETMASK="255.255.255.0"
GATEWAY="Default_gateway"
DNS1="8.8.8.8"
DNS2="8.8.4.4"

คุณต้องระบุที่อยู่ IP ของเซิร์ฟเวอร์และเกตเวย์เริ่มต้น หลังจากที่คุณแก้ไขไฟล์คอนฟิกูเรชันอินเทอร์เฟซเครือข่ายแล้ว ให้รีสตาร์ทเครือข่าย:

# service network restart

หากหลังจากรีสตาร์ทเครือข่ายแล้ว คุณไม่สามารถเข้าถึงเซิร์ฟเวอร์ได้ ให้ลองรีสตาร์ทโฮสต์ด้วย บางครั้งจำเป็นต้องกำหนดค่าบริดจ์ให้ถูกต้อง

หากต้องการดูสถานะของบริดจ์ ให้ใช้คำสั่งนี้:

# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.ac1f6b654321 no enp1s0f0
virbr0 8000.525400abcdef1 yes virbr0-nic

ในขั้นตอนสุดท้าย ให้กำหนดค่าการส่งต่อการรับส่งข้อมูลเครือข่าย:

# echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p

จากนั้นรีสตาร์ท libvirtd:

# service libvirtd restart

การกำหนดค่าเครือข่าย KVM พื้นฐานสิ้นสุดลงแล้ว และคุณสามารถสร้างเครื่องเสมือนได้

การสร้างเครื่องเสมือนใน KVM

ก่อนที่จะสร้างเครื่องเสมือน ฉันได้ดาวน์โหลดอิมเมจ CentOS 8 จากมิเรอร์อย่างเป็นทางการไปที่ /vz/iso:

# cd /vz/iso && wget http://mirror.imt-systems.com/centos/8.3.2011/isos/x86_64/CentOS-8.3.2011-x86_64-dvd1.iso

หากต้องการสร้างเครื่องเสมือน KVM ใหม่ ให้รันดังต่อไปนี้:

virt-install -n test-centosvm \
--noautoconsole \
--network=bridge:br0 \
--ram 2048 --arch=x86_64 \
--vcpus=4 --cpu host --check-cpu \
--disk path=/vz/disk/test-centosvm.img,size=32 \
--cdrom /vz/iso/CentOS-8.3.2011-x86_64-dvd1.iso \
--graphics vnc,listen=IP,password=p@sswdr0w1 \
--os-type linux --os-variant=rhel7 --boot cdrom,hd,menu=on
  • test-centosvm

    — ชื่อ VM

  • noautoconsole

    - หลังจากสร้าง VM คุณจะไม่เชื่อมต่อกับคอนโซล VM โดยอัตโนมัติ

  • network

    - ประเภทเครือข่าย (บริดจ์ ในกรณีของฉัน);

  • ram

    — จำนวน RAM ใน VM

  • vcpus

    - จำนวนคอร์ CPU (การกำหนดค่า vCPU สำหรับ VM)

  • disk

    - ดิสก์เสมือน, พาธ - พาธไปยังดิสก์, ขนาด - ขนาดของดิสก์ (คุณสามารถขยาย/ลดขนาดได้ในภายหลัง)

  • cdrom

    - ซีดีรอมเสมือน, อิมเมจ ISO เพื่อติดตั้งระบบปฏิบัติการ gust นั้นติดตั้งอยู่;

  • graphics

    — พารามิเตอร์เพื่อเชื่อมต่อกับเครื่องเสมือนโดยใช้คอนโซลกราฟิก เราจะใช้ VNC เพื่อเชื่อมต่อ ดังนั้นสำหรับการฟัง ให้ระบุที่อยู่ IP ของเซิร์ฟเวอร์ KVM ที่คุณสร้าง VM และรหัสผ่านเพื่อเชื่อมต่อกับคอนโซลเครื่องเสมือน

ในการทำให้ VM บูทโดยอัตโนมัติ ให้รัน:

# virsh autostart test-centosvm

จะเชื่อมต่อกับ KVM VM โดยใช้ VNC และติดตั้งระบบปฏิบัติการได้อย่างไร

ในการเชื่อมต่อกับเครื่องเสมือน KVM โดยใช้ VNC คุณต้องค้นหาพอร์ตที่รันอยู่:

# virsh vncdisplay test-centovms
IP:0

0 หมายความว่าหมายเลขพอร์ตสำหรับเชื่อมต่อโดยใช้ VNC คือ 5900 หากคุณได้รับค่าอื่น ให้เพิ่มหมายเลขที่คำสั่งส่งคืนเป็น 5900

ในการเชื่อมต่อกับเซิร์ฟเวอร์โดยใช้ VNC ฉันใช้ TightVNC เรียกใช้และระบุที่อยู่ IP ของเซิร์ฟเวอร์ของคุณและพอร์ต VNC ที่เราได้รับก่อนหน้านี้ (โดยมีเครื่องหมายทวิภาคคู่เป็นตัวคั่น)

คลิก เชื่อมต่อ และป้อนรหัสผ่านที่คุณตั้งไว้เมื่อสร้าง KVM VM หากคุณทำอย่างถูกต้อง คอนโซลเซิร์ฟเวอร์จะปรากฏขึ้น ซึ่งการติดตั้ง CentOS (หรือระบบปฏิบัติการเกสต์อื่น ซึ่งอิมเมจที่คุณติดตั้งไว้) กำลังทำงานอยู่

หากเปิดใช้งานไฟร์วอลล์บนเซิร์ฟเวอร์ของคุณ ให้เปิดพอร์ต 5900-5910 สำหรับ VNC ใน firewalld/iptables (สิบพอร์ตก็เพียงพอแล้ว) หลังจากติดตั้งระบบปฏิบัติการเกสต์บนเครื่องเสมือน ให้เริ่ม VM จากคอนโซลเซิร์ฟเวอร์:

หากต้องการปิดเครื่องเสมือน KVM ให้ใช้คำสั่งนี้:

# virsh shutdown test-centosvm

หากต้องการแสดงรายการเครื่องเสมือน KVM ที่ลงทะเบียนทั้งหมด:

# virsh list --all

เรียนรู้เพิ่มเติมเกี่ยวกับการจัดการเครื่องเสมือน KVM จากคอนโซลเซิร์ฟเวอร์โดยใช้ virsh (วิธีเพิ่ม RAM, CPU, ดิสก์ หรืออินเทอร์เฟซเครือข่าย) หากคุณต้องการอินเทอร์เฟซแบบกราฟิก คุณสามารถใช้ virt-manager KVM GUI

การกำหนดค่าโฮสต์ KVM พื้นฐานสิ้นสุดลงแล้ว และสร้างเครื่องเสมือนแล้ว คุณสามารถสร้างเครื่องเสมือนกี่เครื่องก็ได้ใน KVM ขึ้นอยู่กับทรัพยากรเซิร์ฟเวอร์และความต้องการของคุณเท่านั้น

บทความที่เกี่ยวข้อง