Btrfs

Cara Defragment Filesystem Btrfs

Cara Defragment Filesystem Btrfs

Btrfs adalah sistem file Copy-on-Write (CoW) berbasis luas. File besar disimpan dalam banyak data; dan ketika file besar ini dimodifikasi, ekstensi yang akan dimodifikasi disalin ke ekstensi baru yang kosong di lokasi lain perangkat penyimpanan dan dimodifikasi di lokasi baru. Kemudian, ekstensi file besar ditautkan kembali untuk menunjuk ke ekstensi yang diperbarui. Luasan lama tidak pernah dihapus secara instan.

Beginilah cara fitur Copy-on-Write (CoW) dari sistem file Btrfs menyebabkan fragmentasi. Fragmentasi berarti bahwa ekstensi data dari file besar tersebar di seluruh perangkat penyimpanan. Mereka tidak instan. Jadi, kinerja (kecepatan baca/tulis) sistem file mungkin berkurang.

Untuk mengatasi masalah ini, perlu untuk mendefrag sistem file Btrfs sesekali. Artikel ini menunjukkan kepada Anda cara mendefrag sistem file Btrfs.

Singkatan

Singkatan (bentuk singkat) yang digunakan dalam artikel ini adalah sebagai berikut:

Prasyarat

Untuk mencoba contoh yang disertakan dalam artikel ini:

Saya memiliki HDD 20 GB sdb di mesin Ubuntu saya. Saya akan membuat sistem file Btrfs di HDD sdb.

$ sudo lsblk -e7

catatan: HDD/SSD Anda kemungkinan akan memiliki nama yang berbeda dari nama saya, begitu juga dengan partisinya. Jadi, pastikan untuk menggantinya dengan milikmu mulai sekarang.

Anda dapat membuat sistem file Btrfs di HDD/SSD Anda (tanpa mempartisi) jika Anda memiliki HDD/SSD cadangan. Anda juga dapat membuat partisi pada HDD/SSD Anda dan membuat sistem file Btrfs di sana.

Untuk bantuan dalam menginstal sistem file Btrfs di Ubuntu, lihat artikel Instal dan Gunakan Btrfs di Ubuntu 20.04 LTS.

Untuk bantuan dalam menginstal sistem file Btrfs di Fedora, lihat artikel Instal dan Gunakan Btrfs di Fedora 33.

Membuat Sistem File Btrfs

Anda dapat membuat sistem file Btrfs di HDD/SSD Anda (tidak dipartisi) atau di partisi HDD/SSD Anda.

Untuk membuat sistem file Btrfs di sdb HDD (seluruh HDD, tanpa partisi) dan beri label sistem file data, jalankan perintah berikut:

$ sudo mkfs.btrfs -L data /dev/sdb

Sistem file Btrfs sekarang harus dibuat di sdb HDD.

Buat direktori /data untuk memasang sistem file Btrfs yang baru saja Anda buat dengan perintah berikut:

$ sudo mkdir -v /data

Untuk memasang sistem file Btrfs yang dibuat di sdb HDD pada /data direktori, jalankan perintah berikut:

$ sudo mount /dev/sdb /data

Sistem file Btrfs sekarang harus dipasang, seperti yang Anda lihat pada tangkapan layar di bawah ini:

$df -h /data

Mendefragmentasi Sistem File Btrfs Secara Manual

Seperti yang Anda lihat pada tangkapan layar di bawah, saya telah menyalin dua file pada sistem file Btrfs yang dipasang di /data direktori untuk mendemonstrasikan proses defragmentasi sistem file Btrfs:

$ ls -lh /data

Anda dapat mendefrag satu file atau seluruh subvolume/direktori secara rekursif.

Untuk mendefrag file tunggal /data/ubuntu-20.04.1-live-server-amd64.iso, kita akan menjalankan perintah berikut:

$ sudo btrfs filesystem defragment -vf /data/ubuntu-20.04.1-live-server-amd64.iso

Berkas /data/ubuntu-20.04.1-live-server-amd64.iso harus di defrag.

Untuk mendefrag setiap file atau direktori dari /data direktori secara rekursif, jalankan perintah berikut:

$ sudo btrfs filesystem defragment -rvf /data

Seperti yang Anda lihat, semua file dari /data direktori didefragfrag.

Dengan cara yang sama, jika Anda memiliki subvolume /data/osimages, maka Anda dapat mendefrag semua file dari /data/osimages subvolume secara rekursif dengan perintah berikut:

$ sudo btrfs filesystem defragment -rvf /data/osimages

Mengompresi Sistem File Btrfs Saat Mendefragmentasi

Sistem file Btrfs memungkinkan Anda untuk mengompres file saat Anda mendefragnya.

Untuk mendefrag semua file di /data direktori dan kompres dengan ZLIB algoritma kompresi pada saat yang sama, jalankan perintah defragment dengan -czlib pilihan, sebagai berikut:

$ sudo btrfs filesystem defragment -rvf -czlib /data

Untuk mendefrag semua file di /data direktori dan kompres dengan ZSTD algoritma kompresi pada saat yang sama, jalankan perintah defragment dengan -czstd pilihan, sebagai berikut:

$ sudo btrfs filesystem defragment -rvf -czstd /data

Untuk mendefrag semua file di /data direktori dan kompres dengan LZO algoritma kompresi pada saat yang sama, jalankan perintah defragment dengan -clzo pilihan, sebagai berikut:

$ sudo btrfs filesystem defragment -rvf -clzo /data

File-file di /data direktori harus didefragmentasi dan dikompresi secara bersamaan.

Dengan cara yang sama, Anda juga dapat mendefrag dan mengompres file dari subvolume Btrfs.

Mendefragmentasi Sistem File Btrfs Secara Otomatis

Anda dapat mengaktifkan defragmentasi otomatis pada sistem file Btrfs Anda pada waktu pemasangan. Fitur sistem file Btrfs ini akan mendefrag semua file sistem file Btrfs Anda secara otomatis.

Untuk memasang sistem file Btrfs yang dibuat di sdb HDD di /data direktori dengan defragmentasi otomatis diaktifkan saat boot, Anda harus menambahkan entri untuk sistem file Btrfs di in /etc/fstab mengajukan.

Pertama, temukan UUID dari sistem file Btrfs yang dibuat di sdb HDD, sebagai berikut:

$ sudo blkid /dev/sdb

Seperti yang Anda lihat, UUID sistem file Btrfs dibuat di on sdb HDD adalah 60afc092-e0fa-4b65-81fd-5dfd7dd884de.

Ini akan berbeda untukmu. Jadi, pastikan untuk menggantinya dengan milikmu mulai sekarang.

Buka /etc/fstab file dengan nano editor teks, sebagai berikut:

$ sudo nano /etc/fstab

Tambahkan baris berikut ke akhir /etc/fstab mengajukan:

UUID=60afc092-e0fa-4b65-81fd-5dfd7dd884de /data     btrfs      autodefrag        0            0

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan /etc/fstab mengajukan.

Agar perubahan diterapkan, reboot komputer Anda dengan perintah berikut:

$ sudo reboot

Seperti yang Anda lihat, sistem file Btrfs dibuat di sdb HDD dipasang di /data direktori dengan defragmentasi otomatis diaktifkan.

Masalah dengan Defragmentasi Sistem File Btrfs

Meskipun tampaknya defragmentasi meningkatkan kinerja sistem file, ada beberapa masalah dengan defragmentasi sistem file Btrfs.

Karena Btrfs adalah sistem file Copy-on-Write (CoW), untuk memahami masalah dengan defragmentasi sistem file Btrfs, Anda harus memahami fitur Copy-on-Write dari sistem file Btrfs.

Misalkan, Anda memiliki file besar (file1) yang menggunakan 100 ekstensi (Anda dapat menganggap ekstensi sebagai blok file) dari sistem file Btrfs. Jika Anda membuat salinan lain dari file besar itu (file2) di sistem file Btrfs yang sama, Anda akan melihat bahwa tidak ada ruang disk tambahan yang digunakan. Itu karena file-file itu identik, dan 100 tingkat setiap file adalah sama. Jadi, sistem file Btrfs menggunakan luasan yang sama untuk kedua file.

Gambar 1: file1 dan file2 identik dan berbagi luasan sistem file Btrfs yang sama untuk menghemat ruang disk

Sekarang, katakanlah, Anda telah memodifikasi salah satu salinan file besar (file2). Modifikasi perlu mengubah 10 dari 100 tingkat. Sistem file Btrfs akan menyalin 10 ekstensi yang diperlukan di lokasi lain yang tidak digunakan (katakanlah, e101-e110) dari sistem file dan ubah di sana. Setelah perubahan ditulis ke disk, sistem file Btrfs akan menautkan ulang ekstensi sehingga perubahan tercermin dalam file besar. Proses tersebut diilustrasikan pada gambar di bawah ini:

Gambar 2: 10 luasnya diubah menjadi file2. Jadi, ekstensi ditautkan kembali di sistem file Btrfs.

Dari gambar 1 dan 2, Anda dapat memahami cara kerja Copy-on-Write (CoW) dan bagaimana sistem file Btrfs menggunakan Copy-on-Write (CoW) untuk menghemat ruang disk.

Sekarang setelah Anda mengetahui cara kerja fitur Copy-on-Write (CoW) dari sistem file Btrfs, Anda akan memahami masalah dengan mendefrag sistem file Btrfs.

  1. File defragmentasi memindahkan luasan data Btrf dan mencoba menyelaraskannya, satu demi satu. Jadi, tautan Copy-on-Write antara salinan file terputus. Ini akan meningkatkan ekstensi data yang berlebihan, serta penggunaan disk dari sistem file Btrfs yang sebelumnya disimpan dengan berbagi ekstensi data antara salinan file yang identik (atau hampir identik).
  2. Jika subvolume Btrfs memiliki beberapa snapshot, defragmentasi subvolume akan memutus tautan Copy-on-Write antara subvolume dan snapshot. Ini akan meningkatkan penggunaan disk dari sistem file Btrfs.
  3. Jika Anda menggunakan sistem file Btrfs untuk database besar atau gambar mesin virtual (untuk menyimpan data/disk VM), mendefrag sistem file juga akan berdampak negatif pada kinerja sistem file.

Kesimpulan

Dalam artikel ini, Anda mempelajari cara mendefrag satu file dan file dalam direktori/subvolume secara rekursif dari sistem file Btrfs. Anda juga mempelajari cara mengaktifkan defragmentasi otomatis pada sistem file Btrfs pada waktu pemasangan. Akhirnya, artikel tersebut membahas beberapa masalah dengan mendefrag sistem file Btrfs.

Tombol tengah mouse tidak berfungsi di Windows 10
Itu tombol tengah mouse membantu Anda menelusuri halaman web dan layar yang panjang dengan banyak data. Jika itu berhenti, Anda akhirnya akan mengguna...
Cara Mengganti Tombol Kiri & Kanan Mouse di PC Windows 10
Sudah menjadi hal biasa bahwa semua perangkat mouse komputer dirancang secara ergonomis untuk pengguna yang tidak kidal. Tetapi ada perangkat mouse ya...
Tiru klik Mouse dengan mengarahkan mouse menggunakan Clickless Mouse di Windows 10
Menggunakan mouse atau keyboard dalam posisi yang salah dari penggunaan yang berlebihan dapat menyebabkan banyak masalah kesehatan, termasuk keteganga...