Возможно, вы уже слышали достаточно новый для рынка не_онлайн проектов термин — Web-Scale IT, который по мнению Gartner в 2017 году займет не менее 50% рынка корпоративного IT.
В этом году — это один из основных модных терминов.
Ситуация на корпоративных рынках сейчас активно напоминает фразу про подростковый секс — все говорят что имели (= умеют), но реально — дела обстоят невесело.
Буквально каждый вендор рассказывает про BigData, конвергентные решения, перспективы и прочее.
Мы в свою очередь смеем надеяться, что у нас с этим реально все весьма неплохо, но тут всегда виднее со стороны и ваше мнение может не совпадать с нашим.
Все же попробуем рассказать о том, как мы пытаемся изменить рынок, который в ближайшее время будет составлять десятки миллиардов долларов ежегодно и почему мы считаем что время традиционных решений для хранения и обработки данных подходит к своему закату.
Предпосылки оной надежде — наша история, про которую мы больше в блоге вспоминать не будем, но позволит избежать ненужных дискуссий про «очередных пионеров велосипедо-строителей».
Компания основана в Кремниевой долине в 2009 году ключевыми инженерами Google (разработчиками Google Filesystem), Facebook, Amazon и других глобальных проектов, а с 2012 года расширяется в Европу и подключает инженеров из ключевых Европейских команд (например, Badoo).
Названы самым быстрорастущим технологическим стартапом последних 10 лет, уже вошли в рейтинг Gartner как визионеры (технологические лидеры) индустрии конвергентных решений.
По мнению Forbes, являемся лучшим в мире «облачным» стартапом для работы
Да, у нас есть инженеры в России, и будет значительно больше. Растем.
Собственно, в нашем ДНК — крупнейшие в мире интернет проекты, с основной идеей — работать всегда и для любого масштаба / объема данных.
Базируемся на open-source компонентах, доведенных до ума с помощью большого напильника — Cassandra для хранения метаданных файловой системы (с маневром обхода CAP теоремы по принципу «умный в гору не пойдет» и доработкой в строну CA), Apache Zookeper для хранения конфигурации кластера, Centos Linux и файловая система EXT4.
Активное использование BigData технологий внутри (по настоящему, а не маркетинг).
В общем, умеем.
Ремарка — просьба понять и не сильно шуметь, если термины покажутся неудачно переведенными — на эту тематику словарей еще не издавалось, многие понятия уже устоялись (хотя и являются однозначными англицизмами). Всегда рады, если подскажете более адекватную терминологию — в конце концов, мы планируем писать много интересных статей.
К статье приложены иллюстрации (того как работает Nutanix), и детальное техническое описание будет в последующих статьях (вы же не хотите читать статью всю ночь?)
Итак, поехали! (с) Гагарин.
….
Для начала, стоит попробовать вообще определиться, что подразумевается под сим столь одиозным термином, причем желательно без маркетингового пустословия.
В упрощенном смысле — нативное объединение двух или более различных компонент (сеть, виртуализация и т.д.) в один юнит.
Нативность — ключевое слово в данном случае, ибо мы не говорим просто об упаковке различных компонент в едином пакете, но имеем ввиду полную и изначальную интеграцию.
В случае с Nutanix, мы говорим о том, что наша платформа объединяет в себе компьютинг и хранение данных. Другие компании могут например говорить (и это тоже будет гипер-конвергентным) о том, что объединяют CХД (систему хранения данных) с сетью, или множество других вариантов.
Нативная интеграция двух или более компонент в случае Web-scale дает линейное (горизонтальное) масштабирование без каких-либо лимитов.
Как следствие, мы получаем существенные преимущества:
Перенос всей логики из (крайне сложного) пропиетарного оборудования (спец-процессоры, ASIC / FPGA) в 100% программную реализацию.
Как пример, в Nutanix мы выполняем любые (и зачастую уникальные — такие как дедупликация RAM кэша, распределенная map/reduce отложенная дедупликация данных на кластере и т.д.) операции программно.
Многие спросят — это же должно дико “тормозить”? Никоим образом.
Современные процессоры Intel умеют очень многое, причем очень быстро.
Как пример — вместо применения аппаратных спец. адаптеров для компрессии и дедупликации (как делают некоторые архаичные вендоры) — мы просто используем аппаратные инструкции процессора Intel для подсчета sha1 контрольных сумм.
Компрессия данных (отложенная и “на лету”)?
Легко, свободный алгоритм snappy, используемый Google.
Резервирование данных?
RAID устаревшая и мертвая технология (которой многие вендоры пытаются сделать мощный фейслифтинг, с лошадиными дозами ботокса), давно не используется крупными онлайн проектами. Почитайте например вот это — почему RAID мертв для больших данных.
Если очень коротко, то проблема RAID даже не только скорость его работы, но время восстановления после отказов аппаратных узлов (дисков, полок, контроллеров). Например, в cлучае с Nutanix, после отказа жесткого диска на 4TB, восстановление целостности системы (количества реплик данных) для 32 узлов в кластере под тяжелой нагрузкой, занимает всего 28 минут.
Сколько времени будет перестраиваться большой массив (скажем на сотни терабайт) и RAID 6 — думаем, вы сами в курсе (многие часы, иногда сутки).
Учитывая, что уже сейчас готовы гелиевые диски на 10TB, для традиционных СХД наступают совсем тяжелые времена.
На самом же деле, «все гениальное — просто». Вместо использования сложных и медленных RAID систем, данные должны разбиваться на блоки (так называемые extent groups в нашем случае) и просто “размазываться” по кластеру с нужным количеством копий, причем в peer to peer режиме (в русскоговорящем пространстве пример торрентов сразу всем понятен).
Кстати, отсюда вытекает новый для многих (но не для рынка) термин — RAIN (Redundant/Reliable Array of Inexpensive/Independent Nodes) — резервируемый / надежный массив из недорогих / независимых нодов.
Ярким представителем данной архитектуры как раз и является Nutanix.
Звучит сложно? Сокращаем: выносим всю логику работы из железа в чисто программную реализацию на стандартном X86-64 оборудовании.
Ровно так-же как делает Google / Facebook / Amazon и прочие.
Какие преимущества?
Идея проста и лежит на поверхности — уходим от концепции выделенных управляющих систем (контроллеры, центральные узлы метаданных, мозг человека, и т.д.) к концепции равномерного распределения одинаковых ролей между множеством элементов (каждый узел — сам себе контроллер, нет выделенных элементов, пчелиный рой).
Перефразируя — чисто распределенная система.
Традиционные производители всегда исходят из того, что оборудование должно быть надежным, что в общем-то в целом возможно (но какой ценой?).
Между тем как для распределенных систем подход принципиально отличается — всегда исходят из того что любое оборудование в итоге откажет и обработка этой ситуации должна быть полностью автоматической, без влияния на жизнеспособность системы.
Мы говорим о «самоизлечивающихся» системах, причем излечение должно происходить максимально быстро.
Если логика управления требует координации (так называемые «master» узлы), то выбор оных должен быть полностью автоматическим и любой участник кластера может стать таким мастером.
Что это все означает в реалиях?
Последовательное и линейное (горизонтальное) расширение обозначает возможность стартовать с определенного количества ресурсов (в нашем случае — 3 узла / нода / сервера) и масштабироваться линейно для получения линейного-же прироста производительности. Все пункты, которые мы обсуждали выше, являются критичными для получения такой возможности.
Как пример, обычно вы имеете трех-уровневую архитектуру (сервера, система хранения данных, сеть), каждый элемент которой масштабируется независимо. Если увеличили число серверов — то СХД и сеть при этом остались старые.
C гипер-конвергентной платформой типа Nutanix, при добавлении каждого нода, вы получите увеличение:
Сложно? Упрощяем:
Преимущества:
…
В следующих статьях мы дадим больше технических подробностей и расскажем, для начала, как работает наша NDFS — распределенная файловая система нового поколения, построенная на ext4 + NoSQL.
Из дополнительных анонсов — наша система управления KVM, которая работает по тем-же принципам, безлимитно масштабируема и не имеет точек отказа.
Мы будем выступать на Highload 2014, показывать наши решения «вживую». Приходите.
Хорошего дня!
p.s. да-да, мы обязательно расскажем что мы выбрали из CAP и как решали вопрос Сходимости-Доступности-Партиционирования
p.p.s. (если кто-то дочитал до этого места) для внимательных — конкурс, угадайте как называется наше решение для управления KVM и получите приз (в Москве).
В этом году — это один из основных модных терминов.
Ситуация на корпоративных рынках сейчас активно напоминает фразу про подростковый секс — все говорят что имели (= умеют), но реально — дела обстоят невесело.
Буквально каждый вендор рассказывает про BigData, конвергентные решения, перспективы и прочее.
Мы в свою очередь смеем надеяться, что у нас с этим реально все весьма неплохо, но тут всегда виднее со стороны и ваше мнение может не совпадать с нашим.
Все же попробуем рассказать о том, как мы пытаемся изменить рынок, который в ближайшее время будет составлять десятки миллиардов долларов ежегодно и почему мы считаем что время традиционных решений для хранения и обработки данных подходит к своему закату.
Предпосылки оной надежде — наша история, про которую мы больше в блоге вспоминать не будем, но позволит избежать ненужных дискуссий про «очередных пионеров велосипедо-строителей».
Компания основана в Кремниевой долине в 2009 году ключевыми инженерами Google (разработчиками Google Filesystem), Facebook, Amazon и других глобальных проектов, а с 2012 года расширяется в Европу и подключает инженеров из ключевых Европейских команд (например, Badoo).
Названы самым быстрорастущим технологическим стартапом последних 10 лет, уже вошли в рейтинг Gartner как визионеры (технологические лидеры) индустрии конвергентных решений.
По мнению Forbes, являемся лучшим в мире «облачным» стартапом для работы
Да, у нас есть инженеры в России, и будет значительно больше. Растем.
Собственно, в нашем ДНК — крупнейшие в мире интернет проекты, с основной идеей — работать всегда и для любого масштаба / объема данных.
Базируемся на open-source компонентах, доведенных до ума с помощью большого напильника — Cassandra для хранения метаданных файловой системы (с маневром обхода CAP теоремы по принципу «умный в гору не пойдет» и доработкой в строну CA), Apache Zookeper для хранения конфигурации кластера, Centos Linux и файловая система EXT4.
Активное использование BigData технологий внутри (по настоящему, а не маркетинг).
В общем, умеем.
Ремарка — просьба понять и не сильно шуметь, если термины покажутся неудачно переведенными — на эту тематику словарей еще не издавалось, многие понятия уже устоялись (хотя и являются однозначными англицизмами). Всегда рады, если подскажете более адекватную терминологию — в конце концов, мы планируем писать много интересных статей.
К статье приложены иллюстрации (того как работает Nutanix), и детальное техническое описание будет в последующих статьях (вы же не хотите читать статью всю ночь?)
Итак, поехали! (с) Гагарин.
….
Web-Scale
Для начала, стоит попробовать вообще определиться, что подразумевается под сим столь одиозным термином, причем желательно без маркетингового пустословия.
Базовые принципы:
Гипер-конвергентность
Чисто программная реализация (Software Defined)
Распределенные и полностью самодостаточные системы
Линейное расширение с очень точной гранулярностью
Дополнительно:
Мощная автоматизация и аналитика с помощью API
Самоизлечение после отказов оборудования и датацентров (катастрофоустойчивость).
Раскроем смысл?
Гипер-конвергентность
В упрощенном смысле — нативное объединение двух или более различных компонент (сеть, виртуализация и т.д.) в один юнит.
Нативность — ключевое слово в данном случае, ибо мы не говорим просто об упаковке различных компонент в едином пакете, но имеем ввиду полную и изначальную интеграцию.
В случае с Nutanix, мы говорим о том, что наша платформа объединяет в себе компьютинг и хранение данных. Другие компании могут например говорить (и это тоже будет гипер-конвергентным) о том, что объединяют CХД (систему хранения данных) с сетью, или множество других вариантов.
Нативная интеграция двух или более компонент в случае Web-scale дает линейное (горизонтальное) масштабирование без каких-либо лимитов.
Как следствие, мы получаем существенные преимущества:
- Масштабирование по одной единице решения (как кубики Лего)
- Локализация ввода-вывода (крайне важно для массивного ускорения операций I/O)
- Устранение традиционных СХД как рудиментарных, с интеграцией в единое решение (нет СХД — нет проблем с ней связанных)
- Поддержка всех основных технологий виртуализации на рынке, включая open-source (ESXi, HyperV, KVM).
Чисто программная реализация
Перенос всей логики из (крайне сложного) пропиетарного оборудования (спец-процессоры, ASIC / FPGA) в 100% программную реализацию.
Как пример, в Nutanix мы выполняем любые (и зачастую уникальные — такие как дедупликация RAM кэша, распределенная map/reduce отложенная дедупликация данных на кластере и т.д.) операции программно.
Многие спросят — это же должно дико “тормозить”? Никоим образом.
Современные процессоры Intel умеют очень многое, причем очень быстро.
Как пример — вместо применения аппаратных спец. адаптеров для компрессии и дедупликации (как делают некоторые архаичные вендоры) — мы просто используем аппаратные инструкции процессора Intel для подсчета sha1 контрольных сумм.
Компрессия данных (отложенная и “на лету”)?
Легко, свободный алгоритм snappy, используемый Google.
Резервирование данных?
RAID устаревшая и мертвая технология (которой многие вендоры пытаются сделать мощный фейслифтинг, с лошадиными дозами ботокса), давно не используется крупными онлайн проектами. Почитайте например вот это — почему RAID мертв для больших данных.
Если очень коротко, то проблема RAID даже не только скорость его работы, но время восстановления после отказов аппаратных узлов (дисков, полок, контроллеров). Например, в cлучае с Nutanix, после отказа жесткого диска на 4TB, восстановление целостности системы (количества реплик данных) для 32 узлов в кластере под тяжелой нагрузкой, занимает всего 28 минут.
Сколько времени будет перестраиваться большой массив (скажем на сотни терабайт) и RAID 6 — думаем, вы сами в курсе (многие часы, иногда сутки).
Учитывая, что уже сейчас готовы гелиевые диски на 10TB, для традиционных СХД наступают совсем тяжелые времена.
На самом же деле, «все гениальное — просто». Вместо использования сложных и медленных RAID систем, данные должны разбиваться на блоки (так называемые extent groups в нашем случае) и просто “размазываться” по кластеру с нужным количеством копий, причем в peer to peer режиме (в русскоговорящем пространстве пример торрентов сразу всем понятен).
Кстати, отсюда вытекает новый для многих (но не для рынка) термин — RAIN (Redundant/Reliable Array of Inexpensive/Independent Nodes) — резервируемый / надежный массив из недорогих / независимых нодов.
Ярким представителем данной архитектуры как раз и является Nutanix.
Звучит сложно? Сокращаем: выносим всю логику работы из железа в чисто программную реализацию на стандартном X86-64 оборудовании.
Ровно так-же как делает Google / Facebook / Amazon и прочие.
Какие преимущества?
- Быстрый (очень быстрый) цикл разработки и апдейтов
- Отвязка от зависимостей к пропиетарному оборудованию
- Использование стандартного (“ширпотреб”) оборудования для решения задач любых масштабов.
Распределенные и полностью самодостаточные системы
Идея проста и лежит на поверхности — уходим от концепции выделенных управляющих систем (контроллеры, центральные узлы метаданных, мозг человека, и т.д.) к концепции равномерного распределения одинаковых ролей между множеством элементов (каждый узел — сам себе контроллер, нет выделенных элементов, пчелиный рой).
Перефразируя — чисто распределенная система.
Традиционные производители всегда исходят из того, что оборудование должно быть надежным, что в общем-то в целом возможно (но какой ценой?).
Между тем как для распределенных систем подход принципиально отличается — всегда исходят из того что любое оборудование в итоге откажет и обработка этой ситуации должна быть полностью автоматической, без влияния на жизнеспособность системы.
Мы говорим о «самоизлечивающихся» системах, причем излечение должно происходить максимально быстро.
Если логика управления требует координации (так называемые «master» узлы), то выбор оных должен быть полностью автоматическим и любой участник кластера может стать таким мастером.
Что это все означает в реалиях?
- Распределение ролей и ответственностей внутри системы (кластера)
- Использование BigData принципов (такие как MapReduce) для распределения задач
- Процесс «публичных выборов» для обозначения текущего мастера
Линейное расширение с очень точной гранулярностью
Последовательное и линейное (горизонтальное) расширение обозначает возможность стартовать с определенного количества ресурсов (в нашем случае — 3 узла / нода / сервера) и масштабироваться линейно для получения линейного-же прироста производительности. Все пункты, которые мы обсуждали выше, являются критичными для получения такой возможности.
Как пример, обычно вы имеете трех-уровневую архитектуру (сервера, система хранения данных, сеть), каждый элемент которой масштабируется независимо. Если увеличили число серверов — то СХД и сеть при этом остались старые.
C гипер-конвергентной платформой типа Nutanix, при добавлении каждого нода, вы получите увеличение:
- Количества гипервизоров / компьютинговых нодов
- Количества контроллеров СХД (3 нода = 3 контроллера, 300 нодов = 300 контроллеров, и т.д.)
- Процессорные мощности и емкость СХД
- Количество нод участвующих в решении задач кластера
Сложно? Упрощяем:
- Возможность масштабировать сервера и СХД по одному микро-узлу с соответствующим линейным увеличением производительности, начиная с 3-х и до бесконечности.
Преимущества:
- Возможность стартовать с минимального размера
- Устранение любых «бутылочных горлышек» и точек отказа (да, SLA 100% реален)
- Постоянная и гарантированная производительность при расширении.
…
В следующих статьях мы дадим больше технических подробностей и расскажем, для начала, как работает наша NDFS — распределенная файловая система нового поколения, построенная на ext4 + NoSQL.
Из дополнительных анонсов — наша система управления KVM, которая работает по тем-же принципам, безлимитно масштабируема и не имеет точек отказа.
Мы будем выступать на Highload 2014, показывать наши решения «вживую». Приходите.
Хорошего дня!
p.s. да-да, мы обязательно расскажем что мы выбрали из CAP и как решали вопрос Сходимости-Доступности-Партиционирования
p.p.s. (если кто-то дочитал до этого места) для внимательных — конкурс, угадайте как называется наше решение для управления KVM и получите приз (в Москве).