Hari ini seharusnya cuma setup seperti biasa. Tambah datastore baru di PBS, backing-nya pakai S3 (MinIO lokal), selesai dalam 30 menit. Kenyataannya? Tidaaaaak.
Awal Mulanya Simpel
Setup-nya sebenarnya tidak rumit. Punya PBS jalan di 192.168.14.200, punya MinIO di 192.168.14.100:9000, tinggal mount bucket-nya via s3fs ke /mnt/s3-datastore, lalu daftarkan ke PBS sebagai datastore. Done.
Mount jalan, ls bisa, bahkan touch file ke mount point berhasil dan filenya muncul di MinIO UI. Semua terlihat normal.
Klik Add Datastore di PBS Web UI.
TASK ERROR: EIO: I/O error
Output:

Investigasi Pertama: Salah Sangka
Pikiran pertama: pasti koneksi ke MinIO bermasalah. Langsung cek, curl ke MinIO health endpoint ok, credential di /root/.passwd-s3fs benar, bucket accessible. Tidak ada yang salah dari sisi network.
Coba via CLI:
proxmox-backup-manager datastore create s3-datastore /mnt/s3-datastore \
--comment "S3 Backup Storage via MinIO"
Output:
TASK ERROR: EIO: I/O error
Sama saja.

Ternyata Write Biasa ≠ Write yang PBS Lakukan
Di sinilah titik yang menarik. touch bisa, buat file bisa, tapi PBS tetap gagal. Setelah lihat lebih dalam, ternyata PBS saat inisialisasi datastore tidak cuma nulis 1 file. Ia langsung buat 256 subdirektori sekaligus di dalam .chunks/ — dari 00/ sampai ff/.
256 mkdir call dalam waktu sangat singkat ke s3fs yang bicara ke MinIO via HTTP. s3fs setiap mkdir = 1 API call. Burst sebesar itu langsung overwhelmed.
Jadi bukan masalah mount, bukan masalah credential, bukan masalah network. Masalahnya adalah PBS terlalu agresif saat init, dan s3fs tidak punya buffer untuk menyerap itu.
Percobaan Pre-create Manual
Ide selanjutnya, kalau PBS yang buat 256 dir sekaligus tidak bisa, buat manual dulu dengan throttle, PBS tinggal pakai strukturnya.
mkdir -p /mnt/s3-datastore/.chunks
for i in $(seq 0 255); do
printf -v hex "%02x" $i
mkdir -p /mnt/s3-datastore/.chunks/$hex
sleep 0.2
done
Status Sekarang
Sudah jam sore. Mount bersih, MinIO hidup, credential valid, write manual bisa. Tapi PBS masih belum mau terima /mnt/s3-datastore sebagai datastore yang sah.
Troubleshoot masih jalan. Mungkin solusinya di throttle yang lebih lambat, mungkin di ganti s3fs ke rclone yang punya VFS cache layer, mungkin ada hal lain yang belum kelihatan.
Yang jelas, setup yang harusnya 30 menit sudah jalan hampir seharian. Asik.
Akan diupdate kalau sudah ketemu root cause-nya. Kemungkinan bakal pakai rclone daripada s3fs.


Leave a Reply