Btrfs adalah sistem file open-source, tujuan umum untuk Linux. Nama berasal dari penggunaan B-pohon untuk menyimpan struktur sistem file internal. Nama yang berbeda digunakan untuk sistem file, termasuk "Butter F S" dan "B-tree F S." Pengembangan Btrfs dimulai di Oracle pada tahun 2007, dan sekarang sejumlah perusahaan (termasuk Red Hat, Fujitsu, Intel, SUSE, dan banyak lainnya) berkontribusi dalam upaya pengembangan. Btrfs disertakan dalam kernel Linux arus utama.
Snapshot Btrfs
Subvolume Btrfs dapat di-snapshot dan dikloning, yang menciptakan pohon-B tambahan. Cuplikan dimulai sebagai salinan subvolume yang diambil pada suatu titik waktu. Anda dapat membuat snapshot dapat ditulis dan menggunakannya sebagai klon yang berkembang dari subvolume asli. Atau Anda dapat menggunakan snapshot sebagai gambar stabil dari subvolume untuk tujuan pencadangan atau untuk migrasi ke sistem lain. Snapshot dapat dibuat dengan cepat dan pada awalnya hanya menggunakan sedikit ruang disk.
Gunakan perintah snapshot subvolume btrfs untuk membuat snapshot subvolume yang dapat ditulis/dibaca. Contoh berikut membuat snapshot dari subvolume SV1:
# btrfs subvolume snapshot /btrfs/SV1 /btrfs/SV1/SV1-snap Create a snapshot of '/btrfs/SV1' in '/btrfs/SV1/SV1-snap'
Gunakan cuplikan subvolume btrfs -r opsi untuk membuat snapshot hanya-baca:
# btrfs subvolume snapshot -r /btrfs/SV1 /btrfs/SV1-rosnap Create a readonly snapshot of '/btrfs/SV1' in '/btrfs/SV1-rosnap'
Snapshot muncul sebagai direktori biasa ketika perintah ls digunakan. Snapshots juga muncul di output dari perintah daftar subvolume btrfs.
# btrfs subvolume list /btrfs ID 257 gen 10 top level 5 path SV1 ID 258 gen 9 top level 257 path SV1/SV1-snap ID 259 gen 10 top level 5 path SV1-rosnap
Mengambil Cuplikan File
Anda dapat menggunakan “cp –reflink Perintah ” untuk mengambil snapshot dari sebuah file. Dengan opsi ini, sistem file tidak membuat tautan baru yang menunjuk ke inode yang ada, tetapi membuat inode baru yang berbagi blok disk yang sama dengan salinan aslinya. File baru tampaknya merupakan salinan dari file asli tetapi blok data tidak diduplikasi. Hal ini memungkinkan salinan menjadi hampir seketika dan juga menghemat ruang disk. Saat konten file menyimpang dari waktu ke waktu, jumlah penyimpanan yang diperlukan bertambah. Salah satu batasannya adalah bahwa operasi ini hanya dapat bekerja dalam batas-batas sistem file yang sama dan dalam subvolume yang sama.
Contoh berikut menyalin file dengan menggunakan perintah cp –reflink. Ruang yang digunakan diberikan sebelum dan sesudah operasi penyalinan. Perhatikan bahwa ruang yang digunakan tidak bertambah.
# df -hP /btrfs Filesystem Size Used Avail Use% Mounted on /dev/sda 10G 23M 8.0G 1% /btrfs
# cp --reflink /btrfs/SV1/vmlinuz-3.10.0-693.17.1.el7.x86_64 /btrfs/SV1/copy_of_vmlinuz
# df -h /btrfs Filesystem Size Used Avail Use% Mounted on /dev/sda 10G 23M 8.0G 1% /btrfs
Memasang Subvolume atau Cuplikan
Secara default, Linux me-mount volume Btrfs induk, yang memiliki ID 0. Dalam contoh ini, perintah mount berikut dikeluarkan sebelum membuat subvolume dan snapshot:
# mount /dev/sdb /btrfs
Subvolume SV1 dibuat di /btrfs. Perintah ls menunjukkan subvolume:
# ls -l /btrfs total 0 drwxr-xr-x. 1 root root 84 Mar 29 11:01 SV1
Contoh berikut menyalin file ke SV1, membuat snapshot SV1, dan memverifikasi bahwa subvolume dan snapshot berisi file yang sama:
# cp -p /boot/vmlinuz-3.10.0-693.17.1.el7.x86_64 /btrfs/SV1
# btrfs sub snapshot /btrfs/SV1 /btrfs/SV1-snap Create a snapshot of '/btrfs/SV1' in '/btrfs/SV1-snap'
# ls /btrfs/SV1* /btrfs/SV1: vmlinuz-3.10.0-693.17.1.el7.x86_64 /btrfs/SV1-snap: vmlinuz-3.10.0-693.17.1.el7.x86_64
Jika Anda melepas /btrfs dan memasangnya kembali, volume induk Btrfs dipasang secara default:
# ls /btrfs/ SV1 SV1-snap # umount /btrfs # mount /dev/sda /btrfs/ # ls /btrfs/ SV1 SV1-snap
Namun, Anda dapat memasang subvolume atau snapshot btrfs seolah-olah itu adalah perangkat disk. Jika Anda memasang snapshot alih-alih subvolume induknya, Anda secara efektif mengembalikan status sistem file ke saat snapshot diambil. Contoh berikut menyalin file ke SV1 sehingga kontennya berbeda dari SV1-snap:
# cp testfile /btrfs/SV1
# ls -l /btrfs/SV1* /btrfs/SV1: total 5760 -rw-r--r--. 1 root root 19 Mar 29 11:44 testfile -rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64 /btrfs/SV1-snap: total 5756 -rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64
Untuk memasang subvolume atau snapshot, Anda harus terlebih dahulu menentukan nomor ID subvolume yang ingin Anda pasang. Gunakan perintah daftar subvolume btrfs untuk menampilkan nomor ID. Dalam contoh berikut, ID subvolume root adalah 257:
# btrfs sub list /btrfs ID 257 gen 12 top level 5 path SV1 ID 258 gen 9 top level 5 path SV1-snap
Gunakan btrfs “subvolume set-default ” untuk mengatur subvolume default dari sistem file. Misalnya, untuk memasang subvolume SV1 Btrfs, yang memiliki ID 257:
# btrfs subvolume set-default 257 /btrfs
Anda kemudian perlu meng-unmount dan me-remount sistem file Btrfs. Level root kemudian berisi konten subvolume SV1 dan subvolume root tidak lagi terlihat:
# ls -l /btrfs total 5760 -rw-r--r--. 1 root root 19 Mar 29 11:44 testfile -rwxr-xr-x. 1 root root 5890720 Jan 25 20:26 vmlinuz-3.10.0-693.17.1.el7.x86_64
Anda juga dapat menggunakan “-o subvolid ” ke perintah mount untuk memasang subvolume root atau subvolume atau snapshot. Misalnya, untuk memasang subvolume root:
# umount /btrfs # mount -o subvolid=5 /dev/sda /btrfs
# ls -l /btrfs total 0 drwxr-xr-x. 1 root root 84 Mar 29 11:44 SV1 drwxr-xr-x. 1 root root 68 Mar 29 11:17 SV1-snapCara membuat dan memasang sistem file Btrfs (dijelaskan dengan contoh)
Cara Mengubah Ukuran / Memperluas Volume / Sistem File Btrfs