Object Storage (S3, Ceph RGW)
Vị trí trong admin: Infrastructure › Cloud provider › Ceph S3 (RGW) (
/infra/s3). Tài khoản: Services › Object Storage › S3 accounts (/s3). Bảng giá: Services › Object Storage › PAYG pricing (/s3/policy). Bật module trong System › Admin › License & updates.
Chức năng
Khách hàng tạo tài khoản S3 từ portal và nhận access key. NexCMP tạo và xóa user tương ứng trên Ceph RADOS Gateway (RGW) của bạn thông qua RGW Admin Ops API, đọc mức sử dụng để tính cước và thanh toán theo hình thức pay-as-you-go: dung lượng lưu trữ vượt mức miễn phí theo mỗi GB/tháng (tính theo giờ) và lưu lượng tải xuống theo mỗi GB. Chiều tải lên hoàn toàn miễn phí.
Sử dụng tính năng này khi bạn vận hành một cụm Ceph kèm RGW và muốn kinh doanh Object Storage.
Yêu cầu
| Hạng mục | Yêu cầu |
|---|---|
| Ceph | Cụm Ceph có ít nhất một daemon RGW và đã bật Admin Ops API (mặc định rgw_enable_apis bao gồm admin). |
| Admin user | Một RGW user dành riêng cho NexCMP với các capability liệt kê bên dưới. Không dùng user đang chứa dữ liệu của khách hàng. |
| Endpoint | S3 endpoint mà khách hàng sử dụng và Admin Ops endpoint. Cả hai đều được viết dưới dạng https://host không có path, chỉ dùng port 443, và phải phân giải về địa chỉ public: các địa chỉ loopback, link-local, multicast, private và unique-local sẽ bị từ chối. |
| Chứng chỉ | Chứng chỉ hợp lệ cho host của endpoint. |
| Usage log | Bật RGW usage logging (rgw_enable_usage_log = true) để usage API có thể báo cáo lưu lượng. |
| Zone | Một master zone đã tích chọn service Object Storage (S3). Xem Zones. |
| Storage | Dung lượng khả dụng trong Ceph đáp ứng các quota bạn bán. |
| Phụ thuộc vào | Module Object Storage. Lưu lượng tải xuống cũng được tính vào Bandwidth. |
Chuẩn bị hạ tầng
Trên một Ceph admin node:
Tạo admin user và cấp các quyền hạn (capability) Admin Ops cần thiết:
bashradosgw-admin user create --uid=nexcmp-admin --display-name="NexCMP admin" radosgw-admin caps add --uid=nexcmp-admin --caps="users=*;buckets=*;usage=read;metadata=read" radosgw-admin user info --uid=nexcmp-adminSao chép
access_keyvàsecret_keytừ kết quả trả về. Đó chính là Admin access key và Admin secret key trong NexCMP.Bật usage log và khởi động lại các gateway:
bashceph config set client.rgw rgw_enable_usage_log trueĐặt các gateway phía sau HTTPS trên port 443 (dùng reverse proxy hoặc TLS tích hợp của RGW), cấu hình DNS và kiểm tra từ panel server:
bashcurl -fsS -o /dev/null -w '%{http_code}\n' https://s3.example.com/Bạn sẽ nhận được phản hồi XML từ S3 (HTTP 200 hoặc 403), không phải lỗi timeout.
Kết nối trong NexCMP
Gán dịch vụ S3 cho một zone. Mở Infrastructure › Datacenter › Zone, chỉnh sửa zone và tích chọn Object Storage (S3). Chỉ các master zone có dịch vụ S3 mới xuất hiện trong biểu mẫu backend.
Mở Infrastructure › Cloud provider › Ceph S3 (RGW) và nhấp vào Add backend:
Trường Giá trị ví dụ Tên backend Ceph RGW 1Zone zone từ bước 1 Endpoint RGW Admin Ops https://s3.example.comEndpoint S3 khách hàng https://s3.example.comRegion ký S3 defaultAdmin access key XXXXAdmin secret key XXXXKích hoạt bật Enable sales (cần kiểm tra kết nối trước) tạm thời tắt Lý do thay đổi initial setup
Nhấp vào OK (lưu), sau đó nhấp Check ở hàng tương ứng. NexCMP sẽ gọi Admin Ops API bằng admin key. Thông báo Ceph connection successful và thẻ Verified cho biết kết nối thành công.
Nhấp vào Edit, chuyển Enable sales sang bật và lưu lại. NexCMP sẽ từ chối mở bán cho đến khi việc kiểm tra thành công.
Mở Services › Object Storage › PAYG pricing và thiết lập giá:
Trường Ý nghĩa Lưu trữ vượt mức miễn phí (VND/GB/tháng) Giá lưu trữ; được tính theo giờ bằng giá tháng chia cho 730. Tải xuống (VND/GB) Giá cho lưu lượng chiều ra. Tải lên (VND/GB) Luôn bằng 0. Hạn mức miễn phí khi có Running VM (GB) Cố định ở mức 100 GB cho mỗi tài khoản khi khách hàng có ít nhất một VM đang chạy, được chia sẻ giữa các tài khoản S3 của họ theo dung lượng. Hạn mức ghi nợ (VND) Mức sử dụng chưa thanh toán tối đa được cho phép. Ngưỡng lập hóa đơn (VND) Lượng sử dụng sẽ được gom vào một hóa đơn khi vượt qua số tiền này. Số dư tối thiểu để tạo S3 (VND) Số dư ví cần để tạo tài khoản. Số tài khoản S3 tối đa cho mỗi khách hàng, Hạn ngạch kỹ thuật mặc định (GB) Giới hạn áp dụng cho các tài khoản mới. 
Giá S3 được nhập bằng VND. Các mức giá này được quy đổi để hiển thị và trừ tiền trong ví theo tỷ giá hiện hành; xem Tiền tệ và tỷ giá hối đoái.
Kiểm tra
- Check hiển thị "Ceph connection successful".
- Với tư cách là khách hàng (hoặc dùng tài khoản thử nghiệm), hãy tạo một tài khoản S3. Trên Ceph,
radosgw-admin user listsẽ hiển thị user mới, và S3 accounts sẽ liệt kê tài khoản đó. - Tạo một bucket bằng bất kỳ S3 client nào bằng key của khách hàng tới customer endpoint. Tải lên một tệp.
- Sau chu kỳ tính cước theo giờ tiếp theo, S3 accounts sẽ hiển thị mức sử dụng.
Giới hạn và lưu ý
- Backend đã gắn liền với các tài khoản sẽ giữ nguyên zone, endpoint và region; để thay đổi chúng, hãy tạo một backend mới.
- Mỗi zone có thể có backend riêng; các tài khoản và backend sẽ được liên kết cố định với một zone.
- Hạn mức miễn phí và quy định "tải lên là miễn phí" là các quy tắc cố định, không phải tùy chọn.
- Các key được lưu trữ dưới dạng mã hóa; console chỉ hiển thị trường "leave blank to keep the current key". Cặp key luôn phải được nhập cùng nhau.
- Secret key của khách hàng chỉ hiển thị một lần duy nhất khi tạo và không bao giờ xuất hiện lại. Nếu mất key, bạn chỉ có thể thay thế bằng cách rotate key.
Xử lý sự cố
| Hiện tượng | Nguyên nhân | Cách khắc phục |
|---|---|---|
| "Endpoint requires HTTPS" | Endpoint đang dùng HTTP thông thường | Xuất bản HTTPS trên cổng 443. |
| "Cổng endpoint không được phép" | Cổng khác 443 | Sử dụng cổng HTTPS tiêu chuẩn. |
| "Địa chỉ endpoint không được phép" | Tên miền phân giải ra địa chỉ private, loopback, link-local hoặc unique-local | Sử dụng địa chỉ public. |
| "Endpoint chỉ được chứa giao thức và host" | URL có chứa path, query hoặc thông tin người dùng | Chỉ sử dụng https://host. |
| "Không thể phân giải endpoint" | Máy chủ panel không thể phân giải DNS | Sửa lại cấu hình DNS. |
| "Failed to connect to Ceph" | Lỗi tường lửa hoặc lỗi TLS | Kiểm tra bằng curl từ máy chủ panel. |
| "Ceph returned HTTP 403 AccessDenied" | Sai key hoặc thiếu quyền hạn (capabilities) | Kiểm tra lại các key và chạy lại radosgw-admin caps add. |
| "Invalid Ceph response" | Endpoint không phải là RGW Admin Ops API | Trỏ endpoint về RGW, không trỏ về trang web. |
| "Kiểm tra kết nối phải thành công trước khi bật bán hàng" | Bạn đã bật bán hàng trước khi chạy Check thành công | Chạy Check, sau đó mới kích hoạt bán hàng. |
| "Bắt buộc có đầy đủ các key mới cho endpoint" | Đã đổi endpoint nhưng không cung cấp đủ cả hai key | Nhập đồng thời cả access key và secret key. |
| "Backend đã có tài nguyên liên kết; hãy tạo backend mới để đổi zone hoặc endpoint" | Đã có tài khoản tồn tại trên backend này | Tạo một backend mới. |
| "Chọn master zone có dịch vụ S3" | Zone này không phải là master zone hoặc chưa bật dịch vụ S3 | Tích chọn Object Storage (S3) trên zone. |
| "Invalid region" | Region chứa các ký tự khác ngoài chữ cái, chữ số, - và _ | Sử dụng default hoặc tên zonegroup RGW của bạn. |
| "Thiếu tóm tắt mức sử dụng Ceph; không tính phí" | Usage log đang bị tắt | Bật rgw_enable_usage_log. |