Btrfs telah tersedia untuk Linux selama beberapa tahun, jadi Anda mungkin sudah terbiasa dengannya. Jika tidak, Anda mungkin memiliki pertanyaan tentangnya, terutama jika Anda menggunakan Fedora Workstation (Btrfs sekarang menjadi sistem file default). Artikel ini bertujuan untuk membantu Anda mengenalnya dan fitur lanjutannya, seperti copy-on-write dan checksum.
Lebih banyak sumber daya Linux
- Lembar contekan perintah Linux
- Lembar contekan perintah Linux tingkat lanjut
- Kursus online gratis:Ikhtisar Teknis RHEL
- Lembar contekan jaringan Linux
- Lembar contekan SELinux
- Lembar contekan perintah umum Linux
- Apa itu container Linux?
- Artikel Linux terbaru kami
Btrfs, kependekan dari B-Tree Filesystem, sebenarnya adalah sistem file dan manajer volume yang digabungkan menjadi satu. Ini sering dilihat sebagai respons terhadap ZFS, yang diperkenalkan di Solaris OS Sun Microsystem pada tahun 2005, sekarang sebagian besar digantikan oleh implementasi open source yang disebut OpenZFS. Ubuntu Linux dan FreeBSD sering menampilkan OpenZFS. Contoh lain dengan fitur serupa adalah Red Hat's Stratis dan Linux Logical Volume Manager (LVM).
Penyiapan
Untuk mencoba Btrfs, saya mengunduh file ISO Fedora 33 Workstation dan menginstalnya ke mesin virtual (VM) baru. Proses instalasi tidak berubah dari versi sebelumnya. Saya tidak menyesuaikan pengaturan apa pun, termasuk mempartisi dan memformat drive, untuk mempertahankan pengaturan "di luar kotak" yang akurat untuk tutorial ini. Setelah VM aktif dan berjalan, saya menginstal dan menjalankan Editor Partisi GNOME (GParted) untuk tampilan tata letak drive yang segar dan segar dari pabrik.
Dari titik ini, tidak jauh berbeda dari yang biasa Anda gunakan; sebenarnya, Anda dapat menggunakan sistem secara normal, dan Anda mungkin tidak menyadari bahwa sistem filenya adalah Btrfs. Namun, memiliki default baru ini memungkinkan Anda memanfaatkan beberapa fitur keren.
Periksa sistem file Btrfs
Saya tidak mengetahui adanya alat grafis khusus Btrfs, meskipun beberapa fungsinya telah dimasukkan ke dalam alat manajemen disk yang ada.
Dari baris perintah, Anda bisa melihat lebih dekat format Btrfs:
# btrfs filesystem show
Label:'fedora_localhost-live' uuid:f2bb02f9-5c41-4c91-8eae-827a801ee58a
Total perangkat 1 FS byte yang digunakan 6.36GiB
ukuran devid .41 menggunakan jalur 8.02GiB /dev/vda3
Ubah label Btrfs
Hal pertama yang saya perhatikan adalah label sistem file yang disetel oleh penginstal:fedora_localhost-live
. Ini tidak akurat karena sekarang merupakan sistem yang terinstal dan bukan lagi live CD. Jadi saya mengubahnya menggunakan btrfs filesystem label
perintah.
Mengubah label sistem file Btrfs sederhana:
# label sistem file btrfs /
fedora_localhost-live
# label sistem file btrfs / fedora33workstation
# label sistem file btrfs /
fedora33workstation
Kelola subvolume Btrfs
Subvolume tampaknya merupakan direktori standar yang dapat dikelola oleh Btrfs. Ada beberapa subvolume di Stasiun Kerja Fedora 33 baru saya:
# daftar subvolume btrfs /
ID 256 gen 2458 tingkat atas 5 jalur beranda
ID 258 gen 2461 tingkat atas 5 akar jalur
ID 265 gen 1593 tingkat atas 258 jalur var/lib/ mesin
Buat subvolume baru menggunakan btrfs subvolume create
perintah, atau hapus subvolume dengan btrfs subvolume delete
:
# btrfs subvolume create /opt/foo
Create subvolume '/opt/foo'
# btrfs subvolume list /
ID 256 gen 2884 top level 5 path home
ID 258 gen 2888 tingkat atas 5 akar jalur
ID 265 gen 1593 tingkat atas 258 jalur var/lib/machines
ID 276 gen 2888 tingkat atas 258 jalur opt/foo
# btrfs subvolume hapus /opt /foo
Hapus subvolume (tanpa komit):'/opt/foo'
Subvolume memungkinkan tindakan seperti menetapkan kuota, mengambil snapshot, dan mereplikasi ke lokasi dan host lain. Bagaimana administrator sistem dapat memanfaatkan kemampuan ini? Bagaimana dengan direktori home pengguna?
Tambahkan pengguna
Seperti yang telah terjadi sejak dulu, menambahkan akun pengguna baru akan membuat direktori home untuk akun tersebut untuk digunakan:
# useradd student1
# getent passwd student1
student1:x:1006:1006::/home/student1:/bin/bash
# ls -l /home
drwx------. 1 siswa1 siswa1 80 29 Okt 00:21 siswa1
Secara tradisional, direktori home pengguna adalah subdirektori dari /home
. Kepemilikan dan hak istimewa disesuaikan dengan pemiliknya, tetapi tidak ada fungsi khusus untuk mengelolanya. Lingkungan server perusahaan adalah skenario lain. Seringkali, direktori dicadangkan untuk digunakan oleh aplikasi tertentu dan penggunanya. Anda dapat memanfaatkan Btrfs untuk mengelola dan menerapkan batasan ke direktori ini.
Untuk mengakomodasi subvolume Btrfs sebagai rumah pengguna, ada opsi baru untuk useradd
perintah:--btrfs-subvolume-home
. Meskipun halaman manual belum diperbarui (pada tulisan ini), Anda dapat melihat opsi dengan menjalankan useradd --help
. Dengan melewatkan opsi ini saat menambahkan pengguna baru, subvolume Btrfs baru akan dibuat. Ini berfungsi seperti -d
opsi tidak untuk membuat direktori biasa:
# useradd --btrfs-subvolume-home student2
Buat subvolume '/home/student2'
Verifikasi pengguna dengan getent passwd student2
, dan itu akan tampak normal. Namun, jalankan btrfs subvolume
perintah untuk membuat daftar subvolume, dan Anda akan melihat sesuatu yang menarik:direktori home pengguna baru!
# daftar subvolume btrfs /
ID 256 gen 2458 tingkat atas 5 jalur beranda
ID 258 gen 2461 tingkat atas 5 akar jalur
ID 265 gen 1593 tingkat atas 258 jalur var/lib/ mesin
ID 272 gen 2459 tingkat atas 256 jalur pulang/siswa2
Jelajahi skenario kedua dari lingkungan server perusahaan. Misalkan Anda perlu menginstal server WildFly di /opt
dan menyebarkan aplikasi web Java. Seringkali, langkah pertama Anda adalah membuat wildfly
pengguna. Lakukan ini dengan menggunakan --btrfs-subvolume-home
yang baru opsi bersama dengan -b
opsi untuk menentukan /opt
sebagai direktori dasar:
# useradd -b /opt --btrfs-subvolume-home wildfly
Buat subvolume '/opt/wildfly'
Sekarang, wildfly
pengguna dapat masuk dan menyelesaikan instalasi di /opt/wildfly
.
Menghapus pengguna
Saat Anda menghapus pengguna, terkadang Anda ingin menghapus file pengguna itu dan direktori home secara bersamaan. userdel
perintah memiliki -r
opsi untuk ini, dan itu juga menghapus subvolume Btrfs:
# userdel -r student2
Hapus subvolume (komit):'/home/student2'
Setel kuota penggunaan disk
Di salah satu kelas ilmu komputer saya, seorang siswa menjalankan program C yang tidak terkendali dan menulis ke disk sampai seluruh /home
diisi pada sistem Unix departemen! Server menjadi tidak tersedia sampai admin menghentikan proses pelarian dan mengosongkan beberapa ruang. Hal yang sama berlaku untuk skenario di atas; bahwa aplikasi perusahaan Wildfly akan memiliki semakin banyak file log dan penyimpanan konten untuk penggunanya. Bagaimana Anda bisa mencegah server berhenti karena disk sudah penuh? Mengatur batasan penggunaan disk adalah ide yang bagus. Untungnya, Btrfs mendukung ini melalui kuota.
Ada beberapa langkah yang diperlukan untuk mengkonfigurasi kuota. Langkah pertama adalah mengaktifkan quota
pada sistem file Btrfs:
# btrfs quota enable /
Pastikan Anda mengetahui nomor ID grup kuota (qgroup) setiap subvolume, yang ditampilkan oleh btrfs subvolume list
memerintah. Setiap subvolume memerlukan qgroup terkait berdasarkan nomor ID-nya. Ini dapat dilakukan secara individual dengan btrfs qgroup create
, tetapi, dengan mudah, wiki Btrfs menyediakan perintah berikut untuk mempercepat pembuatan qgroups untuk subvolume pada sistem file:
>btrfs subvolume list \<path> | cut -d' ' -f2 | xargs -I{} -n1 btrfs qgroup destroy 0/{} \<path>
Dalam sistem workstation Fedora 33 yang baru diinstal, Anda beroperasi di jalur sistem file root, /
. Pengganti \<path>
dengan jalur root:
# btrfs subvolume list / | cut -d' ' -f2 | xargs -I{} -n1 btrfs qgroup create 0/{} /
Kemudian jalankan btrfs quota rescan
dan lihat qgroups baru:
# pemindaian ulang kuota btrf /
pemindaian ulang kuota dimulai
# btrfs qgroup show /
qgroupid rfer kecuali
-------- ---- --- -
0/5 16.00KiB 16.00KiB
0/256 272.04MiB 272.04MiB
0/258 6.08GiB 6.08GiB
06.00 /271 16.00KiB 16.00KiB
0/273 16.00KiB 16.00KiB
Sekarang Anda dapat menetapkan kuota ke salah satu qgroups, yang, pada gilirannya, diterapkan ke subvolume terkaitnya. Jadi, jika Anda ingin membatasi penggunaan direktori home student3 hingga 1GB, gunakan btrfs qgroup limit
perintah:
# btrfs qgroup limit 1G /home/student3
Konfirmasi kuota untuk subvolume tertentu:
# btrfs qgroup show -reF /home/student3
qgroupid rfer excl max_rfer max_excl
-------- ---- ---- --------
0/271 16.00KiB 16.00KiB 1.00GiB tidak ada
Opsi yang sedikit berbeda akan menampilkan semua qgroups dan kuota apa pun yang disetel:
# btrfs qgroup show -re /
qgroupid rfer excl max_rfer max_excl
-------- ---- ---- -------- -----
0/5 16.00KiB 16.00KiB tidak ada tidak ada
0/256 272.04MiB 272.04MiB tidak ada 58 /> 58
265 16.00KiB 16.00KiB tidak ada tidak ada
0/271 16.00KiB 16.00KiB 1.00GiB tidak ada
6.00 6.00 tidak adaFitur lainnya
Contoh-contoh ini memberikan beberapa gambaran tentang fitur-fitur Btrfs. Jalankan
btrfs --help
untuk melihat daftar lengkap perintah. Banyak kemampuan penting lainnya yang ada; misalnya, snapshot dan kirim/terima adalah dua hal yang layak dipelajari.Pemikiran terakhir
Btrfs menawarkan banyak janji untuk menghadirkan fitur sistem file canggih yang disetel ke Linux. Itu bukan yang pertama; Saya menghargai ZFS untuk pengenalan saya pada sistem file jenis ini sekitar 15 tahun yang lalu, tetapi Btrfs sepenuhnya open source dan tidak dibebani oleh paten.
Saya menyarankan untuk memulai dengan mesin virtual atau sistem cadangan jika Anda ingin menjelajahi sistem file ini.
Saya ingin melihat beberapa utilitas manajemen grafis yang dihasilkan untuk administrator sistem yang suka beroperasi di dunia GUI. Untungnya, Btrfs memiliki aktivitas pengembangan yang kuat, sebagaimana dibuktikan oleh keputusan proyek Fedora untuk menjadikannya default di Workstation 33.
Linux