Лучшая организация виртуальных машин

Модератор: Модераторы разделов

Аватара пользователя
netvis
Сообщения: 94

Лучшая организация виртуальных машин

Сообщение netvis »

Здравствуйте.
Не подскажете, как лучше и оптимальнее будет организовать работу сервера виртуализации?
Есть сервер, на нем 16 Гб ОЗУ, 2 ЦП по 4 ядра и 3 Тб дисковой памяти. Необходимо организовать на нем ряд сервисов для небольшой конторы, а именно: сервер 1С, ряд серверов лицензий, файловый сервер, ДНС/почта, контроль траффика и пр.
Проблем нет, организовать несложно. Вопрос в другом: что лучше: выделить по 3-4 сервиса и под каждый сделать свою ВМ или же сделать 2-3 крупных ВМ и на них сделать все основные сервисы, попытавшись разделит их по группам?

Я понимаю: если много мелких, то будут накладные расходы велики. А как вы делаете? Поделитесь опытом, пожалуйста.
Если отладка - это устранение ошибок, то программирование - это их создание ...
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18639
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Лучшая организация виртуальных машин

Сообщение Bizdelnick »

ИМХО эталонная задача для docker'а.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
netvis
Сообщения: 94

Re: Лучшая организация виртуальных машин

Сообщение netvis »

А для XenServer'a? :) Чем вы руководствуетесь при отводе ресурсов под ВМ?
Если отладка - это устранение ошибок, то программирование - это их создание ...
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8255
Статус: Маньяк
ОС: Arch, CentOS, Ubuntu

Re: Лучшая организация виртуальных машин

Сообщение serzh-z »

netvis
CoreOS с Docker (или Rocket) внутри.

Либо любая хост-ОС типа CentOS с одной или несколькими CoreOS в пуле libvirt.
Спасибо сказали:

MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Лучшая организация виртуальных машин

Сообщение MrClon »

Bizdelnick писал(а):
05.02.2015 14:49
ИМХО эталонная задача для docker'а.

Абаснуй? Не вижу ничего докер-специфичного.

Как по мне под задачу подойдут любые контейнеры (LXC, OpenVZ, FreeBSD Jail) и надстройки над ними вроде докера. Я-бы использовал LXC.
По одному контейнеру на сервис, накладные расходы у контейнеров маленькие, можно не экономить на этом. С отдельным контейнером/VM под каждый сервис и путаницы меньше и мигрировать проще.

netvis писал(а):
05.02.2015 15:01
А для XenServer'a? :) Чем вы руководствуетесь при отводе ресурсов под ВМ?

А, «сервер 1С, ряд серверов лицензий» видимо под виндой? Тогда контейнеры пролетают.
Разве-что сделать две виртуалки, одна с виндой, другая с gnu/linux. И в lin уже по контейнеру на сервис. Но это какая-то матрёшка получается.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18639
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Лучшая организация виртуальных машин

Сообщение Bizdelnick »

MrClon писал(а):
05.02.2015 16:03
Абаснуй? Не вижу ничего докер-специфичного.

Так ничего docker-специфичного в природе и не существует. Просто минимум накладных расходов (даже по сравнению с LXC), максимум гибкости. А так - что угодно можно использовать.

serzh-z писал(а):
05.02.2015 15:02
CoreOS с Docker (или Rocket) внутри.

Кстати, у тебя есть опыт использования CoreOS в продакшене? Меня сильно смущает интенсивность её обновления. Не отваливается ничего?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Лучшая организация виртуальных машин

Сообщение MrClon »

Так докер использует LXC, с чего-бы у него меньше накладных расходов? Разве-что места на диске может меньше занять за счёт каких-то финтов ушами с образами, но уж это точно экономия на спичках.
На сколько я понимаю у докера есть какой-то свой doker-way который весьма далёк от стандартного подхода к виртуалкам/контейнерам.
Вообще не понимаю чего сейчас для всего пытаются использовать этот докер, если есть более лаконичный LXC
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18639
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Лучшая организация виртуальных машин

Сообщение Bizdelnick »

MrClon писал(а):
05.02.2015 16:18
Так докер использует LXC, с чего-бы у него меньше накладных расходов?

В LXC запускается init и всё остальное, в docker - как правило только один нужный сервис.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Лучшая организация виртуальных машин

Сообщение MrClon »

Сколько того «всего остального»… Максимум 64 мегабайта памяти (не замерял, но вроде голый дебиан занимает столько или меньше). За-то получает как-бы полноценную ОС с кроном, sshd и всеми ништяками. Можно дать к неё рутовый доступ другому админу что-бы он в ней пилил свои сервисы (вроде линуховые контейнеры уже достаточно не-решето для этого).
Мне такой вариант более по нраву.

P.S. вроде в LXC тоже можно запускать отдельные процессы, кто-то помнится firefox там держал (или пытался).
Спасибо сказали:

Аватара пользователя
netvis
Сообщения: 94

Re: Лучшая организация виртуальных машин

Сообщение netvis »

Ребят, спасибо за советы! Мне столько наворотов не нужно: вряд ли в ближайшее время понадобится что-то большее, чем я перечислил, поэтому задачи масштабирования у меня не стоит.
У меня, в общем-то, чисто практический интерес: как лучше организовать "деление" общих ресурсов хост-машины для ВМ? Какую стратегию выбрать? Как можно меньше сервисов возложить на каждую ВМ либо сделать несколько "комбаинов", и им уделять все время и усилия по администрированию? Какие подводные камни?
Если отладка - это устранение ошибок, то программирование - это их создание ...
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8255
Статус: Маньяк
ОС: Arch, CentOS, Ubuntu

Re: Лучшая организация виртуальных машин

Сообщение serzh-z »

netvis писал(а):
05.02.2015 17:07
Как можно меньше сервисов возложить на каждую ВМ либо сделать несколько "комбаинов", и им уделять все время и усилия по администрированию?
Не нужно их делить. Можно выделить, скажем, 80% ресурсов одной машине с CoreOS, всё остальное деление будет происходить внутри неё ядром CoreOS. А можно запускать контейнеры на хост машине, вообще без всякой виртуальной машины с CoreOS, в этом случае тоже распределение ресурсов будет происходить автоматически ядром хост-машины.
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8255
Статус: Маньяк
ОС: Arch, CentOS, Ubuntu

Re: Лучшая организация виртуальных машин

Сообщение serzh-z »

MrClon писал(а):
05.02.2015 16:18
Вообще не понимаю чего сейчас для всего пытаются использовать этот докер, если есть более лаконичный LXC
Ну да... Docker - это куда более высокоуровневое средство управления контейнерами, нежели LXC, с крупным репозиторием готовых образов.
Спасибо сказали:

MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Лучшая организация виртуальных машин

Сообщение MrClon »

Как будто это что-то хорошее (:
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18639
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Лучшая организация виртуальных машин

Сообщение Bizdelnick »

Ну репозиторий готовых образов - довольно неплохое. Правда не уверен, что там есть 1С-сервер...
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
netvis
Сообщения: 94

Re: Лучшая организация виртуальных машин

Сообщение netvis »

Можно вопрос: а технологии docker/cloudos - насколько они зрелые? Я тут почитал - мало где их в продакшне используют...
И, я так понял, докер - это когда мы упаковываем софт в пакет и потом его запускаем. А какова у него ниша использования? То есть, другими словами, где такой подход хорош, а где - не очень...
Если отладка - это устранение ошибок, то программирование - это их создание ...
Спасибо сказали:

MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Лучшая организация виртуальных машин

Сообщение MrClon »

netvis писал(а):
05.02.2015 17:52
Можно вопрос: а технологии docker/cloudos - насколько они зрелые? Я тут почитал - мало где их в продакшне используют...

За cloudos не знаю, а LXC (и основанный на нём doker) ещё маленько стремноваты. Шибко молодые. В продакшене использовать пожалуй можно, но с опаской и пониманием.
Спасибо сказали:

Аватара пользователя
netvis
Сообщения: 94

Re: Лучшая организация виртуальных машин

Сообщение netvis »

А кто-нибудь использует это и если да, то для чего?
Если отладка - это устранение ошибок, то программирование - это их создание ...
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18639
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Лучшая организация виртуальных машин

Сообщение Bizdelnick »

LXC используется. Ведёт себя весьма покладисто.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Лучшая организация виртуальных машин

Сообщение MrClon »

У меня на домашнем сервере тестовый веб-сервер, почта и мониторинг сидят по разным LXC контейнерам. Когда соберусь переделывать сервер (он давно напрашивается) распихаю по контейнерам вообще всё что получится распихать (хотя скорее всего это будет та-же почта и веб-сервер, остальное просто выкину).
Подумываю засовывать в LXC контейнеры бэкэнды веб-серверов, для пущей изоляции и кастомизации их окружений, но пока-что практического смысла в этом нет (в основном работаю с php, там окружение перепиливать не надо, а для изоляции хватает обычной системы прав).
Спасибо сказали:

dduh
Сообщения: 386

Re: Лучшая организация виртуальных машин

Сообщение dduh »

Файловый сервер лучше строить отдельно на базе какой ни будь MiniITX (раид 5 или 10).
Я пользуюсь Proxmox-ом. Виндовс с 1с в KVM, линуксовые сервисы в OpenVZ. Отдельные контейнеры для DNS, Mail, LDAP и пр. Продакшн обкатан, можно за небольшие деньги получить официальную поддержку.
Изображение
Спасибо сказали:

Аватара пользователя
netvis
Сообщения: 94

Re: Лучшая организация виртуальных машин

Сообщение netvis »

Вот есть контейнеры OpenVZ (Virtuozo), есть "настоящие" гипервизоры типа XenServer/VmWare, есть Docker. Когда какой стоит использовать? Я так понимаю, что докер/OpenVZ не приемлет винду, так?
Если отладка - это устранение ошибок, то программирование - это их создание ...
Спасибо сказали:

dduh
Сообщения: 386

Re: Лучшая организация виртуальных машин

Сообщение dduh »

netvis писал(а):
05.02.2015 20:19
Вот есть контейнеры OpenVZ (Virtuozo), есть "настоящие" гипервизоры типа XenServer/VmWare, есть Docker. Когда какой стоит использовать? Я так понимаю, что докер/OpenVZ не приемлет винду, так?

Proxmox 2 в 1-ом, OpenVZ и KVM в одном флаконе. А вообще вам выбирать, что вам подходит больше, а самое главное - с чем справитесь в работе.
Когда я пришел к линуксу, остановился на дебиане. Соответсвенно выбор пал на Proxmox. Основан на Дебиане, понятен, устраивает под мои задачи. Как то так...
Изображение
Спасибо сказали:

Аватара пользователя
netvis
Сообщения: 94

Re: Лучшая организация виртуальных машин

Сообщение netvis »

Сам отвечу на свой вопрос: http://habrahabr.ru/company/FastVPS/blog/208650/

Про Proxmox спасибо, не знал...
Если отладка - это устранение ошибок, то программирование - это их создание ...
Спасибо сказали:

MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Лучшая организация виртуальных машин

Сообщение MrClon »

Контейнеры (LXC/OpenVZ/Jail…) «тоньше», меньше накладные расходы (выше производительность), теснее интегрированы с хост системой (могут без проблем использовать файловую систему с хоста, те-же сетевые интерфейсы и вообще те-же ресурсы), но в контейнере нельзя использовать своё ядро (контейнер использует то-же ядро что и хост-система), а значит нельзя поставить винду например, и контейнеры теоретически более уязвимы чем классическая виртуализация.
У классической виртуализации соответственно всё наоборот.
Спасибо сказали:

MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Лучшая организация виртуальных машин

Сообщение MrClon »

netvis писал(а):
05.02.2015 20:48
Сам отвечу на свой вопрос: http://habrahabr.ru/company/FastVPS/blog/208650/

Про Proxmox спасибо, не знал...

FastVPS вроде сам использует OpenVZ (или проприетарный вариант, не помню), так-что им нужно доказывать потенциальным клиентам что OVZ это не «KVM для нищебродов», а весело, спортивно и модно.
В общем к громким словам про «будущее облаков» я-бы относился с некоторым скепсисом, хотя контейнеры действительно технология перспективная и интересная.
Спасибо сказали:

azsx
Сообщения: 3657
ОС: calculate linux, debian, ubuntu

Re: Лучшая организация виртуальных машин

Сообщение azsx »

Про Proxmox спасибо, не знал...

я очень долго использовал proxmox под нагруженные виртуалки на винде и никсе (не более 5 нагруженных виртуалок на комп класса i7 + несколько не нагшруженных).
0. Обратите внимание, Proxmox официально отказывается от поддержки раид, кроме изранных хард вариантов.
1. Однажды в Proxmox у меня упала файловая система. После проверки на логические ошибки. Так как простой был не допустим, я просто переустановил систему, осадок остался.
2. Когда я уже выводил из строя Proxmox я обнаружил серьезные тормоза 2 гостей.
Я перешел на KVM в котором также можно настроить графический режим управления гостевых машин (единственный плюс Proxmox) и я счастлив :)
сервер 1С, ряд серверов лицензий, файловый сервер, ДНС/почта, контроль траффика и пр.

хотя я не специалист, но:
файловый сервер я бы организовал на хозяине, а не на госте. Не вижу никаких объективных причин переводить исключительно файловые операции на виртуалку или на контейнер.
если ДНС сервер - это то, что я понимаю, то возможно не стоит его сажать в виртуалку.
любопытно, что такое контроль трафика.
зы
я живу по принципу "оперативки много не бывает", особенно остро верность моего кредо чувствуется при работе с виртуальными машинами.
Спасибо сказали:

Аватара пользователя
netvis
Сообщения: 94

Re: Лучшая организация виртуальных машин

Сообщение netvis »

Здравствуйте, коллеги.
Следуя вашему совету, решил поиграться с docker на Debian. Мне тут кое-чего непонятно:
1) К примеру, мне нужно поднять bind9 сервис. Мне для этого нужно вытянуть образ ubuntu/debian и туда ставить bind? Или же есть чисто образ bind, без ОС? То есть, другими словами - обязательна ли ОС в контейнере?
2) Как на хабе docker'а выбрать рабочий вариант пусть все того же DNS сервера? Там их много...
3) Есть ли какие-либо советы по оптимизации хостовой ОС для работы под докером? Я поискал и нашел только советы для ускорения удаления, но, быть может, есть что-то еще?
Если отладка - это устранение ошибок, то программирование - это их создание ...
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18639
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Лучшая организация виртуальных машин

Сообщение Bizdelnick »

netvis писал(а):
17.02.2015 15:56
1) К примеру, мне нужно поднять bind9 сервис. Мне для этого нужно вытянуть образ ubuntu/debian и туда ставить bind? Или же есть чисто образ bind, без ОС? То есть, другими словами - обязательна ли ОС в контейнере?

А как он будет работать без ОС? В идеальном мире там должен быть сервис и все его зависимости, в реальном, плюс к тому - базовая система, даже если она в зависимости не входит.

netvis писал(а):
17.02.2015 15:56
2) Как на хабе docker'а выбрать рабочий вариант пусть все того же DNS сервера? Там их много...

А как Вы выбираете, скажем, программу для какой-нибудь экзотической цели? Я бы смотрел сначала на внятное описание, на наличие dockerfile и то, что в нём прописано, а потом тыкал веточкой. Например, вот это внешне выглядит грамотно:
https://registry.hub.docker.com/u/fike/bind9/
https://registry.hub.docker.com/u/ctrld/bind/

netvis писал(а):
17.02.2015 15:56
3) Есть ли какие-либо советы по оптимизации хостовой ОС для работы под докером?

А что там оптимизировать? Главное - ничем лишним систему не грузить.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
netvis
Сообщения: 94

Re: Лучшая организация виртуальных машин

Сообщение netvis »

Bizdelnick писал(а):
17.02.2015 16:16
netvis писал(а):
17.02.2015 15:56
1) К примеру, мне нужно поднять bind9 сервис. Мне для этого нужно вытянуть образ ubuntu/debian и туда ставить bind? Или же есть чисто образ bind, без ОС? То есть, другими словами - обязательна ли ОС в контейнере?

А как он будет работать без ОС? В идеальном мире там должен быть сервис и все его зависимости, в реальном, плюс к тому - базовая система, даже если она в зависимости не входит.

netvis писал(а):
17.02.2015 15:56
2) Как на хабе docker'а выбрать рабочий вариант пусть все того же DNS сервера? Там их много...

А как Вы выбираете, скажем, программу для какой-нибудь экзотической цели? Я бы смотрел сначала на внятное описание, на наличие dockerfile и то, что в нём прописано, а потом тыкал веточкой. Например, вот это внешне выглядит грамотно:
https://registry.hub.docker.com/u/fike/bind9/
https://registry.hub.docker.com/u/ctrld/bind/

netvis писал(а):
17.02.2015 15:56
3) Есть ли какие-либо советы по оптимизации хостовой ОС для работы под докером?

А что там оптимизировать? Главное - ничем лишним систему не грузить.


Спасибо. Вроде стало понятней. Буду дальше разбираться!
Если отладка - это устранение ошибок, то программирование - это их создание ...
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8255
Статус: Маньяк
ОС: Arch, CentOS, Ubuntu

Re: Лучшая организация виртуальных машин

Сообщение serzh-z »

netvis писал(а):
17.02.2015 15:56
2) Как на хабе docker'а выбрать рабочий вариант пусть все того же DNS сервера? Там их много...
Важный момент: не стоит запускать все непроверенные образы подряд. У официальных образов (postgres, rails, ubuntu и т.д.) есть специальная пометка. Никто не мешает, например, мне создать свой образ на базе postgres, который, дополнительно, будет, скажем, сливать все данные из БД на мой сервер.
Спасибо сказали: