Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> เครื่องเสมือน

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

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

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

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

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

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

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

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

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

เซิร์ฟเวอร์ของฉันรองรับ 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 Hypervisor บน CentOS/RHEL

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

# lsmod | grep kvm

kvm_intel 188688 0
kvm 636931 1 kvm_intel
irqbypass 13503 1 kvm

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

สร้างและกำหนดค่าเครือข่ายบริดจ์สำหรับ KVM

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

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

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

# rpm -qa | grep bridge-utils

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

# yum install bridge-utils -y

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

# ip a

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

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

# 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 https://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 – ติดตั้ง CDROM เสมือน, อิมเมจ ISO สำหรับติดตั้ง gust OS;
  • 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 Hypervisor บน CentOS/RHEL

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

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

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

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

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

# virsh shutdown test-centosvm

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

# virsh list --all

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

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