9 điểm bởi GN⁺ 2024-02-03 | 1 bình luận | Chia sẻ qua WhatsApp
  • Hệ thống tệp phân tán đơn giản và có khả năng mở rộng cao
  • Mục tiêu là lưu trữ hàng tỷ tệp và phục vụ chúng với tốc độ cao
  • Được hiện thực dựa trên ý tưởng từ thiết kế Haystack của Facebook và f4: hệ thống lưu trữ Warm BLOB của Facebook
  • Kho lưu trữ blob có tra cứu đĩa O(1) và khả năng phân tầng đám mây
  • Filer hỗ trợ thư mục và thuộc tính POSIX, đồng thời bao gồm cloud drive, sao chép active-active giữa các DC, Kubernetes, mount POSIX FUSE, S3 API, S3 gateway, Hadoop, WebDAV, mã hóa, erasure coding cùng nhiều tính năng khác

Tính năng

  • Cung cấp nhiều tùy chọn sao chép như mức độ sao chép, nhận biết rack và trung tâm dữ liệu.
  • Tự động chuyển đổi dự phòng cho máy chủ master, không có điểm lỗi đơn lẻ.
  • Hỗ trợ nén Gzip tự động theo loại MIME của tệp.
  • Tự động nén để thu hồi dung lượng đĩa sau khi xóa hoặc cập nhật dữ liệu.
  • Có thể tăng tổng dung lượng lưu trữ bằng cách bổ sung máy chủ.
  • Không tái cân bằng dữ liệu khi thêm/xóa máy chủ, chỉ được kích hoạt bằng lệnh quản trị.
  • Hỗ trợ thay đổi kích thước ảnh, ETag, Accept-Range, Last-Modified, v.v.
  • Hỗ trợ tinh chỉnh chế độ in-memory/leveldb/readonly để cân bằng bộ nhớ và hiệu năng.
  • Cung cấp nhiều tầng lưu trữ có thể tùy biến và tích hợp đám mây minh bạch.
  • Erasure coding 10.4 nhận biết rack cho warm storage giúp giảm chi phí lưu trữ và tăng tính sẵn sàng.

Tính năng của Filer

  • Máy chủ Filer phục vụ thư mục và tệp “thông thường” qua HTTP.
  • Tự động hết hạn metadata tệp và dữ liệu tệp thực tế bằng TTL của tệp.
  • Có thể đọc và ghi tệp trực tiếp qua filer được mount bằng FUSE.
  • Có thể đạt HA cho kho lưu trữ metadata bằng sao chép kho lưu trữ Filer.
  • Có thể truy cập tệp bằng các công cụ S3 thông qua API tương thích Amazon S3.
  • Có thể truy cập tệp từ Hadoop/Spark/Flink thông qua hệ thống tệp tương thích Hadoop.
  • Lưu trữ dữ liệu an toàn bằng kho mã hóa AES256-GCM.
  • Hỗ trợ lưu trữ các tệp dung lượng lớn lên tới hàng chục TB.
  • Cloud drive cho phép mount lưu trữ đám mây vào cụm cục bộ để hỗ trợ đọc và ghi nhanh.

Kubernetes

  • Hỗ trợ trình điều khiển Kubernetes CSI và SeaweedFS operator.

Ví dụ sử dụng kho lưu trữ object của Seaweed

  • Hướng dẫn cổng mặc định và cách chạy node master cùng node volume.
  • Cung cấp ví dụ về cách ghi, đọc và xóa tệp.
  • Giải thích sao chép nhận biết rack và trung tâm dữ liệu, cũng như cách gán khóa tệp vào trung tâm dữ liệu cụ thể.

Kiến trúc

  • SeaweedFS quản lý các volume dữ liệu mà không chia tệp thành các chunk.
  • Máy chủ master chỉ quản lý metadata về volume, còn metadata tệp thực tế được quản lý trên máy chủ volume.
  • Cung cấp mô tả chi tiết về quy trình ghi và đọc tệp.

So sánh với các hệ thống tệp khác

  • Giải thích ưu điểm của SeaweedFS khi so sánh với HDFS, GlusterFS, Ceph, MooseFS, MinIO, v.v.
  • SeaweedFS được tối ưu cho tệp nhỏ và cung cấp truy cập tệp nhanh với thao tác đọc đĩa O(1).

Kế hoạch phát triển

  • Dự kiến cung cấp thêm công cụ và tài liệu cho việc quản trị và mở rộng hệ thống.
  • Hỗ trợ đọc và ghi dữ liệu luồng.
  • Hỗ trợ dữ liệu có cấu trúc.

Hướng dẫn cài đặt

  • Cung cấp hướng dẫn cài đặt cho người dùng chưa quen với Golang.

Chủ đề liên quan đến đĩa

  • Giải thích về hiệu năng của ổ cứng HDD và SSD.
  • SeaweedFS có cấu trúc thân thiện với SSD.

Benchmark

  • Cung cấp kết quả benchmark đơn máy mang tính cá nhân, không theo phương pháp khoa học nghiêm ngặt.
  • Hướng dẫn cách chạy benchmark hỗn hợp bằng WARP.

Giấy phép

  • Được cấp phép theo Apache License, Version 2.0.

Ý kiến của GN⁺:

  • SeaweedFS là một hệ thống tệp phân tán hướng tới việc quản lý hiệu quả các tệp nhỏ và phân phối tệp nhanh. Điều này khiến nó rất phù hợp với các dịch vụ web hiện đại xử lý dữ liệu quy mô lớn.
  • Hệ thống mang lại tính linh hoạt nhờ khả năng tương thích với nhiều loại kho lưu trữ và cơ sở dữ liệu, đồng thời cho phép quản lý dữ liệu tiết kiệm chi phí thông qua các tính năng tích hợp đám mây.
  • Là một dự án mã nguồn mở, SeaweedFS nhận được sự hỗ trợ từ cộng đồng và liên tục phát triển, nên cũng là một dự án thú vị ở góc độ kỹ thuật.

1 bình luận

 
GN⁺ 2024-02-03
Ý kiến Hacker News
  • Nhắc đến JuiceFS

    • Trong phần bình luận, nhiều lựa chọn thay thế như Minio, Ceph và GarageFS được nhắc đến.
    • Một lựa chọn khác vẫn chưa được nhắc tới là JuiceFS.
    • Có tài liệu so sánh giữa JuiceFS và SeaweedFS.
  • Trải nghiệm sử dụng SeaweedFS

    • SeaweedFS đã được dùng để lưu trữ hàng tỷ tài liệu XML cỡ trung, hình thu nhỏ và tệp PDF.
    • Nó lấp khoảng trống giữa cơ sở dữ liệu và hệ thống tệp.
    • Tài liệu và công cụ vận hành ban đầu hơi khó làm quen, nhưng nhiều tính năng và hoạt động tốt.
    • Đã có thể khôi phục dữ liệu sau sự cố mất điện, lỗi phần cứng, v.v.
    • Khoảng trống của các blob store S3 API mã nguồn mở được xem là khá đáng ngạc nhiên.
  • Trải nghiệm tiêu cực với SeaweedFS

    • Có người đã quyết định không dùng SeaweedFS sau khi Postgres không thể khởi tạo trên volume POSIX FS được mount qua CSI driver của SeaweedFS.
    • Họ cần một hệ thống SDS cung cấp đầy đủ POSIX FS và volume S3, là FOSS, đồng thời có thể quản trị, giám sát, khôi phục thảm họa, v.v. một cách hiệu quả.
    • Các hệ thống như Ceph bị loại trừ. GarageFS chỉ hỗ trợ S3.
  • Ý kiến của nhà phát triển SeaweedFS

    • SeaweedFS được xây dựng trên blob storage dựa trên bài báo Haystack của Facebook.
    • Dù chưa phải mọi tính năng đều được phát triển hoàn chỉnh, nó vẫn mang lại một cách lập trình mới phù hợp với thời đại đám mây.
    • Khi cần không gian lưu trữ, bạn cấp phát không gian và nhận file ID để dùng như con trỏ trỏ tới một khối bộ nhớ.
  • Trường hợp sử dụng SeaweedFS

    • SeaweedFS được dùng để lưu trữ hơn 50TB bản ghi trận đấu nhiều người chơi (replay).
    • Tính năng hết hạn tích hợp sẵn được tận dụng, và không gặp vấn đề gì khi sử dụng, thêm tính năng mới hay migration.
  • Ý kiến về SeaweedFS và Min.io

    • Khi hỏi về trải nghiệm với các giải pháp tự host kiểu S3, người dùng SeaweedFS lại khuyên dùng Min.io, còn người dùng Min.io lại khuyên dùng SeaweedFS.
  • Người dùng SeaweedFS lâu năm

    • Có người đang lưu khoảng 250.000 object trong SeaweedFS, phần lớn trong số đó là cold storage phía sau Cloudflare.
    • Họ đã dùng SeaweedFS từ lâu vì bị thu hút bởi Haystack của Facebook, và thấy nó rất ổn định cũng như hiệu quả.
  • Lịch sử công nghệ lưu trữ của Microsoft

    • Microsoft trước đây đã nhiều lần cố gắng lấp khoảng trống giữa tệp và cơ sở dữ liệu, nhưng phần lớn đều thất bại.
    • Bình luận cũng nhắc đến sự quan tâm của Bill Gates với loại công nghệ này và sự thất vọng của ông.
  • Những điểm cần cân nhắc khi chọn lưu trữ phân tán

    • Cần cân nhắc liệu bạn có thực sự cần lưu trữ phân tán hay có thể tự sharding hay không.
    • Cần xác định liệu blob có cần chỉnh sửa hay chỉ cần đọc/sửa/thay thế là đủ.
    • Cần cân nhắc tỷ lệ giữa đọc và ghi.
    • Cần cân nhắc tần suất thay đổi metadata.
    • Cần cân nhắc cách quản lý việc ghi đồng thời lên cùng một object.
    • Cần chọn điều gì quan trọng hơn giữa tính sẵn sàng, tính nhất quán và tốc độ.
    • Cần cân nhắc cách khôi phục sau các lỗi đồng thời trong hệ thống lưu trữ phân tán.
    • Cần cân nhắc phương thức kiểm soát truy cập.
  • So sánh hiệu năng giữa SeaweedFS và Min.io

    • Để lưu trữ giá rẻ hơn 100TB dữ liệu âm thanh trên HDD, có người đã thử nghiệm cả SeaweedFS và Min.io.
    • SeaweedFS cho hiệu năng tốt hơn trong trường hợp sử dụng đó.