AWS S3 Đạt Được 1 Petabyte Mỗi Giây Sử Dụng HDD Trong Khi Cộng Đồng Tranh Luận Về Các Giải Pháp Mã Nguồn Mở

Nhóm Cộng đồng BigGo
AWS S3 Đạt Được 1 Petabyte Mỗi Giây Sử Dụng HDD Trong Khi Cộng Đồng Tranh Luận Về Các Giải Pháp Mã Nguồn Mở

Dịch vụ lưu trữ S3 của Amazon đã đạt được cột mốc ấn tượng phục vụ 1 petabyte mỗi giây sử dụng ổ cứng truyền thống ( HDDs ), khơi dậy cuộc thảo luận rộng rãi về cách hiệu suất này so sánh với các giải pháp mã nguồn mở và những công nghệ nào làm cho điều này trở thành khả thi.

Quy Mô Đằng Sau Hiệu Suất Của S3

AWS S3 hoạt động ở quy mô thực sự khổng lồ, xử lý hơn 100 triệu yêu cầu mỗi giây vào thời điểm cao điểm trong khi lưu trữ hơn 100 triệu đối tượng. Dịch vụ này đạt được thông lượng đáng kinh ngạc 1,1 petabyte mỗi giây mặc dù chủ yếu dựa vào HDDs , vốn được coi là thiết bị lưu trữ chậm theo truyền thống. Hiệu suất này đến từ kỹ thuật thông minh giúp khắc phục những hạn chế vật lý của đĩa quay thông qua tính song song khổng lồ và kiến trúc phân tán.

Hiểu biết quan trọng là trong khi các HDD riêng lẻ chậm do những ràng buộc cơ học như thời gian tìm kiếm và độ trễ quay, việc phân tán dữ liệu trên hàng nghìn ổ đĩa cho phép hệ thống phục vụ nhiều yêu cầu đồng thời. Mỗi ổ đĩa có thể chỉ xử lý một phần nhỏ của bất kỳ yêu cầu nào, nhưng cùng nhau chúng tạo ra thông lượng tổng hợp khổng lồ.

Chỉ số hiệu suất AWS S3:

  • Thông lượng: 1,1 petabyte mỗi giây
  • Yêu cầu đỉnh: 100 triệu yêu cầu mỗi giây
  • Tổng số đối tượng: Hơn 100 triệu được lưu trữ
  • Khả năng vận hành: 800.000 tổng số thao tác
  • Hiệu suất mỗi nút: Hàng chục nghìn giao dịch mỗi giây

Cộng Đồng Tìm Kiếm Các Giải Pháp Mã Nguồn Mở

Cuộc thảo luận đã thúc đẩy nhiều người trong cộng đồng công nghệ tìm kiếm các giải pháp mã nguồn mở có thể đạt được hiệu suất tương tự với lưu trữ dựa trên HDD . Một số giải pháp thay thế đã xuất hiện từ các cuộc thảo luận cộng đồng, mặc dù mỗi giải pháp đều có những đánh đổi. Ceph với RadosGW dường như là một trong những lựa chọn trưởng thành nhất, với người dùng báo cáo rằng nó thực sự có thể vượt trội hơn S3 cho một số khối lượng công việc liên quan đến truyền tải tệp lớn.

Các lựa chọn khác bao gồm Gluster , tự quảng cáo là có khả năng xử lý lưu trữ phân tán lớn sử dụng phần cứng thông thường, và các dự án mới hơn như Garage áp dụng các phương pháp khác nhau cho cùng một vấn đề. Tuy nhiên, hầu hết các giải pháp này đòi hỏi quy mô đáng kể trên nhiều máy chủ để đạt được hiệu suất tốt nhất, khiến chúng ít phù hợp cho các triển khai nhỏ hơn.

Lưu ý: RadosGW là giao diện gateway tương thích S3 của Ceph cho phép các ứng dụng truy cập lưu trữ Ceph sử dụng các lệnh gọi API S3 tiêu chuẩn.

Các lựa chọn thay thế S3 mã nguồn mở được thảo luận:

  • Ceph + RadosGW: Lựa chọn trưởng thành nhất, có thể vượt trội hơn S3 đối với các tệp lớn
  • Gluster: Được tiếp thị cho phần cứng thông dụng hiện có, phù hợp cho hệ thống tệp chia sẻ
  • Garage: Dự án mới hơn với cách tiếp cận thiết kế khác biệt (không có mã hóa xóa)
  • MinIO: Yêu cầu bộ nhớ flash để đạt hiệu suất tối ưu
  • SeaweedFS: Đã phát triển với hỗ trợ RDMA và mã hóa xóa

Hiểu Biết Về Kiến Trúc Kỹ Thuật

Các thành viên cộng đồng có kiến thức nội bộ đã tiết lộ rằng kiến trúc của S3 bao gồm nhiều lớp dịch vụ web dựa trên Java , với hầu hết các hoạt động được xử lý đồng bộ thay vì thông qua hàng đợi. Hệ thống sử dụng phương pháp đơn giản trong đó các yêu cầu đầu tiên đến các máy chủ front-end, sau đó truy vấn dịch vụ lập chỉ mục để ánh xạ tên đối tượng đến vị trí lưu trữ, trước khi cuối cùng truy xuất dữ liệu thực tế từ các nút lưu trữ.

Đây là ví dụ tốt nhất về số lượng giao dịch mỗi giây mà một ngăn xếp dịch vụ web Java khá tiêu chuẩn có thể xử lý mà tôi đã thấy trong sự nghiệp của mình.

Kiến trúc này có thể xử lý hàng chục nghìn giao dịch mỗi giây trên mỗi nút, chứng minh rằng các hệ thống phân tán được thiết kế tốt có thể đạt được hiệu suất đáng chú ý ngay cả với các ngăn xếp công nghệ thông thường.

Kiến trúc kỹ thuật S3:

  • Ngăn xếp chính: Dịch vụ web dựa trên Java
  • Luồng yêu cầu: Máy chủ front-end → Dịch vụ lập chỉ mục → Các nút lưu trữ
  • Giao tiếp: Giao thức STUMPY tùy chỉnh (có thể đã chuyển sang HTTP)
  • Dịch vụ: Khoảng 12 dịch vụ chính (dữ liệu lịch sử)
  • Loại hoạt động: Chủ yếu là phản hồi API đồng bộ, ít xếp hàng đợi

Thực Tế Cho Các Triển Khai Nhỏ Hơn

Trong khi phương pháp của S3 hoạt động ở quy mô khổng lồ, cuộc thảo luận cộng đồng tiết lộ những thách thức cho các tổ chức nhỏ hơn cố gắng tái tạo hiệu suất tương tự. Nhiều hệ thống lưu trữ mã nguồn mở được tối ưu hóa cho việc mở rộng theo chiều ngang trên nhiều máy chủ thay vì tối đa hóa hiệu suất trên các nút đơn lẻ. Điều này tạo ra khoảng cách cho người dùng muốn có hiệu suất giống S3 nhưng không có cơ sở hạ tầng quy mô trung tâm dữ liệu.

Một số thành viên cộng đồng đang thử nghiệm với các phương pháp lai, kết hợp ZFS cho quản lý lưu trữ cục bộ với các hệ thống như Garage cho khả năng tương thích S3 . Các giải pháp này nhằm tận dụng điểm mạnh của cả hai công nghệ trong khi làm việc trong các ràng buộc của triển khai phần cứng nhỏ hơn.

Cuộc thảo luận làm nổi bật một bài học quan trọng: trong khi các nguyên tắc cơ bản của thành công của S3 có thể được hiểu và tái tạo, việc đạt được kết quả tương tự đòi hỏi quy mô khổng lồ hoặc các giải pháp kỹ thuật sáng tạo được thiết kế riêng cho các trường hợp sử dụng cụ thể.

Tham khảo: How AWS S3 serves 1 petabyte per second on top of slow HDDs