Есть несколько важных вещей, чтобы отметить. Наименования:
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 :)