Dalam sistem file Btrfs multi-perangkat atau RAID Btrfs, tergantung pada konfigurasi sistem file, mungkin ada banyak salinan blok data/metadata yang disimpan di lokasi berbeda dari perangkat penyimpanan yang ditambahkan ke sistem file Btrfs. Ketika alat scrub Btrfs menemukan blok data/metadata yang rusak, alat ini akan mencari semua perangkat penyimpanan yang ditambahkan ke sistem file Btrfs untuk salinan duplikat dari blok data/metadata tersebut. Setelah salinan duplikat dari blok data/metadata ditemukan, blok data/metadata yang rusak akan ditimpa dengan blok data/metadata yang benar. Beginilah cara alat scrub Btrfs memperbaiki blok data/metadata yang rusak dalam sistem file Btrfs multi-perangkat atau RAID Btrfs.
Dalam artikel ini, saya akan menunjukkan cara menggunakan alat scrub Btrfs untuk menemukan dan memperbaiki blok data/metadata yang rusak dalam sistem file Btrfs multi-perangkat atau RAID Btrfs. Jadi, mari kita mulai.
Singkatan
SERANGAN - Array Redundan Disk Murah/Independen
GB - Gigabyte
Prasyarat
Untuk mengikuti artikel ini, Anda harus memiliki sistem file Btrfs multi-perangkat yang berfungsi atau RAID Btrfs.
Saya telah membuat RAID Btrfs di RAID-1 konfigurasi (dipasang pada /data direktori) menggunakan 4 perangkat penyimpanan sdb, SDC, SD, dan sde, seperti yang Anda lihat pada tangkapan layar di bawah ini. Saya akan menggunakan RAID Btrfs ini untuk demonstrasi scrub Btrfs di artikel ini.
$ sudo btrfs penggunaan sistem file /data
Jika Anda memerlukan bantuan untuk menginstal sistem file Btrfs di Ubuntu, lihat artikel saya Instal dan Gunakan Btrfs di Ubuntu 20.04 LTS.
Jika Anda memerlukan bantuan untuk menginstal sistem file Btrfs di Fedora, lihat artikel saya Instal dan Gunakan Btrfs di Fedora 33.
Jika Anda memerlukan bantuan dalam membuat RAID Btrfs, lihat artikel saya Cara Mengatur RAID Btrfs.
Menghasilkan File Dummy di Sistem File Btrfs
Untuk menunjukkan cara kerja alat scrub Btrfs, kita perlu membuat beberapa file acak untuk mengisi sistem file Btrfs. Mari buat skrip shell yang melakukan hal itu.
Buat skrip shell baru file genfile.SH dalam /usr/local/bin/ direktori sebagai berikut:
$ sudo nano /usr/local/bin/genfiles.SH
Ketik baris kode berikut di file genfile.SH skrip cangkang.
#!/bin/bashsementara benar
melakukan
FILENAME=$(uuidgen)
echo "[Membuat] $FILENAME"
dd if=/dev/random of=$FILENAME bs=1M count=256 status=progress
echo "[Dibuat] $FILENAME"
selesai
Setelah selesai, tekan
Itu file genfile.SH skrip shell menjalankan tak terbatas sementara lingkaran.
sementara benarmelakukan
#kode lainnya
selesai
Baris berikut menghasilkan UUID menggunakan uuidgen perintah dan simpan UUID di NAMA FILE variabel.
Baris berikut mencetak pesan di konsol sebelum file NAMA FILE dihasilkan.
Baris berikut menghasilkan file acak baru NAMA FILE menggunakan DD perintah. File akan menjadi 256 MB dalam ukuran.
Baris berikut mencetak pesan di konsol setelah file NAMA FILE dihasilkan.
Tambahkan izin eksekusi ke file genfile.SH skrip shell sebagai berikut:
s
Itu file genfile.SH skrip shell sekarang harus dapat diakses seperti perintah lainnya.
$genfile mana.SH
Mari buat beberapa file acak di RAID Btrfs yang dipasang di /data direktori.
Navigasikan ke /data direktori tempat RAID Btrfs dipasang sebagai berikut:
$cd /data
Seperti yang Anda lihat, tidak ada file yang tersedia di RAID Btrfs saya saat ini.
$ ls -lh
Untuk menghasilkan beberapa file acak di direktori kerja saat ini (/data direktori dalam hal ini), jalankan file genfile.SH skrip shell sebagai berikut:
$ sudo genfile.SH
Itu file genfile.SH skrip shell harus mulai menghasilkan file acak di /data direktori.
Itu file genfile.SH skrip menghasilkan file acak. Biarkan skrip berjalan selama beberapa menit, sehingga mengisi sekitar 2-3 GB ruang disk Btrfs RAID.
Ketika Anda ingin menghentikan file genfile.SH skrip shell, tekan
Seperti yang Anda lihat, beberapa file acak dihasilkan di Btrfs RAID.
$ ls -lh
Saya telah menghasilkan sekitar 13 GB file acak di RAID Btrfs yang dipasang di /data direktori, seperti yang Anda lihat pada tangkapan layar di bawah ini.
$ sudo du -sh /data
Bekerja dengan Alat Scrub Btrfs
Di bagian ini, saya akan menunjukkan cara menggunakan alat scrub Btrfs. Mari kita mulai.
Anda dapat memulai proses scrub pada sistem file Btrfs yang terpasang di /data direktori dengan perintah berikut:
$ sudo btrfs scrub start /data
Proses scrub Btrfs harus dimulai pada sistem file Btrfs yang dipasang di /data direktori.
Anda dapat melihat status proses scrub Btrfs yang berjalan pada sistem file Btrfs yang terpasang di /data direktori sebagai berikut:
$ sudo btrfs scrub status /data
Seperti yang Anda lihat, proses scrub Btrfs masih berlari.
Menggosok sistem file Btrfs atau RAID Btrfs yang memiliki banyak file akan membutuhkan waktu lama untuk diselesaikan.
Setelah proses scrub Btrfs selesai, statusnya harus diubah menjadi jadi, seperti yang Anda lihat pada tangkapan layar di bawah ini.
$ sudo btrfs scrub status /data
Anda juga dapat melihat status scrub Btrfs untuk setiap perangkat penyimpanan yang ditambahkan ke sistem file Btrfs (dipasang di /data direktori) secara terpisah sebagai berikut:
$ sudo btrfs scrub status -d /data
Saya telah memberi tahu Anda bahwa proses scrub Btrfs membutuhkan waktu lama untuk diselesaikan pada sistem file Btrfs yang besar. Salah satu keuntungan besar dari alat scrub Btrfs adalah prosesnya dapat dijeda dan dilanjutkan kapan saja.
Mari kita lihat cara menjeda dan melanjutkan proses scrub Btrfs.
Pertama, mulai proses scrub Btrfs baru pada sistem file Btrfs yang dipasang di direktori /data sebagai berikut:
$ sudo btrfs scrub start /data
Untuk membatalkan atau menjeda proses scrub Btrfs yang sedang berjalan pada sistem file Btrfs yang terpasang di /data direktori, jalankan perintah berikut:
$ sudo btrfs scrub batalkan /data
Proses scrub Btrfs yang sedang berjalan harus dibatalkan atau dijeda.
Seperti yang Anda lihat, status scrub Btrfs adalah dibatalkan. Jadi, proses scrub Btrfs tidak berjalan lagi.
$ sudo btrfs scrub status /data
Untuk melanjutkan proses scrub Btrfs yang telah Anda batalkan atau jeda, jalankan perintah berikut:
$ sudo btrfs scrub resume /data
Proses scrub Btrfs harus dilanjutkan.
Seperti yang Anda lihat, status scrub Btrfs sekarang berlari. Jadi, proses scrub Btrfs dilanjutkan.
$ sudo btrfs scrub status /data
Setelah proses scrub Btrfs selesai, status scrub Btrfs harus diubah menjadi jadi.
$ sudo btrfs scrub status /data
Kesimpulan
Dalam artikel ini, saya telah menunjukkan kepada Anda cara bekerja dengan alat scrub Btrfs untuk menemukan dan memperbaiki blok data/metadata yang rusak dari sistem file multi-perangkat atau RAID Btrfs. Saya telah menunjukkan kepada Anda cara membatalkan/menjeda dan melanjutkan proses scrub Btrfs setelah dimulai juga.