Triển khai HomeLab với Promox
Ý tưởng
Thời gian gần đây do nhu cầu lưu trữ, cũng như làm scanner / lab mà mình cần chuyển hệ thống từ On-Cloud về nhà. Với yêu cầu đó mình bắt tay xây dựng HomeLab với các tiêu chí sau:
Tiết kiệm chi phí:
Tận dụng tối đa những phần cứng đã có: Điểm lại mình có 1 ram DDR4 Laptop 16Gb, 1 ổ SSD SATA 2.5 512GB
Tiết kiệm điện: Tối đa 65W (dùng sạc laptop). Idle thì khoảng 10W
Nhỏ, ít ồn: Đương nhiên không thể mang cả server 2U về nhà được.
Cung cấp các dịch vụ, cho phép quản trị từ xa.
Chia sẻ một chút là trước đó mình có dùng dịch vụ của LowendViet. Chất lượng và giá cả khá ổn, mình cũng sử dụng trong hơn 2 năm. Tuy nhiên nhu cầu cần tốc độ mạng nhanh, và lưu trữ giá rẻ nên mình quyết định move Scanner Farm về nhà.
Phần cứng
Đầu tiên như bao người mình có bắt đầu với việc build case. Main ITX là lựa chọn đầu tiên. Ý tưởng hợp lý nhất là tìm mua main và chip cũ. Tuy nhiên có vấn đề là cách này phải ráp nguyên 1 cái case máy tính. Và mức điện tiêu thụ khoảng 150W.
Tiếp tục với keyword "NAS" mình tìm được các NAS Mainboard với các chip J1900, N1000 như main này chẳng hạn. Vấn đề là dòng Chip này khá yếu, nếu chỉ làm NAS thì ổn còn làm Server thì không ổn.
Và rồi mình tìm đọc được https://rayshomelab.blog/ Ý tưởng là sử dụng các MiniPC cũ để dựng làm Server. Khá phù hợp với các linh kiện mà mình đã có. Công việc bắt tay với Shopeeeee. Phần cứng mình lựa chọn tại đây. Tại sao mình lựa chọn phần cứng này:
CPU tuy yếu nhưng nhiều luồng
Hỗ trợ 2 DDIM Slot, cho phép lên 32GB
Hỗ trợ 2 SSD. Như vậy nếu cần có thể thêm 1 SSD NVME
65 Watt max usage
Order và 2 ngày nhận hàng.
Hệ điều hành
Đầu tiên là cài OS, và câu hỏi cần phải trả lời: VMWare Esxi hay Promox. Trong khi đang băn khoăn thì đọc bài và thấy người em đăng ảnh cài Esxi thay Promox. Tìm hiểu kỹ thì Promox:
Khó sử dụng
Ít hỗ trợ, đa số phải tự tìm hiểu trên Forum
Trong khi đó Esxi tuy tốt hơn nhưng:
Đã bỏ bản Free, phải có account hãng mới download được
Gặp vấn đề với phần cứng cũ
Sau khi tìm hiểu mình quyết định dùng Promox, phần vì trải nghiệm mới (trước đã sử dụng VMware). Sau khi dùng một thời gian mình thấy Promox có tính năng LXC, Linux Container khá tiện (gồm cả cài, và sử dụng. Có vẻ LXC sẽ dùng ít tài nguyên hơn chăng?). Trong quá trình dùng LXC mình cũng gặp một số vấn đề, và đó là lý do mình viết lại bài này.
Cài đặt NAS
Nếu có điều kiện có lẽ mình sẽ mua 1 NAS độc lập. Tuy nhiên để trải nghiệm cài đặt nghịch ngợm thì mình lại thích tự cài hơn. Có 2 phương án đưa ra là TrueNAS và Synology DMS. Mình chọn Synology DMS vì nó đẹp hơn, và hỗ trợ cả AppMobile, rồi Camera.
Cách cài đặt thì mình tham khảo blog thuanbui.me ở bài này.
Mình có mode lại cả cái Camera YiHome để enable RTSP để sử dụng Surveillance Station . Tuy nhiên do cái mạng mình setup quá lằng nhằng nên chưa kết nối được. Có lẽ sẽ là Project sau này. Link
Với máy ảo XPEnology này task quản lý ảnh của mình đã hoàn thành. Mình sử dụng app CloudSync để tự động đồng bộ lên OneDrive chứ HomeLab này không có Backup hay Raid gì cả.
Reverse Proxy
Theo các bài viết của thuanbui, mình thấy gợi ý sử dụng Cosmos Server để quản lý docker và quản trị, cũng như tự động renew Let'sCrypt. Khá là phù hợp với mình, tiết kiệm công sức config Nginx Reverse Proxy.
Ngoài ra mình phát hiện là tính năng Dynamic DNS trên Modem FPT hoạt động không ổn lắm. Cũng không sao vì mình dùng NoIP DUC để cập nhật DDNS.
Mình sử dụng codeserver để code và Apache Guacamole để SSH từ ngoài Internet.
Scanner Farm
Các scan node mình sử dụng LXC Ubuntu 22.04. Để đồng bộ File thì mình dùng NAS qua NFS. Đến đây phát sinh vấn đề là LXC không cho mount NFS. Tìm hiểu thì có bài này.
Đương nhiên là mình chọn cách 3. Ý tưởng là sẽ:
Tạo ra 1 Share trên NAS, enable NFS
Mount NFS này vào máy Host Promox
Cấu hình mount point trên container
Cơ bản gặp lỗi liên quan đến mapping user. Và cách giải quyết là chmod 644 cho thư mục share trên máy host, khỏi phải map.
Hiện tại thì mình đang build với 2 node scan. Hệ thống chạy khá ổn định.
Ngoài ra mình còn gặp thêm vài vấn đề khác:
Không cài được app qua snap: Nguyên nhân như trên, không mount được ổ. Cách giải quyết là cài qua deb. Ví dụ với cài chromnium trên Lxc:
apt install software-properties-common
add-apt-repository ppa:saiarcot895/chromium-beta && apt update && apt install chromium-browser
Không hỗ trợ screen: Dùng qua console web hoặc attach Lxc trực tiếp từ Promox. Hạn chế là chỉ được 1 phiên