Từ khi dấn thân vào thế giới home lab với Proxmox, tôi đã thử nghiệm nhiều bản phân phối dành cho máy chủ, bao gồm XCP-ng dựa trên Xen, Harvester cấp doanh nghiệp, và thậm chí cả SmartOS chạy Unix. Tuy nhiên, ESXi vẫn là nền tảng duy nhất mà tôi chưa có dịp trải nghiệm. Thời điểm đó, Broadcom đã loại bỏ giấy phép miễn phí của ESXi, đúng lúc tôi mua một vài chiếc PC dự phòng để chạy nền tảng ảo hóa hàng đầu của VMware.
Thật may mắn, Broadcom đã khôi phục phiên bản ESXi miễn phí cách đây một tháng. Với hệ thống home lab của tôi đang ở trạng thái tốt nhất từ trước đến nay, đây là lúc thích hợp để thử sức với ESXi. Đáng tiếc, ESXi từ chối hoạt động trên hầu hết các thiết bị của tôi, và chiếc máy tính nhúng x86 duy nhất chạy được nền tảng này lại chỉ có bốn nhân xử lý. Vì vậy, tôi đã làm điều mà bất kỳ người yêu home lab nào cũng sẽ làm: ảo hóa ESXi bên trong máy trạm Proxmox của mình. Thật ngạc nhiên, giải pháp này hoạt động cực kỳ hiệu quả, và tôi dám nói rằng đây là cách yêu thích của tôi để tìm hiểu về hypervisor này.
Cơn ác mộng khi cài đặt ESXi trên các thiết bị thực tế
Và tôi không muốn tốn thêm một khoản tiền lớn cho card mạng mới
ESXi báo lỗi No Network Adapters trên màn hình cài đặt
Nếu bạn đã đọc các bài viết gần đây của tôi về ESXi, có lẽ bạn đã biết về sự hỗn loạn xoay quanh vấn đề không tương thích của nó với các card mạng (NIC) cấp tiêu dùng. Nhưng đối với những ai chưa biết về “cuộc phiêu lưu” của tôi khi thiết lập ESXi, đây là tóm tắt ngắn gọn về mọi chuyện đã diễn ra.
Mặc dù quá trình cài đặt bắt đầu khá thuận lợi, trình hướng dẫn thiết lập ESXi đã không thể phát hiện card mạng bên trong bo mạch chủ ASRock B550 Phantom Gaming của tôi. Card mạng 10GbE TX401 và bộ chuyển đổi USB sang Ethernet TP-Link của tôi cũng tỏ ra vô dụng.
Các thiết bị NAS trong hệ thống của tôi cũng không khá hơn. Nói thật, tôi đã có thể bỏ qua việc ESXi thiếu hỗ trợ cho các bộ điều khiển Ethernet cấp tiêu dùng, vì đây là thứ bạn thường sử dụng trong một thiết lập doanh nghiệp. Ngay cả đối thủ FOSS lớn nhất của nó, Harvester, yêu cầu tối thiểu CPU 16 nhân và 32GB bộ nhớ, và bạn sẽ cần gấp đôi số nhân và RAM cho một thiết lập cấp sản xuất.
Nhưng điều bất ngờ thực sự là ngay cả bộ điều khiển Ethernet của máy trạm Xeon Dual-CPU của tôi cũng không đủ để chạy ESXi. Cuối cùng, tôi đành phải cài đặt ESXi trên chiếc ZimaBoard 2 của mình, vì bộ điều khiển Ethernet dựa trên Intel của nó là thiết bị duy nhất trong toàn bộ home lab của tôi không hiển thị thông báo lỗi “No Network Adapters” trong quá trình cài đặt. Thật không may, thiết bị này lại có những vấn đề riêng khiến tôi không thể sử dụng nó làm bàn thử nghiệm cho ESXi.
Ảo hóa ESXi là một quy trình đơn giản đáng ngạc nhiên
Kỷ nguyên của ảo hóa lồng nhau đã tới
Truy cập giao diện web của Proxmox từ máy tính xách tay trong môi trường home lab
Mặc dù ZimaBoard 2 là một thiết bị tuyệt vời với mức giá chỉ từ 179 USD, nhưng cuối cùng nó vẫn là một máy tính nhúng đơn bảng (SBC). Ngay cả khi bỏ qua bộ nhớ 8GB, bộ xử lý N150 của SBC này vẫn bị đẩy đến giới hạn mỗi khi tôi cố gắng chạy nhiều máy ảo cùng lúc. Rõ ràng, tôi cần một thứ gì đó mạnh mẽ hơn để xây dựng một máy chủ thử nghiệm ESXi.
Đó là lúc ảo hóa lồng nhau (nested virtualization) phát huy tác dụng, cho phép tôi chạy các máy ảo bên trong các máy ảo khác. Hãy hình dung nó giống như bộ phim Inception nhưng là dành cho các thiết lập home lab. Vì Proxmox hỗ trợ chức năng này, tôi đã quyết định đưa máy chủ Xeon 24 nhân, 48 luồng của mình trở lại cuộc chơi.
Nhưng trước tiên, tôi phải thực hiện một vài tinh chỉnh nhỏ khi tạo máy ảo bằng trình hướng dẫn tạo VM. Sau khi cấp 8 v-cores và 8GB bộ nhớ cho máy ảo ESXi, tôi đã chuyển Storage Interface (Giao diện lưu trữ) của nó từ SCSI sang SATA. Tương tự, tôi cũng thay đổi Network Adapter (Bộ điều hợp mạng) từ VirtIO sang VMware vmxnet3. Vì tôi muốn sử dụng các ổ đĩa riêng biệt cho các tệp khởi động và dữ liệu VM, tôi đã cấp phát một ổ đĩa thứ hai cho phiên bản ESXi.
Chạy lệnh để kích hoạt ảo hóa lồng nhau trong Proxmox
Trước khi khởi động máy ảo, tôi đã chạy lệnh qm set 104 –cpu host bên trong tab Shell để cấp quyền ảo hóa lồng nhau cho VM ESXi (với 104 là số ID của máy ảo). Nếu bạn đang làm theo bài viết này và chưa từng thiết lập ảo hóa lồng nhau trước đây, bạn sẽ phải chạy lệnh echo “options kvm-intel nested=Y” > /etc/modprobe.d/kvm-intel.conf (hoặc echo “options kvm-amd nested=1” > /etc/modprobe.d/kvm-amd.conf cho CPU AMD).
Sau khi tôi khởi động VM, nó không gặp bất kỳ vấn đề kỳ lạ nào. Thông báo lỗi No Network Adapters không còn xuất hiện nữa, điều này khá trớ trêu khi tôi đang ảo hóa ESXi trên chính cỗ máy mà trước đó nó không thể phát hiện các driver Ethernet. Trong khi đó, các đĩa ảo ngay lập tức được trình hướng dẫn nhận diện, và tôi đã tiếp tục các bước cài đặt còn lại một cách bình thường.
Hiệu suất hoạt động vượt xa mong đợi
Đặc biệt sau khi cấp phát thêm tài nguyên cho VM ESXi
Với quá trình thiết lập hoàn tất, tôi khởi động lại VM trước khi cấp cho ổ đĩa khởi động quyền ưu tiên cao nhất. Ngay sau đó, VM hiển thị địa chỉ IP của máy chủ ESXi, và tôi nhanh chóng nhập nó vào trình duyệt để truy cập giao diện web.
Sau khi đăng nhập bằng tên người dùng root và mật khẩu đã thiết lập, tôi chuyển đến tab Storage (Lưu trữ) và khởi tạo ổ đĩa ảo thứ hai làm Datacenter trước khi tải lên một vài tệp ISO.
Chạy một máy ảo Debian bên trong ESXi
Tiếp theo, tôi sử dụng trình hướng dẫn New Virtual Machine để tạo một máy ảo Debian, cấp phát 4 nhân cùng 4GB bộ nhớ. Sau đó, tôi gắn ISO Debian làm ổ đĩa CD/DVD và cuối cùng khởi động nó. Nhờ sức mạnh của ảo hóa lồng nhau, máy ảo hoạt động hoàn hảo. Thậm chí còn tốt hơn tôi mong đợi, thực sự, khi xét đến việc tôi đang chạy một VM bên trong một máy ảo khác.
Sau đó, tôi đã cấp phát 32 v-cores và 32GB bộ nhớ cho máy ảo ESXi và thử chạy nhiều VM cùng lúc. Do giới hạn 8 nhân mỗi VM của ESXi, tôi không thể cấp phát CPU quá mức. Ngoài vấn đề kỳ lạ đó, tôi không có bất kỳ phàn nàn nào về hệ thống home lab ESXi ảo hóa này.
Mặc dù ý tưởng có vẻ lạ, ESXi chạy rất tốt bên trong Proxmox
Tạo một máy ảo trong ESXi
Mặc dù tôi sẽ không bao giờ chuyển sang ESXi làm hệ điều hành home lab chính của mình, nhưng nó vẫn có giá trị lớn trong thị trường doanh nghiệp – với một phần đáng kể các trung tâm dữ liệu dựa vào các sản phẩm của VMware. Điều này khiến nó trở thành một nền tảng ảo hóa quan trọng đối với bất kỳ người đam mê DevOps và quản trị viên hệ thống nào, bao gồm cả tôi.
Trừ khi bạn có một thiết bị hỗ trợ ESXi, việc triển khai nó bên trong một nền tảng hỗ trợ ảo hóa lồng nhau là cách tốt nhất để sử dụng nó mà không phải tốn hàng giờ cố gắng giải quyết các vấn đề không tương thích phần cứng. Sẽ càng tuyệt vời hơn nếu bạn sử dụng Proxmox, một nền tảng đã thay thế ESXi một cách xứng đáng đối với nhiều người dùng home lab.