- Cluster ;

**1.     Описание основных понятий**

Кластер (англ. cluster — скопление) — объединение нескольких однородных элементов, которое может рассматриваться как самостоятельная единица, обладающая определёнными свойствами. Применимо к IT и к нашему случаю кластер это — группа компьютеров, объединённых физически — каналами связи, а программно – с помощью ПО кластера  и представляющая с точки зрения пользователя единый аппаратный ресурс.

Сеть хранения данных (англ. Storage Area Network, SAN) — представляет собой архитектурное решение для подключения внешних устройств хранения данных, таких как дисковые массивы, ленточные библиотеки, к серверам таким образом, чтобы операционная система распознала подключённые ресурсы как локальные.

Microsoft Hyper-V — система виртуализации для x64-систем на основе гипервизора. Гипервизор обеспечивает параллельное выполнение нескольких ОС на одном и том же хосте, изоляцию операционных систем друг от друга, защиту и безопасность, разделение ресурсов между различными запущенными ОС и управление ресурсами.

**2.     Подбор оборудования и ПО**

Аппаратные требования: Процессор должен поддерживать аппаратную виртуализацию и трансляцию адресов второго уровня (Intel EPT или AMD RVI). У Intel эта технология называется Intel-VT (также может обозначаться VMX), у AMD — AMD-V (SVM). Однако чтобы виртуализация заработала, поддержка должна быть не только на уровне процессора, но и на уровне материнской платы. Включить виртуализацию можно в разделе Advanced BIOS Featured. Обычно здесь есть параметр Virtualization, или Intel-VT.

При выборе оборудования необходимо собрать данные о серверах которые вы хотите виртуализировать и сделать их анализ, необходимо понять какие ресурсы используют все ваши сервисы которые подлежат виртуализации. Данный анализ поможет сделать Microsoft Assessment and Planning ToolKit. С помощью него вы сможете: инвентаризировать ресурсы, собрать показатели производительности, получить рекомендации по виртуализации, и даже рассчитать рентабельность инвестиций. В итоге вы сможете точно сказать какое оборудование вам нужно(вплоть до конкретного процессора).

После сбора и анализа данных с помощью MAP, мы подобрали оборудование которое позволило бы нам виртуализировать все наши ресурсы, плюс оставили запас под рост сервисов. В общих чертах можно сказать что с данной(ниже) конфигурацией мы смогли на предприятии (количество пользователей пользующихся виртуализированными сервисами — 600 чел.) без потери производительности перевести в виртуальную среду около 15 серверов с разнообразнейшими сервисами в составе: нескольких SQL серверов разных версий (на них крутится 1С 8.2 Предприятие, Эл.документооборот, ServiceDesk, и другое ПО), терминальный сервер, WEB сервер, один из контроллеров домена, сервер антивируса, и т.д и т.п. И все это прекрасно и беспроблемно уживается в виртуальной среде.

Итак основываясь на результатах собранной информации с помощью MAP, и используя функцию MAP \Server Virtualization\Server Consolidation Rezults подобрали с помощью вендора оптимальную конфигурацию для нашей инфраструктуры. В ее состав входят два сервера, схд, коммутаторы для организации сети SAN. Отдельно замечу что мы не рассматриваем варианты с использованием SMB (Hyper-V 2012 это позволяет), Microsoft iSCSI Software Target, StarWind iSCSI Software Target, по многим причинам (ввиду хотя бы названия этой статьи) которые рассматривать здесь не будем, поэтому примите как данность.

**Состав оборудования:**

**Ноды кластера (сервера)**

Сервер IBM System x 3850 X5 Rack в составе:

Процессор  Xeon E7-4820 2.00GHz/24MB L3 – 2 шт.,

Оперативная память PC3L-10600 CL9 ECC DDR3 1333MHz – 48GB (12х4Гб)

Блок питания 1975W p/s – 2 шт.,

Сетевой адаптер IBM NetXtreme II 1000 Dual Port Express Adapter,

FC-адаптер IBM QLogic 8Gb FC Single-port HBA for IBM System x – 2 шт.,

**СХД**

Дисковый массив IBM Storwize V7000 в составе:

Дисковая система хранения IBM Storwize V7000 в комплектации: Два контроллера 8 GB RAM, 4 (четыре) порта iSCSI 1 GB/s, 8 (восемь) портов FC 8 GB/s, батареи хранения содержимого кэша.

Жесткий диск IBM 600GB 2.5in SFF Slim-HS 10K 6Gbps SAS HDD – ХХХ шт.,

Кабель 5 m Fiber Optic Cable LC-LC – 8 шт.,

Кэш-память Cache 8 GB – 2 шт.,

Лицензия для внешней виртуализации IBM Storwize V7000 External Virtualization – 3 шт.,

**Коммутаторы SAN**

Коммутатор для организации сети IBM System Storage SAN24B-4, 2 шт в составе:

Коммутатор Express IBM System Storage SAN24B-4 (8 ports activated),

Лицензия для активации портов IBM 8-Port Activation,

Трансиверы SFP 8 Gbps SW 8-Pack – 2 шт.

**Программное обеспечение**

Windows Server 2012 Datacenter

Вот в принципе то что нам понадобится для построения нашего кластера(пример взят из реального проекта), отдельно хочу сказать что по лицензированию Windows Server 2012 отдельная история, но в нашем случае мы выбираем Datacenter ввиду большого количества виртуалок которые будут у нас крутится (Datacenter позволяет запускать неограниченное количество виртуальных экземпляров). Отдельно замечу по языку ОС: рекомендую использовать английскую версию, ибо как говорит один знакомый MVP – «врага надо знать в лицо» да и от использования родного языка ОС вы получите «бонус к карме» что обязательно скажется на ваших профессиональных навыках.

**3.     Построение схемы SAN**

На данной схеме мы видим вариант 4-х узлового кластера либо двух отдельных кластеров использующих одно и тоже хранилище (но разные пулы дисков). Данная схема позволяет увидеть как мы можем использовать наше оборудование. В случае с нехваткой пространства на полке, мы всегда можем подцепить полку расширения(у Storwize V7000 по интерфейсу SASx4 6 Gb/s – 24 Gb/s) и использовать новое пространство для своих нужд.

В реальном примере мы будем собирать двух узловой кластер состоящий из СХД IBM Storwize V7000, двух FC коммутаторов Express IBM System Storage SAN24B-4, двух серверов IBM System x 3850 X5   (на последующих скринах вы увидите элементы другого кластера – не обращайте внимания). Причем полка и коммутаторы уже задействованы под реально работающий кластер Hyper-V, хочу отметить что во время работ ни одно животное не пострадало ни одно наше действие не сказалось на работе действующих сервисов. Что конечно и ожидалось – ведь это решение корпоративного уровня позволяющее решать наши задачи без каких либо остановок и перезагрузок. Итак ниже схема по которой мы будем собирать наше оборудование:

**4.     Настройка SAN**

Настройка SAN сетей конечно совершенно отдельная тема и для этих целей зачастую нужен дорогостоящий квалифицированный специалист по данной тематике, но как всегда кластер нам нужно собрать «еще вчера» и коммутатор вроде не страшный.. значит разберемся сами. Настраивать оптические коммутаторы Brocade желательно в следующей последовательности(а в большинстве случаев  у вас будет именно такой правда с наклейкой другой компании, в нашем случае это IBM SAN24B-4 но на самом деле это Brocade 300B)

**Общая последовательность настройки SAN коммутаторов Brocade**

1. Подключим все оборудование согласно схеме и включим все элементы нашей сети

2. Подключится к COM(RS232) порту (9600-8-1, no-flow-control) спец. кабелем

3. С помощью ПО “Putty” либо “HyperTerminal” из дистрибутива windows подключится к COM порту к которому подключен наш коммутатор.

4. Ввести логин/пароль

5. Изменить имя коммутатора командой **switchname** **<имя коммутатора>**

6. Настроить сетевые параметры командой **ipaddrset**, все необходимые параметры у вас запросит мастер настройки.

7. Меняем Domain-ID:

— **switchdisable**— этой командой дезактивируем коммутатор.

— **configure**— этой командой меняем Domain-ID (диапазон 1…239), отвечаем yes на вопрос о изменении фабрики, следующий параметр как раз Domain-ID, а все остальные параметры оставляем по умолчанию (просто нажимаем Enter).

— **switchenable**– этой командой активируем коммутатор.

8. Перезагрузка командой **reboot**

9. Cмотрим что у нас на коммутаторе командой **switchShow**– если оборудование подключено, но WWN не показаны смотрим порт **portShow <номер порта>**

10.  Командой **alicreate “<Имя алиаса>”, “<WWPN\_1>; <WWPN\_2>; … <WWPN\_N>”**можно создать алиасы: ***alicreate «Storwize1», «50:05:22:11:00:11:22:33»***потом можно будет использовать этот алиас при создании зоны в след.пункте

11.  Создаем зоны, зоны создаем по wwn, т.е. алиасам созданным в предыдущем пункте. Зоны делаем из двух членов: инициатор(hba/виртуальный fc), таргет (порт дисковой системы или библиотеки и пр.)

Для создания зоны используем команду **zonecreate “<Имя зоны>”, “<Алиас\_1>; <Алиас\_2>; … <Алиас\_N>”.**

*zoneCreate «z\_имязоны1″, «алиас\_сервера1; алиас\_дисковой\_системы1»*

*zonecreate «z\_имязоны2″, «алиас\_сервера1; алиас\_дисковой\_системы2»*

*zonecreate «z\_имязоны3″, «алиас\_сервера2; алиас\_дисковой\_системы1»*

*zonecreate «z\_имязоны4″, «алиас\_сервера2; алиас\_дисковой\_системы2»*

***PS: Старайтесь создавать зоны, так чтобы в каждой зоне был 1 порт сервера и 1 порт устройства, лучше пусть у вас будет больше зон, чем все свалено в кучу.***

12.  Создаем конфигурацию командой **cfgCreate «cfgSAN1″, «z\_зона1; z\_зона2; z\_зона3; z\_зона4″.**Если конфигурация уже есть то активную зону можно посмотреть командами **alishow** или **cfgactvshow**и добавить новую зону в конфигурацию командой **cfadd “<имя конфигурации>”, “<Зона\_1>; <Зона\_2>; … <Зона\_N>”**и сохраняем конфигурацию**cfgsave**фабрики и применяем  конфигурацию с помощью команды **cfgenable “<Имя конфигурации>”**

13.    Если мы создали новую конфигурацию то активируем ее командой **cfgenable “<Имя конфигурации>”**

14.    Посмотрим на результат наших усилий командой **cfgactvShow**

15.    **P.S.**все это конечно можно сделать из GUI, попасть в которой мы можем через браузер прописав в адресной строке ip коммутатора, но это не путь джедаев

16.    Если мы все правильно настроили то в следующем разделе мы сможем отдать будущим узлам кластера необходимые ресурсы с СХД.

**5.     Подготовка СХД**

Подготовим нашу СХД IBM Strorwize V7000 к работе(все узлы согласно приведенной выше схемы уже подключены отдельно наша полка поддерживает подключения хостов только через коммутаторы,  в нашем случае это пара IBM SAN24B. После первичной настройки заходим в GUI нашей полки и нарезаем диски:

5.1  Вставляем диски в нашу полку

5.2  Переходим Physical Storage >Internal и контролируем их состояние

5.3  Помечаем диски как Candidat

5.4  Создаем массивы: Configure Storage – Select a different configuration. Выбираем необходимые параметры, в продакш рекомендую использовать только RAID 10 но это отдельная история требующая отдельного рассмотрения. После данных манипуляций мы сконфигурировали mdisk2 и mdisk3 а также так называемые пулы (pools). Пулы можно создавать при конфигурировании MDisk, а также в меню Physical Storage >Pools. Новые пулы мы назвали Pool3\_HostBoot\_HyperV2012 и Pool4\_Cluster\_HyperV2012 и связали их соответственно с mdisk2 и mdisk3.

5.5  Создаем тома (Volumes) для того чтобы в дальнейшем сделать маппинг этих томов на наши узлы, а также создаем том который будет являться кворумным диском.

Переходим в Volumes\All Volumes и создаем диски с помощью функции (слева вверху) New Volumes, выбираем вид Generic, выбираем из какого пула будем создавать, указываем имя и объем . Для текущих целей нам необходимо создать следующие диски(названия даны исходя из текущей ситуации на конкретном оборудовании, вы называйте как хотите):

QuorumDisk2 – кворумный диск, необходим для работы нашего двухузлового кластера.

Host3OS – диск с которого будет загружаться ОС первой ноды

Host4OS – диск с которого будет загружаться ОС второй ноды

ClusterResourse2 – общий кластерный ресурс на котором будут хранится виртуальные машины.

В дальнейшем нам будет необходимо сделать маппинг дисков Host3OS и Host4OS соответствующим хостам, а кворумный диск и кластерный ресурс необходимо будет отдать обоим хостам. На рисунке ниже приведен процесс создания логического тома (volumes).

5.6  Подключим наши ноды к СХД в разделе **Hosts\AllHosts.**

**NewHost-FibreChanel Host**— Пишем имя – Выбираем порты по которым этот хост подключен. Если мы все правильно сделали при настройке SAN коммутатора то полка должна без проблем найти активные нераспределенные порты подключенных устройств.

5.7  Отдадим наши тома соответствующим узлам.

Volumes\allVolumes – выбираем том – Actions(либо ПКМ) – Map to host – выбираем хост.

Аналогично все тома:

QuorumDisk2 – Host3,Host4

Host3OS – Host3

Host4OS – Host4

ClusterResourse2 – Host3,Host4

**6.     Настройка Boot From SAN**

Итак мы имеем готовую к работе SAN сеть, осталось только установить на наши хосты операционные системы, установить все обновления, установить роль Hyper-V, компоненты средство отказоустойчивости кластеров, MPIO и собрать кластер.

Установить операционную систему в случае наличия локальных дисков на сервере, не представляет трудности, поэтому рассмотрим ситуацию когда ОС будет располагаться в нашем хранилище т.е загрузка сервера будет производится с внешней системы хранения данных. Итак настраиваем:

Так как зонирование мы уже настроили, следовательно проблем с «видимостью» оптических устройств не должно возникнуть, поэтому сразу заходим в BIOS FC адаптера.

* Для адаптеров Qlogic(а именно они у нас и используются) нажмите при загрузке сервера Ctrl+Q.
* В начале диалога нам предлагают выбрать адаптер для настройки – выбираем
* Дальше в Configuration Settings

* Выберите Adapter Settings,
* Включите опцию Host Adapter BIOS (enable)
* Вернитесь в Configuration Settings, выберите Selectable Boot Settings.
* Включите опцию Selectable Boot и выберите загрузочный LUN.

* Повторить настройки для второго интерфейса FC адаптера
* Установить ОС Windows Server 2012. Если установщик не увидел LUN, то, скорее всего, в образе не хватает драйверов для HBA-карточки.

**7.      Подготовка к сбору кластера**

Подготовимся к сбору кластера, а именно необходимо установить компоненты: средство отказоустойчивости кластеров, MPIO, ну и естественно роль Hyper-V. Итак приступим:

7.1  Установка ОС (если еще не установили) + все обновления.

7.2  Установка Multipath I/O через Add Roles and Features Wizard

Multi-Path Input Output — технология, позволяющая соединять устройства хранения и серверы, используя несколько портов или контроллеров, обеспечивая тем самым избыточность подключений. С помощью дополнительных компонентов физических путей (адаптеры, кабели, коммутаторы) создаются логические пути между сервером и хранилищем. При выходе из строя одного или нескольких компонентов, логика MultiPath позволит использовать альтернативный логический путь, сохраняя для приложений доступ к данным.

7.3  **Настройка MPIO**

После установки Multipath I/O можно открыть диалоговое окно Свойства MPIO из панели управления сервером (для Windows Server 2012: Server Manager-Tools-MPIO) либо командой mpiocpl. Не будем подробно освещать данный компонент, а настроим его применительно к нашему случаю.

Переходим во вкладку Discover Multi-Paths, в нашем случае в списке появится устройство IBM 2145. Выбираем его и нажимаем Add, после добавления ОС попросит перезагрузку. После перезагрузки у нас будет виден только один диск(или несколько – по количеству отданных томов нашему узлу), посмотрев его свойства через оснастку diskmgmt.msc можно увидеть вкладку MPIO где можно тонко настроить необходимые параметры. По умолчанию MPIO выберет режим работы Round Robin With Subset т.е режим балансировки нагрузки, оставляем все по умолчанию либо настраиваем под себя. Вот и все.

7.4  **Установка Failover Clustering**(средство отказоусточивости кластеров) через Add Roles and Features Wizard.

Тут все стандартно, устанавливать нужно через Add Roles and Features Wizard. Выбираем Failover Clustering и устанавливаем.

7.5   **Установка роли Hyper-V**

Опять же все через Add Roles and Features Wizard. Ничего сложного, просто следуйте по пунктам, рекомендую оставить все по умолчанию. Необходимые настройки вы все равно будете делать позже, в процессе наладки работы кластера Hyper-V.

**8.     Сбор кластера**

8.1  **Проверка на возможность сборки кластера**

Перед тем как собрать наш кластер необходимо провести проверку  на саму эту возможность. Запускаем Fileover Cluster Manager, далее – Validation a Configuration Wizard  и указываем узлы будущего кластера. После проверки можно посмотреть отчет, где будут указаны ошибки, после устранения которых можно собирать кластер.

После устранения всех критических ошибок проводим повторную проверку и убедившись в их отсутствии приступаем к следующему пункту.

8.2  **Создаем кластер (Create Cluster)**

Запускаем Fileover Cluster Manager, далее – Create Cluster Wizard

* указываем узлы будущего кластера
* Пишем имя кластера и его ip адрес
* Проверяем еще раз введённую информацию и запускаем процесс

* После создания кластера читаем отчет и устраняем возможные ошибки
* Открываем Fileover Cluster Manager и видим что у нас появился наш свежеиспеченный кластер из двух узлов, причем из доступных дисков мастер настройки выбрал наименьший диск в качестве кворума, второй диск используется в качестве кластерного ресурса. Также смотри Cluster Events на предмет ошибок – устраняем их.

* Далее для размещения виртуальных машин нам надо сделать так чтобы конфигурация и виртуальный жесткий диск (VHD) были доступны одновременно на обоих узлах. Сделать такой ресурс мы можем используя решение именуемое Cluster Shared Volume. Технология Cluster Shared Volume не предъявляет никаких специальных требований, кроме наличия хранилища с общим доступом в отказоустойчивом кластере. Более подробно о данной технологии всегда вам подскажет google. Сделать это легко и просто: кликните ПКМ на нужном диске (не кворум), в меню выбираем Add Cluster shadow volume – профит! Диск будет смонтирован на C:\ClusterStorage\Volume1, так что все совместно используемые данные будут находиться там. В том числе и виртуальные машины. Причем если вы собрали кластер на основе ОС Windows Server 2008 R2 то на этом ресурсе могут располагаться только виртуальные машины, в Windows Server 2012 эти ограничения сняты.
* Вот и все, осталось только проверить работоспособность!

8.3  Проверка работоспособности кластера Hyper-v с помощью Fileover Cluster Manager

8.4  Проверка работоспособности кластера Hyper-v с помощью Hyper-V Manager

8.5  Проверка работоспособности кластера Hyper-v с помощью SCVMM

## Кластерное NAS

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

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