Обзор InfiniBox F2230

Недавно компания «ОНЛАНТА» приобрела для своего корпоративного облака Oncloud.ru систему InfiniBox F2230 компании Infinidat. В интернете практически нет обзоров этой системы, поэтому мы решили устранить пробел. Сегодня мы постараемся максимально подробно рассказать вам об этой СХД.

ku0wp4k6yeu92glq5agz6virqiy.jpeg


Infinidat — молодая израильская компания. Она была основана в 2011 году Моше Янаем, который в своё время руководил разработкой EMC Symmetrix, а в последствии основал компанию XIV и был главным архитектором этой системы. К слову, XIV в 2008 году приобрела компания IBM. Так что опыта Infinidat в производстве СХД уровня Enterprise не занимать. Один из ключевых факторов систем Infinidat — их высокая надёжность (99,99999%). Компания Infinidat — лидер среди визионеров дисковых массивов, по мнению аналитиков Gartner.

Система серии F2230 занимает всего 18U. При этом пиковое энергопотребление составляет всего 3,5 кВт, что при полезной ёмкости в 250ТБ достаточно экономично. Данная система в полной мере поддерживает компрессию, что может увеличить эффективный объём до 1ПБ.

Главная разработка компании — операционная система, которая позволяет качественно управлять оборудованием. По сути, это Software Defined Storage (SDS). Эти системы, которые сейчас активно борются за рынок со своими «классическими» конкурентами. Поставляется Infinidat как готовая система со всеми аппаратными компонентами и собственной стойкой.

esgzsnp1ad91i-ph7i6js4ppark.jpeg

Выгружаем и распаковываем

Сердце системы — три сервера, работающие в режиме Active — Active — Active.

cy0q4ecirb_zh-hgq9-aor3etno.jpeg


Использование трёх контроллеров позволяет снизить потери в производительности в случае выхода из строя одного из контроллеров. В классической двухнодовой конфигурации в случае выхода из строя одного контроллера система не в состоянии обеспечивать сохранность кэша записи. Это приводит к его принудительному сбросу, что в свою очередь ведёт к увеличению задержек. В случае же с трёхнодовой конфигурацией при выходе из строя одного из контроллеров кэш продолжает синхронизироваться между оставшимися двумя нодами.

pf9bvvdofoostiyllvep_lyg1ui.jpeg

Контроллеры и BBU

Общий объём оперативной памяти всех контроллеров составляет 384ГБ. Также в нашей системе установлено 24ТБ флэш-кэша и две дисковых полки, по 60 NL-SAS дисков.

w1mqh2njgiwpw_2koxrecmadeu8.jpeg

Устанавливаем диски в полки

om3vook3iiri5btis8t5knac-ly.jpeg

Дисковые полки, вид спереди

ud1xccupehnxa_51t6jkkxurdyo.jpeg

Дисковые полки, вид сзади

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

Соединение между нодами осуществляется при помощи InfiniBand. Дисковые полки подключены к контроллерам посредством SAS. Доступ к данным может быть организован как по FC, так и при помощи Ethernet.

InfiniRAID — логическая архитектура Infinidat использует небольшие блоки (64к) дисков в качестве элементов RAID (вместо всего диска). Это минимизирует дисковое соперничество и позволяет каждому из узлов в системе постоянно использовать все диски для максимальной производительности.

По мере поступления данных в систему они помещаются в RAM (для быстрого доступа), вместе с полем DIF (Data Integrity Field — полем целостности данных), которое остается с данными на всех уровнях хранения и обработки, для предотвращения логических ошибок и потерянных записей. DIF считывается вместе с данными во время каждой операции чтения и сверяется, чтобы обнаружить все не детектируемые ошибки (Silent-Data Corruption), которые потом корректируются с использованием RAID.

Когда алгоритм по распределению данных решает записать данные из памяти на постоянные носители, он выбирает блоки для записи и оптимизирует их перед этим. Это включает в себя организацию блоков в группы по 14 секций (вместе с DIF) + 2 блока четности.

wdg_mt-ehpgckjibu776ns2sili.jpeg


Алгоритм распределяет эти группы (stripes) по всем дискам в InfiniBox, одновременно проверяя, что:

  • каждая секция на другом диске,
  • секции равномерно распределены между полками (для защиты от проблем с полкой),
  • секции равномерно распределены между всеми дисками (для оптимального распределения емкости и производительности).


rqrwhqrwqlet7cxwjzu9vcwrcfs.jpeg


Такое распределение данных, где каждая виртуальная RAID группа включает партиции от различных групп дисков, позволяет использовать при восстановлении данных все диски системы одновременно. Поэтому InfiniBox может восстановить большие диски за минуты вместо дней. Благодаря достаточному пространству, выделенному для защиты от сбоя дисков (12 дисков в старшей модели), и используя возможность брать незанятое пространство для защиты, система может выдержать от 12 сломанных дисков и больше.

rcoirpu2gs2fz-6zbqngy0aje4g.jpeg


Большая часть операций чтения происходит из кэша, расположенного на SSD дисках. Это позволяет минимизировать нагрузку на NL-SAS диски, обращаясь к ним лишь за небольшим количеством данных, которые не попали в кэш.

Операции записи попадают в защищённый DRAM кэш, который содержит все изменения блоков до того, как они «остынут», после чего они уже отправляются на диски. Когда блоки данных отправляются на диски, они записываются на все диски одновременно, что дает системе возможность записывать их на высокой скорости. Блоки данных, которые система посчитает наиболее вероятными для последующего чтения, записываются не только на NL-SAS диски, но и на SSD кэш для ускорения чтения.

r5wst1qmemxxzvwyqb7y2ntd54w.jpeg


Эта уникальная компоновка данных позволяет InfiniBox избегать использования SAS дисков и вместо этого использовать комбинацию дисков SSD и NL-SAS для достижения высокой производительности и низких задержек IO.

fgahytdqp8tsy_80eevbrlkn0zc.jpeg

Установленная, подключенная и настроенная система готова к эксплуатации

Стоит отметить, что это система, которая делает большое количество задач за пользователей: она не дает доступ к дискам — RAID уже сделаны заранее, балансировка нагрузок по дискам и между контроллерами делается автоматически, прошивку контроллеров обновляет поддержка и т.д.

o9-z9kqqnda2f0mg0tjqsw_hfno.jpeg


Вот этот значок, в правом верхнем углу говорит о том, что вы установили соединение с сервером Infinidat и поддержка сможет получить доступ к системе для какой-то диагностики и т.д. Когда сотрудник поддержки подключается к вашему массиву, весь значок станет зелёным. Доступ для поддержки можно отключить, и включать только по необходимости.

Эффективность хранения


Начать хотелось бы с того, что данные системы не поддерживают дедупликацию. Вообще. Только компрессию, о которой я и расскажу чуть подробнее.

Чтобы сжатие данных не влияло на производительность системы, Infinibox производит их компрессию в момент переноса данных из кэша на диски. На текущий момент система использует алгоритм сжатия LZ4, но архитектура системы хранения построена таким образом, что в будущем его будет можно заменить на какой-то более новый и эффективный. Не стоит также забывать, что сжатие данных — это процессорозависимая операция и даже при использовании современных процессоров она может сказываться на общей производительности системы. Компрессия производится блоками в 64KB, что позволяет достичь более высокой степени сжатия.

Компрессия работает как с толстыми, так и с тонкими томами, но её работа в этих случаях отличается.

  • Тонкие тома — экономия пространства от сжатия данных остается доступной в физической емкости пула.
  • Толстые тома — освобожденное таким образом пространство недоступно для повторного выделения.


Итак, как InfiniBox позволяет экономить дисковое пространство без влияния на производительность: данные находятся в RAM-кэше в несжатом виде. Сжатие происходит в момент записи данных на диск. Но именно запись на HDD, т.к. то, что попадает на SSD-кэш, находится там также в несжатом виде. Infinidat предполагает, что большая часть данных, с которыми вы работаете, — находится в кэше, поэтому компрессия не увеличит время отклика. На самом же деле, мы понимаем, что это далеко не всегда так, но, если посмотреть на общую архитектуру, которая предполагает хранение данных на большом количестве дисков малыми блоками, это позволяет избежать сильного повышения отклика.

Если вам интересно узнать подробнее о работе данной системы, предлагаю обратиться к статье «Архитектура хранения для цифрового предприятия» Василия Кострюкова, технического директора Infinidat Россия.

Репликация


InfiniBox поддерживает как синхронную, так и асинхронную репликацию. Асинхронная репликация осуществляется на базе снэпшотов. Синхронная репликация отправляет I/O на обе системы (основную и резервную) и это увеличивает время отклика, т.к. хост получает подтверждение о записи данных только после записи на обе системы. Чтение же происходит только из локальной системы.

veemxqo-5tqcri8jw4p-ndbmlmi.jpeg

Асинхронная репликация

  1. Хост отправляет I/O для записи на source InfiniBox
  2. Source InfiniBox подтверждает запись I/O хосту
  3. Source InfiniBox реплицирует данные на target InfiniBox
  4. Target InfiniBox подтверждает репликацию на source InfiniBox


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

Асинхронная репликация поддерживается на:

  • томах,
  • файловых системах,
  • группах консистентности.


Синхронная репликация на:

  • томах.


Операции, которые не поддерживаются на реплицируемых сущностях:

  • удаление,
  • восстановление,
  • изменение размера,
  • отключение write-protect,
  • экспорт файловой системы.


rkug1ijfxau-9iuwzlqf0uohvqu.jpeg


В режиме синхронной репликации поддерживается изменение направления репликации.

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

Интеграция с приложениями


Infinidat Host PowerTools для VMware позволяет дать возможность администраторам виртуальной среды самостоятельно управлять выделением дисковых ресурсов. Это облегчает и экономит затраченное время на базовые операции. Host PowerTools также поддерживает VASA (vStorage APIs for Storage Awareness).

Буквально 1-го марта на сайте компании Veeam появился плагин интеграции данной системы резервного копирования с массивами Infinibox, разработкой которого компания Infinidat занималась в сотрудничестве с Veeam, что позволяет надеяться на высокое качество данного продукта. Этот плагин позволит использовать консистентные снепшоты СХД для увеличения скорости резервного копирования и снижения влияние бекапов на продуктивную среду

Интерфейс, RESTful API и SDK


Я отойду от традиции делать множество скриншотов интерфейса и в этот раз сделал видео, которое сопроводил необходимыми комментариями.


Системы InfiniBox прекрасно вольются в любую систему управления облачной инфраструктурой благодаря своему API, которое позволяет быстро и удобно работать с системой. Не важно, предоставляете ли вы услуги и выделение ресурсов производится с помощью панели управления или система обслуживает только вашу собственную инфраструктуру и вам необходимо быстро и удобно добавить большое количество элементов. Всё это прекрасно реализуется при помощи API. Также существует InfiniSDK для Python.

Добавить 1000 хостов? Не проблема!

#!/usr/bin/python
#! -*- coding: utf-8 -*-

from infinisdk import InfiniBox
from infi.dtypes.iqn import make_iscsi_name

datastring = '''
iqn.1990-06.vmware:host1
…
iqn.1991-06.vmware:host1000
'''

system = InfiniBox('infinidat_ip', auth=('infinidat_login', 'infinidat_password')) 
system.login() 

datastring = datastring.splitlines()
for i, iqn in enumerate(datastring):
    host_name = 'host-' + str(i)
    host = system.hosts.create(name=host_name)
    address = make_iscsi_name(iqn)
    host.add_port(address)

На днях даже появился портал code.infinidat.com, на котором можно найти различные скрипты для интеграции со сторонними системами (Openstack и Saltstack), модули для Ansible и ещё много чего интересного. Так что если перед вами стоит задача интеграции данного массива не просто как часть физической инфраструктуры, а удобное управление, биллинг и т.д., вы найдёте много полезного на данном портале.

Учитывая, что облако Oncloud.ru компании «ОНЛАНТА» предоставляет мощности для корпоративных заказчиков под высокие нагрузки (такие, как ERP, CRM, базы данных и т.д.), имеет развитую архитектуру и развивает средства управления собственными мощностями, система InfiniBox F2230 прекрасно подошла для нашей инфраструктуры.

Кстати, в нашей компании открыт ряд интересных вакансий
  • Директор по маркетингу
  • Инженер IBM AIX
  • Руководитель проектного офиса
  • Менеджер по продажам IT-услуг

© Habrahabr.ru