Поддержка кластеров Microsoft SQL Server в виртуальных машинах


И вновь — о кластерах. На этот раз поговорим для разнообразия не о кластеризации родительских серверов, которые выполняют роль виртуализации (что часто называется термином «Host Clustering»), а о построении кластеров из самих виртуальных машин (или внутри виртуальных машин), — соответственно, «Guest Clustering». Пару недель назад, в последний день проведения TechEd 2009, было сделано очень примечательное заявление о расширении набора поддерживаемых конфигураций. Ввиду большого количества новостей с TechEd оно прошло незамеченным в прессе, но я предлагаю отнестись к нему с должным вниманием.


Итак, с 19 мая стали поддерживаться в виртуальных машинах кластеры Microsoft SQL Server 2005 и 2008. Помимо прочего, это означает, что впервые политика поддержки продуктов Microsoft стала распространяться на кластеры виртуальных машин, запущенных под управлением сторонних решений для виртуализации. Пусть пока что речь идёт только об одном типе серверной нагрузки. Но, напомним, раньше это не поддерживалось вообще.



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


1. В виртуальных машинах, которые составляют кластер, должна использоваться ОС Windows Server 2008 или более поздняя версия. Если вы хотите использовать SQL Server в виртуальных машинах, которые работают под управлением более ранних версий Windows Server, то вы по-прежнему можете делать это — но без использования кластеризации внутри ВМ. Для повышения доступности такой системы вы можете использовать кластеризацию родительских серверов, которые выполняют роль виртуализации.


Два следующих требования прямо вытекают из предыдущего и характерны для любых сценариев развёртывания кластеров Windows Server 2008 — как в виртуальных машинах, так и на физических серверах. Напомню, что условия поддержки таких кластеров описаны в статье Базы знаний Microsoft за номером 943984 — «The Microsoft Support Policy for Windows Server 2008 Failover Clusters».


2. Все составляющие решения — то есть сами серверы, общее хранилище, дополнительные программные и аппаратные компоненты — должны быть сертифицированы для работы с Windows Server 2008.


3. Итоговая конфигурация кластера должна проходить проверку (Validation test) в консоли Failover Clustering.


4. Следующее требование, в свою очередь, характерно для любых сценариев использования ПО и ОС производства Microsoft в виртуальных машинах. В качестве системы виртуализации должно использоваться либо также ПО Microsoft (включая соответствующую роль Windows Server либо бесплатный Hyper-V Server), либо сторонний продукт, который прошёл проверку в рамках SVVP. Несмотря на то, что сама эта программа до сих пор не включает проверок для функции Failover Clustering, ваш гипервизор должен быть включён в каталог.


Иными словами, если ваш сервер или дисковое хранилище не имеют логотипа «Certified for Windows Server 2008», если кластер не проходит поверку или ваш гипервизор отсутствует в каталоге SVVP — то такое решение поддерживаться не будет.


5. Ну и, пожалуй, самое существенное — и, в то же время, неочевидное ограничение. Дело в том, что сама полезная нагрузка, т.е. ПО, выполняющееся на кластере, которое так же называется обычно «кластерным ресурсом», должно быть в явном виде заявлено к поддержке на кластерах именно внутри виртуальных машин. По состоянию на сегодняшний день этого удостоился только один тип кластерного ресурса — это Microsoft SQL Server 2005 и 2008. При этом версия SQL Server с установленными обновлениями должна отвечать текущему циклу поддержки.


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


Официально эти условия закреплены в статье Базы знаний Microsoft под номером 956893 — «Support policy for Microsoft SQL Server products that are running in a hardware virtualization environment». Если вы заинтересовались нашим описанием и рассматриваете перспективы построения кластеров виртуальных машин для Microsoft SQL Server — настоятельно рекомендуем ознакомиться и с первоисточником. Одна из причин для этого совета — то, что условия поддержки имеют тенденцию время от времени изменяться. (Причём, как правило, в сторону снижения или даже отмены ограничений. И сегодняшняя история — как раз отличный пример такой ситуации). И в первую очередь такие изменения получат отражение именно в официальной документации.


В результате, если вы испытываете проблемы с кластерами SQL Server 2005 или 2008 в виртуальных машинах, и ваша конфигурация соответствует всем описанным выше требованиям — то вы можете воспользоваться технической поддержкой не только со стороны вашего поставщика решения для виртуализации, но и со стороны производителя ОС и ПО, используемых в виртуальных машинах, — то есть Microsoft. Дополнительные сведения об условиях оказания такой двусторонней поддержки описаны на официальной странице SVVP и в предыдущих заметках нашего блога.

Comments (9)

  1. Alex A says:

    Maksim, еще раз, стоит понимать, сценарии бывают различными.

    Проведите sizing. Например, недели две-три при помощи MAP исследуйте реальную нагрузку. Важно лишь процессоры. Памяти ВМ можно дать до 64ГБ, дисков – сколько угодно, можно и Pass-through.

    Да и процессоров, если честно, тоже можно сколько угодно, хотя и не так очевидно.

  2. Alex A says:

    Я уже писал у Михаила, ручаться не могу, но думаю, что о поддержке таки должны объявить – возможно два сценария, – некий анонс о поддержке вместе с выходом E2007SP2 в конце июля, или вместе с выходом E2010 осенью этого года. Сейчас наши PM не готовы ничего анонсировать.

    Если будуте направлять Заказчиков, имейте в виду, что гостевая ОС для кластеризации – только 2008, она требует поддержки SCSI-3 для виртуальных дисковых контроллеров. В ESX 3.x этого нет, появилось в 4.0. Отдельно требуется, чтобы собранный кластер проходил Validation Test – вот тут вопрос, будет ли это проходить в vSphere или нет, – у меня нет конфигурации для проверки.

  3. Alex A says:

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

    Абсолютное большинтсво инсталляций (в штуках) SQL Server это мелкие базы, используемые продуктами как хранилище информации. Типичный пример – все серверные продукты Microsoft. Нагрузка на SQL, который идет в составе, например, продуктов System Center обычно невелика, и зачастую есть желание виртуализовать такие задачи.

    Один из моих заказчиков – крупнейший банк России, недавно решил виртуализовать все инфраструктурные серверы System Center (SMS/SCCM, MOM/SCOM, SCVMM), везде стоит SQL Server. Сейчас мы переносим несколько десятков таких серверов в двух-узловой кластер Hyper-V. И я очень доволен, что заявление о поддержке пришло вовремя.

    Кстати, последняя версия MAP Tool как раз добавила анализатор пригодности серверов баз данных для виртуализации. То есть курс на виртуализацию мелких баз данных компанией взят. Изменения в лицензировании тому подтверждением. Для крупных/загруженных баз, действительно, мы категорически не рекомендуем виртуализацию.

  4. Alex A says:

    Александр, я же дал ссылку: http://support.microsoft.com/kb/956893

    “Microsoft provides technical support for SQL Server 2005 and for SQL Server 2008 that are running in the following hardware virtualization environments”….

    Там же сказано: “Guest Failover Clustering is supported for SQL Server 2005 and SQL Server 2008 in a virtual machine for Windows Server 2008 with Hyper-V, Microsoft Hyper-V Server 2008, and SVVP certified configurations provided both of the following requirements are met”…

    SQL 2005/2008 замечательно работает в ВМ. Причем в Hyper-V значительно быстрее чем в ESX. Если Петр как официальный представитель VMware позволит, предоставлю два одинаковых сервера, сценарий установки ОС и SQL (чтобы не было потом разговоров, что МС знает тайны оптимизации и свою конфигурацию настроил лучше) и проведем стандартные для SQL задачи. На 1, 3 и 5 одновременно запущенных ВМ. Результаты у меня в принципе уже и так есть, могу приватно выслать. Увы, некто боится правды и не позволяет это публиковать.

  5. ПётрД says:

    Алексей, спасибо за статью. Буду обязательно направлять на неё своих заказчиков. Кстати, есть какие-то прогнозы по поводу кластеризации Exchange – когда поддерживаться начнёт?

  6. Александр Гладченко says:

    Вы уверены, что Майкрософт поддерживает кластеризацию ВМ с SQL Server 2005? …что то я не встречал даже упоминания о поддержке виртуализации простого SQL Server 2005, а не только в отказоустойчивом кластере… Во всех документах речь идёт об SQL Server 2008.

    Кстати, может быть эта новость прошла незаметно из-за того, что виртуализация SQL Server сегодня пригодна разве что для забавы, сама же СУБД эффективно работать в ВМ не умеет 😉

  7. Александр Гладченко says:

    Действительно, этот абзац я проглядел…

    Однако, по моему разумению, упоминание SQL Server 2005 похоже на недоразумение, или что-то прошло мимо моего внимания. Может быть Вам попадались ссылки на документы с рекомендациями Майкрософт виртуализовать SQL Server 2005?

    …я пока что читал только вайтпейпу про виртуализацию SQL Server 2008, которая скорее похожа на антирекомендацию 🙁 До сих пор не ясно, как эффективно планировщики SQL Server будут работать с неполностью принадлежащим им виртуальным процессором (намёк на непривелигированный режим), не понятно, как оптимизатор в при построении плана исполнения запроса будет учитывать затраты на виртуализацию и т.д. и т.п., т.е. те моменты, которые критичны для более-менее критичных приложений.

    Я не спорю, что SQL Server работает на ВМ, я оспариваю только то, что он там работает замечательно 🙂 …и тем более на ВМ от третьих фирм, поддержку которых удалось обеспечить с таким трудом…

    ИМХО, реальные подвижки в использовании SQL Server на ВМ будут только в следующих версиях, когда оптимизатор начнёт учитывать виртуализацию. До этого виртуализовать можно только безответственные задачи. Даже съэкономит не получится, т.к. для демонстрации проблемы нужно развернуть модель системы без виртуализации…

  8. Александр Гладченко says:

    Алексей, спасибо! Именно такое уточнение очень важно, поскольку "горячих голов" среди заказчиков предостаточно. Теперь я и буду давать ссылку на эту статью 🙂

  9. Maksim says:

    Позволю себе усомниться в разумности виртуализации бд SCOM. У меня в организации мониторится порядка 100 серверов и 100 цисок. Основная бд весит около 40 ГБ, Warehouse – 120 ГБ. При этом сервер с СУБД SQL 2005 относительно мощный и не простаивает, памяти 6ГБ забито под завязку и дисками постоянно шуршит.

Skip to main content