Как виртуализация улучшает использование сервера?
Обычно говорят, что самым большим преимуществом виртуализации является улучшение использования сервера.
Но зачем мне для этого виртуализация?
Скажем, у меня есть N физических серверов, которые слегка используются. Почему бы мне просто не объединить все приложения на этих N серверах в один физический сервер? Таким образом, я не несу снижения производительности виртуализации.
Что виртуализация покупает мне в этом случае?
5 ответов
Что виртуализация покупает мне в этом случае?
Возможность запуска двух разных вещей, которые имеют разные требования и зависимости. Это особенно ценно, когда эти требования противоречат друг другу. Например, допустим, у вас есть какое-то старое корпоративное приложение, которое работает только на сервере Windows 2000, но у вас также есть новое блестящее приложение, которое требует Windows 2008.Net framemworks и т. Д., Эти два приложения не могут быть запущены в одной и той же ОС, но с виртуальными машинами они могут работать на том же оборудовании.
Это полезно, если ваши различные службы имеют разные циклы обслуживания. С большим количеством виртуальных машин вы можете обновить / перезапустить виртуальную машину DNS-сервера без особого влияния. Но если этот DNS-сервер также является вашим файловым сервером, сервером печати, почтовым сервером и т. Д., То планирование этого обновления будет намного сложнее.
Виртуализация может быть отличной для разделения этих приложений.
Возможно, ваши приложения не могут быть установлены на одном сервере или, может быть, в целях безопасности вы не хотите, чтобы они были на одном сервере - если кто-то взломан, взломается только тот, который взломан.
Может быть, вы размещаете приложения для других людей и хотите предоставить каждому человеку свою собственную "машину".
Может быть, у вас 10 одинаковых серверов, и вам нужен только один большую часть времени, но иногда, когда ваша нагрузка становится выше, вам нужно еще несколько. Таким образом, вам не нужно загружать еще 9 серверов, у вас все объединено и работает на одном (или нескольких виртуальных серверах).
Есть много причин для использования виртуализации (и, вероятно, столько же, чтобы не использовать виртуализацию).
ИМХО, самое большое преимущество виртуализации - это изоляция.
Ваша идея собрать все N наборов приложений сопряжена с различными рисками. Что если вдруг понадобится патч, который требует перезагрузки? Вы исправляете, а затем перезагружаете все остальные; с несколькими виртуальными машинами вы перезагружаете только одну. Что если одно приложение лучше всего работает на RHEL 5.2, а другому нравится Suse 10.0? Что если одному приложению абсолютно необходима версия X Oracle, а другому - версия X? (Мы все видели такие вещи!).
Возможность использовать одну физическую систему для запуска N наборов приложений, где упомянутые приложения не имеют вероятного (или, по крайней мере, крайне маловероятного) шанса вмешательства друг в друга, часто является огромной победой.
В прошлом приложения были разобраны, потому что, если, скажем, приложению "А" понадобится перезагрузка сервера, приложение "В" не будет наказано. При этом все больше и больше приложений становятся более устойчивыми / изолированными, поэтому перезагрузка сервера с меньшей вероятностью потребуется. Это проблема мышления, которую трудно преодолеть.
Существует ощутимая выгода для безопасности от запуска виртуализированной среды.
Существует мнение, что теперь, когда с 1960-х годов мы не смогли создать безопасную ОС, мы можем внезапно создать безопасные виртуальные машины, где одна виртуализированная среда не может мешать другой. Это чепуха, конечно. Мы даже не можем создать процессоры, которые полностью защищают два запущенных процесса друг от друга.
Больше сложности и больше строк кода просто означает больше ошибок.
Если вам нужна чистая среда для компиляции / тестирования, виртуальная машина удобна для того, чтобы избежать дополнительных покупок оборудования, но это действительно так. Во многих случаях правильно разработанные приложения могут выполняться точно так же, как вы описали, каждое из которых запускается со своим собственным ИД пользователя, где ОС решает, к каким ресурсам получить доступ.