仿照 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>
362 lines
16 KiB
Markdown
362 lines
16 KiB
Markdown
# PVECluster 叢集架構文件
|
||
|
||
> 最後更新:2026-04-15
|
||
|
||
## 一、叢集概覽
|
||
|
||
| 項目 | 值 |
|
||
|---|---|
|
||
| **叢集名稱** | PVECluster |
|
||
| **PVE 版本** | 8.4.16(Kernel 6.8.12-18-pve) |
|
||
| **節點數** | 3(異質配置) |
|
||
| **Quorum** | 正常(corosync_votequorum,3 votes) |
|
||
| **VM/容器總數** | 25(13 VM + 12 LXC,含 4 個 stopped) |
|
||
| **HA** | 未啟用 |
|
||
|
||
## 二、節點硬體規格
|
||
|
||
> 三台節點規格不同,pve-001 為運算大節點,pve-002 為較舊備援節點。
|
||
|
||
### pve-000(192.168.88.73)
|
||
|
||
| 項目 | 規格 |
|
||
|---|---|
|
||
| **CPU** | 4 cores(廠牌 / 詳細型號待確認) |
|
||
| **記憶體** | 32 GB |
|
||
| **系統碟** | 100 GB |
|
||
| **角色** | 一般工作節點(跑大量 LXC + 中型 VM) |
|
||
| **特別介面** | `vmbr1` (192.168.77.241/24)、`vmbr2`(OpenWRT WAN bridge) |
|
||
|
||
### pve-001(192.168.88.249)
|
||
|
||
| 項目 | 規格 |
|
||
|---|---|
|
||
| **CPU** | 24 cores |
|
||
| **記憶體** | 132 GB |
|
||
| **系統碟** | 83 GB |
|
||
| **角色** | 大型 VM 主機(多顆 Windows VM、HackMD、OpenArchiver) |
|
||
|
||
### pve-002(192.168.88.247)
|
||
|
||
| 項目 | 規格 |
|
||
|---|---|
|
||
| **品牌** | IBM System X3250 M4(型號 2583IOB) |
|
||
| **CPU** | Intel Xeon E3-1220 V2 @ 3.10GHz(4C/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(無 IP,bridge 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 | 否 | 83–100 GB/節點 | 8.7–60.5 GB | ISO、備份、模板 |
|
||
| **local-lvm** | lvmthin | 否 | 184–853 GB | 0–24 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-iscsi(raw 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 | Windows(IDE 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 | Ubuntu(vmxnet3 介面) |
|
||
| **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 | Windows(backup=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;patent(local-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;timmy(vmbr1) |
|
||
|
||
### 狀態統計
|
||
|
||
| 狀態 | 數量 |
|
||
|---|---|
|
||
| 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 101(pve-000),IP `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 100(veljko Windows)、102(apollo stopped)、123(veljko, scsi backup=0)、124(lucas/veljko)
|
||
- VM 119(停機)、110(停機)
|
||
- CT 103(amc-stage)、105(openarchiver,16C/16GB 大容器)、107(gia 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 / 16GB(IBM x3250) │
|
||
├───────────────┴───────────────────────────┴───────────────────────────┤
|
||
│ │
|
||
│ 【網路 / 路由】 │
|
||
│ VM115 OpenWRT ── HiNet PPPoE 210.242.157.197 │
|
||
│ LAN GW 192.168.77.1(vmbr1 子網,僅 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 | 監控 |
|