4 điểm bởi GN⁺ 2025-12-20 | 1 bình luận | Chia sẻ qua WhatsApp
  • Garage là một kho lưu trữ đối tượng tương thích S3 có thể hoạt động ổn định ngay cả trong môi trường ngoài trung tâm dữ liệu
  • Được cung cấp dưới dạng binary độc lập không phụ thuộc nên có thể dễ dàng chạy trên mọi bản phân phối Linux
  • Dữ liệu được sao chép trên 3 zone để đảm bảo mức độ dư thừa và khả năng chịu lỗi cao
  • Triển khai Amazon S3 API, tương thích với nhiều ứng dụng như Nextcloud, Matrix, Mastodon
  • Yêu cầu phần cứng thấp và thiết kế dựa trên nghiên cứu công khai giúp mở rộng khả năng tiếp cận các hệ thống phân tán

Tổng quan

  • Garage là kho lưu trữ đối tượng S3 có thể vận hành ổn định cả bên ngoài trung tâm dữ liệu, có thể chạy trên nhiều trung tâm dữ liệu thông qua Internet
  • Có thể dùng cho nhiều mục đích như lưu trữ website, lưu trữ media, đích sao lưu

Mục tiêu thiết kế

  • Hệ thống được phát triển với trọng tâm là tính gọn nhẹ và hiệu quả
    • Được phân phối dưới dạng tệp thực thi độc lập không phụ thuộc, hoạt động trên mọi bản phân phối Linux
    • Được thiết kế thân thiện với quản trị viên hệ thống để triển khai nhanh và vận hành an toàn
  • Được thiết kế để có thể triển khai trong mọi môi trường, nên có thể vận hành giữa nhiều trung tâm dữ liệu trên Internet ngay cả khi không có mạng backbone chuyên dụng
  • Đảm bảo khả năng phục hồi cao để chịu được sự cố mạng, độ trễ, lỗi đĩa, sai sót của người vận hành

Yêu cầu tối thiểu

  • CPU: x86_64, ARMv7 hoặc ARMv8 trong vòng 10 năm gần đây
  • RAM: 1GB
  • Dung lượng đĩa: tối thiểu 16GB
  • Mạng: độ trễ dưới 200ms, băng thông từ 50Mbps trở lên
  • Hỗ trợ phần cứng không đồng nhất, cho phép xây dựng cụm bằng thiết bị đã qua sử dụng

Khả năng phục hồi dữ liệu và tính tương thích

  • Mỗi mảnh dữ liệu (chunk) được lưu bằng cách sao chép trên 3 zone
  • Triển khai Amazon S3 API, tương thích ngay với các ứng dụng hiện có
    • Ví dụ được hỗ trợ: Nextcloud, Matrix, Cyberduck, Mastodon, Rclone, PeerTube

Nền tảng kỹ thuật

  • Garage được thiết kế dựa trên các thành tựu nghiên cứu hệ thống phân tán hiện đại
    • Kho lưu trữ key-value Dynamo của Amazon
    • Conflict-Free Replicated Data Types (CRDTs)
    • Bộ cân bằng tải mạng phần mềm Maglev

Tài trợ và hỗ trợ vốn

  • Dự án Garage đã nhiều lần nhận được nguồn tài trợ công
    • 2021–2022: NGI POINTER – hỗ trợ 3 nhân sự toàn thời gian trong 1 năm
    • 2023–2024: NLnet / NGI0 Entrust – hỗ trợ 1 nhân sự toàn thời gian trong 1 năm
    • 2025: NLnet / NGI0 Commons Fund – hỗ trợ tương đương 1,5 nhân sự toàn thời gian trong 1 năm
  • Nhận hỗ trợ tài chính từ chương trình nghiên cứu và đổi mới sáng tạo Horizon 2021 của Liên minh châu Âu và chương trình Next Generation Internet
  • Có thể tham gia thông qua tài trợ bổ sung hoặc hợp đồng hỗ trợ (liên hệ: garagehq@deuxfleurs.fr)

1 bình luận

 
GN⁺ 2025-12-20
Ý kiến trên Hacker News
  • Gần đây đã kiểm chứng Garage khá rộng rãi trong các bài test nội bộ
    Việc triển khai đơn giản hơn một chút so với MinIO, nhưng kém hơn về hiệu năng tốc độ cao
    Trong môi trường NIC 25G, MinIO đạt 20~25Gbps nhưng Garage bị giới hạn ở khoảng 5Gbps
    Có cảm giác Garage không nhắm đến các trường hợp sử dụng hiệu năng cao kiểu này
    Lần tới dự định sẽ xem xét thêm cả RustFSCeph/Rook
    Có vẻ cuối cùng vẫn phải tìm phương án thay thế khác vì hướng đi gần đây của MinIO

    • Garage về mặt chính thức không nhắm đến hiệu năng tối đa
      Triết lý của họ là: “Hiệu năng cao sẽ ràng buộc thiết kế và hạ tầng, nên chúng tôi theo đuổi hiệu năng thông qua chủ nghĩa tối giản
      (tài liệu Design Goals)
      Tuy vậy, điểm nghẽn hiệu năng nằm ở đâu vẫn là điều thú vị. Có thể mức độ xử lý song song ít hơn MinIO
    • Nếu chỉ cần S3 thì không khuyến nghị Rook
      Độ phức tạp rất cao, nên nếu không thực sự hiểu nó thì sẽ khó khôi phục khi cluster gặp sự cố
    • Có đề xuất thêm SeaweedFS vào danh sách thử nghiệm
  • Có vẻ là một dự án thú vị cho mục đích phát triển cục bộ
    Nhưng khi xem hướng dẫn cấu hình production thì hơi thấy ngại
    Garage khuyến nghị dùng hệ thống tệp như BTRFS hoặc ZFS vì khi lưu metadata, nó không tự thực hiện checksum và kiểm tra toàn vẹn
    Engine LMDB mặc định có nguy cơ hỏng dữ liệu khi tắt bất thường, nên cần chụp snapshot định kỳ
    Cũng có thể dùng SQLite, nhưng khá bất ngờ khi DB mặc định lại dễ bị ảnh hưởng bởi sự cố mất điện

    • Nếu ai biết một embedded KV store có hỗ trợ transaction, tốc độ nhanh, có Rust binding, đồng thời có sẵn checksum và kiểm tra toàn vẹn mặc định thì hãy cho biết
      Họ nói sẽ tích hợp ngay vào Garage
    • Trước đây từng dùng MinIO cho phát triển cục bộ, nhưng phiên bản đó giờ không còn được bảo trì nữa
      Yêu cầu tối thiểu RAM 1GB của Garage có phần hơi nặng
    • Vấn đề hỏng dữ liệu khi mất điện rất khó giải quyết hoàn toàn bằng phần mềm
      Khuyến nghị dùng ổ NVMe có PLP (bảo vệ mất điện) hoặc UPS
  • Đang thấy việc chấp nhận Garage tăng mạnh sau vụ MinIO
    Bài viết so sánh benchmark của Repoflow khá hữu ích
    RustFS cũng thú vị, nhưng đã loại bỏ vì lý do phi kỹ thuật
    Nếu có mẹo nào khi thay thế MinIO thì rất muốn nghe

    • Chưa trực tiếp dùng, nhưng Versity S3 Gateway trông cũng ổn
      Xem liên kết GitHub
      Cũng tò mò muốn biết nó so với Ceph S3 Gateway thế nào
    • Có người hỏi vì sao lại loại RustFS
    • Theo các cuộc thảo luận trước đây và kinh nghiệm công việc, Garage có vẻ là một lựa chọn thay thế ổn định
    • Trong benchmark, SeaweedFS cũng cho thấy hiệu năng tốt
  • Trang chính thức của Deuxfleurs là website có thiết kế đẹp nhất mà tôi từng thấy

    • Về mặt nghệ thuật thì rất tuyệt, nhưng khả năng đọc và accessibility lại hơi kém
  • Đang dùng Garage cho phát triển cục bộ và kiểm thử
    Kết hợp với s5cmd, có thể seed 15GB và hơn 60 nghìn object trong vòng chưa tới 60 giây
    Việc sao chép môi trường staging gồm API, DB, cache và container object bằng Docker hoàn tất trong chưa tới 2 phút
    Cấu hình rất đơn giản và chạy ổn định
    Trước đây từng dùng LocalStack S3, nhưng vấn đề là thiếu tính bền vững dữ liệu, còn MinIO OSS thì đã ngừng được bảo trì
    Cũng đã xem SeaweedFS và RustFS, nhưng Garage là phương án dễ dùng nhất

  • Garage rất ấn tượng trong test code và benchmark
    Việc triển khai đơn giản nhờ chỉ có một file thực thi, tài liệu cũng rất tốt
    Nhưng việc thiếu tính năng object tagging là một thiếu sót lớn
    Trong thế giới cloud API, tag là tính năng cơ bản, nên mong điểm này sẽ được cải thiện

    • Đội ngũ phát triển đã phản hồi rằng họ rất cảm kích trước góp ý này
  • Rất thích Garage
    Nó không chỉ là một lựa chọn thay thế S3 đơn thuần, mà còn hữu ích trong kiến trúc hyper-converged
    Cách nó ưu tiên đọc dữ liệu từ máy cục bộ và chỉ dùng mạng khi cần là một cấu trúc rất hay

    • Có người hỏi đang dùng với cấu hình nào
  • Việc không có erasure coding là một thiệt thòi lớn về khả năng chịu lỗi và hiệu quả

    • Đã từng muốn dùng nó với thư viện băng LTO, nhưng việc chỉ cung cấp khả năng chịu lỗi dựa trên sao chép khiến khá lo ngại
      Mối bận tâm lớn là nó sẽ phục hồi thế nào khi phần cứng gặp sự cố
  • Garage tỏ ra hữu ích trong các script data engineering
    Vì đa số công cụ đều hỗ trợ tích hợp S3, nên có thể đổ dữ liệu vào Garage rồi dễ dàng mở rộng lên cloud sau này

  • Gần đây đã thử Garage
    Sau khi upload khoảng 300 tài liệu (1GB) rồi cố xóa, dịch vụ S3 đã crash trong container và phải khởi động lại
    Đây là một dự án rất hay, nhưng theo trải nghiệm của tôi thì độ tin cậy vẫn còn thiếu