Tự tạo máy chủ ảo, volume, network trong hạn mức gói của bạn. Nâng cấp hoặc mua thêm tài nguyên bất cứ lúc nào — không cần cài đặt lại.
Giá đã bao gồm hạ tầng, chưa gồm VAT · Thanh toán theo tháng
Năm chiều tài nguyên quyết định hạn mức mỗi gói.
| Tài nguyên | Starter | Basic | Pro | Business | Enterprise |
|---|
Không cần đổi gói — cộng thẳng vào hạn mức hiện tại. Ví dụ đang dùng Pro, chỉ cần thêm dung lượng.
Mỗi khách hàng = 1 OpenStack project. Set quota trên project, khách tự tạo instance/volume/network trong hạn mức. Mọi call REST cần header X-Auth-Token.
| Chiều gói | Service | Quota field | Ghi chú |
|---|---|---|---|
| vCPU | Nova | cores | — |
| RAM | Nova | ram | đơn vị MB (GB×1024) |
| Số máy ảo (VM) | Nova | instances | — |
| Storage | Cinder | gigabytes | đĩa Ceph SSD |
| Storage Backup | Cinder | backup_gigabytes | cụm Ceph backup riêng |
source /etc/kolla/admin-openrc.sh
openstack token issue -f value -c id
curl -si -X POST https://<KEYSTONE>:5000/v3/auth/tokens \
-H "Content-Type: application/json" -d '{
"auth": { "identity": {
"methods": ["application_credential"],
"application_credential": { "id": "<ID>", "secret": "<SECRET>" }
}}}' | grep -i x-subject-token
# Header "X-Subject-Token" = TOKEN cho các call sau
Đặt biến: TOKEN, KEYSTONE, NOVA, CINDER, NEUTRON. Lấy URL: openstack endpoint list --interface public.
openstack project create --domain default \
--description "KH: ABC | sub: SUB-2026-00123" abc-corp
curl -s -H "X-Auth-Token: $TOKEN" -H "Content-Type: application/json" \
-X POST $KEYSTONE/v3/projects -d '{
"project": { "name": "abc-corp", "domain_id": "default",
"description": "sub: SUB-2026-00123" }}'
# -> lưu project.id, map với subscription_id của billing
Ví dụ áp gói Pro: 16 vCPU / 32 GB RAM / 500 GB / 20 VM / 300 GB backup.
openstack quota set --cores 16 --ram 32768 --instances 20 abc-corp
openstack quota set --gigabytes 500 --backup-gigabytes 300 \
--volumes 30 --backups 20 abc-corp
openstack quota set --floating-ips 3 --routers 2 abc-corp
curl -s -H "X-Auth-Token: $TOKEN" -X PUT \
$NOVA/os-quota-sets/$PID -d '{"quota_set":{"cores":16,"ram":32768,"instances":20}}'
curl -s -H "X-Auth-Token: $TOKEN" -X PUT \
$CINDER/os-quota-sets/$PID -d '{"quota_set":{"gigabytes":500,"backup_gigabytes":300}}'
curl -s -H "X-Auth-Token: $TOKEN" -X PUT \
$NEUTRON/v2.0/quotas/$PID -d '{"quota":{"floatingip":3,"router":2}}'
Kiểm tra: openstack limits show --absolute --project abc-corp (limit vs đã dùng).
memberopenstack user create --domain default --project abc-corp \
--password '<PASS>' --email abc@kh.com abc-admin
openstack role add --project abc-corp --user abc-admin member
# tạo user -> POST $KEYSTONE/v3/users (trả user.id)
# lấy role id:
MEMBER=$(curl -s -H "X-Auth-Token: $TOKEN" \
"$KEYSTONE/v3/roles?name=member" | jq -r '.roles[0].id')
# gán:
curl -s -H "X-Auth-Token: $TOKEN" -X PUT \
$KEYSTONE/v3/projects/$PID/users/$UID/roles/$MEMBER # 204 = OK
Sau bước này, gửi credential portal cho khách qua kênh an toàn.
Upgrade = ghi đè quota bằng số gói mới (giá trị tuyệt đối). An toàn, tức thì, không đụng máy đang chạy. Ví dụ Pro → Business:
openstack quota set --cores 32 --ram 65536 --instances 40 abc-corp
openstack quota set --gigabytes 1000 --backup-gigabytes 600 abc-corp
totalCoresUsed qua limits show trước; nếu vượt thì chặn, yêu cầu khách xoá bớt (máy cũ không tự xoá).Add-on = cộng dồn vào quota hiện tại (đọc rồi +). Ví dụ khách Pro mua thêm 200 GB storage:
CUR=$(openstack quota show abc-corp -f value -c gigabytes) # 500
openstack quota set --gigabytes $((CUR + 200)) abc-corp # -> 700
| +100 GB Storage | gigabytes += 100 |
| +100 GB Backup | backup_gigabytes += 100 |
| +4 vCPU | cores += 4 |
| +8 GB RAM | ram += 8192 |
| +1 Floating IP | floatingip += 1 |
# Suspend (nợ tiền) — chặn login, giữ data
openstack user set --disable abc-admin
# Resume
openstack user set --enable abc-admin
# Terminate — xoá resource rồi:
openstack project delete abc-corp
Billing không gọi thẳng API trên. Billing gửi 1 webhook đã ký tới Provisioning trong admin portal:
POST /provisioning/apply
{ "subscription_id": "SUB-2026-00123",
"action": "create|upgrade|addon|suspend|terminate",
"plan_code": "pro", "signature": "hmac-sha256(...)" }
Provisioning dịch plan_code → quota (đọc plans.json) rồi chạy bước 1–6, idempotent theo subscription_id. Bản CLI mẫu: scripts/provision-example.sh.
Storage là dung lượng đĩa chính (Ceph SSD) cho OS và volume dữ liệu của máy ảo. Storage Backup là dung lượng lưu bản sao lưu (snapshot/backup) trên cụm Ceph backup tách riêng — mất máy chính vẫn khôi phục được.
Không. Nâng cấp chỉ tăng hạn mức (quota) — máy ảo đang chạy giữ nguyên. Bạn có thêm dư địa để tạo máy mới hoặc resize máy cũ.
Hệ thống sẽ chặn hạ gói cho tới khi mức sử dụng thực tế nằm dưới hạn mức gói mới (bạn cần xoá bớt máy/volume). Máy đang chạy không bị xoá tự động.
Được. Dùng add-on +100 GB Storage hoặc +100 GB Backup — cộng thẳng vào gói hiện tại, không đổi các chỉ số khác.