Files
42_38/PVECluster_Architecture.md
Timmy 4f3c9a3eb8 docs: optimize cluster — delete CT103/CT119, reduce mem/cpu allocation
Deleted:
- CT103 (N8N, stopped, 16G) and CT119 (Gotify, stopped, 8G)

Memory reduced (pending restart):
- CT108: 4096→2048, VM110: 1536→512, CT114: 512→128, CT118: 2048→1024

CPU reduced (pending restart):
- CT115: 4→2C, CT117: 4→2C, CT112: 2→1C, CT118: 2→1C

Updated node load distribution and status counts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 14:45:09 +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/容器總數 21含 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 512 MB 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-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 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
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 2 GB 16G (syno-lvm) .42.108 Python 微服務環境 (12 服務, supervisord+uv)
112 CT112 pve-03 running 1C 2 GB 32G (local-lvm) .42.112 OpenClaw Gateway v2026.3.13 (Node.js)
114 CT114 pve-03 running 1C 128 MB 8G (syno-lvm) .42.114 Podman 測試 + Nginx Quadlet (:8080)
115 CT115 pve-02 running 2C 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 2C 2 GB 60G (syno-lvm) .42.117 Lydia Test — Python (:5000) + MSSQL Express
118 CT118 pve-03 running 1C 1 GB 8G (syno-lvm) DHCP PostgreSQL 16 + Redis + Proxy Pool (10x Tor) + Podman
124 CT124 pve-03 running 2C 8 GB 80G (syno-lvm) .42.124 Docker 服務集中台 (20+ 服務: NPM, Gitea, Karakeep, Vaultwarden, Jellyfin 等)
126 CT126 pve running 1C 256 MB 8G (syno-lvm) .42.126 Headscale v0.28.0 控制伺服器 (17 節點) + Tailscale + Watchtower

狀態統計

狀態 數量
Running 18
Stopped 0
Template 1VM 9000

各節點負載分佈

節點 VM LXC (running) LXC (stopped) 分配 CPU 分配記憶體
pve 2 (110, 121) 5 (102,104,105,116,126) 0 9C ~11 GB
pve-02 2 (111, 120) 5 (100,101,107,115,117) 0 11C ~15 GB
pve-03 1 (122) 5 (108,112,114,118,124) 0 8C ~22 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 + Gitea + 20 服務集中台                  │
│                                                                   │
│  【認證/安全】                                                    │
│   CT124 Vaultwarden ── 密碼管理                                  │
│   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 微服務 x12 (supervisord+uv, 4C/4GB)  │
│   CT112 ─────────── OpenClaw Gateway v2026.3.13 (Node.js)        │
│   CT124 Karakeep ── 書籤/知識管理 + Jellyfin 媒體               │
│                                                                   │
│  【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推播通知                             │
│   CT105 ─────────── EchoIPIP 查詢port 8080                 │
│                                                                   │
│  【資料庫】                                                       │
│   CT118 ─────────── PostgreSQL 16 + Redis + Proxy Pool (10x Tor) │
│                                                                   │
│  【備份】                                                         │
│   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