Một số kiểu lưu trữ phổ biến
Việc lưu trữ là một phần không thể thiếu của bất kỳ hệ thống nào. Hiện tại có 3 giải pháp phổ biến cho việc lưu trữ : File, Block, Object
File Storage
File storage là một giải pháp lưu trữ dữ liệu dưới dạng các files và đại diện nó tới người dùng cuối như là kiến trúc thư mục theo tầng. Lợi ích chính đó là việc cung cấp một giải pháp thân thiện người dùng và lấy lại files. Để xác định vị trí trong file storage chúng ta cần đường dẫn đầy đủ của file
File storage là kiểu lưu trữ lâu đời nhất và phổ biến nhất cho hệ thống DAS (Direct Attached Storage) và NAS (Network-Attached Storage)
Block Storage
Block storage phân dữ liệu thành các khối (block) và lưu chúng như là các mảnh riêng biệt. Mỗi khối đều có định dang duy nhất. Như vậy một phần dữ liệu có thể lưu trữ trong môi trường Linux và phần khác có thể lưu trữ trên môi trường Windows.
Block storage thường được cấu hình để nới lỏng sự phụ thuộc môi trường của người dùng và phân chúng ra làm nhiều phần có thể giúp việc lấy dữ liệu tốt hơn. Bất cứ khi nào dữ liệu được yêu cầu, phần mềm storage dữ tập hợp phần khối dữ liệu và gửi chúng cho người dùng.
Block storage thường được triển khai trong môi trường SAN (Storage Area Network).
Object Storage là gì?
Object storage là một trong những hệ thống storage mới. Nó được tạo ra ở trong ngành công nghiệp điện toán đám mây với yêu cầu lưu trữ một lượng lớn dữ liệu phi cấu trúc. Nó là cấu trúc trong đó các files được chia thành các mảnh và được trải ra trên phần cứng. Trong Object Storage, dữ liệu được chia thành các đơn vị nhỏ gọi là objects thay vì lưu trữ như là các files hoặc là block trên server.
Thông thường một object sẽ gồm 2 thành phần
Một định danh duy nhất cho phép object được tìm thấy trong một hệ thống phân tán
Metadata mô tả dữ liệu : tác giả, quyền, ngày tháng dữ liệu được tạo.
Một hệ thống Object Storage thường cung cấp HTTP APIs để tương tác với dữ liệu
Một ví dụ đơn giản triển khai hệ thống lưu trữ và chia sẻ ảnh từ người dùng
Hệ thống gồm 2 phần lớn
- Một database dạng Key-Value NoSQL để lưu các thông tin người dùng (Metadata) liên quan và map trực tiếp đến một file ảnh
- Một hệ thống lưu trữ phân tán kiểu Object Storage để lưu các file ảnh
Một số công cụ hỗ trợ lưu Object Storage
Open Source
MinIO
https://stackjava.com/minio/minio-la-gi-huong-dan-cai-dat-minio-tren-windows.html
https://github.com/minio/minio-dotnet
SeaweedFS
https://github.com/chrislusf/seaweedfs
HDFS
Ceph
Gluster
https://github.com/gluster/glusterfs
LeoFS
https://github.com/leo-project/leofs
Cloud
Amazon S3
Azure Storage
Google Cloud Storage
Tiếp tục cập nhật ...