Что такое корень/подтом файловой системы btrfs?

Что такое корень/подтом файловой системы btrfs?

Файловая система Btrfs использует термины subvolume, root-volume, snapshot, top-level, что, default subvolumeна мой взгляд, несколько сбивает с толку.

Примером может служитьСтраница вики btrfs о подтомахв котором говорится

Только что созданная файловая система также является подтомом, называемым верхним уровнем, и имеет внутренний идентификатор 5. Этот подтом не может быть удален или заменен другим подтомом.

Однако, используя такие инструменты, как btrfs-progsкоманды, например

  • список подтомов btrfs
  • btrfs subvolume показать

экспонат, термин подобъем на самом деле не применяется к корневому объему (см.этот другой вопрос). Кроме того, термин top-level(как можно увидеть в выводе приведенных выше команд) на самом деле не ограничивается подтомом/корневым томом с subvolumeid 5. Наконец, похоже, что вы никогда не сможете использовать btrfs sendкорневой том, только подтома (опять же, в отличие от определений выше).

Любая помощь?

решение1

Самый простой способ объяснить это — провести аналогию с ZFS. Подтома в BTRFS функционально эквивалентны zvol из ZFS, за исключением того, что они изначально укоренены где-то в самой файловой системе.

В более общем смысле, подтом состоит из набора внутренних структур данных файловой системы, которые в основном независимы от остальной части дерева. Согласно этому определению и внутреннему содержанию самого кода, верхний уровень или корневой подтом (subvolid 5) технически является подтомом, но он обрабатывается особым образом командами, которые отображают информацию о подтомах, поскольку с ним нельзя делать многие из тех вещей, которые можно делать с обычными подтомами (например, нельзя сделать снимок корневого подтома и нельзя его удалить). С точки зрения пользователя, единственное место, где имеет значение, что корневой подтом является подтомом, — это монтирование с целью -o subvolid=5обойти настройку подтома по умолчанию.

Связанный контент