
My PC, built with Gentoo inside.
Ada dua WDC Green 1 TB yang bertengger di atas. Dua itu adalah milik rekan saya. Dia sedang melakukan forensik dengan salah satunya. Katanya chipset AMD lebih cepat dan stabil dalam melakukan operasi salin daripada Intel. Meh, he’s the hardware guy, /me dunno…
Punya saya yang ada di salah satu tiga itu cuma sebesar 300 GB. Satu penyimpan di bawah monitor, SATA3 Cheetah 10K RPM 300 GB, saya pakai buat direktori pusat (root directory). Satu lagi di sebelahnya juga 250 GB.
Dari set tersebut, 2 penyimpan (300 GB dan 250 GB) saya ambil untuk iseng-iseng. Tadinya, saya menggunakan 250 GB saja. Tapi, seiring dengan perkembangan kepercayaan diri yang tinggi, saya mencopot penyimpan saya dari komputer kerja dan menaruh di komputer ini.
Sistemberkas
Kebutuhan saya akan sistemberkas kali ini adalah untuk memanajemennya dengan mudah. Kebutuhan yang paling utama adalah untuk virtualisasi. Saya butuh setiap VM untuk sebuah lingkungan pengembangan yang terisolasi.
Yang kedua, saya butuh untuk bisa secara daring memperbesar ruang penyimpan. Hal ini karena terkadang ketika saya membangun sistem dalam VM, ruang yang disediakan ternyata tidak cukup. Saya perlu menambah ruang dengan dinamis tanpa harus memindah-mindahkan data.
Saya menguji 3 sistem berkas: LVM, BTRFS, dan ZFS. Dari ketiganya, yang paling familiar adalah LVM. Namun, entah mengapa Device Mapper gagal membuatkan node di “/dev” untuk LVM. Saya jadi tidak bisa memasangnya.
Hal serupa juga terjadi dengan BTRFS. Ternyata BTRFS juga menggunakan menggunakan Device Mapper. Saya jadi tak bisa memasang BTRFS. Hal ini ditambah pula dengan kegamangan menggunakan BTRFS.
Kemudian, saya mencoba memasang ZFS. Memasangnya cukup sederhana di Gentoo. Karena faktor itu, saya jadinya suka ZFS. Mungkin tulisan ini lebih menjelaskan mengapa sederhana itu indah. Mengingat terminologi setiap sistem berkas berbeda, ZFS memiliki konsep yang sama dengan LVM tapi jauh lebih canggih.
Saya menggunakan versi GIT. Jangan salah, saya bukannya penyuka ketidakstabilan. Akan tetapi, menurut saya, teknologi terbaru seharusnya menggunakan kode yang terbaru. Selain lebih stabil, beberapa fitur lebih didukung. Apalagi, pengembangan ZFS di GNU/Linux sangat cepat.
Pasang ZFS
Aktifkan versi GIT.
echo "=sys-kernel/spl-9999 **" | sudo tee -a /etc/portage/package.accept_keywords
echo "=sys-fs/zfs-9999 **" | sudo tee -a /etc/portage/package.accept_keywords
Saya lupa, bila ada sesuatu yang salah, aktifkan “–autowrite-unmask” pada emerge. Selain itu, pastikan bahwa header kernel merupakan versi yang terpasang dan aktif. Saya sempat gagal memasang SPL karena dia membutuhkan versi header yang valid.
Lanjut pasang:
sudo emerge -av zfs
Selanjutnya tentang jenis-jenis volum.
Sekilas mengenai ZFS
ZFS mengenal konsep pool yang kalau dalam LVM itu artinya volume group. Berhubung saya hanya memiliki 1 penyimpan saja (waktu itu). Saya hanya menambahkan:
sudo zfs create vmdisk /dev/sda
Sistemberkas utama saya ada di /dev/sdb1, jadi hati-hati kawan. Saya tidak menambahkan /dev/sdb1 ke dalam ZFS saya. Saya masih belum tahu cara memasangnya ZFS sebagai berkas utama.
Baru-baru ini, saya menemukan bahwa ternyata subvolum ZFS terdiri atas dua:
- Sebuah blok yang bisa diformat
- Sebuah direktori
Berikut bedanya.
Subvolum Blok
Saya membutuhkan sebuah partisi untuk BlankOn Rote. Sistem ini sangat stabil dan cocok untuk membangun OpenELEC. Saya selalu gagal bila melakukan di Gentoo. Hal ini karena Python yang digunakan sama. Entahlah, saya hanya percaya BlankOn untuk sistem stabil.
sudo zfs create -V 20g vmdisk/blankon
Dengan menyatakan ukuran, ZFS secara otomatis menganggap bahwa yang hendak dibuat adalah sebuah subvolum blok. Ia akan otomatis membuat node di /dev/vmdisk/blankon dan /dev/zvol/vmdisk/blankon.
Subvolum Direktori
Subvolum yang kedua adalah membuat sebuah direktori khusus (child node) di bawah sebuah pool (vmdisk). Beda dengan subvolum blok, ia tidak memiliki node di /dev, ia hanya sebuah direktori biasa. Namun, ia bisa diisolasi dengan memberikan kuota dan hak khusus kepada beberapa orang misalnya.
Cara buatnya:
sudo zfs create vmdisk/musik
Lalu buat kuota untuk direktori itu:
sudo zfs set quota=30g vmdisk/musik
Entah mengapa, subvolum ZFS jenis ini di Gentoo belum terintegrasi. Jadinya, saya harus memasang manual. Yah, saya juga belum eksplorasi lebih lanjut dengan ZFS. Yang keren dari cara memasang ZFS adalah kita bisa mengubah titik pemasangan subvolum ini:
sudo zfs set mountpoint=/home/jp/Musik vmdisk/musik
Lalu pasang:
sudo zfs mount vmdisk/musik
Seperti sistemberkas lainnya, biasanya direktori tersebut dimiliki oleh root. Saya harus mengganti menjadi milik pengguna biasa:
sudo chown jp:jp /home/jp/Musik
Tidak ada yang istimewa dengan perintah ini. Namun saat kita memasang ulang, direktori ini tetap menjadi milik pengguna biasa.
Hasil penyalinan yang saya lakukan dengan memindahkan berkas Musik ke dalam subvolum vmdisk/musik.
sent 13448261665 bytes received 29625 bytes 92428118.83 bytes/sec
total size is 13446492269 speedup is 1.00
Lumayanlah.
Tambahan
Ada banyak properti yang bisa diubah untuk sebuah subvolum. Untuk tahu lebih lanjut apa saja properti yang bisa diubah-ubah:
sudo zfs get vmdisk/musik
Saya sendiri telah mengubah properti kuota sebelumnya. Saya juga mengaktifkan kompresi [pasti, dong., Vishera 8 inti sayang kalau tak digunakan] untuk sistem berkas saya:
sudo zfs set compression=lz4 vmdisk/musik
Kalau mau tahu tentang nilai sebuah properti, silakan:
sudo zfs get compression vmdisk/musik
Silakan eksplorasi sendiri. Oh, iya, ZFS menghabiskan banyak memori. Katanya, sih, yang ideal itu minimal memori 4GB.
Kesimpulan
ZFS memiliki zona-zona yang terisolasi dan hak akses yang terintegrasi. Cocok sekali digunakan untuk sistem yang memiliki banyak pengguna. Saya belum sempat membahas, namun ZFS bisa diekspor sebagai NFS, iSCSI, dan SMB. Tak heran banyak pusat data yang menggunakan ZFS sebagai sistemberkas dasar. Saya juga belum membahas mengenai format RAIDZ yang dimilikinya dan fasilitas membuat cuplikan secara daring. Maklum, ruang penyimpan saya belum banyak.