Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Máy Ảo

Cài đặt và cấu hình KVM Hypervisor trên CentOS/RHEL

Trong bài viết này chúng ta sẽ xem cách cài đặt và cấu hình KVM hypervisor trên máy chủ chạy Linux RHEL hoặc CentOS. Chúng ta sẽ chỉ cách tạo máy ảo trong KVM, thay đổi cài đặt của nó và cài đặt hệ điều hành khách. Chúng ta cũng sẽ mô tả một số lệnh điển hình để quản lý VM.

KVM (Kernel-based Virtual Machine) là một hypervisor Linux sử dụng công nghệ ảo hóa phần cứng Intel VT- hoặc AMD SVM. Sử dụng KVM, bạn có thể tạo các máy ảo cô lập với phần cứng ảo riêng: card mạng, ổ đĩa, card đồ họa hoặc các thiết bị khác. Bạn có thể cài đặt bất kỳ hệ điều hành khách nào trên máy ảo (không chỉ Linux).

Cách cài đặt KVM trên CentOS/RHEL?

Khi bạn cấu hình KVM trên máy chủ, bạn nên bắt đầu bằng việc kiểm tra CPU. Bạn phải đảm bảo CPU cài đặt trên máy chủ hỗ trợ ảo hóa phần cứng. Chạy lệnh sau trong console máy chủ:

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

Nếu bộ vi xử lý của bạn hỗ trợ VT-x, bạn sẽ thấy đầu ra như sau:

Cài đặt và cấu hình KVM Hypervisor trên CentOS/RHEL

Nếu lệnh không trả về gì, nhưng bạn biết CPU của mình hỗ trợ ảo hóa, hãy đảm bảo tùy chọn này không bị tắt trong BIOS máy chủ. Tìm tùy chọn Intel Virtualization Technology hoặc SVM MODE.

Máy chủ của tôi hỗ trợ VT-x và nó đã được bật, vì vậy chúng ta có thể cài đặt các gói cần thiết trên CentOS/RHEL bằng yum/dnf:

# yum install libvirt libvirt-python libguestfs-tools qemu-kvm virt-install –y

  • qemu-kvm – hypervisor KVM
  • libvirt – thư viện quản lý ảo hóa
  • virt-install – công cụ CLI quản lý máy ảo KVM

Nhiều gói sẽ được cài đặt trên máy chủ Linux của bạn. Đảm bảo không có lỗi xảy ra trong quá trình cài đặt.

Sau đó thêm dịch vụ libvirtd vào khởi động và chạy nó:

# systemctl enable libvirtd
# systemctl start libvirtd

Cài đặt và cấu hình KVM Hypervisor trên CentOS/RHEL

Đảm bảo các module kernel kvm_intel và kvm đã được nạp:

# lsmod | grep kvm

kvm_intel 188688 0
kvm 636931 1 kvm_intel
irqbypass 13503 1 kvm

Nếu lệnh không trả về gì, hãy khởi động lại máy chủ và kiểm tra lại.

Tạo và cấu hình Bridge Networking cho KVM

Sau đó tạo thư mục để lưu trữ ổ đĩa máy ảo và file ISO:

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

Để máy ảo của bạn có quyền truy cập Internet, bạn phải cấu hình mạng bằng bridge. Để làm điều đó, bạn sẽ cần bridge-utils. Kiểm tra xem nó đã được cài đặt trên máy chủ Linux của bạn bằng lệnh này:

# rpm -qa | grep bridge-utils

Cài đặt nếu cần:

# yum install bridge-utils -y

Sau khi cài đặt gói, giao diện mạng virbr0 xuất hiện trong hệ điều hành:

# ip a

Cài đặt và cấu hình KVM Hypervisor trên CentOS/RHEL

Để tạo bridge, bạn phải thiết lập file cấu hình giao diện mạng của máy chủ:

# cp /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 /etc/sysconfig/network-scripts/ifcfg-enp1s0f0_bak – sao lưu file
# nano /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 — mở để chỉnh sửa

Xóa nội dung file và thay thế bằng:

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

Trong trường hợp của bạn, tên giao diện có thể khác (lấy nó bằng lệnh ip a).

Sau đó tạo file:

# nano /etc/sysconfig/network-scripts/ifcfg-br0
chứa cấu hình sau:

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"

Bạn phải chỉ định địa chỉ IP máy chủ và gateway mặc định. Sau khi chỉnh sửa file cấu hình giao diện mạng, khởi động lại mạng:

# service network restart

Nếu sau khi khởi động lại mạng bạn không thể truy cập máy chủ, hãy thử khởi động lại máy chủ. Đôi khi cần thiết để cấu hình bridge đúng cách.

Để xem trạng thái bridge, sử dụng lệnh này:

# brctl show

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

Ở bước cuối, cấu hình chuyển tiếp lưu lượng mạng:

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

Sau đó khởi động lại libvirtd:

# service libvirtd restart

Cấu hình mạng KVM cơ bản đã xong, bạn có thể tạo máy ảo.

Tạo máy ảo trong KVM

Trước khi tạo máy ảo, tôi đã tải xuống image CentOS 8 từ mirror chính thức vào /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

Để tạo máy ảo KVM mới, chạy lệnh sau:

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 — tên VM
  • noautoconsole – sau khi tạo VM, bạn không tự động kết nối console VM
  • network – loại mạng (bridge, trong trường hợp của tôi);
  • ram — lượng RAM trong VM;
  • vcpus – số nhân CPU (cấu hình vCPU cho VM)
  • disk – ổ cứng ảo, path – đường dẫn đến ổ đĩa, size – kích thước ổ đĩa (có thể mở rộng/thu nhỏ sau)
  • cdrom – ổ CDROM ảo, image ISO cài đặt OS khách được gắn vào;
  • graphics — tham số kết nối máy ảo bằng console đồ họa. Chúng ta sẽ dùng VNC để kết nối, vì vậy cho listen chỉ định địa chỉ IP của máy chủ KVM nơi bạn tạo VM, và mật khẩu kết nối console máy ảo

Để VM tự động khởi động, chạy:

# virsh autostart test-centosvm

Cách kết nối với VM KVM bằng VNC và cài đặt OS?

Để kết nối với máy ảo KVM bằng VNC, bạn cần tìm cổng nó đang chạy:
# virsh vncdisplay test-centovms

IP:0

0 có nghĩa là số cổng kết nối bằng VNC là 5900. Nếu bạn nhận được giá trị khác, chỉ cần cộng số lệnh trả về vào 5900.

Để kết nối với máy chủ bằng VNC, tôi dùng TightVNC. Chạy nó và chỉ định địa chỉ IP máy chủ và cổng VNC chúng ta lấy trước đó (với dấu hai chấm kép làm phân cách).

Cài đặt và cấu hình KVM Hypervisor trên CentOS/RHEL

Nhấp Connect và nhập mật khẩu bạn đặt khi tạo VM KVM. Nếu làm đúng, console máy chủ xuất hiện, trong đó cài đặt CentOS (hoặc OS khách khác, image bạn đã gắn) đang chạy.

Cài đặt và cấu hình KVM Hypervisor trên CentOS/RHEL

Nếu tường lửa được bật trên máy chủ, hãy mở cổng 5900-5910 cho VNC trong firewalld/iptables (mười cổng sẽ đủ). Sau khi cài đặt OS khách trên máy ảo, khởi động VM từ console máy chủ:

Cài đặt và cấu hình KVM Hypervisor trên CentOS/RHEL

Để tắt máy ảo KVM, dùng lệnh:

# virsh shutdown test-centosvm

Để hiển thị danh sách tất cả máy ảo KVM đã đăng ký:

# virsh list --all

Tìm hiểu thêm về quản lý máy ảo KVM từ console máy chủ bằng virsh (cách thêm RAM, CPU, ổ đĩa hoặc giao diện mạng). Nếu bạn thích giao diện đồ họa, bạn có thể dùng virt-manager KVM GUI.

Cấu hình cơ bản máy chủ KVM đã xong, và một máy ảo đã được tạo. Bạn có thể tạo bất kỳ số lượng máy ảo nào trong KVM, nó chỉ phụ thuộc vào tài nguyên máy chủ và nhu cầu của bạn.