21

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

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

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

3 ответа3

12

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

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

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

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

7

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

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

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

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

Копирование или перемещение данных между подобъемами, например, mv dir1/dataset1 dir_subvolume1/ создает все действительные значения io для копирования данных в другой подобъем и, в случае перемещения, удаления из исходного. И очень эффективное копирование тонн данных, просто делая ссылки и, таким образом, используя функцию 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 для удаления предыдущего содержимого корневого тома. Обратная манипуляция (переименование подобъема в корневой том) не представляется возможной.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .