Ciri snapshot sistem fail Btrfs menggunakan prinsip Copy-on-Write (CoW). Jadi, ia tidak memerlukan banyak ruang cakera, dan anda boleh mengambil gambar subvolume dengan serta-merta.
Sistem fail Btrfs menyokong 2 jenis tangkapan gambar.
- Gambar yang boleh ditulis: Sekiranya anda mengambil gambar yang boleh ditulis, anda boleh mengubah suai fail / direktori snapshot itu kemudian. Ini adalah jenis snapshot lalai dari sistem fail Btrfs.
- Petikan baca sahaja: Sekiranya anda mengambil gambar hanya baca, anda tidak dapat mengubah suai fail / direktori snapshot itu nanti.
Artikel ini akan menunjukkan kepada anda cara mengambil gambar ringkas dan baca-baca subvolume sistem fail Btrfs anda. Saya juga akan menunjukkan kepada anda cara mengemas kini snapshot yang boleh ditulis dan memulihkan fail dari snapshot. Saya juga akan menunjukkan cara membuang gambar juga. Oleh itu, mari kita mulakan.
Prasyarat
Untuk mencuba contoh artikel ini,
- Anda mesti memasang sistem fail Btrfs di komputer anda.
- Anda perlu mempunyai cakera keras atau SSD dengan sekurang-kurangnya 1 partisi percuma (dari saiz apa pun).
Saya mempunyai cakera keras 20 GB sdb pada mesin Ubuntu saya. Saya telah membuat 2 partition sdb1 dan sdb2 pada cakera keras ini. Saya akan menggunakan partition sdb1 dalam artikel ini.
$ sudo lsblk -e7
Cakera keras atau SSD anda mungkin mempunyai nama yang berbeza daripada nama saya, begitu juga dengan partisinya. Oleh itu, pastikan untuk menggantikannya dengan milik anda mulai sekarang.
Sekiranya anda memerlukan bantuan untuk memasang sistem fail Btrfs di Ubuntu, periksa artikel saya Pasang dan Gunakan Btrfs di Ubuntu 20.04 LTS.
Sekiranya anda memerlukan bantuan untuk memasang sistem fail Btrfs di Fedora, baca artikel saya Pasang dan Gunakan Btrfs di Fedora 33.
Membuat Sistem Fail Btrfs
Untuk bereksperimen dengan subvolume Btrfs, anda perlu membuat sistem fail Btrfs.
Untuk membuat sistem fail Btrfs dengan label data pada sdb1 partition, jalankan arahan berikut:
$ sudo mkfs.btrfs -L data / dev / sdb1
Sistem fail Btrfs harus dibuat.
Buat direktori / data dengan arahan berikut:
$ sudo mkdir -v / data
Untuk memasang sistem fail Btrfs yang dibuat di sdb1 partition di / data direktori, jalankan arahan berikut:
$ sudo mount / dev / sdb1 / data
Sistem fail Btrfs harus dipasang seperti yang anda lihat dalam tangkapan skrin di bawah.
$ df -h / data
Menyiapkan Sistem Filem Btrfs untuk Gambar
Di Btrfs, anda boleh mengambil gambar subvolume Btrfs sahaja. Akar utama sistem fail Btrfs juga merupakan subvolume. Jadi, anda boleh mengambil sandaran keseluruhan sistem fail Btrfs dan juga subvolume tertentu.
Bahagian ini akan membuat subvolume Btrfs / data / projek / web1 dan buat fail yang diperlukan untuk bahagian seterusnya artikel ini di bawah. Saya juga akan membuat direktori di mana anda boleh menyimpan gambar anda. Di bahagian seterusnya, saya akan menunjukkan kepada anda cara mengambil snapshot (boleh ditulis dan hanya baca), mengemas kini snapshot yang dapat ditulis, dan memulihkan fail dari snapshot. Oleh itu, mari kita mulakan.
Pertama, buat direktori baru / data / projek seperti berikut:
$ sudo mkdir -v / data / projek
Buat subvolume baru laman web1 di dalam / data / projek direktori seperti berikut:
$ sudo btrfs subvolume create / data / projek / web1
Buat fail baru indeks.html di dalam / data / projek / web1 subvolume seperti berikut:
$ sudo nano / data / projek / web1 / indeks.html
Taipkan baris kod berikut di indeks.html fail.
Hello World 4
Setelah selesai, tekan
Buat fail baru gaya.css di dalam / data / projek / web1 subvolume seperti berikut:
$ sudo nano / data / projek / web1 / gaya.css
Taipkan baris kod berikut di gaya.css fail.
h1warna: hijau;
Setelah selesai, tekan
Sekarang, / data / projek / web1 subvolume mempunyai indeks.html dan gaya.css fail.
$ ls -lh / data / projek / web1
Saya ingin menyimpan semua gambar sistem fail Btrfs ini di / data /.gambar direktori.
Buat / data /.gambar direktori dengan arahan berikut:
$ sudo mkdir -v / data /.gambar
Mengambil Ringkasan Subvolume
Untuk mengambil gambar dari / data / projek / web1 subvolume menjadi / data /.snapshot / web1-2020-12-25 direktori (akan dibuat secara automatik), jalankan arahan berikut:
$ sudo btrfs snapshot subvolume / data / projek / web1 / data /.snapshot / web1-2020-12-25
Ringkasan gambar / data / projek / web1 direktori harus dibuat pada / data /.snapshot / web1-2020-12-25 direktori.
Seperti yang anda lihat dalam tangkapan skrin di bawah, subvolume baru .snapshot / web1-2020-12-25 diciptakan. Gambaran ringkas sebenarnya adalah subvolume.
senarai / data subvolume $ sudo btrfs
Anda dapat melihat lebih banyak maklumat mengenai snapshot yang telah anda buat di / data /.snapshot / web1-2020-12-25 direktori seperti berikut:
$ sudo btrfs pertunjukan / data subvolume /.snapshot / web1-2020-12-25
Seperti yang anda lihat, semua fail yang ada di / data / projek / web1 subvolume ada di / data /.snapshot / web1-2020-12-25 gambar.
$ pokok -a / data
Memulihkan Fail dari Gambar
Di bahagian ini, saya akan menunjukkan kepada anda bagaimana memulihkan fail dari snapshot Btrfs.
Pertama, saya akan menunjukkan cara memulihkan satu fail dari snapshot.
Buka / data / projek / web1 / indeks.html failkan dengan penyunting teks nano seperti berikut:
$ sudo nano / data / projek / web1 / indeks.html
Buat perubahan yang anda mahukan.
Setelah selesai, tekan
Seperti yang anda lihat, yang utama indeks.html fail berbeza dengan indeks.html fail dalam gambar.
$ cat / data / projek / web1 / indeks.html$ kucing / data /.snapshot / web1-2020-12-25 / indeks.html
Kami telah membuat perubahan menjadi yang utama indeks.html fail tidak diingini, dan kami ingin memulihkan indeks.html fail dari tangkapan gambar.
Anda boleh memulihkan indeks.html fail dari snapshot seperti berikut:
$ sudo cp -v / data /.snapshot / web1-2020-12-25 / indeks.html / data / projek / web1 / indeks.html
Seperti yang anda lihat, indeks.html fail dipulihkan dari tangkapan gambar.
$ cat / data / projek / web1 / indeks.html$ kucing / data /.snapshot / web1-2020-12-25 / indeks.html
Sekarang, mari kita lihat bagaimana memulihkan semua fail / direktori dari snapshot.
Keluarkan semua fail dari / data / projek / web1 gambar seperti berikut:
$ sudo rm -rv / data / projek / web1 / *
Untuk memulihkan semua fail / direktori dari snapshot, jalankan arahan berikut:
$ sudo rsync -avz / data /.snapshot / web1-2020-12-25 / / data / projek / web1 /
Seperti yang anda lihat, fail / direktori dipulihkan dari snapshot.
$ ls -lh / data / projek / web1
Akhirnya, mari kita lihat cara memulihkan fail / direktori dari snapshot dalam mod cermin. Dalam mod cermin, fail / direktori subvolume akan sama seperti dalam gambar. Sekiranya terdapat fail / direktori dalam subvolume yang tidak terdapat dalam snapshot, fail tersebut akan dikeluarkan.
Mari buat fail baru di subvolume untuk membezakan pokok fail dari gambar.
Buat a BACA SAYA.txt fail di / data / projek / web1 subvolume seperti berikut:
$ echo "hello world 5" | sudo tee / data / projek / web1 / README.txt
Seperti yang anda lihat, pokok fail dari / data / projek / web1 subvolume berbeza dengan / data /.snapshot / web1-2020-12-25 gambar.
$ pokok -a / data
Untuk memulihkan fail / direktori dari / data /.snapshot / web1-2020-12-25 gambar ke / data / projek / web1 subvolume dalam mod cermin, jalankan arahan berikut:
$ sudo rsync -avz --hapus / data /.snapshot / web1-2020-12-25 / / data / projek / web1 /
Semua fail / direktori / data / projek / web1 subvolume harus dipulihkan (dalam mod cermin) dari / data /.snapshot / web1-2020-12-25 gambar.
Pokok fail dari / data / projek / web1 subvolume dan / data /.snapshot / web1-2020-12-25 gambar mesti sama.
Seperti yang anda lihat, indeks.fail dan gaya html.kandungan fail css adalah sama di / data / projek / web1 subvolume dan / data /.snapshot / web1-2020-12-25 gambar.
Kandungan dari indeks.html dan gaya.css fail di / data / projek / web1 subvolume.
$ cat / data / projek / web1 / indeks.html$ cat / data / projek / web1 / gaya.css
Kandungan dari indeks.html dan gaya.css fail di / data /.snapshot / web1-2020-12-25 gambar.
$ cat / data / projek / web1 / indeks.html$ cat / data / projek / web1 / gaya.css
Mengemas kini Gambar
Secara lalai, sistem fail Btrfs mengambil gambar yang boleh ditulis. Cuplikan Btrfs sama seperti subvolume. Oleh itu, anda boleh mengubah / mengemas kini fail / direktori snapshot yang boleh ditulis.
Mari kita kemas kini indeks.html fail di / data / projek / web1 subvolume.
Pertama, buka indeks.html fail dari / data / projek / web1 subvolume dengan nano penyunting teks seperti berikut:
$ sudo nano / data / projek / web1 / indeks.html
Buat perubahan yang anda mahukan. Setelah selesai, tekan
Seperti yang anda lihat, indeks.fail html dari / data / projek / web1 subvolume berbeza dengan / data /.snapshot / web1-2020-12-25 gambar.
$ cat / data / projek / web1 / indeks.html$ kucing / data /.snapshot / web1-2020-12-25 / indeks.html
Anda mahu menyimpannya indeks.html fail dari / data / projek / web1 subvolume.
Untuk mengemas kini indeks.html fail di / data /.snapshot / web1-2020-12-25 snapshot, jalankan arahan berikut:
$ sudo cp -v / data / projek / web1 / indeks.html / data /.snapshot / web1-2020-12-25 / indeks.html
Seperti yang anda lihat, indeks.html fail dari / data /.snapshot / web1-2020-12-25 snapshot dikemas kini.
Mengemas kini snapshot semudah menyalin fail baru ke snapshot.
Mengambil Gambar Hanya Baca Subvolume
Kadang-kadang, anda tidak mahu gambar yang anda ambil diperbaharui dengan cara apa pun. Sekiranya demikian, anda boleh membuat tangkapan gambar baca sahaja.
Contohnya, untuk membuat snapshot baca sahaja / data /.gambar / web1-2020-12-26 daripada / data / projek / web1 subvolume, jalankan arahan berikut:
$ sudo btrfs snapshot subvolume -r / data / projek / web1 / data /.gambar / web1-2020-12-26
Seperti yang anda lihat, subvolume baru .gambar / web1-2020-12-26 diciptakan.
senarai / data subvolume $ sudo btrfs
Seperti yang anda lihat, gambarnya / data /.gambar / web1-2020-12-26 hanya boleh dibaca.
$ sudo btrfs rancangan / data subvolume /.gambar / web1-2020-12-26
Mari kita kemas kini indeks.html fail dari / data / projek / web1 subvolume.
Untuk melakukannya, buka indeks.html fail dari / data / projek / web1 subvolume dengan nano penyunting teks seperti berikut:
$ sudo nano / data / projek / web1 / indeks.html
Buat perubahan yang anda mahukan. Setelah selesai, tekan
Seperti yang anda lihat, indeks.html di dalam / data / projek / web1 subvolume berbeza dengan / data /.gambar / web1-2020-12-26 gambar.
$ cat / data / projek / web1 / indeks.html$ kucing / data /.snapshot / web1-2020-12-26 / indeks.html
Mari cuba mengemas kini indeks.html fail di / data /.gambar / web1-2020-12-26 gambar.
$ sudo cp -v / data / projek / web1 / indeks.html / data /.snapshot / web1-2020-12-26 / indeks.html
Seperti yang anda lihat, anda tidak dapat mengemas kini indeks.html fail dari / data /.gambar / web1-2020-12-26 snapshot kerana gambar itu hanya boleh dibaca.
Mengeluarkan Petikan
Saya telah memberitahu anda sebelumnya bahawa snapshot Btrfs seperti subvolume. Jadi, anda boleh membuang snapshot Btrfs sama seperti anda membuang subvolume Btrfs. Perintah yang sama.
Ini adalah bagaimana pokok fail sistem fail Btrfs dipasang di / data direktori kelihatan seperti pada masa ini.
$ pokok -a / data
Mari keluarkan .snapshot / web1-2020-12-25 gambar.
senarai / data subvolume $ sudo btrfs
Untuk membuang / data /.snapshot / web1-2020-12-25 snapshot, jalankan arahan berikut:
$ sudo btrfs subvolume delete / data /.snapshot / web1-2020-12-25
Seperti yang anda lihat, gambarnya .snapshot / web1-2020-12-25 tidak lebih.
senarai / data subvolume $ sudo btrfs
Seperti yang anda lihat, fail / direktori / data /.snapshot / web1-2020-12-25 snapshot dikeluarkan juga.
$ pokok -a / data
Kesimpulannya
Artikel ini telah menunjukkan kepada anda cara mengambil gambar ringkas dan baca sahaja subvolume sistem fail Btrfs anda. Saya juga telah menunjukkan kepada anda cara mengemas kini snapshot yang boleh ditulis dan memulihkan fail dari snapshot. Saya juga telah menunjukkan cara membuang snapshot Btrfs. Artikel ini akan membantu anda memulakan dengan ciri snapshot Btrfs.