Синнефо

Стек облачных решений с открытым исходным кодом
Синнефо
Разработчик(и)ГРНЕТ
Стабильный релиз
0.19.1 / 23 июня 2017 г. ; 7 лет назад [1] (2017-06-23)
Репозиторийgithub.com/grnet/synnefo
Написано вПитон
ТипОблачные вычисления
ЛицензияСтандартная общественная лицензия GNU
Веб-сайтwww.synnefo.org

Synnefo — это полный облачный стек с открытым исходным кодом , написанный на Python , который предоставляет услуги Compute , Network , Image , Volume и Storage , аналогичные тем, что предлагает AWS . Synnefo управляет несколькими кластерами Google Ganeti на бэкэнде , которые обрабатывают низкоуровневые операции виртуальных машин , и использует Archipelago для унификации облачного хранилища. Чтобы повысить совместимость со сторонними решениями, Synnefo предоставляет пользователям API OpenStack .

Synnefo разрабатывается GRNET (Греческая научно-исследовательская и технологическая сеть) и поддерживает два ее публичных облачных сервиса: сервис ~okeanos , ориентированный на греческое академическое сообщество, и глобальный сервис ~okeanos , открытый для всех участников сети GÉANT .

История

В ноябре 2006 года, в попытке предоставить передовые облачные сервисы для греческого академического и исследовательского сообщества, GRNET решает запустить облачный сервис хранения , аналогичный S3 от Amazon , под названием Pithos . Проект передается на аутсорсинг и открывается для публичной бета-версии для членов греческого академического и исследовательского сообщества в мае 2009 года. [2]

В июне 2010 года GRNET решает сделать следующий шаг в этом направлении: создать полноценный облачный сервис типа AWS (Compute/Network/Volume/Image/Storage). Этот сервис, называемый ~okeanos , направлен на предоставление греческому академическому и исследовательскому сообществу доступа к виртуализированной инфраструктуре, которую могут использовать различные проекты, например, эксперименты, симуляции и лаборатории. Учитывая неэфемерный характер ресурсов, предоставляемых сервисом, возникает необходимость в постоянных облачных серверах. В поисках решения в октябре 2010 года GRNET решает основать сервис на Google Ganeti и спроектировать и реализовать все недостающие части собственными силами.

В мае 2011 года старая служба Pithos была переписана с нуля внутри компании с намерением интегрироваться в ~okeanos в качестве службы хранения. Более того, новая Pithos добавляет поддержку синхронизации типа Dropbox.

В июле 2011 года ~okeanos достигает своей публичной альфа-стадии. Эта версия (v0.5.2.1) включает в себя Identity, Compute, Network и примитивную службу Image. Альфа-релиз нового, переписанного Pithos следует вскоре после этого, в ноябре 2011 года. Он продается как Pithos+, а старый Pithos остается отдельной службой. Новый Pithos+, хотя пока и не интегрирован в ~okeanos, обеспечивает возможности синхронизации и обмена файлами, а также собственные клиенты синхронизации для Mac OS X, iPhone, iPad и Windows.

В марте 2012 года ~okeanos переходит в фазу public alpha2. Эта версия (v0.9) включает полную интеграцию нового Pithos как части ~okeanos и теперь выступает в качестве единого хранилища для изображений и файлов. Примерно в этот момент, в апреле 2012 года, команда ~okeanos решает называть весь программный стек Synnefo и начинает писать первую версию документации Synnefo.

В декабре 2012 года, из-за интереса других участников к стеку Synnefo, GRNET решает концептуально разделить проекты ~okeanos и Synnefo. Synnefo начинает становиться нейтральным по отношению к бренду программным обеспечением облачных вычислений IaaS, в то время как ~okeanos становится его реальным приложением, IaaS для греческого академического и исследовательского сообщества.

В апреле 2013 года выходит новая версия Synnefo (v.013) после масштабной очистки и рефакторинга кода. Все отдельные компоненты объединены в единый репозиторий Synnefo. Это первый релиз в виде единого проекта, содержащего все части (Compute/Network/Volume/Image/Storage).

В июне 2013 года выходит Synnefo v0.14. Начиная с этой версии, Synnefo становится нейтральным по отношению к брендингу (все оставшиеся ссылки на ~okeanos удалены). Он также получает механизм брендинга и соответствующую документацию, чтобы другие могли адаптировать его к своей идентичности бренда.

Обзор

Synnefo разработан для использования в любых условиях.

Компоненты

Synnefo имеет модульную структуру и состоит из следующих компонентов:

Astakos (Услуги идентификации/учетных записей)

Astakos — это компонент управления идентификацией, который обеспечивает общую базу пользователей для остальной части Synnefo. Astakos управляет созданием пользователей, группами пользователей, учетом ресурсов, квотами, проектами и выпускает токены аутентификации, используемые в инфраструктуре. Он поддерживает несколько методов аутентификации:

Pithos (службы хранения файлов/объектов)

Pithos — компонент хранилища объектов/файлов Synnefo. Пользователи загружают файлы на Pithos с помощью веб-интерфейса, клиента командной строки или собственных клиентов синхронизации. Это тонкий слой, сопоставляющий пользовательские файлы с адресуемыми по содержимому блоками, которые затем сохраняются на внутреннем хранилище. Файлы разбиваются на блоки фиксированного размера, которые хэшируются независимо для создания уникального идентификатора для каждого блока, поэтому каждый файл представлен последовательностью имен блоков (хэш-картой). Таким образом, Pithos обеспечивает дедупликацию данных файлов; блоки, общие для файлов, сохраняются только один раз.

Текущая реализация использует блоки размером 4 МБ, хэшированные с помощью SHA256. Адресация на основе содержимого также обеспечивает эффективную двустороннюю синхронизацию файлов, которую могут использовать все клиенты Pithos (например, клиент командной строки kamaki или собственные клиенты Windows/Mac OS). Всякий раз, когда кто-то хочет загрузить обновленную версию файла, клиент хэширует все блоки файла, а затем запрашивает сервер на создание новой версии для этой последовательности блоков. Сервер вернет ответ об ошибке со списком отсутствующих блоков. Затем клиент может загрузить каждый блок по одному и повторить попытку создания файла. Аналогично, всякий раз, когда файл был изменен на сервере, клиент может запросить его список блоков и загрузить только измененные.

Pithos работает на облачном уровне и предоставляет API OpenStack Object Storage внешнему миру с пользовательскими расширениями для синхронизации. Любой клиент, работающий с OpenStack Swift, также может использоваться для хранения объектов в развертывании Pithos. Процесс сопоставления пользовательских файлов с хэшированными объектами не зависит от фактического бэкэнда хранилища, который может быть выбран администратором с помощью подключаемых драйверов. В настоящее время Pithos имеет драйверы для двух бэкэндов хранилища:

  • файлы в общей файловой системе, например, NFS, Lustre, GPFS или GlusterFS
  • объекты на кластере Ceph/RADOS.

Какой бы ни была серверная часть хранилища, она отвечает за надежное хранение объектов без какой-либо связи с облачными API или операциями хеширования.

Cyclades (вычислительные/сетевые/изображения/услуги по обработке томов)

Cyclades — это компонент Synnefo, реализующий службы Compute, Network, Image и Volume. Он предоставляет связанные API OpenStack REST: OpenStack Compute, Network, Glance и вскоре также Cinder. Cyclades — это часть, которая управляет несколькими кластерами Ganeti на бэкэнде. Cyclades отправляет команды кластеру Ganeti с помощью удаленного API Ganeti (RAPI). Администратор может динамически расширять инфраструктуру, добавляя новые кластеры Ganeti, чтобы достичь масштаба центра обработки данных. Cyclades ничего не знает о низкоуровневых операциях управления виртуальными машинами, например, об обработке создания виртуальных машин, миграции между физическими узлами и обработке простоев узлов; проектирование и реализация API конечного пользователя ортогональны обработке виртуальных машин на бэкэнде.

Существует два отдельных асинхронных пути взаимодействия между Synnefo и Ganeti. Путь эффекта активируется в ответ на запрос пользователя; Cyclades отправляет команды управления виртуальной машиной в Ganeti через RAPI. Путь обновления запускается всякий раз, когда состояние виртуальной машины изменяется из-за действий, инициированных Synnefo или администратором на уровне Ganeti. В пути обновления мы отслеживаем очередь заданий Ganeti, чтобы отправлять уведомления остальной части инфраструктуры Synnefo через очередь сообщений.

Пользователи имеют полный контроль над своими виртуальными машинами: они могут создавать новые, запускать их, выключать, перезагружать и уничтожать их. Для конфигурации своих виртуальных машин они могут выбрать количество процессоров, размер оперативной памяти и системного диска, а также операционную систему из предопределенных образов, включая популярные дистрибутивы Linux (Debian, Ubuntu, CentOS, Fedora, Gentoo, Archlinux, OpenSuse), MS-Windows Server 2008 R2 и 2012, а также FreeBSD.

API REST для управления виртуальными машинами, будучи совместимым с OpenStack, может взаимодействовать со сторонними инструментами и клиентскими библиотеками.

Cyclades UI написан на Javascript/jQuery и работает полностью на стороне клиента для максимальной отзывчивости. Это просто еще один клиент API; все операции UI происходят с асинхронными вызовами через API.

Сетевые функции включают двойное подключение IPv4/IPv6 для каждой виртуальной машины, простой, предоставляемый платформой брандмауэр либо через массив предварительно настроенных профилей брандмауэра, либо через сворачиваемый вами брандмауэр внутри виртуальной машины. Пользователи могут создавать несколько частных виртуальных сетей L2, чтобы они могли создавать произвольную топологию сети, например, для развертывания виртуальных машин в многоуровневых конфигурациях. Сетевые функции экспортируются полностью от бэкэнда до API и пользовательского интерфейса.

Смотрите также

Ссылки

  1. ^ "Synnefo v0.19.1 Released" . Получено 13 июля 2017 г. .
  2. ^ "Synnefo timeline". synnefo.org . Получено 4 апреля 2014 г. .
  • Официальный сайт
  • ~веб-сайт okeanos
  • ~Глобальный веб-сайт okeanos
Retrieved from "https://en.wikipedia.org/w/index.php?title=Synnefo&oldid=1261881853"