Monday, October 26, 2015

Варианты для гиперконвергентного решения SMB.


С свете гиперконвергентности и прочих маркетинговых штук нужно многое протестировать, прочитать. Вендоров много, решений еще больше.
Я присмотрел несколько вариантов на будущее:

HP StoreVirtual VSA - интересное решение со знакомым логотипом, хорошо документировано. Есть бесплатная лицензия на 1 тб для коммерческого использования. Возможно vmWare, Hyper-V. Ставится не только на сервера HP. Цены более или менее открыты (3500$ за ноду в 10 тб или 3500$ за 3 ноды по 4tb, это я грубо), их можно найти в сети. Уже пробовал - работает. Для малого бизнеса очень хорошо подходит. Бесплатный StoreOnce VSA + бесплатный кластер на Hyper-v, и вот тебе датацентр. Можно добавить бесплатный HP StoreOnce VSA и бесплатный же Veeam. Короче остается оплатить железо и лицензии ОС которые будем крутить внутри. Хотя про Veeam это я зря наверное.




Nutanix - позиционируют себя как решение на котором работает Google (или работал, тут темная история). Активно пиарят себя на Habrahabr, хотя я раньше не понимал о чем они вообще. Для SMB может и не интересно, т.к. для датацентров рассчитано. поддержка Hyper-v, VmWare, KVM. Сейчас есть и как софт в продаже и целиком софт + сервера. Цены неизвестны. Зато есть бесплатный Nutanix CE! Обязательно попробую. Его можно, хоть и не рекомендуется использовать в production. Но что для нас - не рекомендовано если бюджет равен 0? Ограничения в бесплатной версии есть и главное из них - использование только их гипервизора на базе KVM. Я не рискнул пока, т.к. с этой штукой мало знаком. Но пробовать надо. Обещают очень много плюшек в своем решении. Поддержка SSD tiering не просто есть, без SSD просто не взлетит. Сложности с ценообразованием наверное решаются запросами к sales. Поскольку история темная, может и продадут по ценам сравнимым с HP (если только софт).

StarWind -  прямой конкурент HP StoreVirtual VSA. Только менее раскручен. Могут построить решение от 2х нод (для HP нужна третья - любая). Могут использовать сетевые интерфейсы более экономично чем VSA, по крайней мере обещают. Могут интегрироваться с гипервизором. То есть работают не как виртуальная машина полностью абстрагированная от железки (VSA), а встраивают что то там в ОС гипервизора. Это и плюс и минус. Free версия ограничена двумя нодами, но не ограничена по дисковому пространству. Можно использовать в production.

VMWare Virtual SAN - от одного вендора можно получить полный спектр. И обращаться потом в одно окно. Но дороговато, насколько я знаю, как все у VMWare. Точнее как - считать надо. Аппаратные требования нужно хорошо представлять. Есть опасность Vendor Lock. Т.к. отдать по iscsi полученное пространство вроде невозможно никому кроме vmware. Я с VMWare не сильно дружу, так что сказать не могу ничего. 





Microsoft предлагает сразу ряд решений.  Получается тоже почти одно окно для обращений (железо отдельно). Storage Spaces Direct, насколько я понимаю нужно щупать Server 2016. Для предоставления пространства напрямую гостям или приложениям  нужны лицензии Windows Server. Есть еще Storage Replica, но он для других целей. Нужно JBOD оборудование, есть какие то ограничения, но в целом круто.

Microsoft Clustered Storage Spaces - тоже неплохо. Не пробовал, но обещают много всего. Для работы требуется таки рекомендуемое оборудование. Всякие JBOD поддерживающие штуки (контроллеры, полки).  С лицензированием пока не понял - можно ли Hyper-v бесплатный использовать? Думаю если только для виртуализации то да, а если захочется получить доступ из приложения к пространству, то нужна лицензия. 

Microsoft ScaleOut file servers. Тоже не щупал. По идее нужны опять таки лицензии Windows server, CALs, совместимое железо. В свете Storage Spaces Direct меркнет - другие задачи. Но использование возможно. Радует что у Microsoft столько решений, на разные вкусы.

Есть еще несколько (недавно узнал про Parallels Virtuozzo, Datacore, Maxta) игроков. Но на мой взгляд они для серьезных датацентров, а не для решений SMB.

Sunday, October 25, 2015

Смена технологий в СХД


Типичное инфраструктурное решение для SMB сейчас это несколько хостов с установленными гипервизорами и некий вариант Shared Storage для возможности кластеризации. И чаще всего эта схема выглядит как пара, тройка хостов подключенных к NAS по iSCSI. Hyper-v сейчас работает по SMB 3.0, и что то там можно накрутить с Clustered Shared Storage в среде Microsoft, что должно по идее дать много плюшек вместе с Storage Spaces. Но сейчас не об этом, я пока не игрался :). Традиционно люди закупают NAS'ы для этих целей или полки с подключением по SAS.


В очередном проекте возникла задача построения кластеров на имеющемся оборудовании, и при этом никаких СХД не было в наличии. Первым решением было поднять на одном из серверов хранилище и завязаться на него. Поскольку сервера были HP, в ходе обновлений прошивок наткнулся на интересное решение - HP StoreOnce VSA.
Уже потом выяснил что для пользователей VMWare даже есть родные решения такого же плана vSAN и еще что то. И что на рынке сейчас много подобных решений StarWind, Nutanix. Технологии имеют маркетинговый шильдик "Гиперконвергентность". Касательно HP StoreOnce  все работает - проверено. Оно до 1ТБ еще и бесплатное теперь, при этом работает не только на серверах HP! А в SMB шансов уместить в 1-1,5 ТБ важные виртуальные машины как раз много.
Суть в том что сервера сами себе СХД, причем распределенное, отказоустойчивое СХД. Берем дисковое пространство, отдаем его в некий общий пул, а потом подключаемся к этому же общему пулу и получаем из него нужное нам пространство.

Решение HP VSA StoreVirtual предоставляемое компанией HP совместно с Intel сроком на 3 года, ограниченное 3мя нодами хранилища и 1 террабайтом дискового пространства на каждой из нод. В результате внедрения получаем общее дисковое пространство до 1,5 Tb (доступное для использования), подключаемое по iSCSI к хостам гипервизоров, используемое для целей создания отказоустойчивого кластера Hyper-V.

На аппаратном хосте создается дисковый аппаратный RAID уровня 10. На нем располагается диск VHDX, который предоставляется виртуальной машине HP VSA. Несколько таких виртуальных машин в свою очередь формируют виртуальную SAN. Сформированные в виртуальной SAN диски предоставляются тем же аппаратным хостам (или любым другим) по iSCSI. На подключенных таким образом дисках гипервизоры могут создавать отказоустойчивые решения (кластеры), как в рамках целей виртуализации, так и в рамках кластерных решений БД, приложений и пр. Чуть позднее вычитал где то что лучше отдавать не готовый VHDX, а выделенный логический диск  сформированный Raid контроллером (ну или LUN). Мы же мигрировать виртуальную машину с хранилищем не будем.



Синим выделены виртуальные машины HP VSA; черным – аппаратные хосты гипервизор; оранжевым – виртуальные машины. 

Решение не требует дополнительных расходов на лицензирование и задействует имеющееся аппаратное обеспечение. Масштабируется путем лицензирования дополнительных опций, дискового пространства. Либо путем добавления аналогичных решений (копирования решения). Возможно использование аналогичного решения в географически распределенных системах (MultiSite), обеспечивающих работоспособность сервисов при выходе из строя одной из серверных комнат. Но тут не пробовал, при бесплатных 3х нодах как построить такое - не знаю.
Можно построить на двух, но тогда нужен некий третий сервер, который будет определять - кто из серверов VSA живой, а кто нет в случае конфликта. Третий требует минимальных ресурсов, почти ничего.
Возможно масштабирование увеличением количества нод, но это уже лицензии нужны.
Много вопросов возникло при планировании решения, при тестировании. Как что лучше настроить, подключить. В качестве примера - схема подключения.

В самой СХД участвуют только первые три сервера, четвертый в данном случае не содержит общего пространства. Но подключен к iscsi vlan и может использовать общее хранилище. Суть в том что для подсистемы хранения (виртуальных машин StoreOnce VSA) выделяем отдельные сетевые интерфейсы. Два, поскольку хотим иметь агрегацию и отказоустойчивость.  Подключаем к двум коммутаторам. А коммутаторы связываем между собой агрегацией. Можно все в один коммутатор, тогда коммутаторы практически не нужно настраивать. Вся настройка будет заключаться в выделении для СХД подсети отдельного Vlan. Пакеты дальше этих коммутаторов лучше не гонять, ибо латентность.
Дьявол в деталях, так что на самом деле эта схема ошибочна. 
Тиминги интерфейсов VSA делать не умеет!!! Так что тиминг нужно делать силами гипервизора (vSwitch)
На серверах в данном случае всего 4 интерфейса сетевых, а нужно 6! Потому что лучше отдать VSA пару интерфейсов для своих нужд (и сделать тиминг на уровне Hyper-v), дать самим Hyper-v пару интерфейсов для подключения к хранилищу по iSCSI (уже без тиминга, т.к. здесь уместнее MPIO), и для виртуальных машин тоже нужно что то выделить. С трудом можно совместить траффик VSA и iSCSI на одних и тех же интерфейсах, но в этом случае либо не будет Teaming для VSA, и VSA будет использовать только 1 интерфейс, либо MPIO не использовать. В общем - лучше 6.

Управление VSA осуществляется при помощи ПО HP StoreVirtual Centralized Management Console. Консоль можно установить на созданном для этого виртуальном сервере. Возможна установка консоли на другие сервера, для управления достаточно доступа с этих серверов к сети VSA. Сервер можно свободно перемещать между хостами гипервизоров, не рекомендуется его хранить на самом СХД, а для работы ему требуется доступ к сети VSA.
Гиперконвергентные решения в SMB скорее всего будут обходить по соотношению цена/производительность и цена/емкость и всем кому грозит апгрейд СХД или просто планируется покупка - стоит посмотреть в эту сторону. Конкуренция на этом рынке сейчас есть, есть из чего выбрать.

Настройка авторизации LDAP для Grafana


Прикрутив к ZabbixGrafana порадовался красивым графикам. Стандартному Zabbix несколько не хватает возможностей работы с графиками, а ведь именно графики наиболее удобно использовать для выявления отклонений в динамике.
Сама Grafana ставится очень просто и быстро, установка модуля для подключения к Zabbix так же не вызвала осложнений. А вот на авторизацию с помощью LDAP в среде Microsoft Active Directory ушло много времени. Кстати, если решили настроить авторизацию LDAP, убедитесь что сам сервер с установленной Grafana надежно защищен, по крайней мере пароль root не 123456 ), ведь вы будете доверять ему Ваши доменные логин и пароль.
На самом Grafana процедура настройки описана хорошо, но у меня не взлетело.
Содержание файла ldap.toml пришлось подправить.
Для работы необходимо во первых использовать sAMAccountName=%s, во вторых необходимо точное соответствие всех параметров с ответами сервера LDAP. То есть если сервер отвечает на запрос "DC=mydomain", то вариант с "dc=mydomain" не прокатит.
Вот что заработало в итоге у меня, под себя нужно подправить выделенное:
# Set to true to log user information returned from LDAP
verbose_logging = false
[[servers]]
# Ldap server host
host = "10.10.10.2"
# Default port is 389 or 636 if use_ssl = true
port = 389
# Set to true if ldap server supports TLS
use_ssl = false
# set to true if you want to skip ssl cert validation
ssl_skip_verify = false
# Search user bind dn
bind_dn = "%s@mydomain.local"
# Search user bind password
#bind_password = 'no matter'
# Search filter, for example "(cn=%s)" or "(sAMAccountName=%s)"
search_filter = "(sAMAccountName=%s)"
# An array of base dns to search through
search_base_dns = ["dc=mydomain,dc=local"]
# Specify names of the ldap attributes your ldap uses
[servers.attributes]
name = "givenName"
surname = "sn"
username = "cn"
member_of = "memberOf"
email =  "email"

# Map ldap groups to grafana org roles
[[servers.group_mappings]]
group_dn = "CN=myGRAdmins,OU=mybusiness,DC=mydomain,DC=local"
org_role = "Admin"
# The Grafana organization database id, optional, if left out the default org (id 1) will be used
# org_id = 1
[[servers.group_mappings]]
#group_dn = "CN=grusers,DC=mydomain,DC=local"
#org_role = "Editor"
[[servers.group_mappings]]
# If you want to match all (or no ldap groups) then you can use wildcard
#group_dn = "*"
#org_role = "Viewer"
При такой настройке нет необходимости создавать учетную запись для bind, вместо этого используются логин и пароль введенные пользователем.
Понятно что должна быть группа myGRAdmins в подразделении mybusiness, и пользователь должен быть членом этой группы чтобы войти в Grafana с правами администратора. То же самое с grusers. 
Если все работает нормально, дальше уже заменяем IP на mydoman.local, включаем TLS.

Из минусов решения:
  • права пользователя в Zabbix никак не связаны с авторизацией в LDAP, то есть для связи используется отдельная, статически заданная учетная запись. А значит, если какие то пользователи не должны видеть какие то показатели внутри заббикса, а какие то должны, то реализовать это будет не так просто (несколько datasource и организаций). В моем случае не критично.
  • Пока не разобрался как массово изменить параметры в панелях на Dashboard. Ну, например, цвет в Single Stat для состояния 1 был зеленым при создании всех 20 панелей, а захотел изменить на оранжевый. Это нужно в каждый войти. Template тут мне пока не помогли. Вероятно, это сделать через веб интерфейс вообще нельзя. Ну и создать эти 20 панелей для 20-ти разных хостов пришлось вручную. Может руки кривые у меня.
  • При добавлении новых хостов и использовании template, у меня не добавляются в  template новые хосты автоматически. Нужно зайти в Template, обновить, сохранить. Может конечно кэш браузера влияет.
За модуль подключения Grafana к Zabbix спасибо Alexander Zobnin.
И конечно благодарность разработчикам Zabbix, Grafana и CentOS на которую я себе все это поставил (внутри Hyper-v).


Saturday, October 3, 2015

HP Proliant Gen8 и Microsoft Hyper-v Server 2012 R2 и Server Core, установка и обновление


С HP Proliant DL360p g8 потратил около часа на то чтобы разобраться с процессом установки ОС. Он несколько отличается от Gen5 с которыми доводилось иметь дело ранее, а на некоторых Gen8 я ставил ОС "по быстрому", соответственно, неправильно. 
Установка состоит из этапов:

  1. аппаратная подготовка сервера
  2. обновление прошивок
  3. установка ОС
Аппаратная подготовка сервера заключается в том чтобы установить все компоненты (память, контроллеры, ЦПУ), смонтировать сервер в стойку. Все просто, по инструкциям. На снимаемой крышке сервера находятся инструкции по установке компонентов, как надо и как не надо устанавливать память. Если не уделить этому этапу достаточно внимания, то придется потом отключать сервера, чтобы переделать. А отключений никто не любит, поэтому все так и останется. Обязательно нужно найти и желательно выписать себе логин и пароль от системы удаленного управления iLO. Он бывает наклеен на крышке, и написан на выдвигающемся ярлычке в передней части сервера. И подключить к порту iLO соответствующие провода (желательно наличие DHCP сервера в сети. Если такового нет, и IP адреса назначаются вручную, необходимо будет при включении сервера подключить клавиатуру, мышь, монитор, зайти в настройки и настроить BIOS.) Так же необходимо подключить сеть к одному из портов сервера если обновления будем выкачивать через интернет. Вообще к нормальным серверам мониторы и kvm подключать не требуется, все управление доступно удаленно.
Дальше подаем питание на сервер и цепляемся к его iLO через браузер. Включать сервер не обязательно. iLO загружается при еще выключенном сервере. После ввода логина и пароля iLO можно убедиться что все у нас хорошо, ошибок нет. И зайти в раздел Remote console, там есть варианты на .net или на Java.  Подключившись к консоли включаем сервер, при загрузке нажимаем F10 - IP (Intelligent Provisioning). 
IP позволяет нам произвести настройку сервера, создать RAID, обновить прошивки, помочь в установке ОС. Пункт Perform Maintance - то что нам нужно. В моем случае автоматическое обновление не работало "Unable to contact update server", пришлось скачать ISO образ, вставить его в виртуальный привод в том же iLO и обновить систему загрузившись с этого диска.
Обновление прошивок не обязательно, но настоятельно рекомендуется. Лучше сделать это на первом этапе чем на уже работающем сервере с приложениями.  
Скачать ISO образ можно с сайта HP, правда для этого требуется много времени и как минимум регистрация на сайте, а возможно и наличие гарантийного контракта на сервера. В моем случае сервера еще на гарантии, образ скачался без проблем. Название файла актуального для 1 октября 2015 года 843216_001_spp_2015.10.0-SPP2015100.2015_0921.6.iso , можно найти наверное на каких либо ресурсах. Я потратил много времени на поиск ссылки на скачивание на самом сайте HP, с учетом того что у них периодически не открывались страницы и перекидывало не туда. В итоге нужную ссылку мне предоставил специалист тех поддержки через чат. Но если знать что искать, то гугл мне бы помог - "HP SPP download proliant" )

Дальше устанавливаем ОС. Для этого нужно зайти в IP и выбрать  Configure and install. Через iLO вставляем установочный диск с ОС, и действуем по Wizard'у. IP сам определяет какую ОС мы собираемся устанавливать и дальше действует сам, особых вмешательств не требуется. Если прошивки и IP уже обновили, можно отключить "update before install".
В результате установки мы получаем готовый сервер, с установленными утилитами, драйверами,  готовый к работе.
Для Core версии ОС такой подход более чем удобен, не приходится ничего скачивать на сервере, возиться с установкой приложений без GUI. С версией Core или Hyper-V желательно чтобы было удаленное управление, для этих целей устанавливается пара утилит HP. Проверить их работоспособность можно пройдя по ссылке https://server-ip-address:2381/

Что делать если вышел новый SPP, или если не работает удаленное управление по порту 2381? Для начала проверить настройки брэндмауера, можно даже временно отключить его, чтобы удостовериться что он не при чем. Если не работает, возможно не установлены нужные компоненты, их легко доустановить.
Скачанный ISO SPP необходимо смонтировать в виртуальный привод. На этот раз у нас есть опции как это сделать:
  • можно через iLO remote management. Нужно иметь в виду что если не установлен iLO Advanced, то консоль отключается секунд через 30 после того как поймет что ОС уже загрузилась. Кстати, установка сервера это повод опробовать iLO Advanced, можно активировать trial режим, скачав ключик с сайта HP.
  • можно просто скачать iso образ на сервер и смонтировать средствами ОС, благо 2012 и 2012 R2 умеют это делать без сторонних утилит. Достаточно просто ввести в командную строку путь к iso образу, по умолчанию его ОС смонтирует в виртуальный привод.
  • смонтировать его не на сервере требующем обновления, а на станции администратора.
  • прочее


Теперь нужно запустить со смонтированного диска launch_hpsum.bat - результатом будет приглашение пройти по ссылке в браузере http://server-ip-address:63001. Браузера у Core версии не найти, поэтому воспользуемся любым другим компьютером. 


Перед процедурой необходимо убедиться в наличии бэкапов всего всего. Так же убедиться что из Hyper-v  мы перенесли все VM на другие сервера. Если Hyper-v в кластере, приостановить его действия в кластере. В процессе обновления может потребоваться перезагрузка, да и вообще - лучше иметь бэкап чем не иметь его.
Дальше все просто, выбираем что и где мы хотим обновить, запускаем процесс. В принципе смонтировать и начать установку можно не на самом сервере, а в другом месте. В процессе установки нам предлагается добавить сервера (ноды) на которых мы хотим произвести установку.
В моем случае по умолчанию не были выбраны к установке два сервиса:
  • HP Insight Management Agents for Windows Server x64 Editions
  • HP Insight Management WBEM Providers for Windows Server x64 Editions 
Для установки HP IM требовалось на сервере сначала установить SNMP сервис, это можно сделать через powershell ( Install-WindowsFeature -Name RSAT-SNMP -Source \\server2\winsxs ) либо через оснастку управление серверами - добавление ролей и компонентов. 
После установки и перезапуска сервер должен быть доступен по адресу 
https://server-ip-address:2381