GNU/Linux >> Belajar Linux >  >> Linux

Memulai dengan btrfs untuk Linux

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 ada      

Fitur 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
  1. 5 tips untuk memulai dengan keamanan server Linux

  2. Memulai Samba untuk interoperabilitas

  3. Sistem file kartu SD tahan korupsi untuk Linux tersemat?

  1. Memulai dengan firewall Linux

  2. Memulai socat, alat relai serbaguna untuk Linux

  3. Memulai PostgreSQL di Linux

  1. Saran untuk memulai dengan GNOME

  2. Memulai dengan desktop GNOME Linux

  3. Memulai SSH di Linux