Поддержка кластеров 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 и в предыдущих заметках нашего блога.