Cài đặt Proxmox VE trên Raspberry Pi 5: Home Lab ARM64 chi phí siêu thấp với Debian Port

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

Bài toán quen thuộc: homelab ngốn điện

Mình chạy homelab với Proxmox VE quản lý 12 VM và container — đây là playground để test mọi thứ trước khi đưa lên production. Vấn đề là cái server x86 đó tiêu thụ khoảng 180–220W liên tục 24/7. Tiền điện mỗi tháng không nhỏ, chưa kể tiếng ồn từ quạt tản nhiệt.

Raspberry Pi 5 trang bị chip BCM2712 (ARM Cortex-A76, 4 nhân 64-bit) và tùy chọn lên tới 8GB RAM. Điều quan trọng nhất: nó có hardware virtualization extension (VHE) — thứ mà các đời Pi trước hoàn toàn thiếu. Tiêu thụ điện chỉ 5–12W, giá ~80 USD, trong khi cái server x86 220W kia ngốn điện gấp 15–20 lần.

Điểm khác biệt so với các bài cài Proxmox thông thường: Proxmox chưa có ISO installer chính thức cho ARM64. Thay vào đó, ta cài Debian Bookworm ARM64 trước, rồi inject Proxmox VE lên trên — đúng cách mà Proxmox build sản phẩm của họ.

Trước khi bắt đầu: ARM64 và những điều cần nắm

Tại sao ARM64 chứ không phải x86?

Raspberry Pi 5 dùng kiến trúc ARM64 (aarch64), hoàn toàn khác x86_64 của laptop/PC thường dùng. Nghe đơn giản nhưng có vài hệ quả trực tiếp:

  • VM guest cũng phải là ARM64 — không chạy được Windows x86 hay ISO x86 thông thường
  • LXC container Linux chạy tốt vì dùng kernel chung với host
  • Hầu hết distro Linux phổ biến (Debian, Ubuntu, Alpine) đều có bản ARM64

Proxmox VE hoạt động thế nào trên ARM64?

Proxmox VE là lớp quản lý đặt trên nền Debian. Trên x86, họ cung cấp kernel tùy chỉnh với nhiều patch. Trên ARM64, ta dùng kernel của Debian/Raspberry Pi nhưng vẫn cài đầy đủ Proxmox VE stack: web UI, KVM, LXC, storage management, cluster support. Với mục đích homelab — tạo VM, quản lý container, cấu hình storage — giao diện và trải nghiệm gần như giống hệt bản x86.

Chuẩn bị phần cứng và phần mềm

Những thứ cần có trước khi bắt đầu:

  • Raspberry Pi 5 bản 8GB (bản 4GB dùng được nhưng chật khi chạy nhiều container)
  • NVMe SSD 64GB+ qua PCIe HAT (khuyến nghị mạnh — microSD chậm, dễ hỏng)
  • Nguồn 27W USB-C chính thức của Raspberry Pi (thiếu watt sẽ throttle)
  • Cáp Ethernet kết nối trực tiếp router (không dùng WiFi cho server)
  • Máy tính khác để SSH và thao tác

Thực hành: Cài đặt từng bước

Bước 1: Flash Debian Bookworm ARM64

Tải Raspberry Pi Imager về máy tính của bạn, chọn image Raspberry Pi OS Lite (64-bit) — đây chính là Debian Bookworm ARM64. Trong phần Advanced Settings trước khi flash:

  • Bật SSH
  • Đặt hostname: proxmox-pi
  • Tạo user và password

Flash vào SSD/SD, cắm vào Pi và đợi boot. SSH vào từ máy tính:

ssh [email protected]
# Hoặc dùng IP cụ thể nếu mDNS không hoạt động
ssh [email protected]

Bước 2: Cấu hình hostname và IP tĩnh

Proxmox yêu cầu hostname phân giải được qua /etc/hosts. Thiếu bước này sẽ gây lỗi khi cài:

sudo hostnamectl set-hostname proxmox-pi
sudo nano /etc/hosts

Thêm dòng này vào file (thay IP bằng IP thực của máy bạn):

192.168.1.100   proxmox-pi.local proxmox-pi

Đặt IP tĩnh để tránh mất kết nối sau reboot:

sudo nano /etc/network/interfaces.d/eth0
auto eth0
iface eth0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    dns-nameservers 1.1.1.1 8.8.8.8

Update hệ thống trước khi tiếp tục:

sudo apt update && sudo apt full-upgrade -y
sudo apt install -y curl wget gnupg2

Bước 3: Thêm Proxmox repository cho ARM64

Đây là điểm mấu chốt — khác hoàn toàn so với cài trên x86:

# Thêm GPG key của Proxmox
wget -qO /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg \
  https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg

# Thêm repo no-subscription (miễn phí, hỗ trợ cả amd64 và arm64)
echo "deb [arch=amd64,arm64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
  | sudo tee /etc/apt/sources.list.d/pve-no-sub.list

sudo apt update

Bước 4: Cài Proxmox VE

Trên ARM64, không cài proxmox-default-kernel vì đó là kernel x86. Giữ nguyên kernel Raspberry Pi và cài thẳng Proxmox VE stack:

sudo apt install -y proxmox-ve postfix open-iscsi chrony

Quá trình này mất 10–20 phút tuỳ tốc độ internet. Khi postfix hỏi cấu hình, chọn “Local only”.

Sau khi cài xong, reboot:

sudo reboot

Bước 5: Truy cập Proxmox Web UI

Mở trình duyệt, truy cập:

https://192.168.1.100:8006

Trình duyệt sẽ cảnh báo certificate tự ký — bỏ qua và tiếp tục. Đăng nhập:

  • Username: root
  • Password: password root của Debian
  • Realm: Linux PAM standard authentication

Nếu thấy dashboard Proxmox hiện ra — xong rồi đó. Cái cảm giác lần đầu nhìn thấy Proxmox chạy trên một cái board bé bằng lòng bàn tay thật sự ấn tượng.

Bước 6: Tắt popup nhắc mua license

Dùng bản community free thì sẽ có popup mỗi lần login. Tắt nó đi:

# Lệnh này có thể thay đổi theo phiên bản Proxmox — kiểm tra version trước
pve6to7 --version || pveversion

# Patch file JS (điều chỉnh path nếu cần)
sudo sed -i.bak "s/if (res === null || res === undefined || \!res || res/if (false || res/g" \
  /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

sudo systemctl restart pveproxy

Nếu lệnh sed không hoạt động (Proxmox cập nhật code), tìm kiếm chuỗi mới trong file đó để patch — cộng đồng thường update hướng dẫn khi Proxmox ra phiên bản mới.

Bước 7: Tạo LXC container đầu tiên

LXC container nhẹ hơn VM nhiều, phù hợp với RAM 8GB của RPi 5. Tải template Debian ARM64:

# Trong Proxmox shell, tải template LXC
pveam update
pveam available | grep debian
pveam download local debian-12-standard_12.7-1_arm64.tar.zst

Hoặc qua UI: Datacenter → Node → local → CT Templates → Templates → Download. Chọn bản arm64.

Tạo container mới qua UI hoặc command line:

# Tạo container ID 100, 512MB RAM, 8GB disk, bridge mạng
pct create 100 local:vztmpl/debian-12-standard_12.7-1_arm64.tar.zst \
  --hostname mycontainer \
  --memory 512 \
  --rootfs local-lvm:8 \
  --net0 name=eth0,bridge=vmbr0,ip=dhcp

# Khởi động container
pct start 100

# Vào shell container
pct enter 100

Giới hạn thực tế cần biết

Mình sẽ nói thẳng để bạn không kỳ vọng sai:

  • Không có PCI passthrough: không thể pass GPU hay NIC card vào VM
  • Guest phải là ARM64: không chạy được Windows, không chạy ISO x86
  • RAM 8GB khá chật với VM đầy đủ: mỗi Debian VM minimal ngốn 256–512MB, chạy được 3–4 VM thoải mái
  • Tránh dùng microSD làm storage chính: I/O chậm và dễ hỏng — đầu tư NVMe HAT là đáng

Trên setup này, Pi-hole, Uptime Kuma, Nginx Proxy Manager và Gitea đang chạy song song trong các LXC container — tổng tiêu thụ khoảng 1.5GB RAM. Service nào cần hoạt động 24/7 mà không ngốn CPU, đây là môi trường lý tưởng.

Kết luận

80 USD phần cứng, vài tiếng setup, bạn có một Proxmox node tiêu thụ chưa đến 12W điện. Không thể thay thế server x86 cho workload nặng, nhưng cho mục tiêu học ảo hóa, chạy service nhỏ ở nhà, hay làm node phụ trong cluster — Raspberry Pi 5 làm tốt hơn kỳ vọng.

Thứ mình thích nhất ở setup này: cài/xóa/phá VM thoải mái mà không lo đụng đến server production. Đó mới là giá trị thực sự của homelab.

Share: