Подтвердить что ты не робот

Виртуализированный SQL Server: почему бы и нет?

ИТ-отдел, на котором я работаю, пытается переместиться на 100% виртуализированные серверы со всеми данными, хранящимися в SAN. Они еще не сделали этого, но в конечном итоге план предполагает перемещение существующих физических машин SQL Server на виртуальные серверы.

Несколько месяцев назад я присутствовал на мероприятии запуска Heroes Happen Here, и на одной из сессий SQL Server оратор упоминал попутно, что это не очень хорошая идея для производственных систем.

Итак, я ищу несколько вещей:

  • Каковы конкретные причины, почему это или не очень хорошая идея? Мне нужны ссылки или не надо отвечать. Я мог придумать неопределенный ответ "ввод-вывод" самостоятельно через google.
  • Только отзыв HHH-спикера, вероятно, не убедит наш ИТ-отдел передумать. Может ли кто-нибудь указать мне прямо на нечто более авторитетное? И "напрямую", я имею в виду нечто более конкретное, чем просто расплывчатый комментарий в Книге. Пожалуйста, немного сузите его.
4b9b3361

Ответ 1

Я могу сказать это из личного опыта, потому что я имею дело с этой самой проблемой, когда мы говорим. Место, в котором я сейчас работаю подрядчиком, имеет такую ​​среду для своих систем разработки SQL Server. Я пытаюсь разработать довольно скромный B.I. системы в этой среде и действительно борются с проблемами производительности.

Пропуски TLB и эмулированный ввод-вывод очень медленны на наивной виртуальной машине. Если ваш O/S поддерживает паравиртуализацию (которая по-прежнему не является зрелой технологией в Windows), вы используете паравиртуализированный ввод-вывод (по существу, драйвер устройства, который подключается к API в виртуальной машине). В последних версиях Opteron есть поддержка вложенных таблиц страниц, что устраняет необходимость эмуляции MMU в программном обеспечении (которое очень медленно).

Таким образом, приложения, которые работают на больших наборах данных и делают много операций ввода-вывода, подобных (скажем) ETL, совершают поездку по ахиллесовой пятке виртуализации. Если у вас что-то похожее на систему хранилища данных, которая может быть затруднена в памяти или на дисковый ввод-вывод, вы должны рассмотреть что-то еще. Для простого транзакционного приложения они, вероятно, O.K.

Полагаю, что системы, которые я использую, работают на blade-серверах (сервер IBM) на SAN с 4-х канальными F/C-ссылками. Это средняя SAN. VM имеет 4 ГБ оперативной памяти IIRC и теперь два виртуальных процессора. В лучшем случае (когда SAN тихая), это все еще только половина скорости моего XW9300, который имеет 5 SCSI-дисков (система, tempdb, журналы, данные, данные) на 1 шине U320 и 4 ГБ ОЗУ.

Ваш пробег может отличаться, но я бы рекомендовал использовать системы рабочих станций, например, описанные мной для разработки любых операций ввода-вывода, предпочитающих виртуальные серверы в SAN. Если ваши требования к использованию ресурсов не находятся за пределами такого набора (в любом случае они намного превосходят виртуальный сервер), это намного лучшее решение. Аппаратное обеспечение не так дорого - конечно, намного дешевле, чем SAN, blade-шасси и лицензирование VMWare. Версия для разработчиков SQL Server поставляется с версией V.S. Pro и выше.

Это также имеет то преимущество, что ваша команда разработчиков вынуждена заниматься развертыванием прямо из слова go - вам нужно придумать архитектуру, которую легко развернуть одним щелчком мыши. Это не так сложно, как кажется. Redgate SQL Compare Pro - ваш друг здесь. Ваши разработчики также получают базовые знания в области администрирования баз данных.

Быстрая поездка на веб-сайт на сайте HP предоставила мне цену около $4600 для XW8600 (их нынешняя модель на основе xeon) с четырехъядерным процессором - чип xeon, 4 ГБ оперативной памяти и жесткие диски SATA 1x146 и 4x73GB 15k. Цена на улицу, вероятно, будет несколько меньше. Сравните это с ценой для SAN, blade-шасси и лицензирования VMware и стоимостью резервного копирования для этой настройки. Для резервного копирования вы можете предоставить сетевой ресурс с резервным копированием, где люди могут по необходимости удалять сжатые файлы резервных БД.

EDIT: В этом документе на веб-сайте AMD обсуждаются некоторые ориентиры на виртуальной машине. Из тестов в задней части, тяжелые нагрузки ввода-вывода и MMU действительно сбивают производительность VM. Их контрольный ориентир (который будет использоваться с зерном соли, поскольку он является статистикой, поставляемой поставщиком) предполагает 3,5-кратное снижение скорости в тесте OLTP. В то время как это поставщик поставляется, следует иметь в виду:

  • Он сравнивает наивную виртуализацию и сравнивает его с паравиртуализированное решение, а не голые металлы.

  • В тесте OLTP будет больше рабочей нагрузки ввода-вывода с произвольным доступом и тратить больше времени на ожидание диска стремится. Более последовательный диск шаблон доступа (характерный для запросы хранилища данных) будет иметь более высокий штраф и тяжелая память (SSAS, например, является библейская память), которая имеет большое количество пропусков TLB также будет несут дополнительные штрафы. Эта означает, что замедление на этом тип обработки, вероятно, будет более выраженный, чем OLTP контрольный штраф, указанный в документе.

Что мы видели здесь, так это то, что пропуски TLB и I/O очень дороги на VM. Хорошая архитектура с паравиртуализированными драйверами и аппаратной поддержкой в ​​MMU смягчит некоторые или все это. Однако я считаю, что Windows Server 2003 вообще не поддерживает паравиртуализацию, и я не уверен, какой уровень поддержки предоставляется на сервере Windows 2008. Разумеется, мой опыт заключается в том, что виртуальная машина радикально замедлит работу сервера при работе над процессом ETL и сборку кубов SSAS по сравнению с относительно скромным аппаратным оборудованием без железа.

Ответ 2

SAN - разумеется, и кластеризация, но в отношении виртуализации - вы получите "Хит производительности" (может или не стоит этого вам):

http://blogs.technet.com/andrew/archive/2008/05/07/virtualized-sql-server.aspx

http://sswug.org в последнее время имел некоторые заметки об этом в своем ежедневном бюллетене

Ответ 3

Я хотел добавить эту серию статей Брент Озар:

Это не совсем авторитетно в том смысле, в котором я надеялся (из команды, которая строит сервер или какое-то официальное руководство), но Брент Озар очень уважаем, и я думаю, что он отлично справляется со всеми проблемы здесь.

Ответ 4

Мы запускаем систему начисления заработной платы для более 900 человек на VMWare без проблем. Это было в производстве в течение 10 месяцев. Это средняя нагрузка до DB, и мы предварительно выделили место на диске в VM, чтобы предотвратить проблемы ввода-вывода. Вы должны дефрагментировать как хост VM, так и срез VM на регулярной основе, чтобы поддерживать приемлемую производительность.

Ответ 5

Здесь несколько тестов VMWARE. http://www.vmware.com/files/pdf/SQLServerWorkloads.pdf

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

В настоящее время мы запускаем SQL Server 2005 в среде VMWARE. НО, это очень легко загруженная база данных, и это здорово. Работает без проблем.

Как указывалось большинством, это будет зависеть от загрузки базы данных.

Возможно, вы можете убедить ИТ-отдел провести хорошее тестирование перед тем, как вслепую реализовать.

Ответ 6

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

Это хорошо для развития. Возможно, даже тестирование (по теории, что если он будет работать под нагрузкой на виртуальной коробке, он будет работать нормально на prodcution), но не в производстве.

Это здравый смысл. Вы хотите, чтобы на вашем оборудовании работали две операционные системы и ваш сервер sql или одна операционная система и сервер sql?

Изменить: Мой опыт исказил мой ответ. Я работал с большими базами данных под большой постоянной нагрузкой. Если у вас небольшая база данных под легкой нагрузкой, виртуализация может работать нормально для вас.

Ответ 7

Есть информация об этом в статье блога Конор Каннингем Виртуализация базы данных - The Dirty Little Secret Никто не говорит... Цитировать:

Внутри самого сервера удивительно мало знаний о многих вещах в этой области, которые важны для производительности. Ядро ядра SQL Server принимает такие вещи, как:

  • все процессоры одинаково мощные
  • все процессоры обрабатывают инструкции примерно с той же скоростью.
  • флеш на диске, вероятно, произойдет в течение ограниченного промежутка времени.

И дальше идет также обсуждение этих вопросов. Я думаю, что хорошо читаю, рассматривая нехватку доступной информации, рассматривая этот вопрос в целом.

Ответ 8

Обратите внимание, что есть некоторые специальные продукты виртуализации, которые создаются для баз данных, на которые стоит обратить внимание, вместо общего продукта, такого как VMWare.

Наша компания (более 200 серверов SQL) в настоящее время находится в процессе развертывания HP Polyserve на некоторых наших серверах:

Программное обеспечение HP PolyServe для Microsoft SQL Server позволяет объединить несколько экземпляров Microsoft SQL Server на существенно меньшее количество серверов и централизованное хранилище SAN. Уникальная архитектура "общих данных" HP PolyServe обеспечивает доступность корпоративного класса и гибкость виртуализации в служебной платформе.

Наша основная причина для его развертывания состоит в том, чтобы упростить замену оборудования: добавьте новое окно в "матрицу", перемешайте вокруг каждого экземпляра SQL (легко), а затем удалите старое окно. Прозрачно для команд приложения, потому что имена экземпляров SQL не меняются.

Ответ 9

Старый вопрос со старыми ответами

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

Однако в реальном мире требуется только одна небольшая деталь конфигурации, чтобы довести все до колен. На практике ваша самая большая проблема с виртуальными серверами SQL убеждает и работает с людьми, ответственными за виртуализацию, чтобы настроить ее правильно.

Ирония, в 100% случаев, когда мы снимали производство с виртуализации и переносили ее на выделенные аппаратные средства, проходили через крышу на специализированном оборудовании. Во всех этих случаях это была не виртуализация, а способ ее настройки. Возвращаясь к специализированному оборудованию, мы фактически доказали, что виртуализация была бы намного лучше использовать ресурсы по 5 или более факторов. Современное программное обеспечение обычно предназначено для масштабирования по узлам, поэтому виртуализация также работает на вашем преимуществе на этом фронте.

Ответ 10

Самая большая забота обо мне, когда виртуализация программного обеспечения обычно лицензируется.

Вот статья об этом для MS SQL. Не уверен в вашей ситуации, поэтому не может выбрать какие-либо важные моменты.

http://www.microsoft.com/sql/howtobuy/virtualization.mspx

Ответ 11

SQL Server поддерживается в виртуальной среде. Фактически я бы рекомендовал, чтобы он видел, что один из вариантов лицензирования - для каждого сокета. Это означает, что вы можете поместить столько экземпляров SQL Server в виртуализированную (например, Windows 2008 Server Datacenter) систему, сколько хотите, и заплатить только за процессор, который есть на компьютере.

Это лучше, чем потому, что DataCenter лицензируется для каждого сокета с неограниченными лицензиями виртуальной машины.

Я бы рекомендовал кластеризовать ваш Hyper-V на двух машинах, однако, если кто-то не сработает, другой может занять слабину.

Ответ 12

Я думаю, что вероятность того, что что-то плохое происходит с данными, будет слишком велико.

Как простой пример, скажем, вы запустили ядро ​​SQL Server в Virtual Server 2005 R2 и включили диски отмены (так что основной файл "диска" остается таким же, и все изменения внесены в отдельный файл, который могут быть очищены или объединены позже). Затем что-то случается (обычно, вы сталкиваетесь с ограничением 128 ГБ или любым размером), а некоторые из ночных нечетких администраторов должны перезагружаться и выяснять, что он не может этого сделать, пока не удалит диски отмены. Вы ввернуты - даже если он держит файлы диска отмены для последующего анализа, возможности объединения данных вместе довольно тонкие.

Итак, повторяю другие сообщения в этом потоке - для разработки это здорово, но для производства это не очень хорошая идея. Ваш код может быть перестроен и перераспределен (что еще одна вещь, VM для управления исходным кодом тоже не очень хорошая идея), но ваши живые данные о производстве важнее.

Ответ 14

Вы смотрите на это с неправильного угла. Во-первых, вы не найдете White Papers от поставщиков, почему вы должны "не" виртуализировать или почему вы должны виртуализировать.

Каждая среда отличается, и вам нужно делать то, что работает в вашей среде. С учетом сказанного, есть несколько серверов, которые идеально подходят для виртуализации, и есть некоторые, которые не должны быть виртуализированы. Например, если ваш SQL Server/s выполняет миллионы и миллионы транзакций в секунду, например, если ваш сервер находится на NYSE или NASDAQ, и от этого зависят миллионы и миллионы долларов, вы, вероятно, не должны его виртуализировать. Убедитесь, что вы понимаете последствия виртуализации SQL-сервера.

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

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