Phương thức truy cập dữ liệu của lưu trữ khối, tệp và đối tượng
1. Tổng quan
A. Định nghĩa
Tùy theo đơn vị truy cập tối thiểu (Unit of Access) và giao diện dùng để lưu trữ và truy cập dữ liệu, lưu trữ được phân thành khối (Block), tệp (File) và đối tượng (Object), mỗi loại khác nhau về phương thức truy cập, khả năng mở rộng và mục đích sử dụng.
Khác biệt bản chất của ba phương thức nằm ở câu hỏi "ai xử lý dữ liệu theo đơn vị nào". Lưu trữ khối không cung cấp cấu trúc hệ thống tệp mà chỉ phơi bày các khối thô (raw), để hệ điều hành phía trên tự dựng cấu trúc. Lưu trữ tệp tự sở hữu hệ thống tệp và cung cấp đường dẫn, phân cấp. Lưu trữ đối tượng từ bỏ hẳn cấu trúc phân cấp, xử lý đối tượng trọn vẹn thông qua ID duy nhất và siêu dữ liệu (metadata). Chính "khác biệt về mức độ trừu tượng" này tạo ra khác biệt về hiệu năng, khả năng mở rộng và khả năng chia sẻ.
B. Bối cảnh ra đời và sự cần thiết
Ban đầu chỉ có lưu trữ khối gắn trực tiếp vào máy chủ (DAS); khi nhu cầu nhiều người dùng chia sẻ tệp tăng lên, lưu trữ tệp (NAS) xuất hiện; tiếp đó, khi nhu cầu lưu trữ gần như vô hạn dữ liệu phi cấu trúc quy mô web (ảnh, log, bản sao lưu) tăng mạnh, lưu trữ đối tượng ra đời. Nghĩa là ba phương thức không có quan hệ hơn kém, mà là đối tượng được lựa chọn phù hợp với đặc tính khối lượng công việc (hiệu năng, chia sẻ, mở rộng, chi phí). Khối lượng công việc như cơ sở dữ liệu vốn sống còn nhờ độ trễ thấp, khối lượng công việc nhóm cùng chỉnh sửa tài liệu, và khối lượng công việc tích trữ dữ liệu đa phương tiện cỡ petabyte với chi phí thấp, mỗi loại đòi hỏi đơn vị truy cập khác nhau.
2. So sánh phương thức truy cập
flowchart TB
B[Lưu trữ khối<br/>Đơn vị khối · SAN]
F[Lưu trữ tệp<br/>Tệp/thư mục · NAS]
O[Lưu trữ đối tượng<br/>Đối tượng + siêu dữ liệu · HTTP]
Đơn vị truy cập càng lớn (khối → tệp → đối tượng) thì ngữ cảnh chứa trong mỗi yêu cầu càng phong phú, nhưng chi phí phụ trội (overhead) cũng tăng khiến độ trễ lớn hơn; ngược lại, liên kết cấu trúc lỏng hơn nên mở rộng theo chiều ngang dễ hơn. Các khác biệt về hiệu năng và khả năng mở rộng trong bảng dưới đây đều bắt nguồn từ nguyên lý này.
| Tiêu chí | Khối | Tệp | Đối tượng |
|---|---|---|---|
| Đơn vị truy cập | Khối kích thước cố định (LBA) | Tệp (đường dẫn/phân cấp) | Đối tượng (ID duy nhất + siêu dữ liệu) |
| Giao diện | iSCSI·FC (SAN) | NFS·SMB (NAS) | REST API (HTTP) |
| Cấu trúc | Volume logic | Thư mục phân cấp | Không gian tên phẳng (Flat) |
| Hiệu năng | Cao nhất (độ trễ thấp) | Trung bình | Tương đối thấp (độ trễ cao) |
| Khả năng mở rộng | Hạn chế | Trung bình | Rất cao (mở rộng vô hạn) |
| Mục đích | DB·VM·giao dịch | Chia sẻ tệp·cộng tác | Sao lưu·lưu trữ lâu dài·đa phương tiện·dữ liệu lớn |
3. Chi tiết đặc điểm theo từng loại
A. Lưu trữ khối
Lưu trữ khối chỉ cung cấp đĩa dưới dạng mảng các khối kích thước cố định được định địa chỉ bằng LBA (Logical Block Address). Ở tầng lưu trữ không có khái niệm tệp hay thư mục; việc sử dụng như thế nào hoàn toàn do hệ thống tệp của hệ điều hành phía trên (ext4, NTFS, v.v.) hoặc DBMS quyết định. Vì lưu trữ chỉ làm phần việc tối thiểu, xử lý bổ sung ít nên độ trễ thấp nhất, và mạnh về đọc/ghi ở vị trí ngẫu nhiên (random I/O). Đổi lại, về nguyên tắc một volume khối được gắn (mount) vào một máy chủ nên khó chia sẻ đồng thời. Nó được kết nối qua SAN dựa trên iSCSI hoặc FC, và được dùng ở những nơi cần độ trễ thấp và tính toàn vẹn giao dịch như tệp dữ liệu của cơ sở dữ liệu hay đĩa khởi động của máy ảo.
B. Lưu trữ tệp
Lưu trữ tệp cho phép truy cập thông qua đường dẫn (ví dụ: /home/user/report.docx) và phân cấp thư mục, vì bản thân thiết bị lưu trữ sở hữu hệ thống tệp. Do được phơi bày ra mạng bằng giao thức NFS hoặc SMB (NAS), nhiều máy khách có thể đồng thời gắn cùng một hệ thống tệp để chia sẻ và cộng tác, đồng thời tận dụng nguyên vẹn quyền tệp và cơ chế khóa POSIX. Do chi phí duyệt cấu trúc phân cấp và xử lý giao thức tệp qua mạng, độ trễ lớn hơn lưu trữ khối; khi thư mục sâu và số tệp tăng lên hàng trăm triệu, gánh nặng quản lý siêu dữ liệu tạo ra giới hạn mở rộng. Phù hợp cho thư mục chia sẻ của phòng ban, chia sẻ mã nguồn phát triển, cộng tác biên tập đa phương tiện.
C. Lưu trữ đối tượng
Lưu trữ đối tượng từ bỏ cấu trúc phân cấp và xử lý dữ liệu theo đơn vị đối tượng được truy cập bằng định danh duy nhất (khóa). Mỗi đối tượng gồm phần thân dữ liệu + siêu dữ liệu do người dùng định nghĩa + ID duy nhất, và được lưu trong không gian tên phẳng (flat). Do không cần duy trì và duyệt cây thư mục, khả năng mở rộng theo chiều ngang gần như vô hạn, chỉ cần thêm nút là mở rộng tới cỡ petabyte. Truy cập thông qua REST API dựa trên HTTP (GET/PUT), và thay vì chỉ sửa một phần tệp, nó ghi trọn vẹn theo đơn vị đối tượng. Mỗi yêu cầu có chi phí xử lý HTTP và siêu dữ liệu nên độ trễ lớn nhất, nhưng tối ưu nhờ chi phí thấp và độ bền cao cho dữ liệu dung lượng lớn, phi cấu trúc, chủ yếu đọc (sao lưu, log, hình ảnh/video, data lake). AWS S3 là ví dụ tiêu biểu, tự động sao chép sang nhiều trung tâm dữ liệu để cung cấp độ bền cỡ 99.999999999% (11 nines).
4. Tiêu chí lựa chọn
Khi hiểu nguyên lý của đơn vị truy cập, việc lựa chọn sẽ tự nhiên được suy ra. Nếu cần độ trễ thấp, random I/O thì chọn khối; nếu cần chia sẻ đồng thời, ngữ nghĩa POSIX thì chọn tệp; nếu cần mở rộng quy mô lớn, phi cấu trúc, chi phí thấp thì chọn đối tượng.
| Yêu cầu | Phù hợp | Lý do |
|---|---|---|
| Giao dịch hiệu năng cao (DB·VM) | Khối | Chi phí phụ trội tối thiểu·độ trễ thấp·random I/O |
| Chia sẻ tệp nhiều người dùng | Tệp | Cung cấp sẵn hệ thống tệp·chia sẻ POSIX |
| Phi cấu trúc quy mô lớn·lưu trữ lâu dài | Đối tượng | Mở rộng vô hạn·siêu dữ liệu·chi phí thấp |
5. Các vấn đề cần cân nhắc và hàm ý
Đám mây cung cấp ba phương thức này lần lượt dưới dạng EBS (khối), EFS (tệp), S3 (đối tượng), và trong thực tế, thay vì chỉ dùng một loại, việc kết hợp (lai - hybrid) theo từng khối lượng công việc là phổ biến. Ví dụ, DB của máy chủ ứng dụng đặt trên lưu trữ khối, tài liệu chia sẻ của nhóm trên lưu trữ tệp, dữ liệu người dùng tải lên và bản sao lưu trên lưu trữ đối tượng. Điểm cốt lõi từ góc nhìn Kỹ sư chuyên nghiệp (Professional Engineer) là lưu trữ đối tượng có thể tối ưu chi phí bằng tính bất biến của đối tượng (WORM), quản lý phiên bản và chính sách vòng đời (Lifecycle), tự động di chuyển dữ liệu cũ sang tầng chi phí thấp (lạnh/lưu trữ lâu dài). Tuy nhiên, lưu trữ đối tượng yếu về sửa đổi từng phần và tính nhất quán giao dịch mạnh, nên chỉ nên áp dụng cho dữ liệu "tích trữ lớn với chi phí rẻ nhưng không thường xuyên sửa đổi".
Tóm tắt một câu: Lưu trữ khối phù hợp cho DB·VM hiệu năng cao theo đơn vị khối (SAN), lưu trữ tệp cho chia sẻ theo đơn vị tệp (NAS), lưu trữ đối tượng cho lưu trữ lâu dài quy mô lớn bằng đối tượng + siêu dữ liệu (HTTP); sự đánh đổi "đơn vị truy cập càng lớn thì độ trễ càng tăng nhưng khả năng mở rộng càng tốt" tạo nên khác biệt về giao diện và mục đích sử dụng.