Btrfs

Cara Menggunakan Snapshot Btrfs

Cara Menggunakan Snapshot Btrfs
Sistem file Btrfs memiliki dukungan snapshot tingkat sistem file bawaan. Anda dapat membuat subvolume di sistem file Btrfs Anda dan mengambil snapshot dari file/direktori di subvolume itu. Mengambil snapshot dari subvolume akan menyimpan status file/direktori di subvolume itu. Anda dapat memulihkan file/direktori subvolume apa pun dari snapshot jika Anda membutuhkannya.

Fitur snapshot dari sistem file Btrfs menggunakan prinsip Copy-on-Write (CoW). Jadi, tidak memakan banyak ruang disk, dan Anda dapat mengambil snapshot dari subvolume secara instan.

Sistem file Btrfs mendukung 2 jenis snapshot.

  1. Cuplikan yang dapat ditulis: Jika Anda mengambil snapshot yang dapat ditulis, Anda dapat memodifikasi file/direktori snapshot itu nanti. Ini adalah tipe snapshot default dari sistem file Btrfs.
  2. Cuplikan hanya-baca: Jika Anda mengambil snapshot hanya-baca, Anda tidak dapat mengubah file/direktori snapshot itu nanti.

Artikel ini akan menunjukkan kepada Anda cara mengambil snapshot yang dapat ditulis dan hanya-baca dari subvolume sistem file Btrfs Anda. Saya juga akan menunjukkan cara memperbarui snapshot yang dapat ditulis dan memulihkan file dari snapshot. Saya akan menunjukkan cara menghapus snapshot juga. Jadi, mari kita mulai.

Prasyarat

Untuk mencoba contoh artikel ini,

Saya memiliki hard disk 20 GB sdb di mesin Ubuntu saya. Saya telah membuat 2 partisi sdb1 dan sdb2 di harddisk ini. Saya akan menggunakan partisi sdb1 dalam artikel ini.

$ sudo lsblk -e7

Hard disk atau SSD Anda mungkin memiliki nama yang berbeda dari milik saya, begitu juga dengan partisinya. Jadi, pastikan untuk menggantinya dengan milikmu mulai sekarang.

Jika Anda memerlukan bantuan untuk menginstal sistem file Btrfs di Ubuntu, periksa 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 Btrf di Fedora 33.

Membuat Sistem File Btrfs

Untuk bereksperimen dengan subvolume Btrfs, Anda perlu membuat sistem file Btrfs.

Untuk membuat sistem file Btrfs dengan label data di sdb1 partisi, jalankan perintah berikut:

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

Sistem file Btrfs harus dibuat.

Buat direktori /data dengan perintah berikut:

$ sudo mkdir -v /data

Untuk memasang sistem file Btrfs yang dibuat di sdb1 partisi di /data direktori, jalankan perintah berikut:

$ sudo mount /dev/sdb1 /data

Sistem file Btrfs harus dipasang seperti yang Anda lihat pada tangkapan layar di bawah ini.

$df -h /data

Mempersiapkan Sistem File Btrfs untuk Snapshot

Di Btrfs, Anda hanya dapat mengambil snapshot dari subvolume Btrf. Akar utama dari sistem file Btrfs juga merupakan subvolume. Jadi, Anda dapat mengambil cadangan seluruh sistem file Btrfs serta subvolume tertentu.

Bagian ini akan membuat subvolume Btrfs /data/proyek/web1 dan buat file yang diperlukan untuk bagian selanjutnya dari artikel ini di bawah. Saya juga akan membuat direktori tempat Anda dapat menyimpan foto Anda. Di bagian selanjutnya, saya akan menunjukkan kepada Anda cara mengambil snapshot (dapat ditulis dan hanya-baca), memperbarui snapshot yang dapat ditulis, dan memulihkan file dari snapshot. Jadi, mari kita mulai.

Pertama, buat direktori baru /data/proyek sebagai berikut:

$ sudo mkdir -v /data/proyek

Buat subvolume baru web1 dalam /data/proyek direktori sebagai berikut:

$ sudo btrfs subvolume create /data/projects/web1

Buat file baru indeks.html dalam /data/proyek/web1 subvolume sebagai berikut:

$ sudo nano /data/proyek/web1/indeks.html

Ketik baris kode berikut di indeks.html mengajukan.




Situs Web Demo



Halo Dunia 4



Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan indeks.html mengajukan.

Buat file baru gaya.css dalam /data/proyek/web1 subvolume sebagai berikut:

$ sudo nano /data/proyek/web1/style/.css

Ketik baris kode berikut di gaya.css mengajukan.

h1
warna: hijau;

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan gaya.css mengajukan.

Sekarang, /data/proyek/web1 subvolume memiliki indeks.html dan gaya.css mengajukan.

$ ls -lh /data/proyek/web1

Saya ingin menyimpan semua snapshot dari sistem file Btrfs ini di /data/.snapshot direktori.

Buat /data/.snapshot direktori dengan perintah berikut:

$ sudo mkdir -v /data/.snapshot

Mengambil Cuplikan Subvolume

Untuk mengambil snapshot dari /data/proyek/web1 subvolume ke dalam /data/.snapshot/web1-2020-12-25 direktori (akan dibuat secara otomatis), jalankan perintah berikut:

$ sudo btrfs subvolume snapshot /data/projects/web1 /data/.snapshot/web1-2020-12-25

Sebuah cuplikan dari /data/proyek/web1 direktori harus dibuat di /data/.snapshot/web1-2020-12-25 direktori.

Seperti yang Anda lihat pada tangkapan layar di bawah, subvolume baru .snapshot/web1-2020-12-25 dibuat. Sebuah snapshot sebenarnya adalah subvolume.

$ sudo btrfs daftar subvolume /data

Anda dapat melihat informasi lebih lanjut tentang snapshot yang Anda buat di /data/.snapshot/web1-2020-12-25 direktori sebagai berikut:

$ sudo btrfs subvolume tampilkan /data/.snapshot/web1-2020-12-25

Seperti yang Anda lihat, semua file yang ada di /data/proyek/web1 subvolume ada di /data/.snapshot/web1-2020-12-25 foto.

$pohon -a /data

Memulihkan File dari Snapshot

Di bagian ini, saya akan menunjukkan cara memulihkan file dari snapshot Btrfs.

Pertama, saya akan menunjukkan cara memulihkan satu file dari snapshot from.

Buka /data/proyek/web1/indeks.html file dengan editor teks nano sebagai berikut:

$ sudo nano /data/proyek/web1/indeks.html

Buat perubahan apa pun yang Anda inginkan.

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyimpan file.

Seperti yang Anda lihat, yang utama indeks.html file berbeda dengan indeks.html file di snapshot.

$ cat /data/proyek/web1/indeks.html
$ kucing /data/.snapshot/web1-2020-12-25/indeks.html

Kami telah membuat perubahan pada main indeks.html file tidak diinginkan, dan kami ingin memulihkan recover indeks.html file dari snapshot.

Anda dapat memulihkan indeks.html file dari snapshot sebagai berikut:

$ sudo cp -v /data/.snapshot/web1-2020-12-25/indeks.html /data/proyek/web1/indeks/.html

Seperti yang Anda lihat, indeks.html file dipulihkan dari snapshot.

$ cat /data/proyek/web1/indeks.html
$ kucing /data/.snapshot/web1-2020-12-25/indeks.html

Sekarang, mari kita lihat bagaimana memulihkan semua file/direktori dari snapshot.

Hapus semua file dari /data/proyek/web1 cuplikan sebagai berikut:

$ sudo rm -rv /data/proyek/web1/*

Untuk memulihkan semua file/direktori dari snapshot, jalankan perintah berikut:

$ sudo rsync -avz /data/.snapshots/web1-2020-12-25/ /data/projects/web1/

Seperti yang Anda lihat, file/direktori dipulihkan dari snapshot.

$ ls -lh /data/proyek/web1

Akhirnya, mari kita lihat bagaimana memulihkan file/direktori dari snapshot dalam mode mirror. Dalam mode cermin, file/direktori subvolume akan sama seperti di snapshot. Jika ada file/direktori di subvolume yang tidak tersedia di snapshot, mereka akan dihapus.

Mari buat file baru di subvolume untuk membedakan pohon file dari snapshot.

Membuat Baca aku.txt file di /data/proyek/web1 subvolume sebagai berikut:

$ echo "halo dunia 5" | sudo tee /data/proyek/web1/README.txt

Seperti yang Anda lihat, pohon file dari /data/proyek/web1 subvolume berbeda dari /data/.snapshot/web1-2020-12-25 foto.

$pohon -a /data

Untuk mengembalikan file/direktori dari /data/.snapshot/web1-2020-12-25 cuplikan ke /data/proyek/web1 subvolume dalam mode mirror, jalankan perintah berikut:

$ sudo rsync -avz --delete /data/.snapshots/web1-2020-12-25/ /data/projects/web1/

Semua file/direktori dari /data/proyek/web1 subvolume harus dipulihkan (dalam mode cermin) dari /data/.snapshot/web1-2020-12-25 foto.

Pohon file dari /data/proyek/web1 subvolume dan /data/.snapshot/web1-2020-12-25 snapshot harus sama.

Seperti yang Anda lihat, indeks.file dan gaya html.isi file css sama di /data/proyek/web1 subvolume dan /data/.snapshot/web1-2020-12-25 foto.

Isi dari indeks.html dan gaya.css file di /data/proyek/web1 subvolume.

$ cat /data/proyek/web1/indeks.html
$ cat /data/projects/web1/style.css

Isi dari indeks.html dan gaya.css file di /data/.snapshot/web1-2020-12-25 foto.

$ cat /data/proyek/web1/indeks.html
$ cat /data/projects/web1/style.css

Memperbarui Cuplikan

Secara default, sistem file Btrfs mengambil snapshot yang dapat ditulis. Cuplikan Btrfs seperti subvolume. Jadi, Anda dapat memodifikasi/memperbarui file/direktori dari snapshot yang dapat ditulis.

Ayo perbarui indeks.html file di /data/proyek/web1 subvolume.

Pertama, buka indeks.html file dari /data/proyek/web1 subvolume dengan nano editor teks sebagai berikut:

$ sudo nano /data/proyek/web1/indeks.html

Buat perubahan apa pun yang Anda inginkan. Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan indeks.html mengajukan.

Seperti yang Anda lihat, indeks.file html dari /data/proyek/web1 subvolume berbeda dari /data/.snapshot/web1-2020-12-25 foto.

$ cat /data/proyek/web1/indeks.html
$ kucing /data/.snapshot/web1-2020-12-25/indeks.html

Anda ingin menyimpannya indeks.html file dari /data/proyek/web1 subvolume.

Untuk memperbarui indeks.html file di /data/.snapshot/web1-2020-12-25 snapshot, jalankan perintah berikut:

$ sudo cp -v /data/projects/web1/index.html /data/.snapshot/web1-2020-12-25/indeks.html

Seperti yang Anda lihat, indeks.html file dari /data/.snapshot/web1-2020-12-25 snapshot diperbarui.

Memperbarui snapshot semudah menyalin file baru ke snapshot.

Mengambil Snapshot Hanya Baca dari Subvolume of

Terkadang, Anda tidak ingin snapshot yang Anda ambil diperbarui dengan cara apa pun. Dalam hal ini, Anda dapat membuat snapshot hanya-baca.

Misalnya, untuk membuat snapshot hanya-baca /data/.snapshot/web1-2020-12-26 dari /data/proyek/web1 subvolume, jalankan perintah berikut:

$ sudo btrfs subvolume snapshot -r /data/projects/web1 /data/.snapshot/web1-2020-12-26

Seperti yang Anda lihat, subvolume baru .snapshot/web1-2020-12-26 dibuat.

$ sudo btrfs daftar subvolume /data

Seperti yang Anda lihat, cuplikannya /data/.snapshot/web1-2020-12-26 hanya bisa dibaca.

$ sudo btrfs subvolume tampilkan /data/.snapshot/web1-2020-12-26

Ayo perbarui indeks.html file dari /data/proyek/web1 subvolume.

Untuk melakukannya, buka indeks.html file dari /data/proyek/web1 subvolume dengan nano editor teks sebagai berikut:

$ sudo nano /data/proyek/web1/indeks.html

Buat perubahan apa pun yang Anda inginkan. Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyimpan perubahan.

Seperti yang Anda lihat, indeks.html dalam /data/proyek/web1 subvolume berbeda dari /data/.snapshot/web1-2020-12-26 foto.

$ cat /data/proyek/web1/indeks.html
$ kucing /data/.snapshot/web1-2020-12-26/indeks.html

Ayo coba update indeks.html file di /data/.snapshot/web1-2020-12-26 foto.

$ sudo cp -v /data/projects/web1/index.html /data/.snapshot/web1-2020-12-26/indeks.html

Seperti yang Anda lihat, Anda tidak dapat memperbarui indeks.html file dari /data/.snapshot/web1-2020-12-26 snapshot karena snapshot bersifat hanya-baca.

Menghapus Snapshot

Saya telah memberi tahu Anda sebelumnya bahwa snapshot Btrf seperti subvolume. Jadi, Anda dapat menghapus snapshot Btrfs seperti Anda menghapus subvolume Btrfs. Perintah yang sama.

Ini adalah bagaimana pohon file dari sistem file Btrfs dipasang di /data direktori terlihat seperti saat ini.

$pohon -a /data

Mari kita hilangkan .snapshot/web1-2020-12-25 foto.

$ sudo btrfs daftar subvolume /data

Untuk menghapus /data/.snapshot/web1-2020-12-25 snapshot, jalankan perintah berikut:

$ sudo btrfs subvolume hapus /data/.snapshot/web1-2020-12-25

Seperti yang Anda lihat, cuplikannya .snapshot/web1-2020-12-25 tidak ada lagi.

$ sudo btrfs daftar subvolume /data

Seperti yang Anda lihat, file/direktori dari /data/.snapshot/web1-2020-12-25 snapshot juga dihapus.

$pohon -a /data

Kesimpulan

Artikel ini telah menunjukkan kepada Anda cara mengambil snapshot yang dapat ditulis dan hanya-baca dari subvolume sistem file Btrfs Anda. Saya juga telah menunjukkan kepada Anda cara memperbarui snapshot yang dapat ditulis dan memulihkan file dari snapshot. Saya telah menunjukkan kepada Anda cara menghapus snapshot Btrfs juga. Artikel ini akan membantu Anda memulai dengan fitur snapshot Btrfs.

5 Kartu Tangkap Game Teratas
Kita semua telah melihat dan menyukai gameplay streaming di YouTube. PewDiePie, Jakesepticye, dan Markiplier hanyalah beberapa pemain top yang telah m...
Cara Mengembangkan Game di Linux
Satu dekade yang lalu, tidak banyak pengguna Linux yang memprediksi bahwa sistem operasi favorit mereka suatu hari nanti akan menjadi platform game po...
Port Sumber Terbuka dari Mesin Game Komersial
Rekreasi mesin game gratis, open source, dan lintas platform dapat digunakan untuk bermain lama serta beberapa judul game yang cukup baru. Artikel ini...