Pull to refresh

Обзор архитектуры облачной платформы Скалакси

Reading time5 min
Views15K
В одном из наших предыдущих постов, мы описывали архитектуру дискового хранилища. Статья получила множество откликов и пришла идея описать всю актуальную архитектуру нашего облака. Мы не раз рассказывали о разных компонентах на профессиональных конференциях. Но, во-первых, не у всех есть возможность их посещать, а во-вторых, наша архитектура динамична, постоянно развивается и дополняется, так что множество информации уже не актуально.

Условно текущую архитектуру платформы Скалакси можно разделить на три значительные части:
  • пулы виртуализации;
  • сетевая система;
  • управляющий кластер.

Пул виртуализации


Ограниченное количество физических серверов для работы виртуальных машин и система хранения образов дисков виртуальных машин объединенные общей высокопроизводительной коммуникационной шиной.

Архитектура компонентов:
  • система виртуализации;
  • система хранения с блочным доступом;
  • шина Infiniband.

Общая архитектура приведена на схеме:
image
Система виртуализации

Система виртуализации состоит из бездисковых серверов виртуализации со свободно распространяемым гипервизором Xen 4.0.1 с открытым кодом.
image

Конфигурация сервера виртуализации
— ЦПУ Intel Xeon 55xx/56xx;
— ОЗУ 68-96 ГБ;
— локальные диски отсутствуют;
— Infiniband-адаптер;
— Ethernet-адаптер (для управления питанием и аварийного доступа через IPMI 2.0).


Загрузка сервера виртуализации производится по Infiniband сети с управляющего кластера. При загрузке создается управляющий домен Xen c ОС SUSE Linux Enterprise. Далее по запросу управляющего кластера на сервере виртуализации создаются клиентские паравиртуальные и HVM домены (виртуальные машины) с ОС Linux и ОС Windows соответственно.

Каждая виртуальная машина имеет:
  • 16 виртуальных процессорных ядер;
  • заданный объем выделенной оперативной памяти;
  • внутренний и внешний сетевой интерфейс для связи с другими клиентскими машинами одного аккаунта и сетью Интернет соответственно (IP-адреса для обоих интерфейсов выделяются с помощью DHCP-сервера на управляющем кластере);
  • основной и дополнительный диски (блочные устройства).
В зависимости от установок переданных управляющим кластером, конфигурируются следующие лимиты:
  • на использование процессора с помощью шедулера Xen sched-credit, вес каждого клиентского домена равен количеству ГБ выделенной оперативной памяти;
  • на использование внутреннего и внешнего сетевого канала с помощью Linux-утилиты tc;
  • на использование канала к дискам с помощью Linux драйвера blkio-throttle.

Система хранения с блочным доступом

Система хранения с блочным доступом состоит из двух типов серверов: прокси и узлов. Подробнее с фотографиями в прошлом посте.
image
Для работы хранилища на блочном уровне используется реализация протокола SCSI работающая в среде InfinibandSRP. В SRP, как и в других сетевых реализациях SCSI, используются таргеты и инициаторы (серверы и клиенты). Таргеты поставляют инициаторам специальные SCSI луны (логические блоки).

На серверах виртуализации работают SRP инициаторы и демон multipathd. Последний агрегирует одинаковые луны с разных прокси-серверов в одно виртуальное блочное устройство, обеспечивая отказоустойчивость. Если один из прокси-серверов выйдет из строя, то multipathd переключит путь на другой прокси-сервер, таким образом, что виртуальные машины на серверах виртуализации не заметят сбоя.

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

Узлы системы хранения — серверы с дисками под управлением ОС SUSE Linux Enterprise. На них работают SCSI таргеты из драйвера SCST. В качестве узлов системы хранения могут применяться любые системы хранения данных работающие по протоколам SRP, FC или iSCSI, такие как NetApp, EMC и другие.

Прокси-серверы выполняют функции репликации данных и объединяют пространство узлов системы хранения в одну логическую группу LVM. Репликация данных выполняется с помощью Linux драйвера md между несколькими узлами системы хранения. Для этого из лунов нескольких узлов системы хранения собирается рейд уровня 1+0 с заданным уровнем резервирования. По умолчанию уровень резервирования равен 2х (каждый диск виртуальной машины хранится на двух узлах системы хранения).
Конфигурация узла хранения
— ЦПУ Intel Xeon 55xx;
— ОЗУ 96 ГБ;
— 36 дисков SAS2 600GB;
— Infiniband-адаптер;
— Ethernet-адаптер (для управления питанием и аварийного доступа через IPMI 2.0).

Конфигурация прокси-сервера
— ЦПУ Intel Xeon 56xx;
— ОЗУ 4 ГБ;
— локальные диски отсутствуют;
— 2 х Infiniband-адаптера (один для соединений с узлами, второй для соединений с серверами виртуализации);
— Ethernet-адаптер (для управления питанием и аварийного доступа через IPMI 2.0).


Шина Infiniband

Шина Infiniband состоит из двух основных элементов: Infiniband свитчи и шлюзы в Ethernet.
image
Для пулов используются 324-портовые Infiniband-свитчи Grid Director 4700. На текущий момент свитч зарезервирован на уровне модулей (он имеет полностью пассивный бэкплейн и модульную архитектуру, когда при выходе из строя модулей работа не прерывается). В дальнейшем, при развитии, Infiniband свитчи будут зарезервированы и на уровне шасси.

Шлюз в Ethernet — это сервер с ОС SUSE Linux Enterprise и Infiniband адаптером и Ethernet-адаптером. Шлюзы зарезервированы.

Сетевая система


Сетевая система состоит из двух основных элементов: коммутаторы и мультисервисные шлюзы.
image
Коммутаторы Juniper EX8208 выполняют маршрутизацию IP-трафика. Коммутаторы зарезервированы.

Мультисервисные шлюзы Juniper SRX3600 защищают систему от паразитного трафика распознавая различные виды атак с помощью библиотеки сигнатур. Мультисервисные шлюзы зарезервированы. Фотографии можно посмотреть.

Управляющий кластер


Основные элементы управляющего кластера это система хранения, узлы и системные сервисы работающие на узлах.
image

Система хранения управляющего кластера представляет собой аппаратные рейды HP MSA2312sa с двумя контроллерами каждый. Каждый рэйд подключен к 4 узлам управляющего кластера по SAS. Данные между двумя рейдами резервируются на уровне сервисов.

Узлы управляющего кластера — серверы с ОС SUSE Linux Enterprise и гипервизором Xen 4.0.1. Каждый сервис управляющего кластера представляет собой одну или более виртуальных машин с соответствующим программным обеспечением.

Сервисы

На управляющем кластере присутствуют следующие системные сервисы:

  • система управления виртуальными ресурсами (CloudEngine), приложение разработанное с помощью Ruby on Rails;
  • панель управления виртуальными ресурсами, веб-приложение разработанное с помощью Ruby on Rails;
  • система мониторинга состояния и загрузки виртуальных ресурсов на базе Zabbix;
  • система управления правами пользователей на базе LDAP;
  • DHCP серверы для раздачи IP-адресов виртуальным машинам и серверам кластера;
  • DNS серверы для обслуживания доменных имен;
  • сервис консолей, предоставляющий доступ к VNC консолям для виртуальных машин.
  • TFTP сервер для загрузки образов серверов кластера;
  • HTTP сервер для загрузки шаблонов образов виртуальных машин.


Каждый сервис запущен в двух и более экземплярах, репликация данных выполняется с помощью репликации СУБД MySQL.

Вся эта документация доступна в нашей wiki, где также есть FAQ и описание нашего API, с примерами.
Tags:
Hubs:
+55
Comments42

Articles

Information

Website
www.oversun.ru
Registered
Founded
2008
Employees
51–100 employees
Location
Россия