Bài viết nằm trong series “Cloud từ con số 0” giới thiệu tổng quan 3 loại lưu trữ đám mây (cloud storage) với ưu và nhược điểm cụ thể, từ đó, đề xuất tình huống sử dụng phù hợp cho doanh nghiệp.
0. Đơn giản hóa vấn đề
Trước khi đi vào chi tiết, hãy tưởng tượng như thế này: Dữ liệu của bạn sẽ như một loạt tấm ảnh vừa chụp trên chiếc Iphone đời mới nhất, sẽ có các cách tối ưu nào để tổ chức chúng tiện cho việc lưu trữ, mở rộng, sao lưu, truy xuất?
- File Storage
Theo cách đơn giản, ta có thể lưu chúng thành các ngăn kéo (folder) dựa trên đặc điểm để dễ phân loại rồi các ngăn kéo cùng loại được xếp vào ngăn kéo lớn hơn kiểu như thế này: Sunteco/Ảnh team building/anhteam.jpg. Khi số lượng ảnh gia tăng, việc thao tác và tìm kiếm những tấm ảnh trở nên khó khăn, chậm trễ do phải lục tung các ngăn kéo lên, bạn quyết định gom ảnh lại, nhưng khi đó việc để hết ảnh vào một chỗ trở nên quá tải, bạn phải tìm cách tổ chức nào đó cho chúng:
- Block Storage
Các tấm ảnh được chia nhỏ và nhét vào trong các khối (block) riêng biệt. Thứ tập trung bây giờ chỉ là một bảng gồm mỗi ảnh tương ứng với 1 uniq code. Khi bạn muốn tìm một tấm ảnh, hệ thống sẽ tập hợp lại các mảnh của tấm ảnh từ các block cụ thể một cách nhanh chóng. Đây là phương pháp lưu trữ cho tốc độ nhanh nhất nhưng đổi lại một vài nhược điểm mà Object Storage có thể giải quyết.
- Object Storage
Các tấm ảnh sẽ được lưu trong một ngăn kéo duy nhất nhưng dưới dạng bị băm nhỏ, gắn kèm thêm những thông tin (metadata) mà trong đó có vài thông tin để có thể khôi phục lại bằng một chiếc máy X thần kỳ. Những dữ liệu và metadata này thuận tiện trong việc nhân bản và mở rộng (Scale out and Scale up).
Để cụ thể hơn về từng loại, chúng ta sẽ cùng tìm hiểu qua các phần:
1. File Storage – Lưu trữ dạng file
Hãy nghĩ về một tủ chứa đầy tủ hồ sơ. Mọi tài liệu được sắp xếp theo một kiểu phân cấp hợp lý nào đó—theo tủ, theo ngăn kéo, theo thư mục, rồi theo mảnh giấy. Đây là nơi xuất phát của thuật ngữ lưu trữ phân cấp và đây là File Storage.
File Storage là hệ thống lưu trữ dữ liệu lâu đời và phổ biến nhất cho các hệ thống lưu trữ trực tiếp được kết nối với mạng. Bất cứ khi nào bạn truy cập tài liệu được lưu trong các File trên máy tính cá nhân của mình, bạn sử dụng File Storage.
Ưu điểm:
- Thao tác nhanh chóng: Bởi vì tất cả dữ liệu được lưu trữ trong một hệ thống như vậy đã được tổ chức trong cây thư mục phân cấp nên thật dễ dàng để đặt tên, xóa hoặc thao tác với các File.
- Dễ dàng chia sẻ và cộng tác: Các hệ thống File Storage thường bao gồm các tính năng chia sẻ và cộng tác, giúp dễ dàng chia sẻ với người khác và cộng tác trong các dự án.
- Lý tưởng cho dữ liệu có cấu trúc: File Storage được thiết kế cho dữ liệu có cấu trúc, khiến nó trở nên lý tưởng cho các ứng dụng yêu cầu lưu trữ dữ liệu có tổ chức và phân cấp.
Nhược điểm:
- Khả năng mở rộng (scalability) và dự phòng dữ liệu (redundancy) hạn chế: File Storage có thể có khả năng mở rộng kém hơn so với các phương pháp lưu trữ khác, vì việc quản lý số lượng lớn File và thư mục có thể trở nên khó khăn.
- Metadata hạn chế: File Storage thường hạn chế một mức Metadata, khiến việc tìm kiếm và quản lý các tập dữ liệu lớn trở nên khó khăn hơn.
Nhu cầu:
File Storage thường được dùng để lưu trữ và chia sẻ tài liệu giữa nhiều người, phổ biến lâu nay trên thế giới là Google Drive, hay ở Việt Nam là Sun Drive.
2. Block Storage – Lưu trữ dạng khối
Block Storage cắt dữ liệu thành các khối cố định và lưu trữ chúng dưới dạng các phần riêng biệt. Mỗi khối dữ liệu được cấp một mã định danh duy nhất, cho phép hệ thống lưu trữ đặt các phần dữ liệu nhỏ hơn ở bất kỳ đâu thuận tiện nhất. Điều đó có nghĩa là một số dữ liệu có thể được lưu trữ trong môi trường Linux® và một số khác lưu trong thiết bị Windows.
Khối lưu trữ thường được định cấu hình để tách dữ liệu khỏi môi trường của người dùng và trải rộng dữ liệu đó trên nhiều môi trường có thể phục vụ dữ liệu tốt hơn. Và sau đó, khi dữ liệu được yêu cầu, phần mềm lưu trữ cơ bản sẽ tập hợp lại các khối dữ liệu từ các môi trường này và trình bày lại cho người dùng. Nó thường được triển khai trong môi trường mạng vùng lưu trữ (SAN) và phải được liên kết với một máy chủ đang hoạt động.
Ưu điểm:
Bởi vì Block Storage không dựa vào một đường dẫn duy nhất đến dữ liệu — giống như File Storage — quá trình truy xuất diễn ra nhanh hơn. Mỗi khối tồn tại độc lập và có thể được phân vùng để truy cập trong một hệ điều hành khác, cho phép người dùng hoàn toàn tự do điều chỉnh (config) cấu hình dữ liệu của họ. Đó là cách hiệu quả và đáng tin cậy để lưu trữ dữ liệu, đồng thời dễ sử dụng và quản lý.
Nhược điểm:
- Chi phí: Khả năng xử lý Metadata của Block Storage tương đối hạn chế, có nghĩa là nó cần được xử lý ở cấp độ ứng dụng hoặc cơ sở dữ liệu—thêm một vấn đề khác khiến nhà phát triển hoặc quản trị viên hệ thống phải lo lắng.
- Khả năng scale hạn chế
Nhu cầu:
- Block Storage phù hợp với doanh nghiệp thực hiện các giao dịch lớn hay triển khai cơ sở dữ liệu khổng lồ, nghĩa là bạn càng lưu trữ nhiều dữ liệu thì bạn càng có lợi.
- Điểm mạnh nhất của Block Storage là tốc độ xử lý (low latency and high IOPS) tuy khả năng scale hạn chế nên thường được dùng để gắn với từng con máy ảo cụ thể hoặc trong các app, xử lý Database.
3. Object Storage – Lưu trữ dạng Object
Object Storage là một cấu trúc phẳng trong đó các File được chia thành nhiều phần và phân bổ giữa các phần cứng. Trong Object Storage, dữ liệu được chia thành các đơn vị riêng biệt được gọi là Object và được lưu giữ trong một kho duy nhất, thay vì dưới dạng File trong thư mục hoặc dưới dạng khối trên máy chủ.
Metadata rất quan trọng và bao gồm system-defined metadata và user-defined metadata.
- system-defined metadata là metadata hệ thống tự sinh ra để có thể quản lý và khôi phục lại file mỗi khi cần, các thông tin này không thể sửa đổi, ví dụ như thời gian tạo Object, …
- user-defined metadata là dữ liệu user tự gán thêm vào để tiện quản lý, phân loại, ví dụ như nơi quay video, máy quay nào được sử dụng ,..
Ưu điểm:
- Giao diện lập trình ứng dụng HTTP (API) đơn giản: sử dụng bằng tất cả các ngôn ngữ.
- Tiết kiệm chi phí: bạn chỉ trả tiền cho những gì bạn sử dụng. Object Storage có thể mở rộng quy mô dễ dàng, khiến nó trở thành lựa chọn tuyệt vời cho lưu trữ đám mây.
- Phù hợp với dữ liệu tĩnh, đồng thời tính linh hoạt và tính phẳng của nó có nghĩa là nó có thể mở rộng thành lượng dữ liệu cực lớn. Các object có đủ thông tin để một ứng dụng tìm thấy dữ liệu nhanh chóng và lưu trữ dữ liệu phi cấu trúc tốt.
Nhược điểm:
- Object không thể được sửa đổi (immutable) — Việc chỉnh sửa object thực chất là việc xóa object cũ và ghi lại một object mới.
- Object Storage cũng không hoạt động tốt với cơ sở dữ liệu truyền thống, vì ghi Object là một quá trình chậm và viết ứng dụng để sử dụng API Object Storage không đơn giản như sử dụng File Storage.
Nhu cầu:
- Lưu trữ và quản lý lượng lớn dữ liệu phi cấu trúc (unstructured data), chẳng hạn như log files, backups, và tài liệu lưu trữ
- Các Object như hình ảnh hoặc File video là những mục tiêu lý tưởng vì chúng có kích thước lớn hơn và hầu hết thời gian không được mở ra để sửa đổi. Những doanh nghiệp lưu trữ nội dung lớn như Shutterfly và Apple iTunes đã sử dụng Object Storage thành công.
- Chạy big data analytics và machine learning
- Phổ biến lâu nay trên thế giới là AWS S3, hay ở Việt Nam là Sun S3
Mỗi loại lưu trữ đều có những ưu – nhược điểm riêng, doanh nghiệp nên tùy nhu cầu sử dụng mà kết hợp các loại storage để đạt được mục tiêu của mình.
Pingback: Hướng dẫn upload file dung lượng lớn lên Sun S3 bằng API - Sunteco | Beyond The Clouds