среда, 2 октября 2013 г.

LSI Syncro - новая масштабируемая архитектура хранения данных высокой доступности.


        В июне 2013 года компания LSI анонсировала новый продукт с кодовым названием Syncro CS, но пока о наличие абсолютно нового решения для кластеризации знают лишь крупные производители серверов. Решение очень интересное и во многом инновационное, поэтому мы предлагаем вашему вниманию этот обзор.





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

        В информационных технологиях слово кластер (сluster) встречается в двух значениях. Первое, единица хранения на жестких дисках, относится к разбиению магнитных носителей. Второе значение - группа компьютеров, объединённых высокоскоростными каналами связи и представляющая с точки зрения пользователя единый аппаратный ресурс.

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

       В этой статье речь пойдет о технологиях отказоустойчивых серверов. Основная задача отказоустойчивого кластера – обеспечение высокой доступности (HA, High Availability) сервиса. В качестве сервиса могут выступать многие популярные приложения. Это WEB-серверы, серверы электронной почты, системы управления базами данных (MS SQL, Oracle, MySQL), SRP и CRM-системы и другие приложения. Особая роль отводится при кластеризации службам файлового обмена (например, кластеризация служб File Server в Windows) и виртуализации (Hyper-V и VMWare как самые распространенные) ввиду их критичности для работы многих других приложений. Итак, основная задача кластеризации – взять критичную для деятельности компании службу и настроить ее работу на нескольких (2 или более) узлах отказоустойчивого кластера. В случае падения одного из узлов, остальные могут перезапустить службу кластеризации автоматически, минимизировав, или в некоторых случаях, даже исключив время простоя.


      Кластерные технологии существуют уже достаточно долгое время. Ранее принятая классификация Active/Active или Active/Passive сегодня теряет смысл. Существует также классификация по количеству узлов (2-х, 3-х и более узловые кластеры), а также классификация по географическому признаку. Кластеры, в которых узлы расположены на географически разных площадках (сайтах) называются географически распределенными или катастрофоустойчивыми (Disaster Recovery). Благодаря применению HA-DR кластеров, можно сохранить данные и сервисы в рабочем состоянии даже в случае катастрофы (пожар, землетрясение, наводнение, теракт).

      Итак, как же реализовать такое решение в железе-софте? Естественным способом с момента зарождения отказоустойчивой кластеризации была организация доступа двух (или более) узлов к одному устройству хранения. Во времена SCSI, один жесткий диск можно было подключить к двум серверам. Если на этом диске лежат данные приложения – кластер почти готов. Остается небольшая проблема – как использовать этот диск двумя серверами одновременно? Файловые системы, которые мы используем по сей день (Ext 2, 3, 4 в Linux и NTFS в Windows) не предназначены для такой работы. Если оба сервера начнут работать с файловой системой, они очень быстро эту файловую систему испортят до неузнаваемости.

       Можете провести эксперимент в «домашних» условиях. Сегодня это легко организовать через iSCSI. Попробуйте одновременно записать iSCSI target информацию с двух компьютеров по iSCSI. Файловая система такого не выдержит. Один из ответов – специальная кластерная файловая система, которая будет следить за правильной организацией хранения метаданных и будет отвечать за арбитраж при одновременном доступе на запись. Такие системы существуют, но достаточно дороги. Второй вариант – сделать диск Read-Only на одном сервере и Read-Write на другом. К сожалению, HDD так и не приобрели такой функционал. Этот механизм используется в некоторых системах репликации (Symmetrix SRDF, например) при организации географически распределенных кластеров. Также зеркалирование данных реализовано в технологии Microsoft Storage Spaces (Windows Server 2012) для организации отказоустойчивости. Ну и третий вариант – иметь кластерный софт, который будет разрешать или запрещать доступ к общему дисковому пространству. По этому пути и пошли производители системного программного обеспечения. Свои собственные решения есть у Symantec (бывший Veritas, который поглотил Symantec), EMC (бывшая компания Legato, приобретенная EMC), у Microsoft и RedHat (входит в состав ОС), а также у других производителей операционных систем (в том числе и UNIX: HP-UX, AIX и Solaris).

       Вообще, с развитием систем хранения данных, организовать HA-кластер стало легко. Все что вам надо – внешняя блочная система хранения данных (СХД), подключенная к двум серверам. СХД следит за целостностью данных, организуя диски в массивы RAID. Созданные на массивах логические тома в таком случае выдаются одновременно обоим серверам, настраивается серверное ПО (ОС). В случае с Disaster Recovery-решениями используется удаленная репликация либо с помощью специальных функций СХД, либо программным способом. Вроде бы проблема давно решена, каким же образом можно улучшить ситуацию? Дело в том, что внешние СХД обладают рядом недостатков, которые сказываются на ситуации с отказоустойчивостью сервисов в IT. Во-первых, внешние СХД дороги. Несмотря на конкуренцию между производителями, найти качественную внешнюю систему хранения данных дешевле $15-20K довольно затруднительно. Во-вторых, внешние СХД обычно значительно медленнее так называемых, DAS-систем, то есть дисков, подключенных непосредственно к серверам. Медленнее – это значит, как в MB/s, так и в IOPS (Input-Outputs per second, операций в секунду), что особенно важно для баз данных – их в основном и защищают отказоустойчивыми кластерами. Итак, десять с лишним лет эволюци привели нас к тому с чего отказоустойчивая кластеризация и начиналась – к дискам, подключенным напрямую к серверам.

       В современном мире серверов, доминирующей технологией подключения дисков является SAS (Serial Attached SCSI). Это прямой потомок SCSI, переживший уже 2 поколения (SAS, 3Gb/s и SAS-2, 6Gb/s) и готовящийся к переходу к 3му поколению (LSI уже выпускает HBA 12Gb/s, Adaptec обещает контроллеры к концу года). Одно из новшеств SAS по сравнению со SCSI – устройство коммутации, аналог сетевого коммутатора, называемое экспандером. Экспандер, в числе прочего, позволяет подключить к 8 портам контроллера (стандарт де-факто в серверных RAID- и HBA- контроллерах) до 1000 устройств (HDD или SSD или внешних СХД). Микросхемы экспандеров, в отличие от сетей Ethernet или Fibre Channel, например, обладают почти нулевыми задержками и широкой полосой пропускания (8 портов по 6Gbit/s дают теоретически до 4.8GB/s).

Итак, Syncro CS – это продукт, который LSI в течение более чем 2-х лет разрабатывала совместно с Microsoft.

         По сути, это прошивка для контроллеров MegaRAID, позволяющая использовать их в схеме два сервера с Syncro CS + 2 экспандера + SAS-диски. В итоге каждый сервер (и каждый контроллер, соответственно) получает в управление свой набор дисков, но в случае проблемы с одним из серверов, второй сервер (контроллер) возьмет на себя управление дисками другого сервера. В итоге, получается очень быстро и очень дешево по сравнению с решениями на внешних СХД. Что для этого надо – 2 сервера, 2 контроллера Syncro CS и внешний SAS-JBOD с двумя экспандерами (Just a Bunch Of Drives) и диски SAS.


         SATA здесь не подойдут, потому что они имеют только один порт на устройстве и по этой причине не работают в отказоустойчивых конфигурациях. Каждый контроллер подключен к каждому экспандеру, таким образом, через экспандеры контроллеры имеют связь. По этому каналу производится синхронизация КЭШей контроллеров. Имея когерентный КЭШ, второй контроллер по команде от ОС сможет презентовать логический том в ОС выжившего сервера. Чем принципиально такая схема отличается от внешних СХД? Здесь RAID-вычисления перенесены внутрь сервера, а в качестве внешней СХД используется дешевый внешний JBOD.

       В списке совместимости, который постоянно расширяется на момент выхода были JBOD от SuperMicro, AIC, DataOn, Quanta, NetApp. Кстати Тринити – один из нескольких российских премьер-партнеров, поставщиков таких решений.




        Технология Syncro CS несмотря на свою молодость, скоро переживет первое обновление до версии 1.1. Вдобавок к Windows, появится поддержка Linux от RedHat и SLES. Кроме вышеупомянутых достоинств, на Syncro CS можно строить гибридные массивы из HDD и SSD одновременно. Такой функционал обычно предоставляется производителями внешних СХД за отдельные деньги. В случае с Syncro он входит в базовую конфигурацию.


По материалам компании LSI.

5 комментариев:

  1. Ответы
    1. Джибодом по сути может быть любой супермикровский ящик с двумя экспандерами - с индексом E2x, например: http://www.supermicro.com.tw/products/chassis/4U/846/SC846E26-R1200.cfm
      Нужны только дополнительные провода и плата управления питанием.

      Удалить
    2. Если же Вы про доступность в плане отказоустойчивости джибодов, то дело обстоит ровно так же, как и в обычных стораджах - двойные порты на винтах, два экспандера, два хвоста к каждому серверу. По большому счету, архитектурно просто контроллеры перенесены внутрь хоста и убрана интерфейсно-хостовая логика.

      Удалить
  2. > но в случае проблемы с одним из серверов, второй сервер (контроллер) возьмет на себя управление дисками другого сервера.

    А есть ли какие нибудь данные о наличии и размере задержки в момент данного переключения?

    ОтветитьУдалить
    Ответы
    1. Анонимный9 июня 2015 г., 15:40

      Как возвратить прошивку MegaRaid, если уже прошито syncro?

      Удалить