Sự khác biệt giữa Object Storage và Block storage?

Sự khác biệt giữa Object Storage và Block storage?

March 18, 2019 0 By harvey

Block storage là gì?
Block storage services tương đối đơn giản và quen thuộc. Dịch vụ này cung cấp một thiết bị block storage – giống như một hard drive – qua network. Các nhà cung cấp đám mây thường có các sản phẩm có thể cung cấp một thiết bị block storage có kích thước bất kỳ và đính kèm nó vào máy ảo của bạn.

Do đó, bạn sẽ sử dụng nó như một chiếc đĩa bình thường. Bạn có thể định dạng nó với một hệ thống tập tin và lưu trữ các tập tin trên đó, kết hợp nhiều thiết bị vào một mảng RAID, hoặc cấu hình một cơ sở dữ liệu để ghi trực tiếp vào block device. Ngoài ra, các thiết bị network-attached block storage thường có một số ưu điểm độc đáo so với các ổ đĩa cứng thông thường:

  • Bạn có thể dễ dàng live snapshots toàn bộ thiết bị cho mục đích sao lưu.
  • Các thiết bị Block storage có thể được thay đổi kích thước theo nhu cầu ngày càng tăng.
  • Bạn có thể dễ dàng tháo và di chuyển các thiết bị block storage giữa các máy.
  • Đây là một thiết lập rất linh hoạt và hữu ích cho hầu hết mọi loại ứng dụng. Sau đây là một số ưu điểm và nhược điểm của công nghệ này.

Ưu điểm của Block storage là:

  • Block storage là một mô hình quen thuộc, người dùng và phần mềm đều có thể hiểu được, nó hỗ trợ hầu hết các tệp và hệ thống tệp phổ biến.
  • Block devices được hỗ trợ khá tốt. Mỗi ngôn ngữ lập trình có thể dễ dàng đọc và ghi tệp.
  • Filesystem permissions và access controls rất quen thuộc và dễ hiểu.
  • Thiết bị Block storage cung cấp độ trễ IO thấp, vì vậy chúng phù hợp để sử dụng cho cơ sở dữ liệu.

Hạn chế của Block storage là:

  • Storage được gắn với một máy chủ tại một thời điểm.
  • Blocks và filesystems có siêu dữ liệu giới hạn về các khối thông tin mà chúng đang lưu trữ (ngày tạo, chủ sở hữu, kích thước). Bất kỳ thông tin bổ sung nào bạn đang lưu trữ sẽ phải được xử lý ở cấp ứng dụng và cơ sở dữ liệu, đó là sự phức tạp sẽ gây lo lắng cho một nhà phát triển.
  • Bạn cần phải trả phí cho tất cả không gian block storage bạn đã phân bổ, ngay cả khi bạn không sử dụng nó.
  • Bạn chỉ có thể truy cập block storage thông qua một máy chủ đang chạy.
  • Block storage cần nhiều hands-on work và setup hơn so với object storage (filesystem choices, permissions, versioning, backups,…).
  1. Object Storage là gì?
    Trong thế giới điện toán đám mây hiện đại, object storage là lưu trữ và truy xuất các khối dữ liệu và siêu dữ liệu không có cấu trúc bằng cách sử dụng API HTTP. Thay vì chia nhỏ các tệp thành các khối để lưu trữ nó trên đĩa bằng cách sử dụng hệ thống tệp, chúng ta xử lý toàn bộ các đối tượng được lưu trữ trên mạng. Các đối tượng này có thể là tệp hình ảnh, nhật ký, tệp HTML hoặc bất kỳ byte đối tượng độc lập nào (self-contained blob of bytes). Chúng không có cấu trúc bởi vì chúng không cần phải tuân theo bất kỳ lược đồ hoặc định dạng cụ thể nào.

Object storage đã góp phần đơn giản hóa trải nghiệm của nhà phát triển. Bởi vì API bao gồm các yêu cầu HTTP tiêu chuẩn, các thư viện được phát triển nhanh chóng cho hầu hết các ngôn ngữ lập trình. Việc lưu một blob dữ liệu trở nên dễ dàng như một HTTP PUT request đến object store. Việc truy xuất tệp và siêu dữ liệu là một GET request bình thường. Hơn nữa, hầu hết các dịch vụ object storage đều có thể phân phối tệp công khai cho người dùng của bạn, không cần phải duy trì máy chủ web để lưu trữ nội dung tĩnh.

Trên hết, object storage services chỉ tính phí cho dung lượng lưu trữ bạn sử dụng (một số nhà cung cấp cũng tính phí cho mỗi yêu cầu HTTP và transfer bandwidth). Đây là lợi ích lớn cho các nhà phát triển nhỏ, họ có thể được sử dụng dịch vụ lưu trữ có tầm đẳng cấp thế giới với chi phí phù hợp với quy mô và nhu cầu sử dụng.

Object storage không phải là giải pháp phù hợp cho mọi tình huống.

Ưu điểm của object storage:

  • Một API HTTP đơn giản với clients, có sẵn cho tất cả các hệ điều hành và ngôn ngữ lập trình chính.
  • Bạn chỉ mất chi phí cho những gì bạn sử dụng.
  • Việc phân phối công khai các tài nguyên tĩnh được tích hợp sẵn có nghĩa là bạn sẽ cần ít đi một server để bạn có thể tự chạy hệ thống của mình.
  • Một số object stores cung cấp CDN tích hợp, giúp trang tải trang nhanh hơn, trải ngiệm cho người dùng của bạn tốt hơn.
  • Phiên bản tùy chọn (Optional versioning) có nghĩa là bạn có thể truy xuất phiên bản cũ của các đối tượng để khôi phục từ việc ghi đè dữ liệu ngẫu nhiên.
  • Các dịch vụ Object storage có thể dễ dàng mở rộng, phục các nhu cầu từ nhỏ đến lớn mà không cần phải khởi chạy thêm tài nguyên hoặc rearchitect để xử lý tải.
  • Sử dụng dịch vụ object storage có nghĩa là bạn không phải duy trì các ổ đĩa cứng và RAID arrays, vì chúng đã được nhà cung cấp dịch vụ xử lý.
  • Việc có thể lưu trữ các khối siêu dữ liệu cùng với blob dữ liệu giúp đơn giản hóa kiến trúc ứng dụng của bạn.

Nhược điểm của object storage:

  • Bạn không thể sử dụng object storage services để sao lưu cơ sở dữ liệu truyền thống, do các dịch vụ này thường có độ trễ cao.
  • Object storage không cho phép bạn thay đổi một phần của blob dữ liệu, bạn phải đọc và viết toàn bộ đối tượng cùng một lúc. Điều này có một số tác động đến hiệu suất. Ví dụ, trên một hệ thống tập tin, bạn có thể dễ dàng nối thêm một dòng vào cuối một tệp nhật ký. Trên một hệ thống object storage, bạn cần truy xuất đối tượng, thêm dòng mới và viết lại toàn bộ đối tượng. Điều này làm cho object storage ít phù hợp để lưu trữ các dữ liệu có tính thay đổi rất thường xuyên.
  • Hệ điều hành không thể dễ dàng gắn kết một object store giống như một disk bình thường.
  • Có một số clients và adapters trợ giúp với điều này, nhưng nhìn chung, việc sử dụng và duyệt một object store không đơn giản như lật qua các thư mục trong một file browser.

Vì các thuộc tính này, object storage rất hữu ích cho việc lưu trữ các tài nguyên tĩnh, lưu các nội dung do người dùng tạo như hình ảnh và phim, lưu trữ các tệp sao lưu và lưu trữ các bản ghi.