Btrfs

Cara Defragment Sistem Btrfs Filesy

Cara Defragment Sistem Btrfs Filesy

Btrfs adalah sistem fail Copy-on-Write (CoW) berdasarkan tahap. Fail besar disimpan dalam pelbagai data; dan apabila fail besar ini diubah, lanjutan yang akan dimodifikasi disalin ke luaran baru yang kosong di lokasi lain dari peranti storan dan diubah di lokasi baru. Kemudian, luas fail besar dihubungkan semula untuk menunjuk ke lanjutan yang diperbaharui. Lanjutan lama tidak akan dikeluarkan serta-merta.

Ini adalah bagaimana ciri Copy-on-Write (CoW) sistem fail Btrfs menyebabkan pemecahan. Fragmentasi bermaksud bahawa jumlah data fail besar tersebar di seluruh peranti storan. Mereka tidak seketika. Jadi, prestasi (kelajuan membaca / menulis) sistem fail mungkin berkurang.

Untuk menyelesaikan masalah ini, perlu melakukan defragment sistem fail Btrfs sekali-sekala. Artikel ini menunjukkan kepada anda cara defragment sistem fail Btrfs.

Singkatan

Singkatan (bentuk pendek) yang digunakan dalam artikel ini adalah seperti berikut:

Prasyarat

Untuk mencuba contoh yang disertakan dalam artikel ini:

Saya mempunyai HDD 20 GB sdb pada mesin Ubuntu saya. Saya akan membuat sistem fail Btrfs pada HDD sdb.

$ sudo lsblk -e7

Nota: HDD / SSD anda mungkin akan mempunyai nama yang berbeza daripada nama saya, dan begitu juga bahagiannya. Oleh itu, pastikan untuk menggantikannya dengan milik anda mulai sekarang.

Anda boleh membuat sistem fail Btrfs pada HDD / SSD anda (tanpa partisi) jika anda mempunyai HDD / SSD ganti. Anda juga boleh membuat partition pada HDD / SSD anda dan membuat sistem fail Btrfs di sana.

Untuk bantuan memasang sistem fail Btrfs di Ubuntu, lihat artikel Pasang dan Gunakan Btrfs di Ubuntu 20.04 LTS.

Untuk mendapatkan bantuan memasang sistem fail Btrfs di Fedora, lihat artikel Pasang dan Gunakan Btrfs di Fedora 33.

Membuat Sistem Fail Btrfs

Anda boleh membuat sistem fail Btrfs pada HDD / SSD anda (tidak dipartisi) atau pada partisi HDD / SSD anda.

Untuk membuat sistem fail Btrfs di sdb HDD (keseluruhan HDD, tanpa partisi) dan berikan label sistem fail data, jalankan arahan berikut:

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

Sistem fail Btrfs kini harus dibuat di sdb HDD.

Buat direktori / data untuk memasang sistem fail Btrfs yang baru anda buat dengan arahan berikut:

$ sudo mkdir -v / data

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

$ sudo mount / dev / sdb / data

Sistem fail Btrfs kini harus dipasang, seperti yang anda lihat dalam tangkapan skrin di bawah:

$ df -h / data

Defragmenting Btrfs Filesystem Secara Manual

Seperti yang anda lihat dalam tangkapan skrin di bawah, saya telah menyalin dua fail pada sistem fail Btrfs yang dipasang di / data direktori untuk menunjukkan proses defragmentasi sistem fail Btrfs:

$ ls -lh / data

Anda dapat melakukan defragment satu fail atau keseluruhan subvolume / direktori secara berulang.

Untuk menyusun semula fail tunggal / data / ubuntu-20.04.1-pelayan langsung-amd64.iso, kami akan menjalankan arahan berikut:

$ sudo btrfs defragment sistem fail -vf / data / ubuntu-20.04.1-pelayan langsung-amd64.iso

Fail / data / ubuntu-20.04.1-pelayan langsung-amd64.iso mesti defragmentasi.

Untuk defragment setiap fail atau direktori / data direktori secara berulang, jalankan arahan berikut:

$ sudo btrfs defragment sistem fail -rvf / data

Seperti yang anda lihat, semua fail dari / data direktori diubahsuai.

Dengan cara yang sama, jika anda mempunyai subvolume / data / osimages, maka anda boleh defragment semua fail dari / data / osimages subvolume secara berulang dengan arahan berikut:

$ sudo btrfs defragment sistem fail -rvf / data / osimages

Memampatkan Sistem Filem Btrfs Semasa Defragmenting

Sistem fail Btrfs membolehkan anda memampatkan fail semasa anda menyusun semula fail tersebut.

Untuk defragment semua fail di / data direktori dan kompresnya dengan ZLIB algoritma pemampatan pada masa yang sama, jalankan perintah defragment dengan -czlib pilihan, seperti berikut:

$ sudo btrfs defragment sistem fail -rvf -czlib / data

Untuk defragment semua fail di / data direktori dan memampatkannya dengan ZSTD algoritma pemampatan pada masa yang sama, jalankan perintah defragment dengan -czstd pilihan, seperti berikut:

$ sudo btrfs defragment sistem fail -rvf -czstd / data

Untuk defragment semua fail di / data direktori dan kompresnya dengan LZO algoritma pemampatan pada masa yang sama, jalankan perintah defragment dengan -clzo pilihan, seperti berikut:

$ sudo btrfs defragment sistem fail -rvf -clzo / data

Fail di / data direktori harus didefragmentasi dan dimampatkan pada masa yang sama.

Dengan cara yang sama, anda juga dapat melakukan defragmentasi dan memampatkan fail subvolume Btrfs.

Defragmenting Btrfs Filesystem Secara automatik

Anda boleh mengaktifkan defragmentasi automatik pada sistem fail Btrfs anda pada masa pemasangan. Ciri sistem fail Btrfs ini akan mendefragmentasi semua fail sistem fail Btrfs anda secara automatik.

Untuk memasang sistem fail Btrfs yang dibuat di sdb HDD di / data direktori dengan defragmentasi automatik diaktifkan pada masa boot, anda mesti menambah entri untuk sistem fail Btrfs di / etc / fstab fail.

Pertama, cari UUID sistem fail Btrfs yang dibuat di sdb HDD, seperti berikut:

$ sudo blkid / dev / sdb

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

Ia akan berbeza bagi anda. Oleh itu, pastikan untuk menggantinya dengan milik anda mulai sekarang.

Buka / etc / fstab fail dengan nano penyunting teks, seperti berikut:

$ sudo nano / etc / fstab

Tambahkan baris berikut ke hujung / etc / fstab fail:

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

Setelah selesai, tekan + X diikuti oleh Y dan untuk menyelamatkan / etc / fstab fail.

Agar perubahan berlaku, reboot komputer anda dengan arahan berikut:

but semula $ sudo

Seperti yang anda lihat, sistem fail Btrfs dibuat di sdb HDD dipasang pada / data direktori dengan defragmentasi automatik diaktifkan.

Masalah dengan Defragmenting Btrfs Filesystem

Walaupun nampaknya defragmentasi meningkatkan prestasi sistem fail, ada beberapa masalah dengan defragmentasi sistem file Btrfs.

Oleh kerana Btrfs adalah sistem fail Copy-on-Write (CoW), untuk memahami masalah dengan defragmentasi sistem fail Btrfs, anda mesti memahami ciri Salin-Tulis-Tulis sistem fail Btrfs.

Katakan, anda mempunyai fail besar (fail1) yang menggunakan 100 extent (anda boleh menganggap extents sebagai blok fail) dari sistem fail Btrfs. Sekiranya anda membuat salinan fail besar yang lain (fail2) dalam sistem fail Btrfs yang sama, anda akan melihat bahawa tidak ada ruang cakera tambahan yang digunakan. Ini kerana failnya sama, dan 100 lanjutan setiap fail adalah sama. Jadi, sistem fail Btrfs menggunakan lanjutan yang sama untuk kedua-dua fail.

Rajah 1: fail1 dan fail2 sama dan berkongsi lanjutan sistem fail Btrfs yang sama untuk menjimatkan ruang cakera

Sekarang, katakan, anda telah mengubahsuai salah satu salinan fail besar (fail2). Pengubahsuaian perlu mengubah 10 daripada 100 lanjutan. Sistem fail Btrfs akan menyalin 10 lanjutan yang diperlukan di lokasi lain yang tidak digunakan (katakan, e101-e110sistem fail dan menukarnya di sana. Setelah perubahan ditulis ke cakera, sistem fail Btrfs akan menghubungkan kembali luaran sehingga perubahan tersebut tercermin dalam fail besar. Prosesnya digambarkan dalam gambar di bawah:

Gambar 2: 10 luaran ditukar masuk fail2. Oleh itu, luaran dihubungkan semula dalam sistem fail Btrfs.

Dari gambar 1 dan 2, anda dapat memahami cara kerja Copy-on-Write (CoW) dan bagaimana sistem fail Btrfs menggunakan Copy-on-Write (CoW) untuk menjimatkan ruang cakera.

Sekarang setelah anda mengetahui bagaimana ciri Copy-on-Write (CoW) sistem fail Btrfs berfungsi, anda akan memahami masalah dengan menyusun semula sistem fail Btrfs.

  1. Fail defragmenting memindahkan data Btrfs dan cuba menyelaraskannya, satu demi satu. Jadi, pautan Copy-on-Write antara salinan fail rosak. Ini akan meningkatkan keluasan data yang berlebihan, serta penggunaan cakera dari sistem fail Btrfs yang sebelumnya disimpan dengan berkongsi data yang ada antara salinan fail yang serupa (atau hampir serupa).
  2. Sekiranya subvolume Btrfs mempunyai banyak snapshot, defragmentasi subvolume akan memutuskan pautan Copy-on-Write antara subvolume dan snapshot. Ini akan meningkatkan penggunaan cakera sistem fail Btrfs.
  3. Sekiranya anda menggunakan sistem fail Btrfs untuk pangkalan data yang besar atau gambar mesin maya (untuk menyimpan data / cakera VM), defragmentasi sistem fail juga akan memberi kesan negatif terhadap prestasi sistem fail.

Kesimpulannya

Dalam artikel ini, anda belajar bagaimana defragment satu file dan file dalam direktori / subvolume secara berulang dari sistem fail Btrfs. Anda juga belajar bagaimana mengaktifkan defragmentasi automatik pada sistem fail Btrfs pada masa pemasangan. Akhirnya, artikel itu membincangkan beberapa masalah dengan menyusun semula sistem fail Btrfs.

Shadow of the Tomb Raider untuk Tutorial Linux
Shadow of the Tomb Raider adalah penambahan kedua belas untuk siri Tomb Raider - francais permainan aksi-pengembaraan yang dibuat oleh Eidos Montreal....
Cara Meningkatkan FPS di Linux?
FPS bermaksud Bingkai sesaat. Tugas FPS adalah mengukur kadar bingkai dalam pemutaran video atau persembahan permainan. Dengan kata mudah bilangan gam...
Permainan Makmal Apl Oculus Teratas
Sekiranya anda adalah pemilik alat dengar Oculus, maka anda mesti mengetahui tentang memuatkan sideload. Sideloading adalah proses memasang kandungan ...