[Cloud Storage] Đơn giản hóa 3 loại storage và nhu cầu thực tế
Tiếp tục series Cloud từ con số 0. Ở bài viết này mình sẽ giới thiệu 1 cách đơn giản nhất 3 loại storage chính và phân tích ra nhu cầu thực tế nhé.
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: Đầu tiên, một cách tự nhiên nhất, 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: Ảnh cấp 3/ Ảnh kỷ yếu/ anhTiendepzai.jpg
Một ngày như mọi ngày, việc thao tác và tìm kiếm những tấm ảnh lặp đi lặp lại trở nên khó khăn và 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 1 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 1 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 1 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 1 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 1 chiếc máy X thần kỳ. Những dữ liệu và metadata này rất dễ dàng trong việc nhân bản và mở rộng (Scale out and Scale up).
Để đi vào chính xác và chi tiết hơn, chúng ta sẽ cùng tìm hiểu qua các phần:
1. File Storage
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. Đây là hệ thống lưu trữ dữ liệu lâu đời nhất và được sử dụng rộng rãi nhất cho các hệ thống lưu trữ trực tiếp và được kết nối với mạng và đây là hệ thống mà bạn có thể đã sử dụng trong nhiều thập kỷ. 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ẽ sử dụng File Storage.
Ưu điểm:
- 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ẻ File 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 sản phẩm của bọn mình là Sun Drive
2. Block Storage (Lưu trữ khối)
Lưu trữ khối 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ố dữ liệu có thể được lưu trữ 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ì lưu trữ khối không dựa vào một đường dẫn duy nhất đến dữ liệu - giống như File Storage - nó có thể được truy xuất nhanh chóng. Mỗi khối tồn tại độc lập và có thể được phân vùng để có thể truy cập nó 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à một 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ý. Nó hoạt động tốt với các doanh nghiệp thực hiện các giao dịch lớn và những doanh nghiệp triển khai cơ sở dữ liệu khổng lồ, nghĩa là bạn càng cần lưu trữ nhiều dữ liệu thì bạn càng có lợi với lưu trữ khối.
Nhược điểm:
- Khối lưu trữ có thể tốn kém. Block Storage có khả năng xử lý Metadata 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: Tốc độ. Đ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
Object Storage, còn được gọi là lưu trữ dựa trên Object, 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 lưu trữ duy nhất, thay vì được lưu giữ 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 k 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:
- Object Storage yêu cầu giao diện lập trình ứng dụng HTTP (API) đơn giản, được hầu hết khách hàng sử dụng ở tất cả các ngôn ngữ.
- Object Storage tiết kiệm chi phí: bạn chỉ trả tiền cho những gì bạn sử dụng. Nó 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.
- Đó là một hệ thống lưu trữ rất 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:
- Có những nhược điểm, để chắc chắn. 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 1 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 sản phẩm của bọn mình là Sun S3
🏁 Mỗi loại trong 3 loại storage còn tồn tại và có chỗ đứng của riêng mình, doanh nghiệp của bạn có thể tùy nhu cầu sử dụng mà kết hợp các loại storage với nhau.
Bài viêt có tham khảo thêm từ các nguồn sau:
https://blog.quest.com/what-is-object-storage-and-how-should-it-be-used/
https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html
https://mainline.com/difference-between-file-storage-and-object-storage/
https://www.redhat.com/en/topics/data-storage/file-block-object-storage
https://www.dlt.com/blog/2018/02/13/scaleup-scaleout-architecture-organization-scaling-storage
All Rights Reserved