Có những mô hình lưu trữ dữ liệu phổ biến nào?
- Ba mô hình lưu trữ phổ biến khác nhau ở đơn vị được truy cập
- File storage tổ chức dữ liệu bằng tệp, thư mục và đường dẫn
- Block storage chia dữ liệu thành các khối có địa chỉ
- Object storage lưu nội dung thành object kèm metadata và định danh
- So sánh file, block và object theo cách truy cập và workload
- Chọn mô hình theo cách ứng dụng đọc, ghi và chia sẻ dữ liệu
Điểm quan trọng là phải tách phương tiện vật lý khỏi mô hình lưu trữ logic. Cùng một cụm SSD hoặc HDD có thể được hệ thống trình bày dưới dạng block storage, sau đó dựng filesystem để cung cấp file storage; một nền tảng khác có thể dùng hạ tầng tương tự để cung cấp object storage qua API. Vì vậy, “file, block, object” mô tả cách dữ liệu được tổ chức và truy cập ở lớp logic, không phải tên của loại ổ đĩa.
Ba mô hình lưu trữ phổ biến khác nhau ở đơn vị được truy cập
File storage, block storage và object storage khác nhau trước hết ở đơn vị mà ứng dụng nhìn thấy và cách đơn vị đó được định danh.
· File storage trình bày dữ liệu dưới dạng tệp trong cây thư mục. Ứng dụng hoặc người dùng tìm dữ liệu bằng tên và đường dẫn
· Block storage trình bày một volume như dãy các khối có địa chỉ. Lớp phía trên — thường là filesystem hoặc cơ sở dữ liệu — tự quyết định cách tổ chức các khối đó thành cấu trúc có ý nghĩa
· Object storage đóng gói nội dung thành object, gắn thêm metadata và một key hoặc định danh để truy xuất qua API
Sự khác biệt này kéo theo các trade-off về cách chia sẻ dữ liệu, kiểu cập nhật, khả năng mở rộng namespace và mức kiểm soát mà hệ điều hành hoặc ứng dụng phải đảm nhiệm. Không có mô hình nào luôn tốt hơn hai mô hình còn lại; ưu thế chỉ xuất hiện khi mô hình truy cập phù hợp với workload.

File storage tổ chức dữ liệu bằng tệp, thư mục và đường dẫn
Ở file storage, filesystem duy trì cấu trúc phân cấp gồm thư mục, tệp, tên tệp, đường dẫn và các thuộc tính như quyền truy cập, thời gian sửa đổi hoặc chủ sở hữu. Ứng dụng làm việc với các thao tác quen thuộc như mở tệp, đọc, ghi, đổi tên và đóng tệp; nó không cần biết dữ liệu của tệp nằm ở những sector vật lý nào trên thiết bị.
Khi được chia sẻ qua mạng, file storage thường xuất hiện dưới các giao thức như NFS hoặc SMB. Đây là lý do mô hình này tự nhiên với thư mục dùng chung, hồ sơ người dùng, tài liệu văn phòng, nội dung cần duyệt theo cây thư mục hoặc ứng dụng phụ thuộc vào file path và file-locking semantics.
Giới hạn nằm ở chính lớp namespace và metadata. Khi số lượng tệp, thư mục hoặc thao tác metadata tăng rất lớn, hiệu năng còn phụ thuộc mạnh vào kiến trúc filesystem và hệ thống file server; không thể kết luận đơn giản rằng file storage “chậm” hay “không mở rộng”. Một hệ thống file phân tán có thể mở rộng đáng kể, nhưng vẫn giữ semantics của tệp và đường dẫn.
NAS thường cung cấp file storage, nhưng NAS không đồng nghĩa với file storage. NAS mô tả cách một thiết bị hoặc dịch vụ cung cấp lưu trữ qua mạng, còn file storage mô tả abstraction mà client sử dụng.
Block storage chia dữ liệu thành các khối có địa chỉ
Block storage cung cấp cho máy chủ một thiết bị hoặc volume logic gồm nhiều block có thể đọc và ghi theo địa chỉ. Ở lớp này không có khái niệm tên tệp hay thư mục. Hệ điều hành có thể tạo filesystem trên volume, hoặc một cơ sở dữ liệu có thể quản lý không gian block theo cơ chế riêng.
Ở lớp thiết bị, sector logic thường gặp là 512 byte hoặc 4 KiB; block size của filesystem hay database phía trên có thể khác. Hai khái niệm không nên bị đồng nhất, vì kích thước I/O thực tế còn chịu ảnh hưởng của thiết bị, filesystem, database và hệ điều hành.
Các giao thức và giao diện như SCSI, iSCSI, Fibre Channel hoặc NVMe/NVMe-oF thường xuất hiện trong hệ sinh thái block storage. Mô hình này phù hợp khi workload cần đọc/ghi ngẫu nhiên ở mức thấp, cần volume cho máy ảo hoặc cần để filesystem/database kiểm soát trực tiếp cách bố trí dữ liệu.
Đổi lại, một block device không tự cung cấp trải nghiệm chia sẻ tệp cho nhiều người dùng. Nếu nhiều máy chủ ghi đồng thời lên cùng volume, hệ thống cần cơ chế phối hợp phù hợp như clustered filesystem hoặc ứng dụng được thiết kế cho shared block; nếu không, nguy cơ xung đột hoặc hỏng cấu trúc dữ liệu tăng lên.
Object storage lưu nội dung thành object kèm metadata và định danh
Object storage không trình bày dữ liệu như ổ đĩa hay cây thư mục truyền thống. Mỗi object thường gồm ba thành phần: payload dữ liệu, metadata và key/identifier. Ứng dụng gửi yêu cầu tới dịch vụ bằng API để tạo, đọc, liệt kê hoặc xóa object; nhiều nền tảng dùng API dựa trên HTTP, trong đó giao diện tương thích S3 là một dạng rất phổ biến.
Cách tổ chức này đặc biệt phù hợp với dữ liệu phi cấu trúc như ảnh, video, log, tài liệu lớn hoặc dữ liệu dùng trong data lake. Metadata có thể đi cùng object, còn namespace không buộc phải hoạt động như cây thư mục POSIX. Điều đó cho phép hệ thống phân tán dữ liệu trên nhiều node mà ứng dụng vẫn truy xuất bằng key thay vì theo vị trí vật lý.
Trade-off xuất hiện ở kiểu cập nhật. Object storage được thiết kế tự nhiên cho thao tác trên object hoàn chỉnh và truy cập qua API; việc sửa một vùng nhỏ bên trong object thường không có semantics giống ghi ngẫu nhiên lên block device. Vì thế, volume hệ điều hành, filesystem cần POSIX semantics hoặc database có cường độ random write cao thường không phải use case trực tiếp nhất của object storage, trừ khi có thêm một lớp chuyển đổi hoặc dịch vụ chuyên biệt.
Một “folder” hiển thị trong giao diện object storage nhiều khi chỉ là cách trình bày prefix của key. Nó không nhất thiết là thư mục thật với đầy đủ semantics của filesystem.
So sánh file, block và object theo cách truy cập và workload
Ba mô hình có thể được phân biệt nhanh bằng đơn vị truy cập và lớp chịu trách nhiệm tổ chức dữ liệu:
|
Tiêu chí |
File storage |
Block storage |
Object storage |
|
Đơn vị logic |
Tệp |
Block/sector logic |
Object |
|
Cách định danh |
Tên và đường dẫn |
Địa chỉ block trong volume |
Key hoặc object ID |
|
Cấu trúc |
Cây thư mục/filesystem |
Không có cấu trúc tệp ở lớp block |
Namespace theo key, thường không cần cây thư mục thật |
|
Giao diện thường gặp |
NFS, SMB, local filesystem |
SCSI, iSCSI, Fibre Channel, NVMe |
HTTP API, S3-compatible API |
|
Lớp quản lý tổ chức dữ liệu |
Filesystem/file server |
Filesystem, database hoặc ứng dụng phía trên |
Dịch vụ object storage |
|
Workload điển hình |
Thư mục dùng chung, tài liệu, ứng dụng theo file path |
Volume máy ảo, database, workload random I/O |
Media, log, data lake, kho nội dung phi cấu trúc |
|
Giới hạn cần lưu ý |
Namespace và metadata phụ thuộc kiến trúc filesystem |
Chia sẻ đa máy chủ cần phối hợp |
Không cung cấp native file/block semantics cho mọi workload |
Bảng này không phải bảng xếp hạng hiệu năng. Độ trễ, throughput, IOPS và chi phí phụ thuộc phần cứng, mạng, phần mềm, cấu hình bảo vệ dữ liệu và dịch vụ cụ thể. Một object store cao cấp có thể nhanh hơn một file server yếu trong một workload nhất định; ngược lại, block storage thường có lợi thế khi ứng dụng cần semantics đọc/ghi ngẫu nhiên ở cấp volume.
Cách so sánh hữu ích hơn là hỏi: ứng dụng muốn nhìn thấy file path, block device hay object key; dữ liệu được cập nhật theo từng vùng nhỏ hay thay thế cả object; có cần nhiều client dùng chung một namespace hay không; và lớp nào sẽ chịu trách nhiệm quản lý metadata, locking và consistency.
Chọn mô hình theo cách ứng dụng đọc, ghi và chia sẻ dữ liệu
Nếu nhu cầu chính là thư mục dùng chung, quản lý nội dung theo tên tệp hoặc ứng dụng phụ thuộc vào đường dẫn, file storage thường là lựa chọn tự nhiên. Khi hệ điều hành hoặc database cần một volume có thể đọc/ghi ngẫu nhiên với quyền kiểm soát filesystem và layout dữ liệu, block storage phù hợp hơn. Với tập dữ liệu phi cấu trúc lớn, truy cập bằng API và cần metadata gắn với từng đơn vị nội dung, object storage thường khớp với mô hình sử dụng hơn.
Hệ thống thực tế có thể kết hợp cả ba. Một ứng dụng có thể chạy database trên block storage, ghi tài liệu dùng chung lên file storage và đẩy ảnh hoặc log sang object storage. Việc kết hợp này không mâu thuẫn vì mỗi lớp giải quyết một kiểu truy cập khác nhau.
Cũng cần tách mô hình tổ chức dữ liệu khỏi kiến trúc kết nối. DAS, NAS và SAN chủ yếu mô tả cách storage được gắn trực tiếp, cung cấp qua mạng hoặc kết nối qua storage network. NAS thường gắn với file storage và SAN thường gắn với block storage, nhưng đây là mối quan hệ triển khai chứ không phải hai bộ thuật ngữ tương đương. Tương tự, “cloud storage” là cách cung cấp dịch vụ; trên cloud vẫn có thể tồn tại file, block và object storage.
Cuối cùng, các mô hình dữ liệu như relational, document hay key-value thuộc lớp cơ sở dữ liệu. Chúng mô tả cách ứng dụng biểu diễn và truy vấn dữ liệu logic, trong khi file/block/object mô tả lớp lưu trữ mà dữ liệu được đặt lên hoặc truy cập qua. Phân biệt hai lớp này tránh nhầm một database model với một storage model.
Lưu trữ dữ liệu không chỉ là việc đặt thông tin lên ổ đĩa, mà còn là lựa chọn abstraction để hệ thống biết dữ liệu được định danh và truy cập như thế nào. File storage dùng tệp và đường dẫn, block storage dùng các khối có địa chỉ, còn object storage dùng object kèm metadata và key.
Khi chọn mô hình, nên bắt đầu từ workload thay vì từ tên công nghệ: cần file semantics và chia sẻ theo thư mục thì ưu tiên file; cần volume cho filesystem, máy ảo hoặc database thì cân nhắc block; cần truy cập dữ liệu phi cấu trúc qua API với metadata phong phú thì object thường phù hợp hơn.
