Назад | Перейти на главную страницу

Виртуализировать или не виртуализировать

Отказ от ответственности: я разработчик и очень мало знаю о настройке серверов, но в небольших магазинах обязанности, как правило, перетекают.

У нас только что появился новый сервер для запуска SQL Server, и мы пытаемся решить, как лучше всего распределить обязанности между разными серверами. У нас также есть несколько легких служб Windows, которые в настоящее время работают на том же сервере, что и SQL Server. Для сравнения, SQL Server работает намного сложнее, чем все службы Windows вместе взятые, поэтому мы пытаемся максимизировать количество выделяемых ему ресурсов.

Мы рассматриваем возможность запуска двух виртуальных сред на новом сервере, одну для SQL Server и одну для служб Windows. Дает ли это преимущество по сравнению с простым запуском всего на одном физическом сервере без виртуализации? Идея заключается в том, что если мы сможем создать виртуальную среду с ограниченными ресурсами для служб Windows, тогда большая часть ресурсов может быть выделена для среды SQL Server, даже если для служб Windows действительно возникает всплеск потребности в ресурсах.

На данный момент нет возможности запускать их на отдельных физических серверах.

Я думаю, что в этом случае виртуализация может пригодиться. Имейте в виду, что я знаком с VMware (знаю, что есть и другие варианты). Используя ESXi, вы можете создать несколько серверов и разделить свои приложения, таким образом вы будете меньше подвержены риску сбоя всех приложений, если одно из них зависнет. Кроме того, вы можете указать свои ограничения ресурсов (что вы хотите), ограничив количество ресурсов, которые могут использовать базовые серверы, при этом позволяя серверу SQL захватить как можно больше.

Jes

С точки зрения производительности это фактически увеличивает нагрузку на ваш сервер. Вы все еще используете какой-то гипервизор, который занимает центральный процессор / оперативную память и т. Д. Кроме того, Windows прекрасно справляется с балансировкой рабочей нагрузки между приложениями.
Однако я согласен с Джесом, что он обеспечит изоляцию между вашей средой SQL и остальными службами Windows, но

  • Как часто увеличивается количество других услуг?
  • Есть ли какие-либо сервисы в стадии разработки, которые периодически запускаются с ошибками? или ваш SQL обеспечивает серверную часть для приложения разработки?

Если ваши сервисы часто набирают обороты или вы разрабатываете одну из «коробок», я бы виртуализировал и снизил производительность в обмен на повышенную стабильность.

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

Когда вы запускаете тестовые среды, может быть полезно виртуализировать - вы упомянули, что являетесь разработчиком. В конце концов, ваше решение. Я считаю, что различные продукты, такие как vmware, действительно позволяют вам переходить между виртуализированными системами, и вы не можете изменить свое мнение позже, если вам это нужно. Это просто неудобно, если вы уже заказали его и у вас есть пользователи, которые от них убегают.

Мы запускаем около 65 виртуальных серверов в нашей 5-узловой среде ESX. Вам пригодится виртуализация. Существует множество инструментов, которые помогут вам «проанализировать», подходят ли ваши приложения для виртуализации.

Брент Озар собрал очень хорошие ресурсы, которые могут помочь вам в вашем путешествии. Посмотрите его статью о Лучшие практики виртуализации. Вы увидите ссылки на обе стороны медали.

Вы, конечно, всегда можете задать нам еще какие-либо вопросы, если вам нужна ясность или помощь.

Одна вещь, которую вы могли бы рассмотреть, особенно если вы используете Windows Server 2008, - это установка Hyper-V и виртуализация только «дополнительных» служб Windows. Вы можете установить SQL Server в самой ОС, получив полную производительность непосредственно на оборудовании, а затем запустить свои «легкие» службы на изолированных виртуальных машинах внутри Hyper-V. Обратной стороной здесь является то, что вам понадобится несколько лицензий, если вы используете Windows Server Standard, или вам придется покупать Windows Server Enterprise.

Аппаратные ресурсы, которые вы использовали бы только для запуска второго виртуализированного Windows Server, вероятно, будут больше, чем ресурсы, необходимые для запуска «легких служб» в невиртуализированном сценарии.

Запуск нескольких виртуальных машин всегда будет снижать производительность, поскольку простая математика подсказывает, что доступные ресурсы делятся между x потребителями. Чем больше значение x, тем меньше доступно каждому потребителю.