9 poin oleh GN⁺ 2024-02-03 | 1 komentar | Bagikan ke WhatsApp
  • Sistem file terdistribusi yang sederhana dan sangat skalabel
  • Tujuannya adalah menyimpan miliaran file dan menyajikannya dengan cepat
  • Diimplementasikan dengan mengambil ide dari desain Haystack milik Facebook dan f4: sistem penyimpanan BLOB hangat milik Facebook
  • Penyimpanan blob memiliki pencarian disk O(1) dan kemampuan cloud tiering
  • Filer mendukung direktori dan atribut POSIX, serta mencakup cloud drive, replikasi active-active antar-DC, Kubernetes, mount POSIX FUSE, API S3, gateway S3, Hadoop, WebDAV, enkripsi, erasure coding, dan banyak fitur lainnya

Fitur

  • Menyediakan berbagai opsi replikasi, termasuk tingkat replikasi, kesadaran rack, dan kesadaran data center.
  • Tidak ada single point of failure berkat failover otomatis server master.
  • Mendukung kompresi Gzip otomatis berdasarkan tipe MIME file.
  • Pemadatan otomatis untuk merebut kembali ruang disk setelah data dihapus atau diperbarui.
  • Total kapasitas penyimpanan dapat ditingkatkan dengan menambahkan server.
  • Tidak ada rebalancing data saat server ditambahkan/dihapus; hanya dipicu lewat perintah administrator.
  • Mendukung image resizing, ETag, Accept-Range, Last-Modified, dan lainnya.
  • Mendukung tuning mode in-memory/leveldb/readonly untuk menyeimbangkan memori dan performa.
  • Menyediakan beberapa lapisan penyimpanan yang dapat dikustomisasi serta integrasi cloud yang transparan.
  • Erasure coding 10.4 yang sadar rack untuk warm storage menurunkan biaya penyimpanan dan meningkatkan ketersediaan.

Fitur Filer

  • Server filer menyajikan direktori dan file "normal" melalui HTTP.
  • Metadata file dan data file aktual dapat kedaluwarsa secara otomatis dengan TTL file.
  • File dapat dibaca dan ditulis langsung melalui filer yang di-mount lewat FUSE.
  • HA untuk penyimpanan metadata dimungkinkan melalui replikasi penyimpanan filer.
  • File dapat diakses menggunakan alat S3 melalui API yang kompatibel dengan Amazon S3.
  • File dapat diakses dari Hadoop/Spark/Flink dan lainnya melalui sistem file yang kompatibel dengan Hadoop.
  • Data disimpan dengan aman menggunakan penyimpanan terenkripsi AES256-GCM.
  • Mendukung penyimpanan file berukuran besar hingga puluhan TB.
  • Mendukung baca/tulis cepat dengan me-mount penyimpanan cloud ke klaster lokal sebagai cloud drive.

Kubernetes

  • Mendukung driver Kubernetes CSI dan operator SeaweedFS.

Contoh penggunaan penyimpanan objek Seaweed

  • Menjelaskan port default dan cara menjalankan node master serta node volume.
  • Memberikan contoh cara menulis, membaca, dan menghapus file.
  • Menjelaskan replikasi yang sadar rack dan data center, serta cara menetapkan kunci file ke data center tertentu.

Arsitektur

  • SeaweedFS mengelola volume data tanpa memecah file menjadi chunk.
  • Server master hanya mengelola metadata untuk volume, sementara metadata file aktual dikelola oleh server volume.
  • Menyediakan penjelasan rinci tentang proses penulisan dan pembacaan file.

Perbandingan dengan sistem file lain

  • Menjelaskan keunggulan SeaweedFS dibanding HDFS, GlusterFS, Ceph, MooseFS, MinIO, dan lainnya.
  • SeaweedFS dioptimalkan untuk file kecil dan menyediakan akses file cepat dengan operasi baca disk O(1).

Rencana pengembangan

  • Akan menyediakan lebih banyak alat dan dokumentasi untuk pengelolaan dan penskalaan sistem.
  • Dukungan baca dan tulis data stream.
  • Dukungan data terstruktur.

Panduan instalasi

  • Menyediakan panduan instalasi bagi pengguna yang tidak terbiasa dengan Golang.

Topik terkait disk

  • Menjelaskan performa hard drive dan SSD.
  • SeaweedFS memiliki struktur yang ramah SSD.

Benchmark

  • Menyediakan hasil benchmark mesin tunggal yang pribadi dan tidak ilmiah.
  • Menjelaskan cara menjalankan benchmark campuran menggunakan WARP.

Lisensi

  • Dilisensikan di bawah Apache License, Version 2.0.

Opini GN⁺:

  • SeaweedFS adalah sistem file terdistribusi yang bertujuan mengelola file kecil secara efisien dan menyajikan file dengan cepat. Ini sangat cocok untuk layanan web modern yang menangani data dalam jumlah besar.
  • Memberikan fleksibilitas melalui kompatibilitas dengan berbagai penyimpanan dan database, serta memungkinkan pengelolaan data yang hemat biaya lewat fitur integrasi cloud.
  • Sebagai proyek open source, SeaweedFS didukung oleh komunitas dan terus berkembang, sehingga juga menjadi proyek yang menarik dari sudut pandang teknis.

1 komentar

 
GN⁺ 2024-02-03
Komentar Hacker News
  • Penyebutan JuiceFS

    • Dalam komentar, beberapa alternatif seperti Minio, Ceph, dan GarageFS disebutkan.
    • Alternatif lain yang belum disebutkan adalah JuiceFS.
    • Ada materi yang membandingkan JuiceFS dan SeaweedFS.
  • Pengalaman menggunakan SeaweedFS

    • SeaweedFS digunakan untuk menyimpan puluhan miliar dokumen XML berukuran menengah, thumbnail gambar, file PDF, dan sebagainya.
    • Menjembatani kesenjangan antara database dan sistem file.
    • Dokumentasi dan alat operasionalnya awalnya terasa agak canggung, tetapi fiturnya kaya dan bekerja dengan baik.
    • Data dapat dipulihkan dari kegagalan daya, kerusakan perangkat keras, dan sebagainya.
    • Kesenjangan pada blob store S3 API open source terasa mengejutkan.
  • Pengalaman negatif terhadap SeaweedFS

    • Diputuskan untuk tidak menggunakan SeaweedFS karena Postgres tidak dapat diinisialisasi pada volume POSIX FS yang di-mount melalui driver CSI SeaweedFS.
    • Dibutuhkan sistem SDS yang menyediakan POSIX FS penuh dan volume S3, bersifat FOSS, serta dapat dikelola, dipantau, dan dipulihkan dari bencana secara efektif.
    • Sistem seperti Ceph dikecualikan. GarageFS hanya mendukung S3.
  • Pendapat pengembang SeaweedFS

    • SeaweedFS dibangun di atas blob storage yang berdasarkan makalah Haystack dari Facebook.
    • Belum semua fitur sepenuhnya dikembangkan, tetapi sistem ini menawarkan cara pemrograman baru yang cocok untuk era cloud.
    • Saat ruang penyimpanan diperlukan, sistem mengalokasikan ruang dan memberikan file ID untuk digunakan seperti pointer yang menunjuk ke blok memori.
  • Kasus penggunaan SeaweedFS

    • SeaweedFS digunakan untuk menyimpan rekaman pertandingan multipemain (replay) lebih dari 50TB.
    • Fitur kedaluwarsa bawaan dimanfaatkan, dan tidak ada masalah dalam penggunaan maupun saat penambahan fitur baru dan migrasi.
  • Pendapat tentang SeaweedFS dan Min.io

    • Ketika ditanya tentang pengalaman dengan solusi self-hosted mirip S3, pengguna SeaweedFS merekomendasikan Min.io, sementara pengguna Min.io merekomendasikan SeaweedFS.
  • Pengguna jangka panjang SeaweedFS

    • Sekitar 250 ribu objek disimpan di SeaweedFS, dan sebagian besar di antaranya adalah cold storage di belakang Cloudflare.
    • SeaweedFS telah lama digunakan karena ketertarikan pada Haystack dari Facebook, dan sistem ini sangat stabil serta efisien.
  • Sejarah teknologi penyimpanan Microsoft

    • Microsoft di masa lalu beberapa kali mencoba menjembatani kesenjangan antara file dan database, tetapi sebagian besar gagal.
    • Disebutkan ketertarikan Bill Gates pada teknologi semacam ini dan kekecewaannya.
  • Hal yang perlu dipertimbangkan saat memilih penyimpanan terdistribusi

    • Perlu dipertimbangkan apakah penyimpanan terdistribusi benar-benar diperlukan, atau apakah sharding dapat dilakukan sendiri.
    • Perlu dipastikan apakah blob perlu dimodifikasi, atau cukup dengan baca/modifikasi/ganti.
    • Perlu mempertimbangkan rasio antara baca dan tulis.
    • Perlu mempertimbangkan seberapa sering metadata berubah.
    • Perlu mempertimbangkan cara mengelola penulisan ke objek yang sama secara bersamaan.
    • Perlu memilih mana yang lebih penting antara ketersediaan, konsistensi, dan kecepatan.
    • Perlu mempertimbangkan cara memulihkan dari kegagalan serentak pada penyimpanan terdistribusi.
    • Perlu mempertimbangkan metode kontrol akses.
  • Perbandingan performa SeaweedFS dan Min.io

    • SeaweedFS dan Min.io diuji untuk menyimpan lebih dari 100TB data audio di HDD dengan biaya rendah.
    • SeaweedFS menunjukkan performa yang lebih baik untuk kasus penggunaan tersebut.