Secara default, Anda dapat menyimpan snapshot yang Anda ambil dari subvolume Btrfs Anda di sistem file Btrfs yang sama, tetapi tidak mungkin untuk menyimpan snapshot dari satu sistem file Btrfs langsung ke sistem file Btrfs lain. Namun, sistem file Btrfs memberi Anda alat yang diperlukan untuk mencadangkan snapshot dari satu sistem file Btrfs ke sistem file Btrfs lainnya. Artikel ini menunjukkan cara mencadangkan snapshot Btrfs ke sistem file Btrfs eksternal di drive eksternal.
Prasyarat
Untuk mencoba contoh yang disertakan dalam artikel ini, Anda harus memenuhi prasyarat berikut:
- Miliki sistem file Btrfs yang diinstal di komputer Anda.
- Memiliki hard disk atau SSD dengan setidaknya 2 partisi gratis (berapa pun ukuran).
Saya memiliki hard disk 20 GB, sdb, di mesin Ubuntu saya. Saya telah membuat dua partisi, sdb1 dan sdb2, di harddisk ini.
$ sudo lsblk -e7Catatan: Hard disk atau SSD Anda akan memiliki nama yang berbeda dari milik saya, begitu juga dengan partisinya. Jadi, pastikan untuk mengganti nama-nama ini dengan namamu mulai sekarang.
Saya akan membuat sistem file Btrfs di sdb1 dan sdb2 partisi. Snapshot yang dibuat pada sistem file Btrfs (sdb1) akan dicadangkan ke sistem file Btrfs yang dibuat di sdb2 partisi. Sistem file Btrfs dibuat di sdb2 partisi akan bertindak sebagai drive eksternal. Anda juga dapat menggunakan USB thumb drive atau hard drive eksternal; pastikan untuk memformatnya dengan sistem file Btrfs.
Untuk bantuan dalam menginstal sistem file Btrfs di Ubuntu, lihat artikel saya Instal dan Gunakan Btrfs di Ubuntu 20.04 LTS.
Untuk bantuan dalam menginstal sistem file Btrfs di Fedora, lihat artikel saya Instal dan Gunakan Btrfs di Fedora 33.
Membuat Sistem File Btrfs yang Diperlukan
Saya akan memformat keduanya sdb1 dan sdb2 partisi sebagai Btrfs. Saya akan menggunakan sdb1 partisi untuk menyimpan data dan snapshot Btrfs. Saya akan menggunakan sdb2 partisi untuk mencadangkan snapshot dari sistem file Btrfs yang dibuat di sdb1 partisi.
Untuk membuat sistem file Btrfs di sdb1 partisi dan berikan data label sistem file, jalankan perintah berikut:
$ sudo mkfs.btrfs -L data /dev/sdb1
Sistem file Btrfs sekarang harus dibuat di sdb1 partisi.
Untuk membuat sistem file Btrfs di sdb2 partisi dan berikan snapshot label sistem file, jalankan perintah berikut:
$ sudo mkfs.btrfs -L snapshot /dev/sdb2
Sistem file Btrfs sekarang harus dibuat di sdb2 partisi.
Buat direktori /data dan /snapshots untuk pemasangan sdb1 dan sdb2 partisi masing-masing sebagai berikut:
$ sudo mkdir -v /data,snapshots
Pasang sistem file Btrfs yang telah Anda buat di sdb1 partisi pada direktori /data, sebagai berikut:
$ sudo mount /dev/sdb1 /data
Dengan cara yang sama, pasang sistem file Btrfs yang telah Anda buat di on sdb2 partisi pada /snapshot direktori, sebagai berikut:
$ sudo mount /dev/sdb2 /snapshots
Seperti yang Anda lihat pada tangkapan layar di bawah, kedua sistem file Btrfs (sdb1 dan sdb2 partisi) telah dipasang dengan benar.
$ df -h -t btrfs
Mengambil Snapshots dari Sistem File Btrfs
Di bagian ini, kita akan membuat proyek dummy web1 di /data/proyek/web1 Btrfs subvolume. Kami akan mengambil snapshot dari subvolume itu di bagian ini, serta beberapa snapshot lain di bagian selanjutnya dari artikel ini.
Pertama, buat direktori baru /data/proyek, sebagai berikut:
$ sudo mkdir -v /data/proyek
Selanjutnya, buat yang baru subvolume web1 dalam /data/direktori proyek, sebagai berikut:
$ sudo btrfs subvolume create /data/projects/web1
Terakhir, buat indeks file baru.html di /data/proyek/web1 subvolume dengan editor teks nano, sebagai berikut:
$ sudo nano /data/proyek/web1/indeks.html
Ketik baris kode berikut di indeks.file .html:
Halo Dunia
Setelah selesai, tekan <Ctrl> + X diikuti oleh kamu dan <Memasukkan> untuk menyimpan indeks.file html.
Dengan cara yang sama, buat file baru gaya.css dalam /data/proyek/subvolume web1 sebagai berikut:
$ sudo nano /data/proyek/web1/style/.css
Ketik baris kode berikut di gaya.css mengajukan:
warna: hijau;
Setelah selesai, tekan <Ctrl> + X diikuti oleh kamu dan <Memasukkan> untuk menyimpan gaya.css mengajukan.
Sekarang, /data/proyek/subvolume web1 berisi indeks.html dan gaya.file css.
$ ls -lh /data/proyek/web1
Kami akan menyimpan semua snapshot dari sistem file Btrfs ini di /data/.snapshot direktori.
Pertama, buat /data/.snapshot direktori dengan perintah berikut:
$ sudo mkdir -v /data/.snapshot
Selanjutnya, buat snapshot hanya-baca /data/.snapshot/web1-2020-12-30 dari /data/proyek/subvolume web1 dengan perintah berikut:
$ sudo btrfs subvolume snapshot -r /data/projects/web1 /data/.snapshot/web1-2020-12-30
Seperti yang Anda lihat, snapshot baru /data/.snapshot/web1-2020-12-30 telah dibuat.
$ sudo btrfs daftar subvolume /data
Mencadangkan Snapshot ke Drive Eksternal
Untuk mencadangkan snapshot /data/.snapshot/web1-2020-12-30 ke sistem file Btrfs lain (drive eksternal sdb2, dalam hal ini) dipasang di /snapshot direktori, jalankan perintah berikut:
$ sudo btrfs kirim /data/.snapshot/web1-2020-12-30 | sudo btrfs menerima /snapshots
Cuplikannya /data/.snapshot/web1-2020-12-30 harus dicadangkan ke sistem file Btrfs eksternal (sdb2) dipasang pada /snapshot direktori.
Seperti yang Anda lihat, web subvolume baru1-2020-12-30 telah dibuat pada sistem file Btrfs eksternal.
$ sudo btrfs daftar subvolume /snapshots
Itu snapshot web1-2020-12-30 harus memiliki file yang sama/direktori sebagai /data/.snapshot/web1-2020-12-30 foto.
$ pohon -a /snapshots
Anda dapat memperoleh informasi lebih lanjut tentang snapshot yang dicadangkan /snapshosts/web1-2020-12-30 sebagai berikut:
$ sudo btrfs subvolume tampilkan /snapshots/web1-2020-12-30
Pencadangan Foto Bertambahan ke Drive Eksternal External
Jika ada banyak file dalam snapshot untuk dicadangkan ke drive eksternal, maka pencadangan tambahan akan membantu Anda mempercepat operasi pencadangan. Dalam hal ini, Btrfs hanya akan memperbarui file yang telah berubah sejak snapshot terakhir dan menyalin file baru yang tidak tersedia di snapshot terakhir.
Di bagian ini, saya akan menunjukkan kepada Anda cara melakukan pencadangan tambahan snapshot Btrfs ke sistem file Btrfs eksternal.
Pertama, buka indeks.file html dari /data/proyek/subvolume web1, sebagai berikut:
$ sudo nano /data/proyek/web1/indeks.html
Buat perubahan apa pun yang Anda inginkan pada indeks.file html. Setelah selesai, tekan <Ctrl> + X diikuti oleh kamu dan <Memasukkan> untuk menyimpan indeks.html mengajukan.
Ambil cuplikan baru baca-saja dari /data/proyek/subvolume web1, sebagai berikut:
$ sudo btrfs subvolume snapshot -r /data/projects/web1 /data/.snapshot/web1-2020-12-31
Seperti yang Anda lihat, snapshot baru /data/.snapshot/web1-2020-12-31 dari /data/proyek/subvolume web1 telah dibuat.
$ sudo btrfs daftar subvolume /data
Sekarang, kami siap untuk mengambil cadangan tambahan.
Untuk mengambil cadangan tambahan, Anda memerlukan snapshot umum dari sumber dan tujuan (drive eksternal) sistem file Btrfs. Snapshot umum biasanya snapshot terbaru dari subvolume Btrfs. Saat Anda mengambil snapshot baru pada sistem file Btrfs sumber, snapshot baru dibandingkan dengan snapshot terbaru (tersedia di sistem file Btrfs sumber dan tujuan) dari sistem file Btrfs sumber. Btrfs akan menghitung selisihnya dan hanya mengirim data yang diperlukan ke sistem file Btrfs tujuan (drive eksternal).
Misalnya, untuk mengambil cadangan inkremental dari /data/.snapshots/web1-2020-12-31 snapshot, Anda harus menentukan snapshot induk (snapshot terbaru yang tersedia di sistem file Btrfs sumber dan tujuan), /data/.snapshot/web1-2020-12-30, demikian juga.
Cadangan tambahan dari /data/.snapshot/web1-2020-12-31 snapshot dapat diambil ke sistem file Btrfs eksternal, sebagai berikut:
$ sudo btrfs kirim -p /data/.snapshot/web1-2020-12-30 /data/.snapshot/web1-2020-12-31 | sudo btrfs menerima /snapshots
Cadangan tambahan dari /data/.snapshot/web1-2020-12-31 snapshot harus diambil.
Seperti yang Anda lihat, cuplikan web1-2020-12-31 telah dicadangkan ke sistem file Btrfs eksternal yang dipasang di /snapshot direktori.
$ sudo btrfs daftar subvolume /snapshots
Seperti yang Anda lihat pada tangkapan layar di bawah, perubahan yang telah Anda buat pada to indeks.file html tersedia di cuplikan web1-2020-12-31 yang telah dicadangkan ke sistem file Btrfs eksternal.
$ cat /snapshots/web1-2020-12-31/index.html
Dengan cara yang sama, Anda dapat mengambil sebanyak mungkin cadangan inkremental dari snapshot yang Anda inginkan.
Saya akan menunjukkan kepada Anda bagaimana melakukan pencadangan tambahan sekali lagi. Saya tidak akan meluangkan waktu untuk menjelaskannya lagi. Sebagai gantinya, saya hanya akan menunjukkan kepada Anda proses untuk kejelasan.
Buka indeks.file html dari /data/proyek/subvolume web1, sebagai berikut:
$ sudo nano /data/proyek/web1/indeks.html
Buat perubahan apa pun yang Anda inginkan pada indeks.file html. Setelah selesai, tekan <Ctrl> + X diikuti oleh kamu dan <Memasukkan> untuk menyimpan indeks.file html.
Ambil cuplikan baru baca-saja dari /data/proyek/subvolume web1, sebagai berikut:
$ sudo btrfs subvolume snapshot -r /data/projects/web1 /data/.snapshot/web1-2020-12-31_2
Ambil cadangan tambahan dari /data/.snapshots/web1-2020-12-31_2 snapshot ke sistem file Btrfs eksternal, sebagai berikut:
$ sudo btrfs kirim -p /data/.snapshot/web1-2020-12-31 /data/.snapshot/web1-2020-12-31_2 | sudo btrfs menerima /snapshotsCatatan: Sekarang, snapshot induk tempat /data/.snapshots/web1-2020-12-31_2 snapshot akan dibandingkan adalah /data/.snapshot/web1-2020-12-31.
Seperti yang Anda lihat, web1-2020-12-31_2 snapshot telah dicadangkan ke sistem file Btrfs eksternal yang dipasang di /snapshot direktori.
$ sudo btrfs daftar subvolume /snapshots
Seperti yang Anda lihat pada tangkapan layar di bawah, perubahan terbaru yang dilakukan pada to indeks.file html tersedia di cuplikan web1-2020-12-31_2 dicadangkan ke sistem file Btrfs eksternal.
$ cat /snapshots/web1-2020-12-31_2/index.html
Menjaga Kebersihan
Jika Anda sering mencadangkan snapshot Btrfs, Anda akan mendapatkan banyak snapshot, dan mungkin akan sulit untuk mengelolanya. Untungnya, Anda dapat menghapus snapshot apa pun dari sistem file Btrfs.
Jika Anda menggunakan drive eksternal yang cukup besar untuk menyimpan cadangan snapshot Btrfs, maka Anda dapat menyimpan beberapa snapshot di sistem file Btrfs Anda dan mencadangkan semua snapshot di drive eksternal Anda.
Jika Anda menggunakan drive eksternal yang lebih kecil, maka Anda dapat secara selektif menyimpan hanya snapshot yang paling penting yang dicadangkan di drive eksternal.
Untuk melakukan pencadangan snapshot Btrfs Anda, Anda harus menyimpan setidaknya snapshot terbaru di kedua sumber (/data/.snapshot) dan tujuan (/snapshots - drive eksternal) Sistem file Btrfs. Jadi, jangan ragu untuk menghapus snapshot apa pun selain snapshot terbaru di kedua ujungnya.
Misalnya, dalam hal ini, snapshot terbaru adalah web1-2020-12-31_2. Jadi, untuk melakukan pencadangan tambahan, snapshot ini harus disimpan di sistem file Btrfs sumber dan tujuan (drive eksternal).
Misalkan, Anda ingin menghapus /data/.snapshots/web1-2020-12-30 snapshot.
Untuk melakukannya, jalankan perintah berikut:
$ sudo btrfs subvolume hapus /data/.snapshot/web1-2020-12-30
Cuplikan Btrfs /data/.snapshot/web1-2020-12-30 sekarang harus dihapus.
Dengan cara yang sama, Anda dapat menghapus /data/.snapshots/web1-2020-12-31 snapshot, sebagai berikut:
$ sudo btrfs subvolume hapus /data/.snapshot/web1-2020-12-31
Sekarang, hanya snapshot terbaru, /data/.snapshot/web1-2020-12-31_2, tersedia di sistem file Btrfs, dipasang di /data direktori. Snapshot lainnya dicadangkan di drive eksternal, dipasang di /snapshot direktori.
$ sudo btrfs daftar subvolume /data$ sudo btrfs daftar subvolume /snapshots
Memulihkan Foto dari Drive Eksternal
Jika Anda telah mencadangkan snapshot di drive eksternal, Anda dapat memulihkannya kapan saja dari drive eksternal.
Misalnya, saya telah menghapus cuplikan web1-2020-12-30 dari sistem file Btrfs saya, dipasang di /data direktori. Tapi, snapshot ini dicadangkan di drive eksternal, dipasang di /snapshot direktori. Mari kita kembalikan snapshot ini.
$ sudo btrfs daftar subvolume /snapshots
Untuk memulihkan cuplikan web1-2020-12-30 dari drive eksternal, jalankan perintah berikut:
$ sudo btrfs send /snapshots/web1-2020-12-30 | sudo btrfs menerima /data/.snapshot
Itu snapshot web1-2020-12-30 harus dipulihkan pada sistem file Btrfs yang dipasang di /data direktori.
Seperti yang Anda lihat, cuplikan web1-2020-12-30 dipulihkan pada sistem file Btrfs yang dipasang di /data direktori.
$ sudo btrfs daftar subvolume /data
Dan, seperti yang Anda lihat, isi dari indeks.html file dari cuplikan web1-2020-12-30. Ini adalah versi pertama dari indeks.html file dari sebelumnya.
$ kucing /data/.snapshot/web1-2020-12-30/indeks.html
Kesimpulan
Dalam artikel ini, Anda mempelajari cara mencadangkan snapshot sistem file Btrfs Anda ke drive eksternal. Anda juga belajar cara mengambil cadangan tambahan dari snapshot Btrfs Anda ke drive eksternal. Terakhir, Anda mempelajari cara menghapus snapshot yang ada dari sistem file Brtfs dan mengembalikan snapshot dari drive eksternal, juga.