Kể từ khi đặt chân vào thế giới home lab với Proxmox, tôi đã thử nghiệm nhiều hệ điều hành server chuyên dụng, bao gồm XCP-ng dựa trên Xen, Harvester cấp doanh nghiệp, và thậm chí cả SmartOS chạy trên Unix. Tuy nhiên, ESXi vẫn là nền tảng duy nhất tôi chưa bao giờ có cơ hội trải nghiệm, bởi vì Broadcom đã loại bỏ giấy phép miễn phí của nó vào thời điểm tôi mua một số 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í vào tháng trước. Với hệ thống home lab của tôi hiện đang ở trạng thái tốt hơn bao giờ hết, đã đến lúc tôi thử sức với ESXi. Tuy nhiên, 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 chỉ có vỏn vẹn bốn nhân để tôi làm việc. Vì vậy, tôi đã làm điều mà bất kỳ tín đồ home lab nào cũng sẽ làm: ảo hóa ESXi bên trong máy chủ Proxmox của mình. Thật ngạc nhiên, nó hoạt động thực sự tốt, và tôi dám khẳng định rằng đây là cách yêu thích của tôi để tìm hiểu về hypervisor này.
Giao diện điều khiển Proxmox trên máy chủ vật lý
Cài Đặt ESXi Trên Phần Cứng Thực Tế: Một “Cơn Ác Mộng”
Và tôi không muốn chi tiền cho một card mạng mới
Nếu bạn đã đọc các bài viết gần đây của tôi về ESXi trên XDA, bạn có thể đã biết về sự ồn ào xung quanh việc nó không tương thích với các card mạng (NIC) thông thường. Nhưng đối với những ai chưa đọc về cuộc phiêu lưu thất bại của tôi khi thiết lập ESXi, đây là một cái nhìn tổng quan ngắn gọn về mọi thứ đã diễn ra.
Lỗi không tìm thấy card mạng trong quá trình cài đặt ESXi
Mặc dù bắt đầu quá trình cài đặt đầy hứa hẹn, 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, và cả card mạng 10GbE TX401 cùng bộ chuyển đổi USB to Ethernet của TP-Link cũng vô dụng.
Các thiết bị NAS trong hệ thống của tôi cũng không khá hơn. Thành thật mà nói, tôi sẽ bỏ qua việc ESXi thiếu hỗ trợ cho các bộ điều khiển Ethernet cấp người tiêu dùng, vì đây là thứ bạn thường sử dụng trong 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 workstation Xeon hai CPU của tôi cũng không đủ cho ESXi. Cuối cùng, tôi đành phải chạy ESXi trên 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 Quá Trình Đơn Giản
Kỷ nguyên của ảo hóa lồng ghép
Mặc dù ZimaBoard 2 là một cỗ máy tuyệt vời cho một thiết bị có giá chỉ 179 đô la, nhưng nó vẫn là một máy tính nhúng (SBC). Ngay cả khi bỏ qua 8GB bộ nhớ, 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.
Truy cập giao diện web Proxmox từ máy tính xách tay
Đó là lúc ảo hóa lồng ghép (nested virtualization) phát huy tác dụng, vì nó cho phép tôi chạy 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.
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 phát 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 đã 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 để bật ảo hóa lồng ghép 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 ghép 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 ghép 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).
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 hiển thị, thật trớ trêu khi tôi đang ảo hóa ESXi trên chính chiếc máy mà nó đã không thể phát hiện các driver Ethernet. Trong khi đó, các ổ đĩa ảo đã được trình hướng dẫn nhận diện ngay lập tức, và tôi tiếp tục phần còn lại của quá trình cài đặt một cách bình thường.
Hiệu Nă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 mức ưu tiên cao nhất. Ngay sau đó, VM hiển thị địa chỉ IP của máy chủ ESXi, mà tôi nhanh chóng nhập 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 tôi đã thiết lập trước đó, tôi chuyển sang tab Storage 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 vào đó.
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, và cấp phát 4 nhân cùng với 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 ghép, máy ảo hoạt động tốt. Thậm chí còn tốt hơn tôi mong đợi, trên thực tế, khi xem xét rằng tôi đang chạy một máy ảo 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 một vài máy ảo đồng thời. Do giới hạn 8 core/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 hoàn toàn không có bất kỳ phàn nàn nào về hệ thống home lab ESXi được ảo hóa này.
Mặc dù ý tưởng có vẻ lạ lùng, ESXi hoạt động đáng ngạc nhiên tốt bên trong Proxmox
Tạo một máy ảo khách 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ó rất nhiều giá trị trong thị trường doanh nghiệp – với một phần đáng kể các trung tâm dữ liệu đang dựa vào các sản phẩm của VMware. Điều đó làm cho 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 ghép là cách tốt nhất để sử dụng nó mà không phải lãng phí hàng giờ để 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 cho nhiều người dùng home lab.