Thời gian gần đây, tôi đã dành rất nhiều công sức với OPNsense, chủ yếu là để làm gateway cho hệ thống home lab cá nhân. Phần lớn các thiết lập ban đầu được thực hiện với các máy ảo, nhưng giải pháp này lại thường xuyên gặp phải những vấn đề khiến tôi phải mất thời gian khắc phục hơn là làm việc thực sự. Rắc rối lớn nhất là các bộ điều hợp mạng ảo thường xuyên thay đổi cách gán khi tôi quay lại VM sau một thời gian, và điều này đã trở thành một trở ngại lớn.
Vì vậy, đã đến lúc đưa home lab của tôi lên phần cứng chuyên dụng. Tôi muốn có các cổng Ethernet vật lý để dễ dàng quản lý và xử lý qua mạng. Tuy nhiên, tôi sẽ không đi theo con đường sử dụng các máy chủ doanh nghiệp cũ, bởi vì chỉ riêng tiếng ồn đã đủ làm tôi nản lòng, chưa kể đến hóa đơn tiền điện. Thay vào đó, tôi bắt đầu với một chiếc mini PC nhỏ gọn nhưng mạnh mẽ, giống như nhiều người đam mê home lab khác. Điểm khác biệt là tôi sẽ sử dụng các bộ điều hợp mạng này trong Proxmox và cài đặt OPNsense, cùng với một vài ứng dụng khác nữa.
Mini PC: Lựa chọn Lý Tưởng cho Home Lab và Router OPNsense
Sức mạnh và số lượng cổng Ethernet đa dạng trên Mini PC
Đối với những ai đã thất vọng vì tôi không thể cài OPNsense trên một chiếc ThinkPad cũ, thì không ai thất vọng hơn tôi. Không phải tôi không có một chiếc laptop với cổng Ethernet, nhưng OPNsense thực sự không thích bộ điều hợp không dây, và tôi không tìm thấy bộ điều hợp USB Ethernet nào trong nhà (tôi tìm thấy một chiếc TB3 cho MacBook Pro cũ của mình, có thể sẽ thử cho một thử nghiệm trong tương lai). Điều đó có nghĩa là lựa chọn hợp lý duy nhất là một chiếc mini PC với hai card mạng 2.5GbE nền tảng Intel, và đó là những gì tôi đã làm.
Tôi vẫn có một NAS lớn đang chạy và sẽ sử dụng iSCSI để lưu trữ dữ liệu cần giữ lại, nhưng chiếc mini PC Beelink này sẽ là khởi đầu cho một kỷ nguyên mới trong các thử nghiệm của tôi. Nó được trang bị CPU Intel N150, 12GB RAM và 64GB eMMC, đây là cấu hình quá đủ cho một cài đặt Proxmox, đặc biệt là với sáu khe cắm M.2 để mở rộng lưu trữ. Đúng vậy, sáu khe. Nhược điểm là năm trong số đó chạy ở PCIe 3.0 x1 và khe thứ sáu ở x2, nhưng điều đó hoàn toàn ổn vì tốc độ này đủ để bão hòa các cổng 2.5GbE, và nó chủ yếu sẽ được dùng để lưu trữ các máy ảo.
Lợi ích khác khi sử dụng phần cứng mới hơn là tôi có thể mua thêm các mini PC giống hệt nhau để mở rộng home lab. Cuối cùng, tôi muốn xây dựng một cụm Proxmox High Availability với ít nhất ba, hoặc có thể bốn, chiếc máy cùng mẫu này, tất cả đều có cùng dung lượng lưu trữ, và tất cả đều sử dụng một storage pool trên một thiết bị khác. Cụm này sẽ chạy các máy ảo cho OPNsense, Technitium hoặc Pi-hole để chặn DNS, và bất kỳ dịch vụ nào khác mà tôi muốn có thời gian hoạt động cao.
Liệu tôi có thể làm điều này với phần cứng khác không? Tất nhiên rồi, nhưng tôi sẽ phải tìm ba máy chủ doanh nghiệp cũ với phần cứng giống hệt nhau, mua một giá đỡ để đặt chúng vào, và chuẩn bị vài lời giải thích cho người thân, nếu không thì phần cứng đó sẽ không được phép vào nhà mà không cần dọn dẹp nhà để xe. Xây dựng một cụm với các mini PC nhỏ gọn chỉ đơn giản là dễ dàng hơn rất nhiều.
Beelink ME mini với 6 khe M.2, hiển thị ba tùy chọn màu sắc trắng, xám và xanh, lý tưởng cho home lab và NAS
Beelink ME mini 6-Slot Home Storage NAS
Beelink ME mini được trang bị CPU Intel Twin Lake N150 mới và có tổng cộng sáu khe M.2 PCIe 3.0, cho phép lưu trữ tập trung tốc độ cao hoặc phục vụ như một bộ khởi động home lab.
Biến Mini PC thành Router OPNsense: Giải pháp Ảo hóa trên Proxmox
Ảo hóa OPNsense trên Proxmox để tận dụng phần cứng cho nhiều mục đích
Tôi có thể đã cài đặt OPNsense trực tiếp lên chiếc mini PC này, và tôi gần như đã làm vậy. Tôi có thể sẽ quay lại làm điều đó vào một thời điểm nào đó, nhưng tôi muốn sử dụng Proxmox, bởi vì chiếc máy này có sáu khe cắm M.2 NVMe để sử dụng, và sẽ khá lãng phí nếu chỉ dùng nó làm một firewall. Nó hoàn hảo cho các máy ảo, với 64GB eMMC cho Proxmox, và rất nhiều cổng để lưu trữ máy ảo, các pool ZFS cho việc sử dụng NAS, và để chạy Home Assistant, Pi-hole, Unbound, cùng một vài ứng dụng khác.
Có một điều tôi phải làm hơi khác một chút trên mẫu này, và may mắn thay, Wendell từ Level1Techs đã đăng giải pháp khắc phục. Proxmox không thích cài đặt vào eMMC theo mặc định, điều này khá đáng tiếc vì chiếc mini PC này có một phân vùng 64GB hoàn hảo để đặt một hypervisor cấp 1. Và trước khi có những tin nhắn giận dữ xuất hiện, điều đó sẽ ổn, và tôi dự định đặt logging để ghi vào các ổ đĩa lưu trữ anyway.
Giải pháp khắc phục là khởi động trình cài đặt, nhấn CTRL+ALT+F1 để vào terminal, sau đó nhấn CTRL+C để dừng trình cài đặt. Tiếp theo, mở vi hoặc nano để chỉnh sửa tệp sau:
/usr/share/perl5/Proxmox/Sys/Block.pm
Bạn đang tìm phần “sub get_partition_dev”, và bạn sẽ muốn thêm hai dòng vào cuối:
} elsif ($dev =~m|^/dev/mmcblkd+$|) { return "${dev}p$partnum";
Sau khi hoàn tất, lưu tệp và quay lại terminal, sau đó mở gdisk để tạo các phân vùng ban đầu trên dev/mmcblk0. Điều này bỏ qua một lỗi khác của Proxmox sẽ làm trình cài đặt bị treo nếu không có phân vùng nào tồn tại trên các thiết bị lưu trữ. Home lab thú vị phải không?
Sau đó, hãy kiểm tra lại xem mmcblk0p1 có hiển thị bằng cách chạy ‘lsblk’ không. Cuối cùng, bạn có thể chạy ‘proxmox-tui-installer’ và tiến hành cài đặt hypervisor của mình. Phần còn lại của quá trình thiết lập tương đối đơn giản, cả cho Proxmox, nơi tôi đã chạy một vài script cộng đồng trước khi thêm OPNsense làm máy ảo.
Thêm OPNsense: Phần dễ nhất của quá trình cài đặt
QEMU hoạt động cực kỳ nhanh khi cài đặt máy ảo trên Proxmox, và CPU N150 trong chiếc hộp nhỏ này đủ nhanh. Việc thêm Linux Bridges cho hai card mạng còn mất nhiều thời gian hơn so với việc trình cài đặt OPNsense hoàn tất, và tôi đã có màn hình đăng nhập chỉ trong chốc lát, sẵn sàng cho tất cả các plugin sau cài đặt mà tôi mong muốn.
Màn hình đăng nhập OPNsense sau khi cài đặt thành công làm máy ảo trên Proxmox
Sức mạnh của việc tự xây dựng Router và Firewall cá nhân
Việc chạy một tường lửa tùy chỉnh tại nhà chưa bao giờ dễ dàng đến thế. Tôi biết điều đó nghe có vẻ cường điệu, nhưng đó là sự thật. Tôi đã sử dụng, tinh chỉnh, tùy chỉnh, cài đặt và đôi khi “nguyền rủa” (khi mọi thứ không suôn sẻ) máy tính trong nhiều thập kỷ, và toàn bộ quá trình ở đây thực sự mượt mà. Vấn đề duy nhất là tôi đã cố gắng sử dụng phân vùng eMMC, bởi vì trình cài đặt của Proxmox vẫn chưa có hai dòng cần thiết để tìm kiếm eMMC làm mục tiêu cài đặt. Nhờ Wendell từ Level1Techs và hàng thập kỷ kinh nghiệm Linux của anh ấy, điều tưởng chừng là một rào cản đã được giải quyết chỉ trong vài phút. Tôi biết mình có thể đã cài đặt Proxmox trên ổ NMVe mà tôi đã lắp, nhưng tôi muốn dành từng GB dung lượng lưu trữ cho các máy ảo và dữ liệu, chứ không phải cho hypervisor sẽ chạy tất cả.
Thiết lập Beelink ME mini đang hoạt động với các cổng mạng được kết nối, sẵn sàng làm router OPNsense ảo hóa
Kết luận
Việc sử dụng mini PC làm nền tảng cho router và firewall OPNsense ảo hóa trên Proxmox đã chứng tỏ là một giải pháp vô cùng hiệu quả và linh hoạt. Nó không chỉ giúp loại bỏ những rắc rối cố hữu của việc ảo hóa trên các thiết lập cũ mà còn tận dụng tối đa sức mạnh phần cứng hiện đại để phục vụ nhiều mục đích khác nhau trong home lab, từ lưu trữ NAS đến chạy các dịch vụ như Pi-hole hay Home Assistant. Mặc dù có một vài thử thách nhỏ trong quá trình cài đặt Proxmox trên eMMC, nhưng với sự trợ giúp từ cộng đồng, những vấn đề này đã được khắc phục nhanh chóng, biến quá trình xây dựng một hệ thống mạng mạnh mẽ, tùy chỉnh trở nên dễ dàng hơn bao giờ hết. Đây thực sự là một lựa chọn đáng cân nhắc cho bất kỳ ai muốn nâng cấp hệ thống mạng gia đình hoặc xây dựng một home lab hiệu quả mà không tốn quá nhiều chi phí hay gặp phải những vấn đề về tiếng ồn, nhiệt độ.
Bạn đã thử nghiệm giải pháp tương tự hoặc có kinh nghiệm về việc sử dụng mini PC cho home lab và mạng chưa? Hãy chia sẻ ý kiến và kinh nghiệm của bạn trong phần bình luận bên dưới!