Object Storage là gì? Tính năng chính và Trường hợp ứng dụng
Object Storage là mô hình lưu trữ dữ liệu theo dạng đối tượng, phù hợp với các loại dữ liệu không có cấu trúc như hình ảnh, video, file backup, log, tài liệu, file cài đặt hoặc dữ liệu dùng cho ứng dụng AI. Thay vì tổ chức dữ liệu theo ổ đĩa, thư mục và block như các mô hình lưu trữ truyền thống, Object Storage quản lý mỗi file như một object độc lập kèm metadata và một định danh duy nhất.
Nhờ cách tổ chức này, Object Storage có thể mở rộng dung lượng lớn, truy cập qua API và dễ tích hợp với website, ứng dụng, CDN hoặc hệ thống backup. Đây là lý do Object Storage thường xuất hiện trong các kiến trúc cloud hiện đại khi doanh nghiệp cần lưu lượng dữ liệu lớn nhưng không muốn phụ thuộc vào ổ đĩa cục bộ của một máy chủ.
Bài viết này giải thích Object Storage là gì, cách hoạt động, điểm khác biệt với Block Storage và File Storage, các trường hợp sử dụng phổ biến, cách kết nối với ứng dụng và những lưu ý khi triển khai trên production.
Tóm tắt: Object Storage phù hợp để lưu dữ liệu dạng file có quy mô lớn và truy cập qua API. Nó không thay thế hoàn toàn ổ đĩa của hệ điều hành hoặc database, nhưng rất phù hợp cho media, backup, log, tài liệu, static asset và dữ liệu cần mở rộng độc lập với máy chủ.
Object Storage là gì?
Object Storage là hệ thống lưu trữ dữ liệu dưới dạng object.
Mỗi object thường gồm ba thành phần:
- Dữ liệu thực tế.
- Metadata.
- Một định danh duy nhất.
Có thể hình dung:
Object
|
|-- Data
| `-- image.jpg
|
|-- Metadata
| |-- Content-Type
| |-- Owner
| `-- Created time
|
`-- Object Key
`-- products/2026/image.jpg
Object Storage thường không yêu cầu hệ thống file truyền thống với cấu trúc thư mục thật sự. Những đường dẫn như products/2026/image.jpg thường được biểu diễn bằng object key.
Điều này giúp hệ thống quản lý lượng object rất lớn mà không phụ thuộc vào cấu trúc thư mục vật lý như trên ổ đĩa thông thường.
Object Storage hoạt động như thế nào?
Người dùng hoặc ứng dụng thường truy cập Object Storage thông qua API.
Application
|
v
Object Storage API
|
v
Bucket
|
|-- image-01.jpg
|-- video-01.mp4
|-- backup.sql.gz
`-- report.pdf
Các thao tác phổ biến gồm:
- Tạo bucket.
- Upload object.
- Download object.
- Xóa object.
- Liệt kê object.
- Gán quyền truy cập.
- Gắn metadata.
- Thiết lập lifecycle.
- Tạo URL truy cập tạm thời.
Ứng dụng không cần biết object đang nằm trên ổ đĩa vật lý nào. Hệ thống lưu trữ chịu trách nhiệm quản lý vị trí dữ liệu phía dưới.
Object Storage khác gì với ổ đĩa trên Cloud Server?
Khi lưu file trực tiếp trên Cloud Server:
Cloud Server
|
`-- /var/www/uploads/
|-- image1.jpg
|-- image2.jpg
`-- video.mp4
Dữ liệu phụ thuộc vào ổ đĩa của chính máy chủ đó.
Nếu application được scale thành nhiều server:
Load Balancer
|
|-- App Server 1
| `-- uploads/
|
`-- App Server 2
`-- uploads/
có thể xảy ra tình trạng file chỉ tồn tại trên một server.
Nếu sử dụng Object Storage:
Load Balancer
|
|-- App Server 1
|
`-- App Server 2
|
v
Object Storage
Cả hai application server cùng truy cập một nơi lưu trữ chung. Điều này giúp application dễ scale out hơn.
Object Storage khác Block Storage thế nào?
Block Storage chia dữ liệu thành các block và thường được hệ điều hành nhìn thấy như một ổ đĩa.
Ví dụ:
/dev/vdb
Sau đó có thể format và mount:
sudo mkfs.ext4 /dev/vdb
sudo mount /dev/vdb /data
Block Storage phù hợp với:
- Ổ đĩa hệ điều hành.
- Database.
- Application cần filesystem.
- Workload cần latency thấp.
- Dữ liệu cần đọc ghi ngẫu nhiên thường xuyên.
Object Storage phù hợp hơn với:
- Hình ảnh.
- Video.
- Backup.
- Archive.
- Log.
- File tải xuống.
- Dataset.
| Tiêu chí | Object Storage | Block Storage |
|---|---|---|
| Cách lưu | Object | Block |
| Truy cập | API/HTTP | Block device |
| Filesystem | Không bắt buộc | Thường cần |
| Scale dung lượng | Rất linh hoạt | Theo volume |
| Media/backup | Phù hợp | Không phải lựa chọn tối ưu |
| Database | Không phải lựa chọn chính | Phù hợp hơn |
| Metadata | Linh hoạt | Hạn chế hơn |
Object Storage khác File Storage thế nào?
File Storage sử dụng cấu trúc file và thư mục quen thuộc, thường thông qua NFS hoặc SMB.
/shared
|
|-- documents
|-- images
`-- reports
Object Storage không hoạt động như một ổ mạng truyền thống. Ứng dụng thường thao tác qua API.
| Tiêu chí | Object Storage | File Storage |
|---|---|---|
| Truy cập | API | NFS/SMB |
| Cấu trúc | Object key | File/thư mục |
| Scale | Rất lớn | Phụ thuộc hệ thống |
| Metadata | Linh hoạt | Theo filesystem |
| Web/app cloud-native | Phù hợp | Tùy trường hợp |
| Shared folder | Không phải mục đích chính | Phù hợp |
Bucket là gì?
Bucket là vùng logic dùng để tổ chức object.
Ví dụ:
Bucket: ecommerce-images
|
|-- products/iphone/image-01.webp
|-- products/laptop/image-01.webp
`-- banners/summer-sale.webp
Một hệ thống có thể sử dụng nhiều bucket như:
production-images
production-backups
production-logs
staging-images
Việc tách bucket giúp quản lý quyền truy cập, lifecycle, môi trường và loại dữ liệu.
Không nên đưa tất cả dữ liệu vào một bucket duy nhất mà không có chiến lược tổ chức.
Object key là gì?
Object key là định danh của object trong bucket.
Ví dụ:
users/123/avatar.webp
hoặc:
2026/08/20/report.pdf
Object key không nhất thiết đại diện cho thư mục thật.
Có thể thiết kế key theo user ID, ngày tháng, loại dữ liệu, project, tenant hoặc UUID.
Ví dụ:
uploads/{user_id}/{uuid}.jpg
Cách đặt key hợp lý giúp việc quản lý và lifecycle dễ hơn.
Metadata trong Object Storage dùng để làm gì?
Metadata mô tả object.
Ví dụ:
Content-Type: image/webp
Content-Length: 102400
Cache-Control: public, max-age=86400
Owner-ID: 12345
Project: ecommerce
Metadata có thể dùng để xác định loại file, thiết lập cache, phân loại dữ liệu hoặc lưu thông tin phục vụ ứng dụng.
Khi nào website nên dùng Object Storage?
Website nên cân nhắc Object Storage khi lượng file upload bắt đầu tăng.
Ví dụ:
- Ảnh sản phẩm.
- Ảnh người dùng.
- Avatar.
- Tài liệu.
- Video.
- File đính kèm.
Nếu tất cả file được lưu trong /var/www/uploads/, application server vừa phải chạy code vừa phải lưu file. Khi server cần thay thế hoặc scale out, việc đồng bộ file trở nên phức tạp.
Object Storage giúp tách compute và storage thành hai lớp độc lập.
Object Storage cho website thương mại điện tử
Ecommerce thường có lượng media lớn:
- Ảnh sản phẩm.
- Thumbnail.
- Banner.
- Catalogue.
- Video giới thiệu.
- Tài liệu hướng dẫn.
Kiến trúc có thể là:
User
|
v
Website
|
v
Application
|
v
Object Storage
|
v
CDN
Application upload file lên Object Storage, sau đó CDN có thể lấy ảnh từ Object Storage và phân phối tới người dùng.
Điều này giúp application server không phải trực tiếp phục vụ toàn bộ ảnh.
Object Storage và CDN kết hợp như thế nào?
Object Storage và CDN thường được sử dụng cùng nhau.
Object Storage chịu trách nhiệm lưu object và cung cấp origin.
CDN chịu trách nhiệm cache, phân phối nội dung, giảm request về origin và đưa dữ liệu tới gần người dùng hơn.
User
|
v
CDN Edge
|
|-- Cache HIT
|
`-- Cache MISS
|
v
Object Storage
Kiến trúc này phù hợp với hình ảnh, video, file tải xuống, static asset và public dataset.
Object Storage dùng cho backup
Backup là một trường hợp sử dụng phổ biến.
Có thể lưu:
- Database backup.
- Application backup.
- Log archive.
- File cấu hình.
- File nén.
Ví dụ:
backup/
|
|-- mysql-2026-08-18.sql.gz
|-- mysql-2026-08-19.sql.gz
`-- mysql-2026-08-20.sql.gz
Ưu điểm là backup được tách khỏi máy chủ đang chạy application.
Nếu server gặp lỗi ổ đĩa, backup vẫn nằm ở một hệ thống lưu trữ độc lập.
Tuy nhiên, backup chỉ có giá trị nếu có thể restore. Cần định kỳ kiểm tra file, checksum, quy trình restore và thời gian phục hồi.
Object Storage dùng cho log và archive
Log thường tăng liên tục theo thời gian.
Ví dụ:
- Nginx access log.
- Application log.
- Audit log.
- Security log.
Không phải log nào cũng cần nằm trên SSD nhanh trong nhiều tháng.
Có thể triển khai:
Server
|
v
Log Pipeline
|
v
Object Storage
Log cũ được chuyển sang Object Storage để lưu trữ dài hạn, giúp giảm áp lực dung lượng trên application server.
Object Storage trong hệ thống AI
Ứng dụng AI thường tạo ra nhiều dữ liệu không có cấu trúc:
- Dataset.
- Hình ảnh.
- Audio.
- Video.
- Document.
- Model artifact.
- File đầu vào.
- Kết quả xử lý.
Object Storage có thể đóng vai trò data layer:
Raw Data
|
v
Object Storage
|
v
Processing
|
v
AI Pipeline
Ví dụ hệ thống RAG có thể lưu file PDF gốc trong Object Storage, trong khi vector được lưu trong vector database.
Ứng dụng upload file lên Object Storage như thế nào?
Một cách là application nhận file rồi upload lên Object Storage:
User
|
v
Application
|
v
Object Storage
Nhưng với file lớn, application phải chịu toàn bộ băng thông.
Một mô hình khác là dùng signed URL hoặc presigned URL:
User
|
| request upload permission
v
Application
|
| signed URL
v
User
|
| upload trực tiếp
v
Object Storage
Application chỉ tạo quyền upload tạm thời, còn file được truyền trực tiếp từ người dùng đến Object Storage.
Điều này giúp giảm CPU, RAM, bandwidth và thời gian giữ connection trên application server.
Public và private object
Không phải object nào cũng nên public.
Public object phù hợp với:
- Logo.
- Banner.
- Ảnh sản phẩm công khai.
- File tải xuống công khai.
Private object phù hợp với:
- Hóa đơn.
- Hồ sơ khách hàng.
- Backup.
- Tài liệu nội bộ.
- Dữ liệu cá nhân.
Với dữ liệu private, có thể dùng signed URL có thời hạn.
Không nên biến toàn bộ bucket thành public chỉ để đơn giản hóa việc tải file.
Lifecycle Policy là gì?
Lifecycle Policy giúp tự động quản lý object theo thời gian.
Ví dụ:
File mới
|
| 30 ngày
v
Storage ít truy cập
|
| 180 ngày
v
Archive
|
| 365 ngày
v
Delete
Có thể dùng lifecycle để xóa log cũ, xóa backup quá hạn hoặc chuyển dữ liệu ít truy cập sang lớp lưu trữ phù hợp.
Nếu không có lifecycle, storage có thể tăng liên tục mà không ai để ý.
Versioning có tác dụng gì?
Versioning giúp giữ nhiều phiên bản của cùng một object.
config.json
|
|-- Version A
|-- Version B
`-- Version C
Nếu file bị ghi đè nhầm, có thể khôi phục phiên bản cũ.
Versioning phù hợp với file cấu hình, tài liệu và dữ liệu cần chống ghi đè.
Tuy nhiên, versioning cũng làm tăng dung lượng lưu trữ, vì vậy nên kết hợp với lifecycle.
Những lỗi thường gặp khi dùng Object Storage
Để bucket public không cần thiết
Đây là rủi ro bảo mật phổ biến.
Cần kiểm tra:
- Bucket policy.
- Access key.
- ACL.
- Public access.
- Signed URL.
Lưu secret trong source code
Không nên hardcode access key và secret key trực tiếp trong repository.
Nên dùng:
- Environment variable.
- Secret manager.
- IAM role.
- Credential tạm thời.
Không có lifecycle
Log, backup và file tạm có thể tăng liên tục, kéo theo chi phí và dung lượng.
Dùng Object Storage như ổ đĩa database
Object Storage không phù hợp để thay thế block device cho database truyền thống.
Không theo dõi lỗi upload
Ứng dụng cần xử lý timeout, retry, partial upload, checksum, file size và Content-Type.
Object Storage có phù hợp cho mọi dữ liệu không?
Không.
Object Storage phù hợp khi dữ liệu:
- Dạng file hoặc object.
- Không cần mount như ổ đĩa thông thường.
- Có thể truy cập qua API.
- Cần scale lớn.
- Cần chia sẻ giữa nhiều application.
Không phù hợp làm lựa chọn chính cho database block device, filesystem latency thấp hoặc workload sửa dữ liệu từng block nhỏ liên tục.
Cách lựa chọn giữa Object, Block và File Storage
| Nhu cầu | Loại storage phù hợp |
|---|---|
| Ổ đĩa hệ điều hành | Block Storage |
| Database | Block Storage |
| Ảnh sản phẩm | Object Storage |
| Video | Object Storage |
| Backup | Object Storage |
| Log archive | Object Storage |
| Shared folder | File Storage |
| NFS | File Storage |
| Dataset AI | Object Storage |
| Static website asset | Object Storage |
Không nhất thiết chỉ dùng một loại storage trong một hệ thống.
Một kiến trúc production có thể dùng cả ba.
Ví dụ kiến trúc thực tế
Một website ecommerce có thể tổ chức application:
User
|
v
CDN
|
v
Load Balancer
|
|-- App Server 1
|-- App Server 2
|
v
Database
Dữ liệu file đi theo:
Application
|
v
Object Storage
|
v
CDN
Trong khi database sử dụng Block Storage.
Mỗi loại storage xử lý một workload khác nhau.
Checklist trước khi sử dụng Object Storage
Thiết kế dữ liệu
- Đã xác định loại file cần lưu.
- Đã thiết kế bucket.
- Đã thiết kế object key.
- Đã xác định metadata.
- Đã xác định public/private.
Bảo mật
- Không để bucket public ngoài ý muốn.
- Không hardcode access key.
- Phân quyền theo nguyên tắc tối thiểu.
- Có cơ chế rotate credential.
- Sử dụng HTTPS.
Vận hành
- Có lifecycle policy.
- Có versioning nếu cần.
- Có monitoring dung lượng.
- Có cảnh báo lỗi upload.
- Có retry.
- Có checksum.
- Có quy trình xóa dữ liệu.
Backup
- Đã xác định retention.
- Đã thử restore.
- Không đặt backup duy nhất trên cùng server.
- Có kiểm tra tính toàn vẹn.
Hiệu năng
- Đã kiểm tra kích thước object.
- Đã kiểm tra bandwidth.
- Có CDN nếu phân phối file public lớn.
- Có multipart upload cho file lớn nếu hệ thống hỗ trợ.
- Đã kiểm tra timeout.
Kết luận
Object Storage là mô hình lưu trữ phù hợp với dữ liệu không có cấu trúc và cần mở rộng lớn như hình ảnh, video, backup, log, tài liệu hoặc dataset. Thay vì phụ thuộc vào filesystem của một máy chủ, application có thể truy cập object thông qua API và chia sẻ cùng một lớp storage giữa nhiều server.
Điểm mạnh của Object Storage nằm ở khả năng scale, metadata linh hoạt, truy cập qua API và tách storage khỏi compute. Điều này đặc biệt hữu ích khi application cần scale out hoặc khi dữ liệu file tăng nhanh hơn tài nguyên xử lý.
Tuy nhiên, Object Storage không thay thế hoàn toàn Block Storage hoặc File Storage. Database, ổ đĩa hệ điều hành và workload cần latency thấp vẫn phù hợp hơn với Block Storage. Shared filesystem truyền thống có thể phù hợp hơn với File Storage.
Một cách lựa chọn đơn giản là:
Database / OS -> Block Storage
Shared Folder -> File Storage
Media / Backup / Log / Dataset -> Object Storage
Khi website hoặc ứng dụng bắt đầu có lượng media, backup hoặc dữ liệu file lớn, việc tách chúng khỏi Cloud Server và đưa sang Object Storage giúp kiến trúc dễ mở rộng và quản lý hơn.
All rights reserved