понедельник, 1 апреля 2013 г.

Развёртывание кластера SQL Server 2008 на Windows Server 2008 + СХД / Deploying Cluster SQL Server 2008 on Windows Server 2008 + Storage




Вкратце:
1) Подключаем сервера, оптическими кабелями, в SAN коммутатор;
2) Подключаем СХД аналогично в SAN коммутатор;
3) Подключаем  сервера между собой кросс-кабелем. Вторые Ethernet порты серверов кодключаются в коммутатор, что ведёт в локальную сеть;
4) Устанавливается ОС на сервера, устанавливается Feature - Failover Cluster.
5) Настривается СХД - создаётся RAID группа, разбивается на массивы, они презентуются  серверам;
6) Серверам объединяются в кластер. Один из дисков с СХД настраивается как Quorum (диск где сервера будут обмениваться информацией о кластере). Добавляются все остальные диски с СХД в кластер;
7) Устанавливается SQL кластер поверх Windows кластера. Особенность тут в том, что всё делается через инсталятор SQL. То есть запустили, установили, указали настройки Инстанса*. На втором сервере тоже через инсталятор, но выбираете пункт Добавить узел в уже существующий кластер. Для всех последующих Инстансов* процедуру нужно проделать снова с первым и вторым сервером.
8) Указываем какой из Инстансов* на каком Узле будет предпочтительно жить.
Оборудование:
- 2 сервера - DEPO Storm 3350V2 2XE5-2650/32GR1333E/SATA10/2T500G7/8HSA/2GLAN/1C/4US/IPMI+/720W2HS/6PCIe/RMK/ONS3S;
- 1 СХД - DEPO Storage 4612G2 SWin/FC4SAS2BBU/x2/2QLE2562/SW-2/6QII600G15/RMK/456ONS3DS
   это по своей сути LSI 2660 (илу уже NetAPP 2660);
- 2 SAN коммутатора - Cisco MDS 9124;
(на схеме 4 коммутатора, объединённых в фабрики по 2, но для базовой конфигурации вам хватит и 2х)

План работ:
I Схема подключения;
II Установка ОС на оба сервера;
III Настройка Системы Хранения Данных;
IV Настройка SAN Коммутаторов;
V Создание Windows кластера из 2х серверов;
    a. Подключение дисков с СХД к кластеру;
    b. Установка DSM (Multipathing I/O);
VI Создание SQL Кластера из 2х Инстансов*;
VII Тестирование.

*Instance - [Инстанс] - Экземпляр

I Схема подключения
(при клике по схема - станет больше)


II Установка ОС на оба сервера:
 
     Не для кого не составит труда. Если у вас есть IPMI тогда процесс становится проще, так как вы настраиваете лишь IP адрес для IPMI а дальше уже со своей машины прикручиваете образ ОС, а уж после и дрова под RAID контроллер (если он не определился).

1) Проверяем, что все драйвера на все устройства установлены;
2) Задаём сетевые параметры на сетевых интерфейсах серверов:
    a. В локальную сеть: LAN - SCLUST1 (172.16.0.191)-SCLUST2 (172.16.0.192);
    b. CrossOver между серверами: Private - SCLUST1 (10.0.0.1)-SCLUST2 (10.0.0.2);
    c. Проверяем ping между серверами по обоим интерфейсам;
3) Добавляем сервера в домен;

III Настройка Системы Хранения Данных:

    У СХД 4 Ethernet порта и 8 FiberChannel (по 2 и 4 соответственно на контроллер).
На каждом контроллере 1-й Ethernet порт для администрирования системы, 2-й для сервисных работ. Потому нужно настроить IP адреса лишь на 1-х портах каждого контроллера.
Из FC портов нам нужно будет лишь по 2 на каждом контроллере (можно и остальные задействовать, но нет необходимости для текущей задачи);

1) Устанавливаем ПО от производителя для управления СХД - Santricity;
2) Подключаемся к полке напрямую (коммутируем свой ноутбук и 1-й порт контроллера);
3) При помощи ПО, подключаемся к указанному в документации IP адресу (предварительно выставив настройки своей сетевой карты в ту же подсеть);
3) Меняем IP адреса первым Ethernet портам каждого контроллера;
4) Подключаемся при помощи Santricity к полке уже с рабочего места.

Создаём дисковую группу:


Назначаем имя и выбираем вручную настройку параметров:


Добавляем диски в массив. У меня их 6. Добавляю все. Выбираем RAID 10 (Пункта такого нет, нужно просто выбрать RAID1. В комментариях написано, что 10 будет создан от 4х дисков автоматически):



Создаём дисковые массивы:
Нужно создать 3 диска под каждый узел кластера - DATABASE (60% пространства - 500Гб), LOGS (20% ~167Гб), INDEX (20% ~167Гб). Также нужно создать 1 диск под Quorum кластера - 500Мб (Рекомендовано Microsoft). То есть создаём 6 дисков и 1 Quorum.


Указываем размер, Имя, и Альтенативную настройку по характеристикам.
Имя желательно указывать информативное:
[Назначение] [номер узла которому будет принадлежать в кластере] [Имя Инстанса] [LUN]


Указываем, что под базы данных будет использоваться, тогда система выберет оптимальный размер кэша. И указываем Контролер-владельца. То есть контролер, что будет управлять массивом.


Мапинг сделаем позже.


Получим:


По аналогии создаём остальные диски. В процессе создания система раз через раз будет менять контроллер владельца. Так и надо, чтобы распределить нагрузку на 2 контроллера.


Mapping (привязка массивов к серверам)

Определяем Хосты:


 Задаём Имя:


Определяем на серверах, какие WWN на FiberChannel интерфейсах:
- Открываем Start > Administrative Tools > Storage Explorer;
- Выписываем какие WWN к какому узлу относятся.


 

Выбираем те идентификаторы, что относятся к SCLUST1 (в данном случае) и Присваиваем Имя Алиаса:



 Выбираем ОС. Обязательно с DMP - Multipathing:


Указываем, что этот узел будет делить одно дисковое пространство с другим узлом:


Добавляем хост в группу. Так как групп пока нет, мы её создаём, вводим имя:


Готово. Хост SCLUST1 создан

По аналогии делается и SCLUST2, за исключением последнего этапа добавления в Хост Группу. Тут уже группа существует, потому она просто выбирается из списка.


Итак у нас получится следующая картина:


Собственно сам Mapping и определение LUN-ов:


Выбираем Хост Группу, указываем номер LUN-а и выбираем массив:


В результате:


Основная настройка Системы Хранения Данных завершена.

Можно также настроить оповещение по почте о тревожных событиях, как то вышел из строя диск или что другое вышло из строя:



СХД - Готова!


IV Настройка SAN Коммутаторов:

    На каждом коммутаторе нужно настроить зоны в рамках которых будут работатьь сервера и СХД. Делается это просто, создаётся зона, указываются порты входящие в неё.

SAN Switch 1:
- Создаём зону и указываем порты:

zone name SQLCLUSTER vsan 1
    member interface fc1/5 swwn 20:00:54:7f:ee:7a:11:80
    member interface fc1/6 swwn 20:00:54:7f:ee:7a:11:80
    member interface fc1/7 swwn 20:00:54:7f:ee:7a:11:80
    member interface fc1/8 swwn 20:00:54:7f:ee:7a:11:80

- Добавляем зову в Zoneset:
zoneset name ZSET vsan 1
    member Member1
    member Member2
    member SQLCLUSTER

- Активируем Zoneset:
zoneset activate name ZSET vsan 1

SAN Switch 2:
- Создаём зону и указываем порты:

zone name SQLCLUSTER vsan 1
    member interface fc1/5 swwn 20:00:54:7f:ee:35:85:00
    member interface fc1/6 swwn 20:00:54:7f:ee:35:85:00
    member interface fc1/7 swwn 20:00:54:7f:ee:35:85:00
    member interface fc1/8 swwn 20:00:54:7f:ee:35:85:00

- Добавляем зову в Zoneset:

zoneset name ZSET vsan 1
    member Member1
    member Member2
    member SQLCLUSTER

- Активируем Zoneset:
zoneset activate name ZSET vsan 1

*
20:00:54:7f:ee:7a:11:80 - wwn первого коммутатора
20:00:54:7f:ee:35:85:00 - wwn второго коммутатора

Узнать его можно командой:

SAN# sh wwn switch
Switch WWN is 20:00:54:7f:ee:7a:11:80

WWN нужно указывать, когда у вас фабрика.

В порты 5,6 подключены сервера, в 7,8 - СХД.

V Создание Windows кластера из 2х серверов:

1) Устанавливаем роль Кластера на оба сервера;
2) Устанавливаем DSM - Multipathing I/O на каждый сервер, чтобы у нас не дублировались диски в системе. Так как у нас более одного порта от сервера к СХД. (В вашем случае это может быть любой другой софт от производителя вашей полки)

3) Поднимаем диски Online, инициализируем, даём имена и форматируем:





Получим следующее.
Именуем диски информативно и следим за очерёдностью букв, назначенных дискам.



4) Создаём Кластер:


Запускаем все тесты:


5) Настраиваем QOURUM диск:




Добавляем диски с СХД в кластер:



Переименовываем и проверяем диски.

Все названы правильно. В проводнике отображаются верно (Бывает, что иногда 1-2 диска место статуса Clustered Disk, что требуется, отображают Local Disk, что неверно.)



Проверяем, что эти же диски отображаются в консоли второго узла кластера.
Перезагрузите сервер, на котором отображаются диски СХД, и проверьте, переехали ли они на второй узел кластера. Если да - значит всё Оk.
Готово!

VI Создание SQL Кластера из 2х Инстансов

1) Запускаем инсталятор SQL Server 2008 R2.
    Выбираем установку Failover Cluster.
    * Должен уже стоять .NET Framework 3.5.1. Устанавливается из Features.

Смотрим результат проверки. На MSDTC не нужно обращать внимание. А вот на Network binding order стоит. Её нужно оправить.


2) Исправляем ошибку Network Binding Order. Она связана с тем, что если адаптер, что смотрит в локальную сеть, будет на 2-м месте, то все клиенты будут подключаться к адаптеру  cross-over, что объединяет сервера между собой.

Переименовываем сетевые интерфейсы. LAN -  в локальную сеть. Private - между серверами.



Меняем очерёдность адаптеров. Тот, что смотрит в локальную сеть, должен быть на самом верху.

3) Указываем компоненты. Согласовываются с SQL администратором.

4) Даём имя Инстансу.


5) Указываем диски, что будут принадлежать этому Инстансу.


6) Назначаем IP адрес Инстанса.


7) Не забываем указать Collation!!! 
    Очень важный параметр.
    SQL_Latin1_General_CP1251_CI_AS


8) Указываем смешанную авторизацию и добавляем доменных пользователей, что будут SQL администраторами.


9) Указываем пути к директориям, где будут храниться базы, логи, индексы. Согласовывается с
     SQL администратором.



10) Под конец инсталяции получите такую ошибку:


Переходим в Active Directory.
Включаем Advanced Features.
Находим Инстанс. Да


За одно даём права на 2-й Инстанс.


Далее инсталяция и подъём Инстанса пойдёт ровно.

Получим следующую картину:


11) Устанавливаем SQL Server 2008 R2 на второй узел кластера




12) Здесь отобразится Инстанс, к которому добавляем второй сервер.


14) Вводим пароль для сервисной учётки.


15) Готово! Второй узел добавлен. Собственно 1-й Инстанс установлен.

16) Установка 2-го Инстанса по Аналогии. Устанавливаем сперва на первый узел. Указываем диски, директории, IP адрес. После добавляем второй узел в этот Инстанс.
17) Небольшой нюанс. При инсталяции нужно указать имя инстанса в такой форме:


18) Картина по завершении установки 2-го Инстанса:



19) Указываем Preferred owners - Предпочитаемые владельцы.
      (Нужно зайти в свойства каждого инстанса)



VII Тестирование

Способ 1.
Миграция инстансов.
На дынный момент 1-й располагается на SCLUST1, 2-й - на SCLUST2.




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




Если всё прошло успешно, тогда всё работает исправно.

Можно как дополнительный тест - перезагрузить один из узлов.
Истанс с этого узла должен автоматически переехать на второй узел. Примерно до 30 секунд.

Способ 2.
Microsoft Way.
 Нужно банально выдернуть сетевой кабель из одного из узлов кластера. Инстанс с данного узла должен подняться на втором узле. Примерно до 30 секунд.

Способ 3.
Перезагрузка.
Можно как дополнительный тест - перезагрузить один из узлов.
Истанс с этого узла должен автоматически переехать на второй узел. Примерно до 30 секунд.

Тестирование завершено.



Полезные материалы:

3 комментария:

  1. Ааа, огромное Вам спасибо!
    Про 2 экземпляра даже не подумал бы, может со временем пришел к этому!) Реально будет работать два сервера, и отказоустойчивость сохраняется!
    Мне досталась LSI CTS2600 OEM-версия! Диск утерян! Найти SANtricity не получается, NetApp скачать не дает! Попробую через продажников, покупка более 2-х лет была, может помогут!(
    Сбросить пароль я так понял можно как-то через порт Ethernet 2?!
    Про MPIO хоть я знал, но в текущих настройках о нем и речи нет!
    Кстати на одном из контроллеров горит ошибка, на дисплее L5 - auto-code sinchronization failure, не подскажите, что может означать ошибка синхронизации?
    Низкий Вам поклон, добрый человек!

    ОтветитьУдалить
  2. Про ошибку не знаю.
    А вот Santricity могу поделиться.

    ОтветитьУдалить
    Ответы
    1. ООО, я бы был бесконечно благодарен!
      panfilov@inbox.ru

      Удалить