文件 v0.1.7

資源調整端點

本頁說明調整已停止 VM 的 vCPU、記憶體、磁碟與所在節點的四個端點。

全部端點要求 VM 為停止狀態,並受 ALLOW_IPS 與停用清單限制;指令依 多節點調度 在 VM 所在節點執行。

一覽

端點 欄位 驗證 qm 指令 回應
POST /api/vm/:id/set/cpu cpu int 必填,1–32 qm set --cores 文字 ok
POST /api/vm/:id/set/memory memory int 必填,512–32768(MB) qm set --memory 文字 ok
POST /api/vm/:id/set/disk disk string 無 qm disk resize scsi0 +<disk> 文字 ok
POST /api/vm/:id/set/node node string 必填 qm migrate --with-local-disks SSE

這些端點的上限固定在程式中,不受 VM_MAX_CPU/VM_MAX_RAM/VM_MAX_DISK 影響。

vCPU

curl -X POST http://192.168.0.11:8080/api/vm/120/set/cpu \
  -H "Content-Type: application/json" -d '{"cpu": 4}'
# ok

記憶體

curl -X POST http://192.168.0.11:8080/api/vm/120/set/memory \
  -H "Content-Type: application/json" -d '{"memory": 8192}'
# ok

設定 VM_BALLOON_MIN 且 memory ≥ VM_BALLOON_MIN + 1024 時,會一併送出 --numa 1 --balloon <memory − VM_BALLOON_MIN>。低於門檻時不送 --balloon,VM 既有的 Balloon 設定維持不變。

磁碟

curl -X POST http://192.168.0.11:8080/api/vm/120/set/disk \
  -H "Content-Type: application/json" -d '{"disk": "16G"}'
# ok

disk 是增量:上例讓 scsi0 增加 16G。Proxmox 不支援縮小磁碟;值會原樣傳給 qm,格式錯誤時回 500 並附上 qm 輸出。擴充後需在 VM 內自行擴展分割區與檔案系統。

遷移節點

curl -N -X POST http://192.168.0.11:8080/api/vm/120/set/node \
  -H "Content-Type: application/json" -d '{"node": "pve2"}'

qm migrate 的輸出逐行以 SSE 回傳,step 為 migrating,完成後 event: close。目標節點的 CPU 指令集需涵蓋 VM 的 CPU 類型,見 CPU 基準。

錯誤回應

情況 回應
來源 IP 不在 ALLOW_IPS 403(set/node 為單行 data:)
VM 執行中或在停用清單 400(set/node 為單行 data:)
欄位驗證失敗 400 invalid request body: ...
qm 失敗 500(set/node 為 data: 錯誤)
EN