# PVECluster 叢集架構文件 > 最後更新:2026-04-10(已刪除 CT106/CT113/CT123/CT125) ## 一、叢集概覽 | 項目 | 值 | |---|---| | **叢集名稱** | PVECluster | | **PVE 版本** | 8.4.14(Kernel 6.8.12-16-pve) | | **節點數** | 3 | | **Quorum** | 正常(corosync_votequorum) | | **VM/容器總數** | 23(含 1 個 template) | | **HA** | 未啟用 | ## 二、節點硬體規格 三台節點規格完全相同: | 項目 | 規格 | |---|---| | **CPU** | Intel Core i3-6100 @ 3.70GHz(2C/4T) | | **記憶體** | 16 GB DDR4 | | **系統碟** | ~68 GB(LVM,含 local + local-lvm) | | **網卡** | Realtek RTL8111 GbE | | **顯示** | Intel HD Graphics 530(內顯) | | **SATA** | Intel Q170 Chipset AHCI | ### 節點清單 | 節點 | IP | 用途 | 上線時間 | |---|---|---|---| | **pve** | 192.168.42.38 | 主節點 | ~9.2 天 | | **pve-02** | 192.168.42.39 | 工作節點 | ~9.2 天 | | **pve-03** | 192.168.42.40 | 工作節點 | ~9.2 天 | ### 節點資源使用(即時快照) | 節點 | CPU 使用率 | 記憶體使用 | 系統碟使用 | |---|---|---|---| | pve | ~7% | 6.7 GB / 16 GB (43%) | 12.2 GB / 68 GB | | pve-02 | ~12% | 10.9 GB / 16 GB (70%) | 12.1 GB / 68 GB | | pve-03 | ~15% | 10.1 GB / 16 GB (64%) | 11.0 GB / 68 GB | ## 三、網路架構 ``` 網際網路 │ ▼ [192.168.42.10] Gateway(OpenWRT VM 110 的 GW) │ ├── vmbr0 (Linux Bridge) │ ├── pve (enp1s0) — 192.168.42.38/24 │ ├── pve-02 (enp1s0) — 192.168.42.39/24 │ └── pve-03 (enp1s0) — 192.168.42.40/24 │ ├── VM 110 OpenWRT — 進階路由/防火牆 │ └── 所有 VM/CT 皆掛在 vmbr0 IP 範圍:192.168.42.100 ~ 192.168.42.126 ``` - **Bridge**: `vmbr0`(每節點各一,bridge port 為 `enp1s0`) - **Gateway**: `192.168.42.10` - **SDN Zone**: `localnetwork`(三節點皆啟用,狀態正常) - **所有 VM/CT 靜態 IP**,格式為 `192.168.42.` ## 四、儲存架構 ### 儲存池一覽 | 儲存名稱 | 類型 | 共享 | 容量 | 已用 | 用途 | |---|---|---|---|---|---| | **local** | dir | 否 | 68 GB/節點 | ~12 GB | ISO、備份、模板 | | **local-lvm** | lvmthin | 否 | ~160 GB/節點 | 變動 | VM 磁碟、CT rootfs | | **syno-lvm** | LVM (iSCSI) | 是 | 1 TB | ~902 GB | VM 磁碟、CT rootfs(主要儲存) | | **syno-iscsi** | iSCSI | 是 | — | — | syno-lvm 的底層 target | | **synology-backup** | CIFS | 是 | 2.75 TB | ~2.37 TB | 備份、ISO、模板、snippets | | **pbs** | PBS | 是 | 294 GB | ~16 GB | Proxmox Backup Server 備份 | ### 儲存拓撲 ``` Synology NAS (192.168.42.20) ├── iSCSI Target ──► syno-iscsi ──► syno-lvm (LVM, 1TB, 共享) │ └── 大部分 VM/CT 磁碟存放於此 └── CIFS Share (Backup) ──► synology-backup (2.75TB, 共享) └── 備份、ISO、模板 Proxmox Backup Server (192.168.42.30, VM 111) └── PBS datastore "data-store" ──► pbs (294GB, 共享) └── VM/CT 快照備份 各節點本地 ├── /var/lib/vz ──► local (68GB) │ └── ISO、vztmpl、備份 └── LVM thin pool ──► local-lvm (~160GB) └── 部分 VM/CT 磁碟(CT112, CT113, CT123) ``` ## 五、VM / 容器清單 ### QEMU 虛擬機 | VMID | 名稱 | 節點 | 狀態 | CPU | 記憶體 | 磁碟 | Tags | 用途 | |---|---|---|---|---|---|---|---|---| | **110** | OpenWRT | pve | running | 2C | 1.5 GB | 8 GB (syno-lvm) | openwrt | OpenWRT 24.10.4 路由器/防火牆/PPPoE/WireGuard | | **111** | PBS | pve-02 | running | 2C | 2 GB | 32G + 300G (syno-lvm) | backup;pbs | PBS (192.168.42.30:8007) 294GB, 41 筆備份 | | **120** | K3s Server | pve-02 | running | 2C | 8 GB | 83 GB (syno-lvm) | k3s | K3s control-plane(Server) | | **121** | K3s Agent | pve | running | 2C | 8 GB | 82 GB (syno-lvm) | k3s | K3s worker node | | **122** | K3s Agent | pve-03 | running | 2C | 8 GB | 82 GB (syno-lvm) | k3s | K3s worker node | | **9000** | ubuntu-2404-cloud-template | pve | stopped | 2C | 2 GB | 3.5 GB (syno-lvm) | — | Cloud-init 模板 | ### LXC 容器 | VMID | 名稱 | 節點 | 狀態 | CPU | 記憶體 | 磁碟 | IP | Tags / 用途 | |---|---|---|---|---|---|---|---|---| | **100** | CT100 | pve-02 | running | 1C | 256 MB | 8G (syno-lvm) | .42.100 | SSH Jump Box + Bore Server (:7835) + Tailscale + Watchtower | | **101** | CT101 | pve-02 | running | 1C | 128 MB | 8G (syno-lvm) | .42.101 | RustDesk Server (21115-21119) + Headscale (備用) + Watchtower | | **102** | CT102 | pve | running | 1C | 512 MB | 8G (syno-lvm) | .42.102 | Tailscale + Proxy Pool + Cloudflare Tunnel + Watchtower | | **103** | CT103 | pve | **stopped** | 1C | 768 MB | 16G (syno-lvm) | .42.103 | N8N 自動化 + Watchtower | | **104** | CT104 | pve | running | 1C | 96 MB | 8G (syno-lvm) | .42.104 | Caddy 反向代理(80/443) | | **105** | CT105 | pve | running | 1C | 128 MB | 8G (syno-lvm) | .42.105 | EchoIP (mpolden/echoip:8080) + Watchtower | | **107** | CT107 | pve-02 | running | 1C | 64 MB | 8G (syno-lvm) | .42.107 | MailPit (axllent/mailpit, Web:8025 SMTP:1025) | | **108** | CT108 | pve-03 | running | 4C | 4 GB | 16G (syno-lvm) | .42.108 | Python 開發環境 | | **112** | CT112 | pve-03 | running | 2C | 2 GB | 32G (local-lvm) | .42.112 | OpenClaw | | **114** | CT114 | pve-03 | running | 1C | 512 MB | 8G (syno-lvm) | .42.114 | Podman | | **115** | CT115 | pve-02 | running | 4C | 2 GB | 40G (syno-lvm) | .42.115 | Lydia Prod — Python + Caddy + MSSQL Express | | **116** | CT116 | pve | running | 1C | 128 MB | 8G (syno-lvm) | .42.116 | Bark 推播通知 (finab/bark-server:8080) + Watchtower | | **117** | CT117 | pve-02 | running | 4C | 2 GB | 60G (syno-lvm) | .42.117 | Lydia Test — Python (:5000) + MSSQL Express | | **118** | CT118 | pve-03 | running | 2C | 2 GB | 8G (syno-lvm) | DHCP | Podman + PostgreSQL | | **119** | CT119 | pve | **stopped** | 1C | 64 MB | 8G (syno-lvm) | .42.119 | Gotify 推播伺服器 | | **124** | CT124 | pve-03 | running | 2C | 8 GB | 80G (syno-lvm) | .42.124 | NPM + Keycloak + Karakeep + Watchtower | | **126** | CT126 | pve | running | 1C | 256 MB | 8G (syno-lvm) | .42.126 | Headscale v0.28.0 控制伺服器 (17 節點) + Tailscale + Watchtower | ### 狀態統計 | 狀態 | 數量 | |---|---| | Running | 18 | | Stopped | 2(CT103, CT119) | | Template | 1(VM 9000) | ### 各節點負載分佈 | 節點 | VM | LXC (running) | LXC (stopped) | 分配 CPU | 分配記憶體 | |---|---|---|---|---|---| | **pve** | 2 (110, 121) | 7 (102,104,105,116,126) | 2 (103,119) | 16C | ~22 GB | | **pve-02** | 2 (111, 120) | 5 (100,101,107,115,117) | 0 | 16C | ~17 GB | | **pve-03** | 1 (122) | 5 (108,112,114,118,124) | 0 | 15C | ~27 GB | ## 六、備份策略 ### Proxmox Backup Server - **位置**: VM 111(pve-02),IP `192.168.42.30:8007` - **Datastore**: `data-store`(294 GB,已用 ~16 GB) - **保留策略**: `keep-all=1` ### 備份排程(目前皆已停用 enabled=0) | 排程 | 目標 | 儲存 | 保留 | 壓縮 | |---|---|---|---|---| | 每日 03:00 | CT115, CT117(Lydia prod/test) | pbs | keep-daily=7 | — | | 02:30, 22:30 | CT103, CT106, CT108, CT124 | pbs | keep-daily=7 | zstd | | 每日 02:00 | VM 110(OpenWRT) | pbs | keep-daily=3 | — | ### Synology NAS 備份 - **位置**: `192.168.42.20`,CIFS share `Backup` - **容量**: 2.75 TB(已用 ~2.37 TB) - CT124 有掛載 `/mnt/ds1515-backup` 指向此 share ## 七、關鍵服務架構圖 ``` ┌─────────────────────────────────────────────────────────────────┐ │ PVECluster │ │ 192.168.42.38/39/40 │ ├──────────────┬──────────────────┬────────────────────────────────┤ │ pve (.38) │ pve-02 (.39) │ pve-03 (.40) │ ├──────────────┴──────────────────┴────────────────────────────────┤ │ │ │ 【網路層】 │ │ VM110 OpenWRT 24.10.4 ── GW: 192.168.42.10 │ │ PPPoE HiNet / WireGuard VPN (10.0.0.1) │ │ DNAT: SSH Jump, Bore, NPM, RustDesk, Headscale, SQL │ │ CT104 Caddy ───── 反向代理(80/443) │ │ CT124 NPM ─────── Nginx Proxy Manager │ │ │ │ 【認證/安全】 │ │ CT124 Keycloak ── SSO 認證 │ │ CT100 ─────────── SSH Jump Box + Bore Server + Tailscale │ │ CT101 ─────────── RustDesk Server + Headscale 備用(遠端存取) │ │ CT102 ─────────── Tailscale + Cloudflare Tunnel + Proxy Pool │ │ CT126 ─────────── Headscale 控制伺服器 (17 節點, 8080/9090/50443) │ │ │ │ 【應用服務】 │ │ CT115 Lydia ───── Prod (Python + Caddy + MSSQL, SSH:30022) │ │ CT117 Lydia ───── Test (Python:5000 + MSSQL, SSH:50022) │ │ CT108 ─────────── Python 開發環境(4C/4GB) │ │ CT112 ─────────── OpenClaw(2C/2GB/32G) │ │ CT124 Karakeep ── 書籤/知識管理 │ │ │ │ 【Kubernetes (K3s v1.33.6 + Longhorn)】 │ │ VM120 K3s ─────── Server/control-plane (pve-02, 8GB) │ │ VM121 K3s ─────── Agent/worker (pve, 8GB) │ │ VM122 K3s ─────── Agent/worker (pve-03, 8GB) │ │ 服務: Traefik, CodiMD, Adminer, HTTPbin, │ │ OpenGist, PostgreSQL, Vaultwarden │ │ │ │ 【工具/通知】 │ │ CT107 ─────────── MailPit(郵件測試) │ │ CT116 ─────────── Bark(推播通知) │ │ CT119 ─────────── Gotify(推播通知,已停) │ │ CT105 ─────────── EchoIP(IP 查詢,port 8080) │ │ CT103 ─────────── N8N 自動化(已停) │ │ │ │ 【資料庫】 │ │ CT118 ─────────── PostgreSQL + Podman │ │ │ │ 【備份】 │ │ VM111 PBS ─────── Proxmox Backup Server (192.168.42.30) │ │ Synology NAS ──── iSCSI (syno-lvm) + CIFS (backup) │ │ 192.168.42.20 │ │ │ │ 【模板】 │ │ VM9000 ────────── Ubuntu 24.04 Cloud-init Template │ └──────────────────────────────────────────────────────────────────┘ ``` ## 八、已知問題與注意事項 ### Ubuntu 25.04 LXC 容器 Console 無法登入 Ubuntu 25.04 的 systemd 新增了 `ImportCredential` 指令,在 LXC 容器中不支援,導致 `console-getty.service` 啟動失敗(exit 243/CREDENTIALS),Web Console 看不到登入提示。 **修復方式**(建立容器後立即執行): ```bash pct exec -- bash -c 'mkdir -p /etc/systemd/system/console-getty.service.d && cat > /etc/systemd/system/console-getty.service.d/override.conf << EOF [Service] ExecStart= ExecStart=-/sbin/agetty -o "-- \\\\u" --noreset --noclear --keep-baud 115200,57600,38400,9600 - \$TERM ImportCredential= EOF systemctl daemon-reload && systemctl reset-failed console-getty && systemctl restart console-getty' ``` 建議同時加上 `features: nesting=1` 和 `tty: 2`: ```bash pct set -features nesting=1 -tty 2 ``` ## 九、Corosync 叢集通訊 ``` totem: cluster_name: PVECluster version: 2 secauth: on link_mode: passive ip_version: ipv4-6 nodelist: pve (nodeid=1, ring0=192.168.42.38, votes=1) pve-02 (nodeid=2, ring0=192.168.42.39, votes=1) pve-03 (nodeid=3, ring0=192.168.42.40, votes=1) quorum: provider: corosync_votequorum 需要 2/3 節點在線才能維持 quorum ```