2 bulan terakhir ini saya mempergunakan NevaCloud sebagai penyedia layanan VPS setelah pindahan dari Vultr karena beberapa pertimbangan.
Neva memberikan spesifikasi CPU 1 core, 1Gb Ram, dan 20Gb storage yang saya rasa cukup untuk urusan self host aplikasi fediverse seperti gotosocial dan snac2. Biaya layanan sebesar 48 ribu rupiah per bulan. Sedikit lebih murah dibandingkan kompetitor dengan penawaran spesifikasi serupa.
Migrasi Jail antar VPS dengan BastilleBSD
Karena suatu alasan, saya perlu untuk migrasi VPS kembali setelah sebelumnya migrasi dari BiznetGio ke Vultr
Di Vultr dan Gio sebelumnya saya sudah memiliki instan gotosocial dengan banyak post dan interaksi yang membuat ukuran database sqlite yang saya gunakan membengkak besar. Sehingga saat dipindahkan langsung memenuhi storage yang tersedia 1.
Kemudian saya berencana menghentikan instance gotosocial ini ke depannya, namun tidak berniat untuk menghapus instance. Tanggal pastinya kapan belum tau tapi kemungkinan sekitar Januari 2025 (saat domain habis).
Di sisi yang lain saya juga sudah membeli domain baru pengganti untuk instan gotosocial yang rencananya akan saya pasang aplikasi fedi antara gotosocial atau snac2 namun muncul permasalahan storage yang sudah menipis.
Neva memberikan layanan tambahan berupa block storage yang bisa diattach ke VPS untuk memberikan tambahan spasi storage. Harganya dimulai 20 ribu per bulan untuk 10Gb storage atau sekitar 2 ribu rupiah per 1Gb-nya.
Saya memanfaatkan layanan ini untuk menambah storage pada VPS yang saya pergunakan. Prosesnya cepat, setelah pembayaran block storage tersebut langsung tersedia untuk dipergunakan.
Tapi timbul masalah.
Ternyata tidak langsung bisa dipergunakan karena block storage dalam format RAW dan harus dipersiapkan terlebih dahulu (diformat). Neva menyediakan tutorial pemasangan namun sayangnya hanya untuk Linux (Debian). Tapi tak masalah saya akan pasang di FreeBSD.
Memasang block storage di FreeBSD #
Sesuai tutorial di Neva, block storage akan ditandai sebagai /dev/sdb namun di FreeBSD tentu berbeda. Untuk itu saya perlu mencari tau devicesnya.
$ doas camcontrol devlist
<QEMU QEMU DVD-ROM 2.5+> at scbus0 target 0 lun 0 (pass0,cd0)
<QEMU QEMU HARDDISK 2.5+> at scbus2 target 0 lun 0 (pass1,da0)
<QEMU QEMU HARDDISK 2.5+> at scbus2 target 1 lun 0 (pass2,da1)
Dari perintah diatas tersebutlah bahwa block storage yang saya miliki terdaftar sebagai QEMU HARDDISK di /dev/da1. Langkah selanjutnya adalah membuat partisi baru (UFS).
$ doas newfs /dev/da1
/dev/da1: 10240.0MB (20971520 sectors) block size 32768, fragment size 4096
using 17 cylinder groups of 625.22MB, 20007 blks, 80128 inodes.
super-block backups (for fsck_ffs -b #) at:
192, 1280640, 2561088, 3841536, 5121984, 6402432, 7682880, 8963328, 10243776, 11524224, 12804672, 14085120, 15365568, 16646016, 17926464, 19206912, 20487360
Untuk memastikan bahwa partisi sudah selesai dibuat, saya memeriksanya dengan gpart.
$ doas gpart show da1
=> 63 20971457 da1 MBR (10G)
63 20964762 1 freebsd [active] (10G)
20964825 6695 - free - (3.3M)
OK! partisi sudah aktif, saatnya untuk melakukan mounting pada partisi tadi.
$ doas mkdir /mnt/monster
$ doas mount -t ufs /dev/da1 /mnt/monster
$ ls -ltr /mnt/monster
total 0
$ df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/gpt/rootfs 19G 14G 4.3G 76% /
devfs 1.0K 0B 1.0K 0% /dev
/dev/da1 9.7G 8.0K 8.9G 0% /mnt/monster
Selesai! Akhirnya block storage bisa ditambahkan ke dalam sistem FreeBSD dan bisa diakses secara langsung. Tapi setiap sistem reboot saya perlu untuk mengulang perintah diatas agar storage bisa diakses. Agar tak perlu repot, saya edit file /etc/fstab agar bisa melakukan mounting saat booting.
$ doas vim /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/gpt/rootfs / ufs rw 1 1
/dev/da1 /mnt/monster ufs rw 2 2
Jail dan block storage #
FreeBSD di Raspberry Pi4
... Jails adalah sejenis container yang dibangun diatas konsep chroot untuk menciptakan sebuah safe environtment yang terisolasi dari sistem utama...
Sesuai rencana, saya akan memakai storage monster di Jail. Saya membuat 1 Jail khusus sebut saja namanya egois. Tentang cara membuat Jail pernah saya tuliskan di artikel yang lain.
Setelah Jail dibuat selanjutnya adalah membuat folder di dalam Jail tersebut yang nantinya akan dijadikan mount point dan menyambungkannya dengan device block storage.
Secara garis besar, prosesnya mirip dengan cara diatas, bedanya memakai file /etc/fstab yang ada di dalam Jail.
$ doas bastille cmd egois mkdir hanggar
$ doas bastille mount egois /mnt/monster root/hanggar nullfs rw 0 0
[egois]:
Added: /mnt/monster /usr/local/bastille/jails/egois/root/root/hanggar nullfs rw 0 0
Mantap, sekarang setiap file yang ditaruh di dalam folder hanggar di dalam Jail akan tersimpan di dalam block storage saya.
