Files
88_247/PVECluster_Architecture.md
Timmy 40945cf625 docs: 初始化 PVECluster (192.168.88.0/24) 文件庫
仿照 timmy/42_38 結構建立 7 份文件,涵蓋 3 節點 PVE 8.4.16 叢集
(pve-000/.73、pve-001/.249、pve-002/.247)的架構、API、儲存、
備份與服務分類。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 16:02:48 +08:00

362 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PVECluster 叢集架構文件
> 最後更新2026-04-15
## 一、叢集概覽
| 項目 | 值 |
|---|---|
| **叢集名稱** | PVECluster |
| **PVE 版本** | 8.4.16Kernel 6.8.12-18-pve |
| **節點數** | 3異質配置 |
| **Quorum** | 正常corosync_votequorum3 votes |
| **VM/容器總數** | 2513 VM + 12 LXC含 4 個 stopped |
| **HA** | 未啟用 |
## 二、節點硬體規格
> 三台節點規格不同pve-001 為運算大節點pve-002 為較舊備援節點。
### pve-000192.168.88.73
| 項目 | 規格 |
|---|---|
| **CPU** | 4 cores廠牌 / 詳細型號待確認) |
| **記憶體** | 32 GB |
| **系統碟** | 100 GB |
| **角色** | 一般工作節點(跑大量 LXC + 中型 VM |
| **特別介面** | `vmbr1` (192.168.77.241/24)、`vmbr2`OpenWRT WAN bridge |
### pve-001192.168.88.249
| 項目 | 規格 |
|---|---|
| **CPU** | 24 cores |
| **記憶體** | 132 GB |
| **系統碟** | 83 GB |
| **角色** | 大型 VM 主機(多顆 Windows VM、HackMD、OpenArchiver |
### pve-002192.168.88.247
| 項目 | 規格 |
|---|---|
| **品牌** | IBM System X3250 M4型號 2583IOB |
| **CPU** | Intel Xeon E3-1220 V2 @ 3.10GHz4C/4T |
| **記憶體** | 16 GB |
| **系統碟** | 100 GB |
| **角色** | 備援/閒置節點,本文件主要 SSH/API 進入點 |
### 節點清單
| 節點 | IP | 角色 | 上線時間 |
|---|---|---|---|
| **pve-000** | 192.168.88.73 | 工作節點16 guests | ~17.3 天 |
| **pve-001** | 192.168.88.249 | 重型運算節點9 guests | ~17.3 天 |
| **pve-002** | 192.168.88.247 | 備援/管理節點0 guests | ~17.3 天 |
### 節點資源使用(即時快照)
| 節點 | CPU 使用率 | 記憶體使用 | 系統碟使用 |
|---|---|---|---|
| pve-000 | ~16% | 24.7 GB / 31.3 GB (79%) | 9.0 GB / 100 GB |
| pve-001 | ~15% | 56.0 GB / 125.8 GB (44%) | 60.5 GB / 83 GB |
| pve-002 | ~1% | 1.7 GB / 16 GB (10%) | 8.7 GB / 100 GB |
## 三、網路架構
```
HiNet ──PPPoE 210.242.157.197── [VM 115 OpenWRT]
┌─────────────────────┼─────────────────────┐
│ │ │
vmbr2 (WAN) vmbr0 (LAN) vmbr1
(僅 pve-000) 192.168.88.0/24 192.168.77.0/24
(僅 pve-000 有 IP .241)
▲ ▲ ▲
│ │ │
外網 PPPoE/路由 全節點 Bridge OpenWRT LAN 子網
CT104 .77.10
CT125 .77.21
192.168.88.1(上游 GW全節點 default route
├── pve-000 (vmbr0/enp0s31f6) .73
├── pve-001 (vmbr0/enp1s0f0) .249
└── pve-002 (vmbr0/enp6s0) .247
```
### 介面對應表
| 節點 | vmbr0 (88) | vmbr1 (77) | vmbr2 (WAN) |
|---|---|---|---|
| pve-000 | enp0s31f6 → .73 | enp6s0f0 → .241 | enp6s0f1無 IPbridge only |
| pve-001 | enp1s0f0 → .249 | — | — |
| pve-002 | enp6s0 → .247 | — | — |
- **Default Gateway**`192.168.88.1`(上游路由器,三節點皆指向此)
- **OpenWRT LAN GW**`192.168.77.1`VM 115 提供,僅 pve-000 上的 vmbr1 使用)
- **VM/CT 多數靜態 IP 在 192.168.88.0/24**,少數使用 DHCP
## 四、儲存架構
### 儲存池一覽
| 儲存名稱 | 類型 | 共享 | 容量 | 已用 | 用途 |
|---|---|---|---|---|---|
| **local** | dir | 否 | 83100 GB/節點 | 8.760.5 GB | ISO、備份、模板 |
| **local-lvm** | lvmthin | 否 | 184853 GB | 024 GB | VM 磁碟、CT rootfs少用 |
| **syno-iscsi** | iSCSI Target | 是 | — | — | `pve-iscsi-3t` 的底層 target |
| **pve-iscsi-3t** | LVM (iSCSI) | 是 | 4.50 TB | 3.41 TB (74%) | **主要儲存**VM 磁碟、CT rootfs |
| **backup1** | PBS | 是 | 1.00 TB | 0.62 TB (62%) | Proxmox Backup Server 備份 |
### 儲存拓撲
```
Synology NAS (192.168.88.60, DS1621)
└── iSCSI Target iqn.2000-01.com.synology:DS1621.Target-8.d3b1c55b974
└── syno-iscsiraw block ──► pve-iscsi-3t (LVM, 4.5TB, 共享)
└── 幾乎所有 VM/CT 磁碟存放於此vg_pveiscsi
Proxmox Backup Server (192.168.88.169, VM 101)
└── PBS datastore "backup1" ──► backup1 (1TB, 共享)
└── 104 筆 VM/CT 快照備份(指紋 77:1c:e5:3e:aa:b0:5d:07:...
各節點本地
├── /var/lib/vz ──► local
│ └── ISO、vztmpl、備份
└── LVM thin pool ──► local-lvm
└── 部分 VM/CT 磁碟CT107 等)
```
### 儲存設定(`/etc/pve/storage.cfg`
```ini
dir: local
path /var/lib/vz
content iso,backup,vztmpl
lvmthin: local-lvm
thinpool data
vgname pve
content images,rootdir
iscsi: syno-iscsi
portal 192.168.88.60
target iqn.2000-01.com.synology:DS1621.Target-8.d3b1c55b974
content images
lvm: pve-iscsi-3t
vgname vg_pveiscsi
content rootdir,images
saferemove 0
shared 1
pbs: backup1
datastore backup1
server 192.168.88.169
content backup
fingerprint 77:1c:e5:3e:aa:b0:5d:07:41:2c:1a:2a:ce:ae:7c:78:04:75:85:56:68:5e:54:3d:2f:65:ab:31:09:1b:1c:b2
prune-backups keep-all=1
username root@pam
```
## 五、VM / 容器清單
### QEMU 虛擬機
| VMID | 節點 | 狀態 | CPU | 記憶體 | 磁碟 | 儲存 | Tags | 備註 |
|---|---|---|---|---|---|---|---|---|
| **100** | pve-000 | running | 4C | 8 GB | 128 GB | pve-iscsi-3t | veljko;windows | WindowsIDE bus |
| **101** | pve-000 | running | 2C | 4 GB | 64G+1T | pve-iscsi-3t | proxmoxbackupserver | **PBS Server**IP 192.168.88.169 |
| **102** | pve-001 | **stopped** | 4C | 8 GB | 32 GB | local-lvm | apollo;vic;windows | Windows |
| **110** | pve-000 | **stopped** | 4C | 8 GB | 128 GB | pve-iscsi-3t | — | 用途待確認 |
| **111** | pve-001 | running | 1C | 8 GB | 200 GB | pve-iscsi-3t | chao;windows | Windows |
| **114** | pve-001 | running | 1C | 8 GB | 300 GB | pve-iscsi-3t | celia;windows | Windows |
| **115** | pve-000 | running | 1C×2 | 2 GB | 4G+124M | pve-iscsi-3t | openwrt;timmy | **OpenWRT**PPPoE WAN + LAN 192.168.77.1 |
| **116** | pve-001 | running | 1C | 8 GB | 256 GB | pve-iscsi-3t | lucas;windows | Windows |
| **119** | pve-001 | **stopped** | 1C | 16 GB | 60 GB | pve-iscsi-3t | timmy;ubuntu | Ubuntuvmxnet3 介面) |
| **120** | pve-001 | running | 1C | 8 GB | 250 GB | pve-iscsi-3t | chao;hackmd;ubuntu | **HackMD**vmxnet3 |
| **121** | pve-000 | running | 1C | 2 GB | 60 GB | pve-iscsi-3t | timmy;ubuntu | Ubuntu |
| **123** | pve-001 | running | 4C | 16 GB | 264 GB | pve-iscsi-3t | veljko;windows | Windowsbackup=0 |
| **124** | pve-000 | running | 1C | 4 GB | 100 GB | pve-iscsi-3t | lucas;veljko | virtio + writeback |
### LXC 容器
| VMID | 節點 | 狀態 | CPU | 記憶體 | 磁碟 | IP | Tags / 用途 |
|---|---|---|---|---|---|---|---|
| **103** | pve-001 | running | 2C | 2 GB | 16 GB | DHCP | amc-stage;chao容器名 CT108 |
| **104** | pve-000 | running | 2C | 1 GB | 8 GB | 192.168.77.10/24 | **NPM + Headscale**vmbr1 |
| **105** | pve-001 | running | 16C | 16 GB | 32 GB | 192.168.88.89 | **OpenArchiver**(重型容器) |
| **106** | pve-000 | running | 1C | 1 GB | 24 GB | DHCP | b2b;chao |
| **107** | pve-000 | running | 1C | 512 MB | 8 GB | 192.168.88.14 | gia;patentlocal-lvm |
| **108** | pve-000 | running | 2C | 2 GB | 16 GB | DHCP | amc;chao;jira-report |
| **109** | pve-000 | running | 1C | 2 GB | 8 GB | DHCP | cashier-portal;chao |
| **112** | pve-000 | **stopped** | 1C | 1 GB | 24 GB | DHCP | chao;supabase |
| **113** | pve-000 | running | 2C | 4 GB | 32 GB | DHCP | chao;dify;n8n;nocodb |
| **117** | pve-000 | running | 1C | 256 MB | 8 GB | DHCP | tailscale;timmy |
| **122** | pve-000 | running | 8C | 16 GB | 196 GB | 192.168.88.174 | lucas;timmy;ubuntu重型容器 |
| **125** | pve-000 | running | 1C | 512 MB | 8 GB | 192.168.77.21/24 | tailscale;timmyvmbr1 |
### 狀態統計
| 狀態 | 數量 |
|---|---|
| Running | 21 |
| Stopped | 4 (VM 102/110/119, CT 112) |
| Template | 0 |
### 各節點負載分佈
| 節點 | VM (running) | LXC (running) | 分配 vCPU | 分配記憶體 |
|---|---|---|---|---|
| **pve-000** | 5 (100,101,115,121,124) | 10 (104,106,107,108,109,113,117,122,125) + 1 stopped | 24+ | ~36 GB |
| **pve-001** | 6 (111,114,116,120,123) | 2 (103,105) + 多個 stopped | 30+ | ~78 GB |
| **pve-002** | 0 | 0 | 0 | 0 |
## 六、備份策略
### Proxmox Backup Server
- **位置**VM 101pve-000IP `192.168.88.169:8007`
- **Datastore**`backup1`1.00 TB已用 ~622 GB / 62%
- **PVE 端 Storage 名稱**`backup1`
- **保留策略**`keep-all=1`PBS storage 層)
- **指紋**`77:1c:e5:3e:aa:b0:5d:07:41:2c:1a:2a:ce:ae:7c:78:04:75:85:56:68:5e:54:3d:2f:65:ab:31:09:1b:1c:b2`
### 備份排程(目前啟用)
| ID | 排程 | 對象 | 儲存 | 模式 | 保留 |
|---|---|---|---|---|---|
| `backup-71950ae1-101d` | 每日 23:00 | VM/CT 104,106,108,109,113,117,122,125,115,111,114,116,120,121 | backup1 | snapshot | keep-daily=7 |
> 註解:「每日備份(保留近7日)」notes-template 使用 `{{guestname}}`。
### PBS 備份統計(按 VMID
| VMID | 筆數 | VMID | 筆數 | VMID | 筆數 |
|---|---|---|---|---|---|
| 100 | 1 | 109 | 7 | 117 | 7 |
| 101 | 1 | 111 | 7 | 118 | 1 |
| 104 | 7 | 112 | 1 | 119 | 1 |
| 106 | 7 | 113 | 7 | 120 | 7 |
| 107 | 1 | 114 | 7 | 121 | 7 |
| 108 | 7 | 115 | 7 | 122 | 7 |
| | | 116 | 7 | 125 | 7 |
**總計 104 筆**。標記為 7 筆者為排程內常規目標。
### 未在排程內的 VM/CT
- VM 100veljko Windows、102apollo stopped、123veljko, scsi backup=0、124lucas/veljko
- VM 119停機、110停機
- CT 103amc-stage、105openarchiver16C/16GB 大容器、107gia patent、112停機
> 涉及客戶資料的 Windows VM 與重型容器,建議評估是否納入排程。
## 七、關鍵服務架構圖
```
┌─────────────────────────────────────────────────────────────────────┐
│ PVECluster │
│ 192.168.88.73 / .249 / .247 │
├───────────────┬───────────────────────────┬───────────────────────────┤
│ pve-000 (.73)│ pve-001 (.249) │ pve-002 (.247) │
│ 4C / 32GB │ 24C / 132GB │ 4C / 16GBIBM x3250
├───────────────┴───────────────────────────┴───────────────────────────┤
│ │
│ 【網路 / 路由】 │
│ VM115 OpenWRT ── HiNet PPPoE 210.242.157.197 │
│ LAN GW 192.168.77.1vmbr1 子網,僅 pve-000
│ 上游 GW 192.168.88.1 ── 主 LAN 全節點共用 vmbr0 │
│ CT104 NPM + Headscale (192.168.77.10) ── 反向代理 / VPN 控制 │
│ CT117, CT125 ── Tailscale 子網 routing │
│ │
│ 【備份】 │
│ VM101 PBS ── 192.168.88.169:8007 (1TB datastore "backup1") │
│ Synology DS1621 (192.168.88.60) ── iSCSI Target 4.5TB shared LVM │
│ │
│ 【自動化 / 開發】 │
│ VM120 HackMD (chao, Ubuntu 250G) │
│ CT113 Dify + n8n + NocoDB (chao, 4C/4G/32G) │
│ CT105 OpenArchiver (16C/16G/32G — 大型郵件歸檔) │
│ CT112 Supabase (stopped) │
│ VM121 / CT122 通用 Ubuntu (timmy / lucas) │
│ │
│ 【客戶 Windows 桌面】 │
│ VM100 veljko VM111 chao │
│ VM102 apollo/vic (stop) VM114 celia │
│ VM116 lucas VM123 veljko (264G) │
│ │
│ 【業務應用chao 系列)】 │
│ CT103 AMC-Stage CT106 B2B │
│ CT108 AMC + Jira-Report CT109 Cashier-Portal │
│ │
│ 【其他客戶】 │
│ CT107 gia / patent │
└──────────────────────────────────────────────────────────────────────┘
```
## 八、已知問題與注意事項
### `pve-iscsi-3t` 共享儲存使用率偏高74%
主要儲存 4.5TB 已用 3.41TB,新增大型 VM/CT 前需評估,或考慮:
- 將完全停機的 VM (102/110/112/119) 評估刪除或遷出
- 客戶 Windows VM 內部清理(暫存檔、回收筒)
### `pve-001:local` 系統碟 73% 使用率
83GB 內已用 60GB多半是舊 ISO 與 vzdump 殘留。建議:
```bash
# 檢查
ssh root@192.168.88.249 "du -sh /var/lib/vz/* 2>/dev/null | sort -h"
# 清理 ISO/Template
ssh root@192.168.88.249 "ls -lah /var/lib/vz/template/iso/"
```
### pve-002 完全閒置
IBM x3250 M4 雖然規格較舊4C Xeon E3-1220 v2 / 16GB但完全沒有任何 guest 在跑。可作為:
- HA failover 目標(需先啟用 HA
- 排程批次任務節點(如備份壓縮、報表)
- 短期測試 VM
### OpenWRT (VM 115) 為單點故障
PPPoE 撥接與 192.168.77.0/24 子網皆依賴此 VM一旦停機
- 192.168.77.0/24 內主機CT104 NPM、CT125 Tailscale對外失聯
- HiNet PPPoE 連線中斷(如果上游 .88.1 路由器不直接擔當 PPPoE
建議:定期備份 + 至少在另一節點放冷備份映像。
## 九、Corosync 叢集通訊
```
totem:
cluster_name: PVECluster
config_version: 5
transport: knet
secauth: on
nodelist:
pve-000 (nodeid=1, ring0=192.168.88.73, votes=1)
pve-001 (nodeid=2, ring0=192.168.88.249, votes=1)
pve-002 (nodeid=3, ring0=192.168.88.247, votes=1, local)
quorum:
provider: corosync_votequorum
expected votes: 3
required quorum: 2 (需要 2/3 節點在線才能維持 quorate
```
## 十、API 認證
詳見 [PVE_API.md](PVE_API.md) 與 [API.md](API.md)。
| Token | Secret | privsep | 用途 |
|---|---|---|---|
| `root@pam!claude` | `17e96169-a32f-4e2d-951e-859c77770306` | 0繼承 root | Claude / 自動化 |
| `root@pam!monitor` | (未知,舊 token | 0 | 監控 |