LINUX.ORG.RU
ФорумAdmin

Виртуалка либо контейнер для большого приложения

 ,


1

4

Здравствуйте. Я тут все ищу варианты по изоляции большого приложения. Суть: давным-давно купили дорогую импортную графическую программу, всех она устраивала кроме меня как админа - работала с окружением от RHEL5. С трудом удалось найти аналоги для библиотек из Centos 6, но держать такое старье на рабочих станциях неудобно. Софт работает с железом, с GPU, загружает память и сеть. То есть неплохо так отжирает ресурсы (обрабатывает изображения, вычисляет математику, работает в грид-режиме - несколько машин обрабатывают одно изображение и пр.) Сейчас у меня дилемма: как поставить боле-менее современную ОС на новые мощные ПК, при этом не перемешать системные новые библиотеки и старые от программы? Оставив при этом возможность «отжирать» ресурсы в требуемых объемах от хост-системы.

Вижу два пути:

  • виртуальная машина аля VirtualBox. Долгое время старта и накладные расходы, но простота реализации и миграции, при необходимости.
  • контейнеризация podman/docker. Вот вопрос тут: можно ли в контейнер поместить сложный софт, с кучей зависимостей и как это можно сделать? Дело в том, что там нужно установить переменные ядра sysctl, несколько десятков сторонних пакетов, пути NFS и пр. Я такое не находил как вариант использования Docker/podman, но может я что-то не знаю

Может быть что-то еще сможете посоветовать? Спасибо.


А оно имеет графический интерфейс?

Просто докер — это скорее к серверному ПО относится.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

Да, причем продвинутый. Там еще и Java - раскидывает окна по 2-3 мониторам. Как раз это и смущает. Остается только виртуалка?

netvis
() автор топика

В общем и целом мне нужно отделить старые библиотеки и ПО от самой новой ОС. Накладывать ограничения на ресурсы, как-то защищать - не требуется. То есть такой вот chroot для одного большого приложения и его компонентов. Что можете посоветовать? Только VirtualBox?

netvis
() автор топика
Ответ на: комментарий от netvis

Тогда, наверное, остается только виртуалка. Причем не каждая сможет разбрасывать окна по мониторам, наверное…

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

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

Zhbert ★★★★★
()
Ответ на: комментарий от netvis

В общем и целом мне нужно отделить старые библиотеки и ПО от самой новой ОС.

Bubblewrap с такой задачей может справиться. Кладешь rhel 5 (или что там у тебя?) куда-нибудь в удобный тебе каталог, затем через bubblewrap запускаешь свое приложение, используя этот каталог как корень. Примерно так:

$ bwrap --ro-bind путь_к_каталогу_с_дистрибутивом / \
        --dev-bind /dev /dev \
        --ro-bind /sys /sys \
        --proc /proc \
        --bind /var /var \
        --bind /run /run \
        --bind /tmp /tmp \
        --bind /home /home \
         ./app_binary

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

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 2)

Дело в том, что там нужно установить переменные ядра sysctl, несколько десятков сторонних пакетов, пути NFS и пр.

Контейнер использует ядро от хост системы, так что sysctl нужно в хост системе выполнить. Пакеты можно через chroot установить. Насчет NFS точно не знаю, но полагаю их можно смонтировать из хост системы, а потом просто прокинуть в контейнер уже смонтированные каталоги.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от Shadow

Есть тонкости.

Если нужна своя версия glibc, например, то в чрут попадает вся система.

AVL2 ★★★★★
()

Используя контейнеризацию средствами lxc (proxmox) у меня вполне получилось сделать изолированный десктоп с отображением на физическом мониторе и 3д ускорением, если требуется могу поискать инструкцию. Однако у тебя древний редхат, а ядро будет новое затея может и не сработать. В таком случае вариант qemu-kvm, говорят 3д драйвер там допилили.

Ты пробовал банальный chroot? При таком подходе используются иксы самой системы.

einhander ★★★★★
()
Ответ на: комментарий от netvis

Да, docker (а лучше podman) – ваш случай. centos:6 есть почти во всех реестрах, есть даже ошметки centos:5.

С графическим интерфейсом нет никаких проблем: просто примонтируйте X11 сокет. И DRM заводится так же просто. С виртуалкой как раз многомониторный конфиг организовать намного сложнее.

Виртуалка нужна, только если вам надо оставить старый кернел и используется какое-то специфическое оборудование со специфическими старыми драйверами.

переменные ядра sysctl

Какие конкретно?

Если почему-то дойдет до виртуализации, то VirtualBox – это просто последнее дело.

i586 ★★★★★
()
Ответ на: комментарий от i586

Как раз-таки тут и затык: немного не понимаю как в Докер можно поставить сложное приложение, со своим инсталятором, кучей библиотек, на Java и пр. Я Докер представляю как одно или, реже, несколько приложений, как правило без привязки к терминалу. А тут - сложное графическое приложение должно быть через графический инсталятор установлено в контейнер, причем потом нужно еще поиграться настройками и в контейнер прокинуть NFS, некотороые sysctl (отключить, к примеру, transparent_huge_pages и пр.). Нету ли у вас какого-нибудь примера или хотя бы описания?

netvis
() автор топика
Ответ на: комментарий от netvis

transparent_huge_pages

Да, можно просто отключить.

Как раз-таки тут и затык:

А в конкретно чем затык, где «муки творчества»?

как в Докер можно поставить сложное приложение, со своим инсталятором, кучей библиотек, на Java и пр.

Сколь угодно сложное, разницы нет никакой. Поставьте в интерактивном режимме для начала(раз инсталлятор графический), сделайте podman commit.

Настоящий «затык», почти непреодолимый, возникнет, когда приложение, использующее GPU, попытаетесь постаить в виртуалку.

Нету ли у вас какого-нибудь примера или хотя бы описания?

Сеть переполнена иструкциями по использованию докеров самых разных видов.

i586 ★★★★★
()
Последнее исправление: i586 (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.