- Membangun storage S3 sendiri dengan memanfaatkan laptop Framework dan JBOD, mengoperasikan kapasitas 10TB dengan biaya rendah, dan tetap berjalan stabil selama 4 bulan tanpa pengelolaan
- Memakai laptop Framework bekas tanpa layar dengan memasang ZFS dan garage S3 sebagai server rumahan, digunakan sebagai storage berkapasitas besar untuk proyek pelacakan SDK AppGoblin
- Setelah 4 bulan sama sekali tidak memperhatikan server, saat login terlihat bahwa 10TB telah terpakai dan sistem sedang menunggu upgrade; setelah restart, semuanya tetap berfungsi normal
- Proses upgrade garage S3 dari v1 ke v2 juga selesai tanpa masalah, memberi pengalaman operasional yang stabil
- Ada masalah awal pada konfigurasi ZFS nonstandar yang menghubungkan laptop dan JBOD lewat USB, tetapi terselesaikan setelah metadata dipindahkan ke penyimpanan internal laptop
Latar belakang dan motivasi proyek
- Memutuskan untuk self-hosting S3 5 bulan lalu
- Sedang menjalankan pelacakan SDK untuk 100 ribu aplikasi Android dan iOS teratas milik AppGoblin
- Membutuhkan ruang penyimpanan besar, tetapi ingin menekan biaya
- Memilih pendekatan self-hosting alih-alih cloud S3 yang sudah ada
Konfigurasi perangkat keras
- Memanfaatkan laptop Framework
- Membeli laptop Framework bekas tanpa layar dengan harga murah
- Karena merupakan model lama, perangkat ini cocok digunakan sebagai server rumahan
- Memanfaatkan portabilitas dan karakteristik hemat daya dari laptop
- Menambahkan JBOD (Just a Bunch of Disks)
- Array disk eksternal untuk penyimpanan berkapasitas besar
- Dihubungkan ke laptop melalui USB
Tumpukan perangkat lunak
- Sistem file ZFS
- Menyediakan integritas data dan fitur snapshot
- Mengonfigurasi JBOD sebagai pool ZFS
- garage S3
- Solusi storage ringan terdistribusi yang kompatibel dengan S3
- Proyek open source yang dikembangkan oleh Deuxfleurs
- Menyediakan kompatibilitas API S3
Operasi tanpa pengelolaan selama 4 bulan
- Setelah instalasi, server sama sekali tidak diperhatikan selama 4 bulan
- Di tengah perjalanan, pekerjaan, dan kesibukan sehari-hari, S3 tetap terus digunakan
- Tidak perlu memikirkan server sama sekali
- Hal yang ditemukan setelah login
- Ruang penyimpanan 10TB telah terpakai
- Sistem dengan sabar menunggu restart untuk upgrade
- Hasil restart
- Menjalankan restart dengan tegang
- Lega karena semuanya kembali berfungsi normal
Upgrade garage S3
- Upgrade dari v1 ke v2
- Menemukan upgrade mayor yang sudah menunggu
- Proses upgrade berjalan tanpa masalah
- Dinilai sebagai akhir pekan yang menyenangkan
Peringatan teknis dan solusi
- Menyadari konfigurasi ZFS yang nonstandar
- Menghubungkan laptop dan JBOD melalui USB adalah use case ZFS yang agak nonstandar
- Menerima peringatan soal ini dari komunitas Reddit
- Masalah awal yang muncul
- Masalah ZFS muncul saat garage melakukan banyak operasi baca dan tulis
- Pada konfigurasi awal, metadata SQLite juga disimpan di JBOD/ZFS
- Penyelesaian masalah
- Memindahkan metadata ke storage internal laptop
- Setelah itu, masalah ZFS teratasi dan sistem berjalan stabil
3 komentar
Menantang diri untuk melakukan self-hosting saja sudah luar biasa.
Meskipun kisaran harganya sangat berbeda, sepertinya motherboard Framework telah menjadi Raspberry Pi modern.
Komentar Hacker News
zfs send/recv.” Alur seperti ini tampaknya lebih cocok untuk kebutuhan saya, dan RAID5 awalnya dimaksudkan untuk mengantisipasi kegagalan satu disk, tetapi membuat konfigurasi yang sama di lokasi lain juga cukup mahal (~$1,000 USD) jadi belum sempat saya jalankanzfs send/recv. Berkat ini, saya bisa lebih fleksibel mencampur disk (misalnya yang satu SSD, yang lain HDD, dan sebagainya), walaupun tentu ada kompromi pada kecepatan baca dan waktu ketersediaan. Ada juga cara memakai hard disk eksternal sebagai disk backup dan menghubungkannya setiap beberapa hari. Untuk data penting saya punya pool RAID terpisah yang dimirror. Banyak tulisan tentang ZFS terlalu fokus pada RAID, dan saya rasa informasi tentang konfigurasi minim hardware seperti yang saya sebut di atas masih kuranglvm2alih-alih ZFS, dan itu berjalan baik di RPi5. ZFS memakai terlalu banyak RAM sehingga kurang cocok untuk tujuan ini