воскресенье, 14 ноября 2010 г.

Географически распеределенный Active/Active кластер SQL Server 2008 R2, + DCT, Analisys, Reporting, но с File whitness share

ЭТО НЕ ЗАВЕРШЕННАЯ СТАТЬЯ

В прошлый раз:
http://itdmitry.blogspot.com/2010/04/ms-sql-server-2008-windosw-server-2008.html
EMC Cluster Enabler был версии 3.0.83 в этой установке версия уже EMC Cluster Enabler 3.1.0.10


Описание желаемой модели Microsoft SQL Server 2008 R2 Cluster-а, в работающего Active/Active режиме со службами MSDTC.



Здесь приведен рисунок для работы с Quorum-ными дисками, предполагал сделать их два - по одному на разных площадках, при этом так, что бы их видели обе ноды (естестенно - это же quorum),но служба кластеров Windows 2008 пока так не может - она работает только с одним кворумным диском. Поэтому пришлось обойтись File Whitness Share (файлошаровый свидетель ))) По сути мы тем самым получаем географически распределенный отказоустойчивый кластер, единственным уязвимым местом для которого становится "файлошаровый" - FWS свидетель.

Установку и настройку можно разделить на несколько этапов:

I.Настройка кластера Windows. (описана во многих источниках, например, здесь и здесь и сложности в этом никакой нету, поэтому описывать не буду этот этап)

II.Подготовка зеркальных дисковых LUN-ов, без должной сноровки и понимания происходящего здесь тоже делать нечего. Но общий принцип следующий:
Есть две системы хранения, у которых есть одинаковые LUN-ы, между которыми настроено непрерывное копирование всех изменений (синхронная репликация посредством технологии MirrorView). Все LUN-ы с первой системы хранения мы выдаем первому узлу кластера, а все LUN-ы со 2-й системы хранения мы выдаем 2-му узлу будущего кластера. При этом добавляем дисковые ресурсы в кластер, что бы у него были дисковые ресурсы для дальнейшей установки SQL.
всего подготавливаем 2 группы LUN-ов по 4 штуки в каждой:
1.Диск для DTC (не SQL)
2.Диск под данные SQL (разместил на 8-ми FC дисках DAID 5)
3.Диск для журналов баз данных SQL (разместил на 6-ти FC дисках зеркального DAID 1)
4.Диск под резервные копии (разместил на 3-х SATA дисках DAID 5)

Предполагается каждая такая группа дисков со 2-го по 4-й для работы SQL Cluster, и каждая группа будет жить раздельно на разных нодах кластера в нормальном состоянии, при сбое сможет убежать на рабочую ноду. Таким образом мы получим два инстанса SQL, работающих на разных нодах. На узлы кластера через зоны на SAN фабриках предоставляем доступ к системах хранения, а на самих системах хранения предоставляем доступ к соответствующим лунам

После подачи LUN-ов на сервера не забыть:


теперь зайдя в Computer мы увидим:



Далее в Failover Cluster Management жмем правой кнопкой на Storage и делаем Add a disk, и отмечаем галками все наши диски для кластера:



Таким образом, перед установкой SQL мы должны иметь:



III.Установка SQL в кластере(первого инстанса)
Небольшое Лирическое отступление:
Поскольку у меня установить ни SQL нормально ни DTC не получалось в схеме подготовленной на II-м этапе установке, хотя при этом использовались разные схемы, с различными последовательностями действий и методов установки (с GUI, без GUI с вариациями и отключением проверок и заменой ключа на софт) - в прямую он просто не хотел ставиться - всё упиралось в отсутствие диска - на завершающем этапе установки пассивной ноды, выскакивали различные ошибки, вида:
1-й вариант:The current SKU is invalid



2-й вариант:The setting 'ENU' specified is not recognized. Error code 0x84B0003


3-й вариант:There is no SQL Server failover cluster available to join.
4-й вариант:Element not found. (Exeption from HRESULT: 0x80070490)
5-й вариант:The setting 'FAILOVERCLUSTERDISKS' is not alliwed when the value of setting 'ACTION' is 'Install'. Error code 0x84B40005.

Причем. даже установка Cumilative Update package 4 for SQL Server 2008 R2 не помогла в решении проблемы, так что пошел другим путем.

DTC сразу проверял наличие доступного общего диска на обоих нодах и отваливался:


Итак. Схему описанную на этапе II решил подправить, поскольку EMC Cluster Enabler, как я думал "поможет" установить SQL на 2-й узел , но этого не случилось.
Исправления внесенные в схему описанную на этапе II:
Превращаем географически распределенный кластер с независимыми хранилищами в географически распределенный кластер с одним хранилищем (в одном месте), число LUN-ов при этом не меняем.
1.Не разрывая зеркал MirrorView, отключаем презентованные LUN-ы от пассивного узла
2.Подключаем пассивный узел к системе хранения на которой расположены LUN-ы активной ноды и презентуем те же самые LUN-ы, которые презентованы активному узлу кластера на пассивный узел кластера, не отключая презентацию LUN-ов для активного узла кластера, на CLARiiON-ах это делается через группы хранения:



шаг1.
Теперь установим DTC (Distributed Transaction Coordinator)



на этом шаге получаем в итоге:



шаг2.
И спокойно, без ошибок устанавливаем активный узел SQL кластера, рекомендую устанавливать дефолтовый инстанс, то есть не именованный экземпляр SQL(MSSQLSERVER), по крайней мере первый в Active/Active конфигурации:


Трижды Next.

Здесь предупреждения связанны с неправильным перечислением сетевых адаптеров и невозможностью .NET security получить доступ в интернет за файлом MicrosoftRootAuthority.crl - игнорируем их

Далее выбираем компоненты для установки, поскольку у нас есть DTC, мы можем выбрать и далее установить в кластере Analysis Servises и Reporting Servises:



Далее в окне конфигурирования экземпляра SQL указываем DEFAULT instance и вводим DNS-имя виртуального узла SQL сервера, в дальнейшем его можно будет без проблем изменить:



Далее несколько шагов в которых необходимо указать диски, которые мы отдадим виртуальному узлу кластера, IP-и группы, которым будут даны разрешения:



Далее указываем аккаунт от имени которого будут запускаться службы SQL кластера и выбираем метод сортировки(Collation):



Далее указываем пароль от sa аккаунта и пользователи с привилегиями sysadmin, а также размещение каталогов по дискам:



Далее каталоги для размещения служб Анализа:



Затем выбираем: "Insatll, but do not configure the report server."

И жмем Next/Install пока SQL не установиться на активной ноде ))))

шаг3.
Устанавливаем на пассивной ноде с командной строки, для этого нам понадобиться дистрибутив, запускаем из корня:
setup.exe /ACTION=AddNode

ключевые моменты:

Выбираем инстанс для которого ставим файлы на пассивном узле и указываем учетные записи от имени которых будут запускаться службы:



Далее жмем Next/Install, пока не наступит Complete.

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

В "Failover Cluster Management" -> "Services and Applications" -> правой кнопкой на виртуальном узле кластера выбираем "Move this service or application to another node" -> "Move to node {NODENAME}":



шаг5.
Повторяем Шаги 1-3, только теперь указываем имя экземпляра SQL сервера и выбираем другие диски соответственно.

шаг6.
проверяем, что всё перебегает, аналогично шагу 4


IV Этап.Установка SQL в кластере 2-го(3-го, n-го) экземпляров(инстансов SQL) - всё зависит от числа узлов.
Здесь Практически всё тоже самое, но только теперь не выбираем экземпляр по умолчанию - он после Этапа III и даст уже возможности себя выбрать.

V. Превращение "кластера единой копии с одним хранилищем с географически распределёнными узлами" в "кластер единой копии с двумя географически распределенными хранилищами и географически распределёнными узлами". Ну то есть мы имеем два места (сайта) - две серверных, в одной - первая кластерная нода и первое хранилище, в другой - вторая кластерная нода и второе хранилище"
Шаг 1.
Просто берем вторую ноду (нумерация условна, просто она должна быть пассивной и все кластерные ресурсы должны быть переведены на другую) и отцепляем её от первого хранилища для этого нужно на SAN фабриках (это только для того случая, если вы используете зонирование на SAN) отключить зоны объединяющие вторую ноду и первую систему хранения,

Здесь PowerPath Monitor должен начать "кричать" показывать что ему стало "плохо" в виде перечеркнутого значка треугольника красной чертой в трее. Можно его открыть и на отключенных дисковых устройствах (LUN-ы c красными крестами) правой кнопкой сказать "Remove from Config" - эта позиция будет как раз подсвечена - выделена жирным, лучше это сделать поскольку диски у EMC работают через PowerPath, и это абсолютно другой метод multipath в сравнении с HP EVA, хотя бы, где нет такой необходимости.

Шаг 2.
Прицепляем эту вторую-пассивную ноду кластера ко второму хранилищу для этого включаем зоны объединяющие вторую ноду и вторую систему хранения на SAN коммутаторах - в каждой из 2х SAN фабрик потребуется по одной операции включения - сохранения, ждем commit, а после - включение измененной конфигурации, ждем commit(отображается внизу на странице управления зонами на Brocade DS-300, во всяком случае).

{рисунок}

Шаг 3.
Далее на второй системе хранения презентуем зеркалируемые с первой системы хранения LUN-ы.

Скорее всего на сервере потребуется перезапустить службы Navisphere Agent и набор служб для EMC PowerPath - их всех названия начинаются так(например EMC PowerPath Service 5.5.0), во всяком случае, я старался без необходимости не перегружать сервер поскольку это трата 10 минут времени (HP DL 580G5 пока он инициализирует вставленные в него девайсы проходит долгое время...).




Ссылки по теме:

http://msmvps.com/blogs/jtoner/

http://powerwindows.wordpress.com/2008/10/21/microsoft-cluster-enablers-for-srdf-and-mirrorview/

http://social.msdn.microsoft.com/Forums/en/sqlsetupandupgrade/thread/8ae0c845-b25f-4140-a655-45fdb672c71a

http://connect.microsoft.com/SQLServer/feedback/details/363036/add-node-to-sql-server-failover-cluster-failed-with-invalid-sku-error

http://forums.techarena.in/windows-server-help/1032365.htm

How to: Install SQL Server 2008 R2 from the Command Prompt:
http://msdn.microsoft.com/en-us/library/ms144259.aspx#ClusterInstall

Error Adding 2nd Cluster Node - Account Name Box Greyed Out:
http://social.msdn.microsoft.com/Forums/en-US/sqlsetupandupgrade/thread/409baa09-de05-4496-a085-92cb5aad0cbf

How to fix your SQL Server 2008 Setup before you run setup...:
http://blogs.msdn.com/b/psssql/archive/2008/09/30/how-to-fix-your-sql-server-2008-setup-before-you-run-setup.aspx

самая лучшая статья по установке SQL cluster:
http://clusteringformeremortals.com/2009/10/07/step-by-step-configuring-a-2-node-multi-site-cluster-on-windows-server-2008-r2-%E2%80%93-part-3/

http://clusteringformeremortals.com/2009/10/07/step-by-step-configuring-a-2-node-multi-site-cluster-on-windows-server-2008-r2-%E2%80%93-part-3/


http://msmvps.com/blogs/jtoner/

Комментариев нет:

Отправить комментарий