geektimes

О Nutanix, Web-Scale, конвергентных платформах и смене парадигм построения IT инфраструктур

  • вторник, 21 октября 2014 г. в 03:10:45
http://habrahabr.ru/company/nutanix/blog/240859/

Возможно, вы уже слышали достаточно новый для рынка не_онлайн проектов термин — Web-Scale IT, который по мнению Gartner в 2017 году займет не менее 50% рынка корпоративного IT.

В этом году — это один из основных модных терминов.

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

Буквально каждый вендор рассказывает про BigData, конвергентные решения, перспективы и прочее.

Мы в свою очередь смеем надеяться, что у нас с этим реально все весьма неплохо, но тут всегда виднее со стороны и ваше мнение может не совпадать с нашим.

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

image



Предпосылки оной надежде — наша история, про которую мы больше в блоге вспоминать не будем, но позволит избежать ненужных дискуссий про «очередных пионеров велосипедо-строителей».

Компания основана в Кремниевой долине в 2009 году ключевыми инженерами Google (разработчиками Google Filesystem), Facebook, Amazon и других глобальных проектов, а с 2012 года расширяется в Европу и подключает инженеров из ключевых Европейских команд (например, Badoo).
Названы самым быстрорастущим технологическим стартапом последних 10 лет, уже вошли в рейтинг Gartner как визионеры (технологические лидеры) индустрии конвергентных решений.
По мнению Forbes, являемся лучшим в мире «облачным» стартапом для работы
Да, у нас есть инженеры в России, и будет значительно больше. Растем.

Собственно, в нашем ДНК — крупнейшие в мире интернет проекты, с основной идеей — работать всегда и для любого масштаба / объема данных.
Базируемся на open-source компонентах, доведенных до ума с помощью большого напильника — Cassandra для хранения метаданных файловой системы (с маневром обхода CAP теоремы по принципу «умный в гору не пойдет» и доработкой в строну CA), Apache Zookeper для хранения конфигурации кластера, Centos Linux и файловая система EXT4.
Активное использование BigData технологий внутри (по настоящему, а не маркетинг).

В общем, умеем.

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

К статье приложены иллюстрации (того как работает Nutanix), и детальное техническое описание будет в последующих статьях (вы же не хотите читать статью всю ночь?)

Итак, поехали! (с) Гагарин.

image

….

Web-Scale



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

Базовые принципы:

  • Гипер-конвергентность
  • Чисто программная реализация (Software Defined)
  • Распределенные и полностью самодостаточные системы
  • Линейное расширение с очень точной гранулярностью


Дополнительно:

  • Мощная автоматизация и аналитика с помощью API
  • Самоизлечение после отказов оборудования и датацентров (катастрофоустойчивость).

Раскроем смысл?



Гипер-конвергентность


image

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

В случае с Nutanix, мы говорим о том, что наша платформа объединяет в себе компьютинг и хранение данных. Другие компании могут например говорить (и это тоже будет гипер-конвергентным) о том, что объединяют CХД (систему хранения данных) с сетью, или множество других вариантов.

Нативная интеграция двух или более компонент в случае Web-scale дает линейное (горизонтальное) масштабирование без каких-либо лимитов.

Как следствие, мы получаем существенные преимущества:
  • Масштабирование по одной единице решения (как кубики Лего)
  • Локализация ввода-вывода (крайне важно для массивного ускорения операций I/O)
  • Устранение традиционных СХД как рудиментарных, с интеграцией в единое решение (нет СХД — нет проблем с ней связанных)
  • Поддержка всех основных технологий виртуализации на рынке, включая open-source (ESXi, HyperV, KVM).


Чисто программная реализация


image

Перенос всей логики из (крайне сложного) пропиетарного оборудования (спец-процессоры, ASIC / FPGA) в 100% программную реализацию.

Как пример, в Nutanix мы выполняем любые (и зачастую уникальные — такие как дедупликация RAM кэша, распределенная map/reduce отложенная дедупликация данных на кластере и т.д.) операции программно.
Многие спросят — это же должно дико “тормозить”? Никоим образом.

Современные процессоры Intel умеют очень многое, причем очень быстро.
Как пример — вместо применения аппаратных спец. адаптеров для компрессии и дедупликации (как делают некоторые архаичные вендоры) — мы просто используем аппаратные инструкции процессора Intel для подсчета sha1 контрольных сумм.

Компрессия данных (отложенная и “на лету”)?
Легко, свободный алгоритм snappy, используемый Google.


Резервирование данных?

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

Если очень коротко, то проблема RAID даже не только скорость его работы, но время восстановления после отказов аппаратных узлов (дисков, полок, контроллеров). Например, в cлучае с Nutanix, после отказа жесткого диска на 4TB, восстановление целостности системы (количества реплик данных) для 32 узлов в кластере под тяжелой нагрузкой, занимает всего 28 минут.

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

Учитывая, что уже сейчас готовы гелиевые диски на 10TB, для традиционных СХД наступают совсем тяжелые времена.

image

На самом же деле, «все гениальное — просто». Вместо использования сложных и медленных RAID систем, данные должны разбиваться на блоки (так называемые extent groups в нашем случае) и просто “размазываться” по кластеру с нужным количеством копий, причем в peer to peer режиме (в русскоговорящем пространстве пример торрентов сразу всем понятен).

Кстати, отсюда вытекает новый для многих (но не для рынка) термин — RAIN (Redundant/Reliable Array of Inexpensive/Independent Nodes) — резервируемый / надежный массив из недорогих / независимых нодов.

Ярким представителем данной архитектуры как раз и является Nutanix.

image


Звучит сложно? Сокращаем: выносим всю логику работы из железа в чисто программную реализацию на стандартном X86-64 оборудовании.
Ровно так-же как делает Google / Facebook / Amazon и прочие.

Какие преимущества?

  • Быстрый (очень быстрый) цикл разработки и апдейтов
  • Отвязка от зависимостей к пропиетарному оборудованию
  • Использование стандартного (“ширпотреб”) оборудования для решения задач любых масштабов.


Распределенные и полностью самодостаточные системы


image

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

Перефразируя — чисто распределенная система.

image

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

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

Мы говорим о «самоизлечивающихся» системах, причем излечение должно происходить максимально быстро.

image

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

Что это все означает в реалиях?

  • Распределение ролей и ответственностей внутри системы (кластера)
  • Использование BigData принципов (такие как MapReduce) для распределения задач
  • Процесс «публичных выборов» для обозначения текущего мастера


Линейное расширение с очень точной гранулярностью



Последовательное и линейное (горизонтальное) расширение обозначает возможность стартовать с определенного количества ресурсов (в нашем случае — 3 узла / нода / сервера) и масштабироваться линейно для получения линейного-же прироста производительности. Все пункты, которые мы обсуждали выше, являются критичными для получения такой возможности.

Как пример, обычно вы имеете трех-уровневую архитектуру (сервера, система хранения данных, сеть), каждый элемент которой масштабируется независимо. Если увеличили число серверов — то СХД и сеть при этом остались старые.

C гипер-конвергентной платформой типа Nutanix, при добавлении каждого нода, вы получите увеличение:

  • Количества гипервизоров / компьютинговых нодов
  • Количества контроллеров СХД (3 нода = 3 контроллера, 300 нодов = 300 контроллеров, и т.д.)
  • Процессорные мощности и емкость СХД
  • Количество нод участвующих в решении задач кластера


Сложно? Упрощяем:

  • Возможность масштабировать сервера и СХД по одному микро-узлу с соответствующим линейным увеличением производительности, начиная с 3-х и до бесконечности.


Преимущества:

  • Возможность стартовать с минимального размера
  • Устранение любых «бутылочных горлышек» и точек отказа (да, SLA 100% реален)
  • Постоянная и гарантированная производительность при расширении.




image

В следующих статьях мы дадим больше технических подробностей и расскажем, для начала, как работает наша NDFS — распределенная файловая система нового поколения, построенная на ext4 + NoSQL.

Из дополнительных анонсов — наша система управления KVM, которая работает по тем-же принципам, безлимитно масштабируема и не имеет точек отказа.

Мы будем выступать на Highload 2014, показывать наши решения «вживую». Приходите.

Хорошего дня!

p.s. да-да, мы обязательно расскажем что мы выбрали из CAP и как решали вопрос Сходимости-Доступности-Партиционирования
p.p.s. (если кто-то дочитал до этого места) для внимательных — конкурс, угадайте как называется наше решение для управления KVM и получите приз (в Москве).