Btrfs

Як користуватися знімками Btrfs

Як користуватися знімками Btrfs
Файлова система Btrfs має вбудовану підтримку знімків на рівні файлової системи. Ви можете створити підтомник у своїй файловій системі Btrfs і робити знімки файлів / каталогів у цьому підтоварі. Зробивши знімок підтома, ви збережете стан файлів / каталогів у цьому підтомі. Ви можете відновити будь-які файли / каталоги підтома зі знімка, якщо вам це потрібно.

Функція знімка файлової системи Btrfs використовує принцип копіювання на запис (CoW). Отже, це не займає багато місця на диску, і ви можете миттєво робити знімки підтому.

Файлова система Btrfs підтримує 2 типи знімків.

  1. Знімки, що можна записати: Якщо ви зробите знімок для запису, ви можете змінити файли / каталоги цього знімка пізніше. Це тип знімка за замовчуванням файлової системи Btrfs.
  2. Знімки лише для читання: Якщо ви зробите знімок лише для читання, пізніше ви не зможете змінити файли / каталоги цього знімка.

Ця стаття покаже вам, як робити знімки ваших підтомів файлової системи Btrfs, доступні лише для читання. Я також покажу вам, як оновити знімок для запису та відновити файли зі знімка. Я також покажу вам, як видалити знімок. Отже, давайте почнемо.

Передумови

Щоб спробувати приклади цієї статті,

У мене жорсткий диск на 20 Гб sdb на моїй машині Ubuntu. Я створив 2 розділи sdb1 і sdb2 на цьому жорсткому диску. Я буду використовувати розділ sdb1 у цій статті.

$ sudo lsblk -e7

Ваш жорсткий диск або SSD може мати інше ім'я, ніж моє, так само як і розділи. Тож переконайтеся, що відтепер їх замінюєте на свої.

Якщо вам потрібна допомога щодо встановлення файлової системи Btrfs на Ubuntu, перегляньте мою статтю Встановіть та використовуйте Btrfs на Ubuntu 20.04 LTS.

Якщо вам потрібна допомога щодо встановлення файлової системи Btrfs на Fedora, перегляньте мою статтю Встановіть та використовуйте Btrfs на Fedora 33.

Створення файлової системи Btrfs

Щоб експериментувати з підтомами Btrfs, потрібно створити файлову систему Btrfs.

Для створення файлової системи Btrfs з міткою даних на sdb1 розділу, виконайте таку команду:

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

Слід створити файлову систему Btrfs.

Створіть каталог / дані з наступною командою:

$ sudo mkdir -v / data

Для монтування файлової системи Btrfs, створеної на sdb1 розділ у / дані каталог, запустіть таку команду:

$ sudo mount / dev / sdb1 / data

Файлову систему Btrfs слід монтувати, як ви можете бачити на скріншоті нижче.

$ df -h / дані

Підготовка файлової системи Btrfs до знімків

У Btrfs ви можете робити знімки лише підтомів Btrfs. Основним коренем файлової системи Btrfs також є субтом. Отже, ви можете взяти резервну копію всієї файлової системи Btrfs, а також певних підтомів.

Цей розділ створить підтомник Btrfs / data / projects / web1 і створіть необхідні файли для наступних розділів цієї статті нижче. Я також буду створювати каталог, де ви зможете зберігати свої знімки. У наступних розділах я покажу вам, як робити знімки (доступні для запису та лише для читання), оновлювати знімок, що можна записати, та відновити файли зі знімка. Отже, давайте почнемо.

Спочатку створіть новий каталог / дані / проекти наступним чином:

$ sudo mkdir -v / data / projects

Створіть новий підтом web1 в / дані / проекти каталог наступним чином:

$ sudo btrfs підтомник create / data / projects / web1

Створіть новий файл індекс.html в / data / projects / web1 підтоми наступним чином:

$ sudo nano / data / projects / web1 / index.html

Введіть наступні рядки кодів у індекс.html файл.




Демо-сайт



Привіт Світ 4



Закінчивши, натисніть + X слідом за ним Y і щоб зберегти індекс.html файл.

Створіть новий файл стиль.css в / data / projects / web1 підтоми наступним чином:

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

Введіть наступні рядки кодів у стиль.css файл.

h1
колір: зелений;

Закінчивши, натисніть + X слідом за ним Y і щоб зберегти стиль.css файл.

Тепер, / data / projects / web1 підтомник має індекс.html і стиль.css файл.

$ ls -lh / data / projects / web1

Я хочу зберегти всі знімки цієї файлової системи Btrfs у / дані /.знімки каталог.

Створіть / дані /.знімки каталог з наступною командою:

$ sudo mkdir -v / data /.знімки

Робіть знімки підтому

Зробити знімок / data / projects / web1 субтом в / дані /.знімки / web1-2020-12-25 каталог (буде створений автоматично), запустіть таку команду:

Знімок підтома $ sudo btrfs / data / projects / web1 / data /.знімки / web1-2020-12-25

Знімок / data / projects / web1 каталог повинен бути створений на / дані /.знімки / web1-2020-12-25 каталог.

Як ви можете бачити на скріншоті нижче, новий підтом .знімки / web1-2020-12-25 створюється. Знімок фактично є підтомом.

$ sudo btrfs список / дані підтомів

Ви можете побачити більше інформації про створений знімок у / дані /.знімки / web1-2020-12-25 каталог наступним чином:

$ sudo btrfs підтомник show / data /.знімки / web1-2020-12-25

Як бачите, усі файли, що знаходяться в / data / projects / web1 підтоми знаходяться в / дані /.знімки / web1-2020-12-25 знімок.

$ дерево -a / дані

Відновлення файлів зі знімків

У цьому розділі я збираюся показати вам, як відновити файли зі знімків Btrfs.

Спочатку я покажу вам, як відновити окремий файл зі знімка.

Відкрийте / data / projects / web1 / index.html файл у текстовому редакторі nano таким чином:

$ sudo nano / data / projects / web1 / index.html

Внесіть потрібні зміни.

Закінчивши, натисніть + X слідом за ним Y і щоб зберегти файл.

Як бачите, головне індекс.html файл відрізняється від файлу індекс.html файл у знімку.

$ cat / data / projects / web1 / index.html
$ cat / дані /.знімки / web1-2020-12-25 / index.html

Ми внесли зміни до основного індекс.html файл є небажаним, і ми хочемо відновити файл індекс.html файл зі знімка.

Ви можете відновити індекс.html файл зі знімка таким чином:

$ sudo cp -v / data /.знімки / web1-2020-12-25 / index.html / data / projects / web1 / index.html

Як бачите, індекс.html файл відновлюється зі знімка.

$ cat / data / projects / web1 / index.html
$ cat / дані /.знімки / web1-2020-12-25 / index.html

Тепер давайте подивимося, як відновити всі файли / каталоги зі знімка.

Видаліть усі файли з / data / projects / web1 знімок наступним чином:

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

Щоб відновити всі файли / каталоги зі знімка, виконайте таку команду:

$ sudo rsync -avz / data /.знімки / web1-2020-12-25 / / data / projects / web1 /

Як бачите, файли / каталоги відновлюються зі знімка.

$ ls -lh / data / projects / web1

Нарешті, давайте подивимося, як відновити файли / каталоги зі знімка в дзеркальному режимі. У дзеркальному режимі файли / каталоги підтому будуть такими ж, як на знімку. Якщо в підтоміку є файли / каталоги, які недоступні на знімку, їх буде видалено.

Давайте створимо новий файл у підтомі, щоб відрізнити дерево файлів від знімка.

Створити ЧИТАТИ.txt файл у / data / projects / web1 підтоми наступним чином:

$ echo "привіт світ 5" | sudo tee / data / projects / web1 / README.txt

Як бачите, дерево файлів / data / projects / web1 підтомник відрізняється від / дані /.знімки / web1-2020-12-25 знімок.

$ дерево -a / дані

Щоб відновити файли / каталоги з / дані /.знімки / web1-2020-12-25 знімок до / data / projects / web1 підтомник у дзеркальному режимі, виконайте таку команду:

$ sudo rsync -avz --delete / data /.знімки / web1-2020-12-25 / / data / projects / web1 /

Всі файли / каталоги / data / projects / web1 підтомник слід відновити (у дзеркальному режимі) з / дані /.знімки / web1-2020-12-25 знімок.

Дерево файлів / data / projects / web1 субтом і / дані /.знімки / web1-2020-12-25 знімок повинен бути однаковим.

Як бачите, індекс.файл HTML і стиль.css вміст файлу однаковий у файлі / data / projects / web1 субтом і / дані /.знімки / web1-2020-12-25 знімок.

Зміст індекс.html і стиль.css файл у / data / projects / web1 субтом.

$ cat / data / projects / web1 / index.html
$ cat / data / projects / web1 / style.css

Зміст індекс.html і стиль.css файл у / дані /.знімки / web1-2020-12-25 знімок.

$ cat / data / projects / web1 / index.html
$ cat / data / projects / web1 / style.css

Оновлення знімка

За замовчуванням файлова система Btrfs робить знімки, доступні для запису. Знімок Btrfs схожий на субтом. Отже, ви можете змінювати / оновлювати файли / каталоги знімкового знімка, який можна записати.

Давайте оновимо індекс.html файл у / data / projects / web1 субтом.

Спочатку відкрийте індекс.html файл із / data / projects / web1 підтоми з нано текстовий редактор наступним чином:

$ sudo nano / data / projects / web1 / index.html

Внесіть потрібні зміни. Закінчивши, натисніть + X слідом за ним Y і щоб зберегти індекс.html файл.

Як бачите, індекс.html файл / data / projects / web1 підтомник відрізняється від / дані /.знімки / web1-2020-12-25 знімок.

$ cat / data / projects / web1 / index.html
$ cat / дані /.знімки / web1-2020-12-25 / index.html

Ви хочете зберегти індекс.html файл / data / projects / web1 субтом.

Щоб оновити індекс.html файл у / дані /.знімки / web1-2020-12-25 знімок, виконайте таку команду:

$ sudo cp -v / data / projects / web1 / index.html / data /.знімки / web1-2020-12-25 / index.html

Як бачите, індекс.html файл / дані /.знімки / web1-2020-12-25 знімок оновлено.

Оновити знімок так само просто, як і копіювати нові файли на знімок.

Робіть знімки підтому лише для читання

Іноді ви не хочете, щоб зроблені вами знімки будь-яким чином оновлювались. У такому випадку ви можете створити знімки лише для читання.

Наприклад, для створення знімка лише для читання / дані /.знімки / web1-2020-12-26 з / data / projects / web1 підтомі, виконайте таку команду:

Знімок підтома $ sudo btrfs -r / data / projects / web1 / data /.знімки / web1-2020-12-26

Як бачите, новий підтом .знімки / web1-2020-12-26 створюється.

$ sudo btrfs список / дані підтомів

Як бачите, знімок / дані /.знімки / web1-2020-12-26 лише для читання.

$ sudo btrfs підтомник show / data /.знімки / web1-2020-12-26

Давайте оновимо індекс.html файл із / data / projects / web1 субтом.

Для цього відкрийте індекс.html файл із / data / projects / web1 підтоми з нано текстовий редактор наступним чином:

$ sudo nano / data / projects / web1 / index.html

Внесіть потрібні зміни. Закінчивши, натисніть + X слідом за ним Y і щоб зберегти зміни.

Як бачите, індекс.html в / data / projects / web1 підтомник відрізняється від / дані /.знімки / web1-2020-12-26 знімок.

$ cat / data / projects / web1 / index.html
$ cat / дані /.знімки / web1-2020-12-26 / index.html

Спробуємо оновити індекс.html файл у / дані /.знімки / web1-2020-12-26 знімок.

$ sudo cp -v / data / projects / web1 / index.html / data /.знімки / web1-2020-12-26 / index.html

Як бачите, ви не можете оновити індекс.html файл / дані /.знімки / web1-2020-12-26 знімок, тому що знімок доступний лише для читання.

Видалення знімка

Я вже говорив вам раніше, що знімок Btrfs схожий на підтом. Отже, ви можете видалити знімок Btrfs так само, як видалити підтом Btrfs. Та сама команда.

Ось як дерево файлів файлової системи Btrfs змонтовано на / дані каталог виглядає на даний момент.

$ дерево -a / дані

Давайте видалимо .знімки / web1-2020-12-25 знімок.

$ sudo btrfs список / дані підтомів

Щоб видалити / дані /.знімки / web1-2020-12-25 знімок, виконайте таку команду:

$ sudo btrfs subvolume delete / data /.знімки / web1-2020-12-25

Як бачите, знімок .знімки / web1-2020-12-25 вже немає.

$ sudo btrfs список / дані підтомів

Як бачите, файли / каталоги / дані /.знімки / web1-2020-12-25 знімок також видаляється.

$ дерево -a / дані

Висновок

У цій статті показано, як робити знімки ваших підтомів файлової системи Btrfs, доступні для читання та лише для читання. Я також показав вам, як оновити знімок, який можна записати, та відновити файли зі знімка. Я також показав вам, як видалити знімок Btrfs. Ця стаття повинна допомогти вам розпочати роботу зі знімком Btrfs.

Битва за Веснот 1.13.6 Розробка випущена
Битва за Веснот 1.13.6, випущений минулого місяця, є шостим випуском розробки в 1.13.x, і це забезпечує низку вдосконалень, особливо до інтерфейсу кор...
Як встановити League of Legends на Ubuntu 14.04
Якщо ви шанувальник League of Legends, то це можливість для вас тестувати League of Legends. Зверніть увагу, що LOL підтримується на PlayOnLinux, якщо...
Встановіть останню стратегічну гру OpenRA на Ubuntu Linux
OpenRA - це ігровий движок Libre / Free Real Time Strategy, який відтворює ранні ігри Вествуда, такі як класичний Command & Conquer: Red Alert. Пошире...