Files
42_38/PVECluster_Architecture.md
Timmy bbe9aa0ac2 docs: update VM110 OpenWRT details (24.10.4, PPPoE, WireGuard, DNAT rules)
OpenWRT 24.10.4 serving as main gateway with PPPoE (HiNet), WireGuard
VPN, and port forwarding for SSH Jump, Bore, NPM, RustDesk, Headscale,
SQL Server, and SSH to CT115/CT117. Also updated PVE description.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 13:29:51 +08:00

13 KiB
Raw Blame History

PVECluster 叢集架構文件

最後更新2026-04-10已刪除 CT106/CT113/CT123/CT125

一、叢集概覽

項目
叢集名稱 PVECluster
PVE 版本 8.4.14Kernel 6.8.12-16-pve
節點數 3
Quorum 正常corosync_votequorum
VM/容器總數 24含 1 個 template
HA 未啟用

二、節點硬體規格

三台節點規格完全相同:

項目 規格
CPU Intel Core i3-6100 @ 3.70GHz2C/4T
記憶體 16 GB DDR4
系統碟 ~68 GBLVM含 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]  GatewayOpenWRT 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.<VMID>

四、儲存架構

儲存池一覽

儲存名稱 類型 共享 容量 已用 用途
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) proxmoxbackupserver Proxmox Backup Server (192.168.42.30)
120 K3s Server pve-02 running 2C 8 GB 83 GB (syno-lvm) k3s K3s control-planeServer
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 + Bore Tunnel
101 CT101 pve-02 running 1C 128 MB 8G (syno-lvm) .42.101 Headscale + RustDesk + Watchtower
102 CT102 pve running 1C 512 MB 8G (syno-lvm) .42.102 Tailscale + 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 MyIP Server + Watchtower
107 CT107 pve-02 running 1C 64 MB 8G (syno-lvm) .42.107 MailPit Server
108 CT108 pve-03 running 4C 4 GB 16G (syno-lvm) .42.108 Python 開發環境
109 CT109 pve-02 stopped 2C 1 GB 8G (syno-lvm) .42.109 Stirling PDF
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 LydiaProduction
116 CT116 pve running 1C 128 MB 8G (syno-lvm) .42.116 Bark 推播伺服器
117 CT117 pve-02 running 4C 2 GB 60G (syno-lvm) .42.117 LydiaTest
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

狀態統計

狀態 數量
Running 18
Stopped 3CT103, CT109, CT119
Template 1VM 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) 1 (109) 16C ~17 GB
pve-03 1 (122) 5 (108,112,114,118,124) 0 15C ~27 GB

六、備份策略

Proxmox Backup Server

  • 位置: VM 111pve-02IP 192.168.42.30:8007
  • Datastore: data-store294 GB已用 ~16 GB
  • 保留策略: keep-all=1

備份排程(目前皆已停用 enabled=0

排程 目標 儲存 保留 壓縮
每日 03:00 CT115, CT117Lydia prod/test pbs keep-daily=7
02:30, 22:30 CT103, CT106, CT108, CT124 pbs keep-daily=7 zstd
每日 02:00 VM 110OpenWRT pbs keep-daily=3

Synology NAS 備份

  • 位置: 192.168.42.20CIFS 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 Tunnel                   │
│   CT101 ─────────── Headscale + RustDesk遠端存取             │
│   CT102 ─────────── Tailscale                                    │
│   CT126 ─────────── Headscale                                    │
│                                                                   │
│  【應用服務】                                                     │
│   CT115 Lydia ───── Production4C/2GB/40G                     │
│   CT117 Lydia ───── Test4C/2GB/60G                           │
│   CT108 ─────────── Python 開發環境4C/4GB                    │
│   CT112 ─────────── OpenClaw2C/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 ─────────── MyIP Server                                  │
│   CT103 ─────────── N8N 自動化(已停)                           │
│   CT109 ─────────── Stirling PDF已停                         │
│                                                                   │
│  【資料庫】                                                       │
│   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/CREDENTIALSWeb Console 看不到登入提示。

修復方式(建立容器後立即執行):

pct exec <vmid> -- 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=1tty: 2

pct set <vmid> -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