Как определить lxc-контейнерный тип запоминающего устройства (каталог / btrfs / aufs и т.д.)?

Скажите, что каждый имеет, устанавливают раздел BTRFS и создал несколько контейнеров LXC на нем.

Как может, задним числом, быть определен, какой тип запоминающего устройства каждый контейнер использует (поэтому, использует ли каждый запоминающее устройство 'каталога', 'BTRFS' один, или даже 'AUFS' один, и т.д.)?

Это может быть важно для внутреннего изгиба, знают, каковы thecontainer опции обслуживания.

0
задан 1 October 2017 в 04:16

2 ответа

Когда контейнер создается, существует конфигурационный файл, который также создается. Конфигурационный файл определяет определенные настройки в контейнере. Для контейнеров LXC это хранится, по умолчанию под

/var/lib/lxc/YourContainerName-foo/config (для привилегированных контейнеров).

и

~/.local/share/lxc/YourContainerName-foo/config (для непривилегированных контейнеров).

Запоминающее устройство по умолчанию для lxc контейнеров является основанной на каталоге файловой системой, названной dir, это означает, что конкретная файловая система не определяется. 'Ни один' опция не действует как псевдоним для dir. Если dir будет определенным запоминающим устройством, то корневая файловая система контейнера будет расположена в usr/local/var/lib/lxc/YourContainerName-foo/rootfs, и ext4 будет использоваться в качестве корневой файловой системы.

Место для проверки типа запоминающего устройства, используемого для каждого контейнера, было бы в файле конфигурации, упомянутом выше под/var/lib/lxc/container/config.

Под разделом "Container specific configuration" существует строка, которая определяет rootfs.backend.

например, lxc.rootfs.backend = lvm

lxc.rootfs.backend = dir

lxc.rootfs.backend = btrfs

и т.д.

Другой метод, который может использоваться, но не в качестве надежного, должен использовать df-Th команда в приглашении оболочки из lxc контейнера. Это позволит, Вы к не только проверяете состояние пространства диска, но и также покажете тип файловой системы. Вывод может вводить в заблуждение при попытке определить запоминающее устройство файловой системы, потому что dir будет использовать ext4, и LVM будет использовать ext3. т.е. вывод df показал бы как ext3, даже при том, что lvm также используется.

Надеюсь, это поможет

1
ответ дан 2 November 2019 в 04:41

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

  1. У вас есть доступ к командной строке Linux (CLI).
  2. Вы скачали / установили LXC и btrfs-tools.
  3. Вы загрузили модуль ядра btrfs.

Я бы подумал, что если бы вы клонировали контейнер lxc, все равно была бы запись бэкэнда корневой файловой системы, поскольку именно это определяет тип rootfs. Сказав это, из моего опыта клонирования в полной виртуализации, всегда возникают противоречивые проблемы.

Кроме того, вы создали реальную файловую систему btrfs или просто определили ее в команде lxc-create? Это может не отображаться, потому что фактическое блочное устройство не может быть определено.

Я не совсем уверен, какова может быть общая проблема, но похоже, что она связана с клоном. т. е. новый контейнер, все еще указывающий на исходное устройство-блок контейнеров dir для хранения или что-то в этом роде. Позвольте мне привести некоторые моменты, которые могут помочь в его устранении.

Я бы создал контейнер LXC с резервным хранилищем BTRFS.

Установить BTRFS (звучит так, как будто вы сделали это):

apt-get -y install btrfs-tools

Загрузить модуль ядра ( Похоже, вы сделали это):

modprobe btrfs

Создайте файловую систему btrfs (похоже, вы сделали это):

[ 1114] mkfs -t btrfs / dev / sda

Затем будет смонтирована файловая система на блочном устройстве.

mkdir / home / btrfs-mnt (или там, где находится желаемое местоположение)

mount / dev / sda / home / btrfs-mnt

Это были бы шаги что я бы взял, чтобы сделать пригодную для использования файловую систему для контейнеров LXC.

Если вы создаете кучу контейнеров btrfs, тогда:

file -s / dev / sda ( показывает, что тип файла - файловая система btrfs [тысяча сто сорок два]).

шоу файловой системы btrfs ( показывает файловые системы btrfs ).

btrfs subvolume show / home / btrfs-mnt ( идентифицирует корневой каталог btrfs ).

cat / proc / mounts | grep btrfs ( показывает смонтированные блочные устройства btrfs ).

Файловая система btrfs df / home / btrfs-mnt ( показывает использование диска btrfs ).

После создания блочного устройства btrfs и установки LXC я могу создать контейнер. Путь к монтированию btrfs будет определен с помощью опции --lxcpath =, а тип btrfs rootfs определен с помощью опции --bdev. Поскольку путь к местоположению lxc по умолчанию теперь другой, требуется символическая ссылка для перенаправления на фактическое местоположение.

Создать контейнер LXC с поддержкой btrfs:

lxc-create --bdev btrfs --lxcpath = / home / btrfs-mnt --name mybtrfscontainerfoo --template ubuntu

создать символическую ссылку на фактический файл конфигурации.

cd / var / lib / lxc / mybtrfscontainerfoo /

мне нравится, что вы пытаетесь настроить контейнеры btrfs или скопировать их, так что, надеюсь, это поможет. OpenWRT, я не уверен, что ты там делаешь. Я использовал его только для получения нестандартной прошивки на домашнем роутере.

Надеюсь, это поможет, если нет, то, возможно, немного подробнее расскажет о вашем окружении, может помочь мне получить более ясную картину.

Дайте мне знать, как вы поживаете.

Лучшие начинания,

Джейсон-С

0
ответ дан 2 November 2019 в 04:41

Другие вопросы по тегам:

Похожие вопросы: