2013-06-11 1 views
8

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

Есть ли у вас какие-либо конкретные случаи использования, которые могут привести к каким-либо аргументам так или иначе?

Являются ли LXC более «PaaS» ориентированными, для запуска приложений без аппаратного контроля? Нужно ли всегда использовать виртуальную машину на «IaaS», где мы хотим контролировать инфраструктуру?

С уважением,

ответ

5

Я не думаю, что IaaS нужны виртуальные машины. С помощью LXC вы можете определить ограничение на число пользователей cpushare и Memory.

Вещь виртуальная машина довольно тяжелая, поэтому, например, PHP/MySQL/Apache, у вас будет 1 VM. Поскольку LXC являются легкими, у вас может быть 3 LXC, поэтому он намного лучше масштабируется (если вам нужно очертить mysql, просто продублируйте mysql LXC)

1

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

Для меня lxc - это действительно легкая система VM. Со скоростью и размером лучше. Но ограничение не может быть то, что вам нужно.

8

LXC похож на chroot тюрьму на стероидах. Для аргументации вы можете считать его легким VM (хотя это вообще не виртуальная машина).

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

Для меня самая крутая вещь в LXC - это сообщество, растущее вокруг него. Рассмотрим что-то вроде docker - изображение докера довольно портативное. Он предоставляет инструменты для конфигурирования идентичных контейнеров на физическом оборудовании или в виртуальной виртуальной машине, работающей на вашем рабочем столе, или в виртуальных машинах, предоставляемых Amazon или Rackspace. Это приближает нас к мечте о том, что когда-нибудь будет работать один раз.

+3

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

+0

Спасибо, что я обновил его для большей ясности –

2

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

Один вариант использования предназначен для запуска единичных тестов в воспроизводимых средах (в сочетании с файловой системой с моментальным снимком, как предусмотрено Docker). Вы можете развернуть весь контейнер, запустить тест и закрыть его так быстро, как только сможете запустить тест. Преимущество LXC заключается в том, что все неядерные зависимости теста будут находиться внутри контейнера. Это может быть и другим отличием Linux (например, хост может быть Ubuntu, и контейнер может запускать Centos, хотя они должны совместно использовать ядро ​​хоста).