Многопроходное монтирование папки на файловой системе zfs – Исходный путь не существует

Вопрос или проблема

Я пытаюсь добавить хранилище к существующей виртуальной машине Multipass. Я создал новую файловую систему ZFS, смонтированную локально на /zfs/morespace. Затем попытался смонтировать ее командой

multipass mount /zfs/morespace existingvm:/mnt/morespace

Я получил ошибку:

Путь исходного файла “/zfs/morespace” не существует

Когда я выполнил ls /zfs, “morespace” был перечислен.
Я также создал папку /zfs/morespace/storagedir и попытался смонтировать ее с тем же результатом.

Может ли кто-нибудь помочь мне понять, почему Multipass не может найти файловую систему zfs или директории внутри нее, в то время как Ubuntu не имеет проблемы? Большая часть моего хранилища находится на крупном пуле zpool с несколькими файловыми системами zfs, и я хотел бы использовать это для дополнительных ресурсов хранения VM, не изменяя размер системных образов.

Постепенно я выяснил, что проблема не связана с ZFS / Multipass. Я установил multipass через snap, и у него не было доступа к /mnt или другим корневым директориям. Возвращаемая ошибка вводила в заблуждение, так как она указывала на несуществующую папку вместо ошибки прав доступа.

Решением для меня стало перемещение точки монтирования в папку в каталоге /home/, к которому у snap-пакетов есть доступ. Теперь я создаю нового пользователя для каждой виртуальной машины и монтирую файловую систему zfs в папку в домашнем каталоге этого пользователя.

Спасибо, wanderingcode.
Это продвинуло меня вперед, но я не мог добраться глубже уровня точки монтирования – ‘нет прав’ после выполнения таких действий ..

sudo mount UUID=8e46f8f0-33e6-4861-b7d4-37b554f25c4e /home/david/sata/
multipass mount --verbose sata jammy -u 1000:1000

Но я смог добраться до папки ‘maps’ в виртуальной машине, сделав более глубокое монтирование multipass ..

multipass mount --verbose sata/html/maps jammy -u 1000:1000

.

Ответ или решение

Для решения данной проблемы необходимо учитывать несколько аспектов, связанных с системами файлов ZFS и инструментом Multipass, используемым для управления виртуальными машинами. Проблема, с которой вы столкнулись, заключается в том, что Multipass не воспринимает указанные пути до файловых систем ZFS, несмотря на то, что они отображаются как существующие в системе Ubuntu.

Теория

Начнем с базовых понятий. ZFS (Zettabyte File System) — это расширенная файловая система и логический томуем менеджер, разработанный для обеспечения высокой производительности, надежности и управления большим количеством данных. Multipass, в свою очередь, — это инструмент для управления виртуальными машинами, позволяющий быстро разворачивать и управлять виртуальными машинами Ubuntu. Он особенно удобен для разработчиков, нуждающихся в изоляции окружений для тестирования.

В вашем случае проблема, вероятно, связана не с несовместимостью ZFS и Multipass, а с политиками безопасности системы, в частности с ограничениями, накладываемыми на приложения, установленные через Snap. Snap-пакеты, такие как Multipass, работают в изолированных контейнерах и ограничиваются в доступе к некоторым системным ресурсам, включая директории, находящиеся вне домашней папки пользователя.

Пример

Вы столкнулись с ошибкой "Source path "/zfs/morespace" does not exist", хотя каталог "/zfs/morespace" виден при непосредственно проверке через команду ls /zfs. Это свидетельствует о том, что Multipass не может получить доступ к указанному пути из-за ограничений Snap.

Проблема была решена путем изменения точки монтирования на папку, расположенную в домашней директории пользователя, к которой Snap по умолчанию имеет доступ. Создание нового пользователя и монтирование ZFS в его домашнем каталоге обеспечило успешное подключение виртуальных машин к дополнительному хранилищу.

Применение

Исходя из вышеизложенного, можно рекомендовать следующий подход для решения данной проблемы:

  1. Перемещение точки монтирования: Убедитесь, что то, что вы пытаетесь смонтировать, находится в пределах доступной для Snap папки. Это может быть любая папка внутри /home/yourusername/.

  2. Изменение настройки Snap: Если перемещение монтирования неприемлемо, можно настроить расширенный доступ Snap к системным директориям, используя snap connect или snap set для предоставления более широких полномочий. Однако такой метод может увеличить риски для безопасности системы.

  3. Управление правами доступа: Корректно настройте права доступа к файлам и директориям на стороне хоста и внутри виртуальных машин, используя параметры, такие как -u и -g для указания пользователя и группы.

  4. Проверка сетевых путей: Удостоверьтесь, что все сети и IP-адреса настраиваются правильно для обеспечения корректной работы ZFS и Multipass.

  5. Обновление и настройка Snap: Проверьте, что у вас установлены новейшие версии Snap и Multipass. Возможно, потребуется пересобрать пакеты с нужными параметрами безопасности.

  6. Тестирование на virtualbox: Даже если вы используете Snap, попробуйте переключиться на другие инструменты виртуализации, такие как VirtualBox, для проверки работоспособности без Snap-ландшафта.

Таким образом, применяя данные рекомендации, вы сможете улучшить взаимодействие ZFS с Multipass и добиться корректного монтирования необходимых каталогов. Не забывайте также о важности тестирования всех изменений в окружении, приближенном к рабочему, чтобы избежать непредвиденных сбоев.

Оцените материал
Добавить комментарий

Капча загружается...