gaisindanil
@gaisindanil
web developer

Linux изоляция, где использовать?

Добрый день.
Сложилась такая ситуация. При разработке панели-управления игровыми серверами, нужно ограничить ресурсы каждому новому игровому серверу(ram, cpu, disk).
Для решение проблемы смотрел в сторону Lxc, но не очень понятен принцип работы.
Мне для каждого игрового сервера нужно создать новый контейнер?
Или же имеется другие аналоги? для решение моей задачи?
Буду благодарен за вашу помощь!
  • Вопрос задан
  • 234 просмотра
Пригласить эксперта
Ответы на вопрос 5
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Механизмы изоляции в порядке возрастания уровня абстракции и соответственно удобства пользования
namespaces - в сущности команда chroot
control groups - русский https://habr.com/ru/company/selectel/blog/303190/ eng https://wiki.archlinux.org/index.php/cgroups docs https://www.kernel.org/doc/Documentation/cgroup-v2.txt
lxc - набор инструментов для удобного описания политик namespace и cgroups
lxd - надстройка над lxc дающая удобный и понятный интерфейс с одной консольной командой lxc с множеством ключей, например
lxc config set container1 limits.memory 512M
docker - надстройка над lxc предназначенная для удобной контейнеризации одного приложения, а не полноценной OS в отличии от lxd
На FreeBSD такое реализовано механизмами jail, bhyve которые вроде и лучше но в них редко кто умеет в силу малой распространенности FreeBSD.
Ответ написан
Комментировать
Sanes
@Sanes
LXC сильно ограничен, но может подойти. Пробуйте развернуть сервер в контейнере и лучше в LXD (там есть rest-api).
Если будут проблемы, следующим шагом я бы пробовал на OpenVZ/Virtuozzo.
И уже потом виртуализацию на уровне железа (KVM/Vmware/etc.).
Ответ написан
@Mysterion
Достаточно chroot'a. Именно его и используют для таких задач, если просто нужно изолировать процессы.
Ответ написан
kotomyava
@kotomyava
Системный администратор
Выбор инструмента верный, но если вам не очень понятен принцип работы LXC, то вам надо либо читать документацию, либо отказаться от задачи, но уж точно не писать такой вопрос на тостере. =) Парой фраз в ответе на вопрос вам никто не сможет помочь разобраться в довольно сложной теме.

А так, да - создавать для каждого инстанса отдельный контейнер, конечно.

На самом деле, и обёрток для управления контейнерами немало, но вам для решения вашей задачи LXC в общем-то вполне достаточно, подниматься на уровни выше и использовать более сложные обёртки над теми же механизмами смысла не много.

Вообще, вам надо почитать собственно о том, чем вы будете управлять, а именно о namespaces и cgroups прежде всего. Возможно, это поставит для вас всё на свои места...
Ответ написан
Комментировать
@pfg21
ex-турист
попробуй поиграться с ограничениями юнита в systemd.
ограничение по использованию процессора, памяти и дисков в нем есть встроенные.
в памятках есть пара старых статеек 0pointer.de/blog/projects/resources.html vladimir-stupin.blogspot.com/2013/03/systemd-3.html
ну и ман https://www.freedesktop.org/software/systemd/man/s...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
23 апр. 2024, в 20:08
400000 руб./за проект
23 апр. 2024, в 19:21
300 руб./за проект
23 апр. 2024, в 19:05
15000 руб./за проект