Chuyển tới nội dung chính

Resize VM

POST/v2.1/servers/{server_id}/action

Resize đưa VM sang flavor khác, thay đổi vCPU và RAM, và thường cả root disk. Đây là thao tác ba bước:

  1. Yêu cầu resize, truyền flavorRef đích.
  2. VM chuyển sang VERIFY_RESIZE và ở đó cho đến khi bạn confirm hoặc revert.
  3. Confirm để giữ kích thước mới, hoặc revert để quay về flavor cũ.
info

Nguồn: resize-server

Request​

Điều kiện tiên quyết​

  • VM phải ở trạng thái SHUTOFF. Dừng VM trước bằng {"os-stop": null} (xem Thao tác VM).
  • Flavor đích phải tồn tại và hiển thị với project của bạn (xem Liệt kê flavor).
  • Quota project của bạn phải đủ chỗ cho kích thước đích.

Tham số​

server_idstringbắt buộcpath

UUID của VM.

resizeobjectbắt buộcbody

Object bọc action resize.

1 trường
flavorRefstringbắt buộcbody

UUID của flavor đích.

confirmResizenullbắt buộcbody

Giữ flavor mới.

revertResizenullbắt buộcbody

Quay về flavor trước đó.

Bước 1 — gửi yêu cầu resize​

Dùng curl​

curl -ks -X POST -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' \
-d '{"resize": {"flavorRef": "468c0c15-08bd-4e1d-8564-5053ce12966b"}}' \
https://api.vietnix.cloud:8774/v2.1/servers/{server_id}/action

Bước 2 — kiểm tra kết quả​

curl -ks -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' \
https://api.vietnix.cloud:8774/v2.1/servers/{server_id}

Trong response, status phải là VERIFY_RESIZE và OS-EXT-SRV-ATTR:instance_name cùng flavor phải đã trỏ đến kích thước đích. Khởi động VM và kiểm tra guest thấy CPU/RAM mới trước khi confirm.

Bước 3 — confirm hoặc revert​

# keep the new flavor
curl -ks -X POST -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' \
-d '{"confirmResize": null}' \
https://api.vietnix.cloud:8774/v2.1/servers/{server_id}/action

# go back to the previous flavor
curl -ks -X POST -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' \
-d '{"revertResize": null}' \
https://api.vietnix.cloud:8774/v2.1/servers/{server_id}/action

Response​

Mã trạng thái​

Thành công​

MãMô tả
202 - AcceptedYêu cầu resize hoặc revert đã được chấp nhận.
204 - No ContentResize đã được confirm.

Lỗi​

MãMô tả
400 - Bad RequestFlavor không hợp lệ hoặc body của request sai định dạng.
401 - UnauthorizedUser phải xác thực trước khi gửi request.
403 - ForbiddenPolicy không cho phép user hiện tại thực hiện thao tác này.
404 - Not FoundVM hoặc flavor không tồn tại.
409 - ConflictVM đang ở trạng thái không cho phép thao tác này, ví dụ resize VM đang chạy, hoặc confirm khi không có resize nào đang chờ.
warning

Không confirm trước khi guest khởi động thành công trên flavor mới. Sau khi đã confirm, quay lại nghĩa là phải resize thêm lần nữa. VM để ở trạng thái VERIFY_RESIZE vẫn tiêu tốn tài nguyên và không thể resize lại cho đến khi được confirm hoặc revert.

note

Giảm kích thước có thể thất bại khi root disk mới nhỏ hơn dữ liệu đã có, hoặc khi image không hỗ trợ kích thước disk đích. Với VM dùng volume-backed, kích thước volume không thay đổi theo flavor; hãy mở rộng volume riêng nếu cần.