OpenStack · Ceph SSD · HA Compute

Hạ tầng Cloud cho doanh nghiệp
Trả theo gói, mở rộng tức thì

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

So sánh chi tiết

Năm chiều tài nguyên quyết định hạn mức mỗi gói.

Tài nguyên StarterBasicProBusinessEnterprise

Mua thêm tài nguyên (Add-on)

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.

Kết nối API cấp phát tài nguyên

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óiServiceQuota fieldGhi chú
vCPUNovacores
RAMNovaramđơn vị MB (GB×1024)
Số máy ảo (VM)Novainstances
StorageCindergigabytesđĩa Ceph SSD
Storage BackupCinderbackup_gigabytescụm Ceph backup riêng
0 Lấy token Keystone
CLI (trên control01)
source /etc/kolla/admin-openrc.sh
openstack token issue -f value -c id
REST — dùng application credential cho service
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.

1 Tạo khách hàng (project)
CLI
openstack project create --domain default \
  --description "KH: ABC | sub: SUB-2026-00123" abc-corp
REST
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
Idempotent: tìm project theo tên/subscription trước; đã tồn tại thì bỏ qua tạo, đi thẳng set quota. Không tạo trùng.
2 Set quota theo gói

Ví dụ áp gói Pro: 16 vCPU / 32 GB RAM / 500 GB / 20 VM / 300 GB backup.

CLI
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
REST
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).

3 Tạo user + gán role member
CLI
openstack 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
REST
# 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.

4 Upgrade gói

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
Downgrade: quota mới không được thấp hơn mức đang dùng. Check 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á).
5 Custom resource — mua thêm (add-on)

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 Storagegigabytes += 100
+100 GB Backupbackup_gigabytes += 100
+4 vCPUcores += 4
+8 GB RAMram += 8192
+1 Floating IPfloatingip += 1
Đừng nhầm: add-on = cộng dồn; upgrade gói = ghi đè.
6 Suspend / Terminate + luồng từ billing
# 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.

Câu hỏi thường gặp

Storage và Storage Backup khác gì nhau?

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.

Nâng cấp gói có phải tạo lại máy ảo không?

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ạ gói khi đang dùng vượt hạn mức mới thì sao?

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.

Tôi chỉ muốn mua thêm dung lượng, được khô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.

* Giá hiển thị là giá tham khảo, do bộ phận kinh doanh cấu hình. Đây là trang mẫu nội bộ, không phải trang bán hàng chính thức.