Sunday, January 19, 2025

Kích hoạt Virtualization trong Proxmox

-

Proxmox là nền tảng ảo hóa mà tôi ưa thích để triển khai nhiều container và máy ảo (VM). Đôi khi, tôi muốn tạo một VM bên trong một VM khác. Nghĩa là, tôi chỉ muốn chứa một máy ảo con (tức là VM) trong máy chủ vật lý Proxmox của mình.

Bạn có bao giờ tò mò về cách thiết lập một máy ảo con trong một máy chủ ảo chưa? Trong hướng dẫn này, tôi sẽ chỉ bạn cách kích hoạt ảo hóa lồng nhau trong Proxmox VE và sau đó bật VT-X trong máy ảo con.

Nested Virtualization là gì?

Nested Virtualization là một tính năng cho phép bạn chạy một máy ảo bên trong một máy ảo khác trong khi vẫn sử dụng tăng tốc phần cứng từ hệ thống máy chủ chủ. Nói một cách đơn giản, ảo hóa lồng là một cơ chế cho phép chạy một hệ thống ảo hóa bên trong một máy ảo (VM) và máy ảo đó lại chạy trên một hệ thống ảo hóa.

Kích hoạt ảo hóa lồng trong Proxmox.

Các bước sau đây phải được thực hiện trên máy chủ Proxmox vật lý.

Trước tiên, hãy đảm bảo rằng tính năng ảo hóa lồng được kích hoạt trên máy chủ Proxmox vật lý.

Nếu máy chủ Proxmox của bạn sử dụng CPU Intel, hãy chạy lệnh sau để kiểm tra xem tính năng ảo hóa lồng có được kích hoạt không.

shell> cat /sys/module/kvm_intel/parameters/nested
N

Nếu đó là CPU AMD, chạy:

shell> cat /sys/module/kvm_amd/parameters/nested
N

Bạn có thể nhận được đầu ra “N” hoặc “0” và “Y” hoặc “1”. Nếu đầu ra là “N” hoặc “0”, điều này có nghĩa là tính năng ảo hóa lồng chưa được kích hoạt. Nếu đầu ra là “Y” hoặc “1”, tính năng lồng đã được kích hoạt.

Trong máy chủ Proxmox của tôi, tính năng ảo hóa lồng chưa được kích hoạt. Vì vậy, tôi sẽ kích hoạt nó bằng cách sử dụng lệnh sau dưới quyền người dùng root:

echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf

Trên máy chủ Proxmox sử dụng CPU AMD, chạy lệnh này:

echo "options kvm-amd nested=1" > /etc/modprobe.d/kvm-amd.conf

Lưu ý: Chúng ta thêm “Y” cho CPU INTEL và 1 cho CPU AMD để kích hoạt tính năng lồng.

Sau đó, khởi động lại hệ thống hoặc tải lại các modules kernel để thay đổi có hiệu lực:

modprobe -r kvm_intel
modprobe kvm_intel

Trên máy chủ Proxmox sử dụng CPU AMD, chạy:

modprobe -r kvm_amd
modprobe kvm_amd

Kiểm tra lại xem tính năng ảo hóa lồng có được kích hoạt trên máy chủ Proxmox vật lý hay không:

shell> cat /sys/module/kvm_intel/parameters/nested
Y

Nếu đó là CPU AMD, chạy:

shell> cat /sys/module/kvm_amd/parameters/nested
Y

Như bạn thấy trong đầu ra trên, tính năng ảo hóa lồng đã được kích hoạt trên máy chủ Proxmox.

Kiểm tra xem VT-X có được kích hoạt trong máy ảo hay không.

Như bạn có thể đã biết, để chứa các máy ảo trong hệ thống, CPU phải hỗ trợ công nghệ ảo hóa (VT-X) và VT-X phải được kích hoạt.

Có một số cách để kiểm tra xem một CPU có hỗ trợ VT-X hay không. Hướng dẫn dưới đây liệt kê một số phương pháp để kiểm tra xem tính năng VT-X có được kích hoạt trong một hệ thống hay không.

grep -E -o '(vmx|svm)' /proc/cpuinfo

Nếu bạn không thấy bất kỳ đầu ra nào, điều đó có nghĩa là VT-X chưa được kích hoạt. Hãy kích hoạt nó ngay bây giờ ở phần tiếp theo đưới đây.

Kích hoạt VT-X trong máy ảo từ terminal.

Sau khi kích hoạt tính năng ảo hóa lồng trên máy chủ Proxmox, bạn phải kích hoạt công nghệ ảo hóa (VT-X) trong các máy ảo (guest) để chúng trở thành hypervisor.

Bạn có thể kích hoạt VT-X từ terminal hoặc giao diện người dùng web Proxmox.

qm set <VMID> --cpu host

Ví dụ.

qm set 105 --cpu host

Thay thế “105” bằng ID của máy ảo của bạn. Bây giờ máy ảo đã trở thành hypervisor, vì vậy bạn có thể tạo các container và máy ảo bên trong máy ảo này.

Kích hoạt VT-X trong máy ảo từ giao diện Web Proxmox.

Đảm bảo rằng VM đã được tắt.

Mở giao diện web Proxmox của bạn bằng cách truy cập vào https://proxmox-ip:8006. Nhập tên người dùng và mật khẩu để đăng nhập vào bảng điều khiển web Proxmox.

Truy cập vào Máy ảo (ví dụ: golang-13.244) -> Hardware. Chọn Processors và nhấp vào Edit hoặc Nhấp đúp vào tùy chọn Processors. Chọn loại CPUhost.

Khởi động lại VM.

Khi VM đã được khởi động, kiểm tra lại xem VT-X có được kích hoạt trong máy ảo hay không bằng lệnh egrep --color -i "svm|vmx" /proc/cpuinfo.

shell> egrep --color -i "svm|vmx" /proc/cpuinfo
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 cx16 pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes hypervisor lahf_lm cpuid_fault pti tpr_shadow vnmi flexpriority ept vpid tsc_adjust arat umip arch_capabilities
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 cx16 pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes hypervisor lahf_lm cpuid_fault pti tpr_shadow vnmi flexpriority ept vpid tsc_adjust arat umip arch_capabilities

Nếu bạn thấy “vmx” (Công nghệ Intel-VT) hoặc “svm” (Hỗ trợ AMD-V) trong đầu ra, chúc mừng! Tính năng VT-X đã được kích hoạt.

Bây giờ máy ảo đã trở thành hypervisor. Bạn có thể cài đặt bất kỳ ứng dụng hypervisor nào như KVM, Proxmox, Quickemu, Virtualbox, VMware, vv… trong máy ảo và bắt đầu chứa các container và VM trong đó.

Tài liệu tham khảo https://ostechnix.com/enable-nested-virtualization-in-proxmox/.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories