Regatta Storage (YC F24): Biến S3 thành hệ thống tệp đám mây POSIX giống cục bộ
(news.ycombinator.com)- Regatta Storage là dịch vụ cho phép dùng storage tương thích S3 như một hệ thống tệp đám mây tự động đồng bộ, nhằm xử lý dữ liệu quy mô lớn mà không cần mở rộng ổ đĩa cục bộ
- Dịch vụ này cho phép các tác vụ Spark, PyTorch, pandas truy cập trực tiếp vào dataset trên S3, nhằm giảm thời gian chờ tải xuống và gánh nặng chuẩn bị ổ đĩa cục bộ dung lượng lớn
- Xuất phát điểm là kinh nghiệm vận hành storage tại Amazon EFS và Netflix; dù EFS có ưu điểm về sự đơn giản và khả năng mở rộng, khi chuyển từ ổ đĩa cục bộ sang NFS vẫn còn vấn đề hiệu năng
- Khách hàng mount hệ thống tệp Regatta bằng NFSv3, còn các instance caching của Regatta kết nối với S3 bucket của khách hàng để cung cấp hiệu năng dưới mili giây cho các thao tác đọc/ghi đã được cache
- Hiện được dùng cho notebook Jupyter serverless, lớp caching phân tán trên S3, và thay thế boot volume Ceph được thin-provision; trong tương lai cũng đang phát triển giao thức tệp tùy chỉnh
Cung cấp trải nghiệm hệ thống tệp giống cục bộ trên S3
- Regatta Storage là hệ thống tệp đám mây tính phí theo mức sử dụng và tự động đồng bộ với storage tương thích S3
- Mục tiêu là tạo luồng làm việc cho phép truy cập trực tiếp dataset quy mô lớn trong Spark, PyTorch, pandas mà không cần tải xuống ổ đĩa cục bộ
- Video tổng quan về dịch vụ có trên YouTube, và có thể dùng thử miễn phí sau khi đăng ký tài khoản
- Lý do không cung cấp trải nghiệm dùng thử không cần tài khoản là vì họ cho rằng việc người dùng Hacker News cùng chia sẻ một hệ thống tệp và S3 bucket là không phù hợp
Bối cảnh thiết kế từ kinh nghiệm với EFS
- Nhà sáng lập tạo ra Regatta dựa trên 8 năm làm việc với Amazon Elastic File System (EFS) và kinh nghiệm xây dựng, vận hành cloud storage quy mô lớn tại Netflix và các nơi khác
- EFS có ưu điểm là đơn giản và có khả năng mở rộng, không cần ước tính trước dung lượng cần thiết như S3, nhưng tại Netflix lại không được dùng nhiều như kỳ vọng
- Nhiều ứng dụng cần hệ thống tệp POSIX, và nhu cầu storage có thể không rõ ràng hoặc tăng đột biến
- Cũng có nhiều trường hợp cần storage tồn tại lâu hơn vòng đời của instance hoặc container
- Ổ đĩa cục bộ thường bị cấp phát dư theo mức sử dụng tiềm năng, khiến cả không gian storage trống cũng phát sinh chi phí
- EFS không phù hợp với mọi workload
- Khi chuyển từ ổ đĩa cục bộ sang NFS, đôi khi phát sinh vấn đề hiệu năng
- Các ứng dụng từng dùng ổ đĩa cục bộ như bộ nhớ tạm phải tự dọn dẹp thủ công dữ liệu còn lại trong storage bền vững
Cách Regatta hoạt động và mô hình cache
- Regatta được thiết kế như một hệ thống tệp tính phí theo mức sử dụng, tự động mở rộng cùng ứng dụng
- Tự động đồng bộ với S3 theo định dạng tệp native, nên có thể kết nối với các dataset hiện có
- Dữ liệu tệp mới ghi gần đây cũng có thể được dùng trực tiếp từ S3
- Dữ liệu không còn được sử dụng tích cực sẽ bị loại khỏi cache của Regatta, khi đó chỉ còn phải chịu chi phí storage S3 backend
- Hiện khách hàng mount hệ thống tệp Regatta bằng NFSv3 để kết nối tới fleet các instance caching của Regatta
- Instance Regatta kết nối ở backend tới S3 bucket của khách hàng
- Cung cấp hiệu năng dưới mili giây cho các thao tác đọc và ghi đã được cache
- Thông qua cache bền vững, cung cấp góc nhìn hệ thống tệp nhất quán mạnh cho tất cả file client được kết nối
- Xử lý nhanh và bền vững các thao tác khó như đổi tên thư mục, rồi lan truyền bất đồng bộ sang S3 bucket
Các trường hợp sử dụng ban đầu và bước tiếp theo
- Những người dùng ban đầu đang dùng Regatta cho server notebook Jupyter serverless dành cho nhà nghiên cứu AI, lớp caching phân tán độ trễ thấp trên S3, và thay thế boot volume Ceph được thin-provision
- Giao thức tệp tùy chỉnh đang được phát triển hướng tới hiệu năng gần như cục bộ cho workload nhiều tệp nhỏ, và hiệu năng scale-out giống Lustre cho các tác vụ dữ liệu phân tán
1 bình luận
Ý kiến Hacker News
Điểm khác biệt giữa Rclone và Regatta Storage là khi thực hiện các thao tác biến đổi hệ thống tệp, Regatta cung cấp tính nhất quán mạnh nhờ sử dụng lớp bộ nhớ đệm tốc độ cao. Rclone không có lớp đảm bảo tính nhất quán giữa các client chạy song song
Đây là một trong những sản phẩm thú vị nhất từng ra từ YC, và có nhiều câu hỏi về cách nó hoạt động
Đang host DuckDB bằng GCP Filestore và yêu cầu thông tin về giá và hiệu năng của Regatta
Quan tâm dùng làm đĩa sao lưu cho SQLite/DuckDB/parquet, đồng thời muốn các lượt đọc được cache trên bộ nhớ NVMe cục bộ của instance
Cho rằng việc dùng NFS làm giao thức là một ý tưởng hay
Có lo ngại rằng AWS có thể sao chép sản phẩm này và cung cấp với mức giá thấp hơn
Từng có trải nghiệm demo thành công trước CEO của Adobe vào năm 2008, trong đó một bức ảnh chụp bằng iPhone tự động xuất hiện thành tệp trên máy Mac
Muốn biết liệu có thể xây dựng hệ thống lưu trữ SQL ACID thời gian thực bằng Lambda + SQLite + Regatta hay không
Chưa rõ cách xử lý xung đột khi cập nhật tệp
Có những lựa chọn thay thế đáng chú ý như s3fs, rclone, goofys, v.v.