Как переименовать подобъем BTRFS?

24

У меня есть файловая система BTRFS с набором вложенных томов. Все идет нормально. Мне нужно изменить имя вложенного тома, к сожалению, btrfsпрограмма не позволяет мне переименовать вложенный том. Поиск в Google дал некоторые результаты, один сказал, что я могу просто mv, другой сказал, что я могу просто snapshotперевести новое имя и удалить старый подобъем. Перед тем, как разбить мой раздел и перезагрузить его из резервной копии (он довольно большой), мой вопрос:

  • Каков в настоящее время лучший способ переименовать подобъем?
  • Это нормально mv, или это сделает недействительными некоторые внутренние структуры?
  • Является ли создание нового снимка и удаление старого подсобора способом, или это имеет некоторые недостатки?

Я знаю, что все еще экспериментально, но для моих целей это работало довольно хорошо (пока, и у меня есть дополнительные резервные копии на каждый день).

hochl
источник
1
рад слышать, что btrfs работает хорошо для вас. До сих пор это работает хорошо для меня. Нет проблем.
MountainX для Моники Челлио

Ответы:

16

Просто mvэто. Это рекомендуемый способ в документации сообщества Ubuntu .

И для дальнейшего разъяснения, почему это правильный способ сделать это, приведем цитату из руководства btrfs sysadmin:

моментальные снимки

Снимок - это просто подобъем, который делится своими данными (и метаданными) с некоторым другим подобъемом, используя возможности COW btrfs. После создания [доступного для записи моментального снимка] нет разницы в статусе между исходным подобъемом и новым подобъемом моментального снимка. Чтобы выполнить откат к снимку, размонтируйте измененный исходный подобъем и установите его на место. На этом этапе исходный подобъем может быть удален при желании. Так как снимок является вложенным, снимки снимков также возможны.

MountainX для Моники Челлио
источник
8

Есть несколько важных вещей, чтобы отметить. Наименования:

btrfs Subvolume - независимая insideфайловая система контейнера данных. Представляется в виде каталога существующей ФС. Если вы создадите новый подобъем, он будет пуст, готов к использованию логического блока данных внутри файловой системы. Очень удобно использовать там, где данные должны быть логически разделены, например, разные виртуальные машины или разные клиенты на разных подобъемах. Это позволяет very fastудалить весь логический блок данных с помощью команды удаления всего объема.

btrfs Snapshot - копия existingвложенного тома со всеми его данными на момент создания снимка. Может использоваться в качестве оперативной резервной копии для возврата настроек или изменений, например, для создания снимка с минимального объема, внесения изменений (ВМ или данные), проверки, если все в порядке, после некоторого льготного периода удалите снимок. Важно отметить: снимки могут быть доступны только для чтения ( -rпереключатель) и, таким образом, могут использоваться в качестве блоков приращений изменений FS и, возможно, переноситься в совершенно другую BTRFS!

Текущие (2016-12-30) ограничения BTRFS:

Копирование или перемещение данных между подобъемами, например, mv dir1/dataset1 dir_subvolume1/создание всех реальных операций для копирования данных в другой подобъем и, в случае перемещения, удаление из исходного. И очень эффективное копирование тонн данных, просто делая ссылки и, таким образом, используя функцию COW в BTRFS:

cp -a --reflink=always dir1/dataset1 dir_subvolume1/

и при необходимости:

rm -rf dir1/dataset1

Только для чтения. Снимок вложенного тома можно переименовать (переместить с помощью mv) на существующем уровне каталога, но нельзя переименовать / переместить на другой уровень подкаталога. например , mv /btrfs/subvol_snap1 /btrfs/.snaphotsне представляется возможным, производит не так много объяснил ошибку: mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system. Чтобы иметь возможность перемещать такой снимок, вам нужно создать новый снимок только для чтения существующего снимка только для чтения в новое предпочтительное расположение, а затем удалить старый:

btrfs sub snap -r /btrfs/subvol_snap1 /btrfs/.snaphots/subvol_snap1
btrfs sub del /btrfs/subvol_snap1

Просто для более легкой жизни:

btrfs sub list /btrfs

Я надеюсь, что это сэкономит массу времени всем новым поклонникам btrfs :)

Арунас Бартисиус
источник
4

Если вы хотите переименовать корневой том во вложенный подобъем, вам нужно будет сделать его снимок, а затем выполнить find $ROOT_VOL -xdev -deleteудаление предыдущего содержимого корневого тома. Обратная манипуляция (переименование подобъема в корневой том) не представляется возможной.

Tobu
источник