Стоит ли при виртуализации делить сервисные vm по задачам?
Попросил человека взглянуть на мою установку ESXI 6.5 с vm, вот что он увидел
1.linux-ubuntu-16 = nat, vpn, SIP (asterisk), NGINX, fmpeg (под stream кодирование) с Pass-through VGA
2. win2016 = AD, RDGate, DNS
3. workStation на базе Win10 6 штук каждый с PCI-Passthrough видяхами
Он мне сказал: правила хорошего тона диктуют что тот самый линукс который под пунктом 1 надо разделить на 3 части, по сервисам которые предоставляют:
Nat/vpn
HTTP/FFMPEG (с Pass-through VGA)
SIP (Asterisk)
Объяснение простое: каждая машина должна иметь более узкую специализацию для большей надежности. Если что-то произойдет на одной это обвалит сеть. Т.к там вся маршрутизация висит на одной машине. С точки зрения логики все вроде логично.
Вопрос связан с тем, что я стараюсь резервировать ядра на каждую машину и максимальное число отдавать под машины из группы workStation т.к они потребляют много, запас нужен. Всего имеется 56 ядер и чтобы релизовать это мне надо найти их и изъять у остальных машин. Но интересно кто как делает, да и вообще мнения на эту тему. В рабочем состоянии тот самый linux сидит с 8 ядрами (деление в soft 2 процессора / 4 ядра на каждый) его круглосуточная загрузка 60%. Основной нагрузку создает ffmpeg. Т.е мне в любом случае придется один с 8 ядрами держать
Виртуализация для того и придумана, чтобы делать оверкоммит. То, что у вас 28 физических процессорных ядер (56 логических процессоров, с учётом HT), не означает, что вы можете виртуалкам выдать только 56 vCPU в сумме. Выделить можно и в два раза больше, и всё будет работать, в общем случае даже нормально. Так что можете спокойно разделить сервисы, и оставить 8 ядер в виртуалке с ffmpeg. Оверхед от лишних ОС, конечно, есть, но в данном случае он будет пренебрежимо мал.
alexdora, сегментация сервисов и сетей -- всегда обоснована, если делать всё грамотно. Другой вопрос, что если у вас гипервизор один, то с его падением один хрен поляжет всё :-)
alexdora, но тем не менее, если вывести за скобки вопросы отказоустойчивости, то сегментацию имеет делать хотя бы с целью обеспечения безопасности и упрощения обслуживания инфраструктуры. Если у вас на одном сервере куча сервисов, то компрометация этого сервера затронет все сервисы, которые на нём работают. А если сервисы у вас поделены на несколько серверов (виртуалок), то придётся отдельно вскрывать каждый сервер.
С обслуживанием то же самое. Если нужно ребутнуть сервак после обновлений, то ребут сервера с кучей сервисов, как вы понимаете, приведёт к тому, что вся эта куча будет недоступна для пользователей.
athacker, Спасибо большое за развернутый комментарий.
Оставлю это здесь, мало ли кто решает сложные задачи на ESXI 6.5:
В любом случае, мне придется конечно резервировать ядра отдельно c помощью Scheduling Affinity для каждого WorkStation. Причина простая – PCI Passthrough штука хоть стабильная по моим тестам c VGA Quadro, но система становится чувствительна к VT-d (фризы и перезапуск VGA в режиме link. Долго бился с проблемой, а потом прочел рекомендацию не испытывать судьбу и резер ядер делать). А остальным системам просто тогда дам одинаковое количество ядер из остатков и пусть они сами там делят как им захочется.