Предисловие

OpenStack является платформой с открытым кодом, которая позволяет вам строить облако инфраструктуры как сервиса (IaaS), которое работает на стандартных аппаратных средствах.

 Введение в OpenStack

OpenStack верит в открытый исходный код, открытое проектирование, открытые разработки, во все в открытом сообществе, которое поощряет участие любого желающего. Долгосрочное предсказание для OpenStack состоит в предоставлении вычислительной платформы для повсеместного облака с открытым исходным кодом, которое отвечает потребностям общественных и частных поставщиков услуг облака, независимо от их размера. Службы OpenStack управляют крупными пулами вычислительных сред, систем хранения и сетевых ресурсов во всем центре обработки данных.

Технология, лежащая в основе OpenStack, состоит из ряда взаимосвязанных проектов, предоставляющих различные компоненты для решений облачной инфраструктуры. Каждая служба предоставляет открытый API, следовательно все эти ресурсы могут управляться с помощью приборной панели, что предоставляет администраторам контроль, и в то же время вооружая пользователей возможностью предоставлять ресурсы через веб-интерфейс, клиента командной строки или наборы для разработки программного обеспечения, которые поддерживают API. Многие OpenStack API, можно расширять, то есть вы можете сохранять совместимость с основным набором вызовов при предоставлении доступа к бОльшим ресурсам и введении новшеств посредством расширения API. Проект OpenStack является глобальным сотрудничеством разработчиков и технологов облачных вычислений. Проект разрабатывает платформы облачных вычислений открытого стандарта как для для общественных, так и для частных облаков. Сосредоточив внимание на простоте реализации, массивной масштабируемости, разнообразных богатых функциональных возможностях и гигантской расширяемости, проект стремится поставлять практичные и надежные облачные решения для всех типов организаций.

 Приступая к работе с OpenStack

Поскольку он является проектом с открытым кодом, одним из уникальных преимуществ OpenStack является то, что он имеет множество различных уровней, на которых вы можете начинать заниматься им— вы не должны делать все самостоятельно.

 Использование OpenStack

Вы можете спросить: "Нужно ли мне самому строить облако"? Если вы хотите начать использовать вычислительную среду или службы хранения, просто проведите свою кредитную карту через считывающее устройство, вы можете сходить в eNovance, HP, Rackspace, {прим.пер.: Модуль} или другую организацию чтобы начать использовать их общедоступные облака OpenStack. Использование их облачных ресурсов OpenStack аналогично публичному доступу к службам эластичных вычислительных облаков Amazon (EC2, Amazon Web Services Elastic Compute Cloud) или Simple Storage Solution (S3).

 OpenStack включай и работай

Как бы то ни было, заманчивой частью OpenStack может быть построение вашего собственного облака, причем существует несколько способов достижения этой цели. Возможно, самым простым будет аппаратное решение. Вы покупаете такой аппарат, распаковываете его, подключить питание к сети, и следите за его превращением в облако OpenStack с минимальной дополнительной настройкой {прим. пер.: за небольшую доплату мы предлагаем присутствие нашего специалиста при этой процедуре}. Немногие другие (если таковые имеются) облачные продукты с открытым исходным кодом имеют такие варианты под ключ. Если вам интересно готовое решение, обратите внимание на Nebula One.

Однако выбор аппаратных средств важен для многих приложений, следовательно, если это относится к вам, считайте что существуют различные доступные дистрибутивы программного обеспечения, которые вы можете выполнять на серверах, системах хранения и сетевых продуктах по своему выбору. Канонически (когда OpenStack заменил Eucalyptus в качестве облака по умолчанию в 2011), Red Hat и SUSE предлагали решения и поддержку OpenStack уровня предприятия. Вы также можете обратить внимание на некоторые специализированные дистрибутивы, например, на дистрибутивы от Rackspace, Piston, SwiftStack или Cloudscaling.

В качестве альтернативы, если вы хотите, чтобы кто-то помогал руководить вами при принятии решений о базовом оборудовании или ваших приложениях, а также, возможно, добавлении некоторой функциональности или интеграции компонентов в процессе вашего пути, рассмотрите возможность контактов с одним из системных интеграторов с опытом OpenStack, например, такими как Mirantis, Metacloud {прим.пер.: или Модуль}.

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

 Разверните OpenStack под себя

Тем не менее, данное руководство имеет различные аудитории— тех, кто ищет гибкость в инфраструктуре OpenStack путем проведения политики решений сделай-это-сам.

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

 Для кого эта книга

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

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

Один из самых сложных аспектов в облаке OpenStack заключается в настройке сети. Вы должны быть знакомы с такими понятиями, как DHCP, мосты Linux, VLAN и IPTables. Вы также должны иметь доступ к эксперту по сетевой аппаратуре, который может настроить коммутаторы и маршрутизаторы, необходимые в вашем облаке OpenStack.

[Совет]Совет

Облачные вычисления являются довольно сложной темой, и эта книга требует много фундаментальных знаний. Однако, если вы являетесь достаточным новичком для облачных вычислений, мы рекомендуем вам использовать Словарь в конце книги, а также онлайн-документацию для OpenStack и дополнительные ресурсы, упомянутые в этой книге в Приложении D, Ресурсы.

 Дальнейшее чтение

Существуют и другие книги на веб-сайте документации OpenStack, которые помогут вам получить работу.

Руководства OpenStack

Руководства по установке OpenStack

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

Справочное руководство по настройке OpenStack

Содержит перечень справочной информации всех параметров настройки для ядра и интегрированных служб OpenStack по версиям редакций

Руководство администратора облака OpenStack

Содержит обучающую информацию для управления облаком OpenStack надлежащим образом для таких случаев применения, как системы хранения, вычислительные ресурсы или сетевая среда, управляемая программным обеспечением

Руководство по высокой доступности OpenStack

Описывает возможные стратегии преобразования ваших служб OpenStack и связанных с ними контроллеров и хранилищ данных в службы с высокой доступностью.

Руководство по безопасности OpenStack

Предоставляет лучшие методы и основные седения об обеспечении безопасности в облаке OpenStack

Руководство по образам виртуальных машин

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

Руководство конечного пользователя OpenStack

Показывает конечным пользователям OpenStack как создавать ресурсы и управлять ими в инструментальной панели OpenStack, а также с помощью клиентских команд

Руководство пользователя с правами администратора OpenStack

Предоставляет администраторам OpenStack примеры того, как создавать ресурсыи управлять ими в облаке OpenStack через приборную панель OpenStack и команды клиента OpenStack

Быстрое начало с API OpenStack

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

 Как организована эта книга

Книга состоит из двух частей: архитектуры решений для проектирования облаков OpenStack и повторяемых эксплутационных операций в работающих облаках OpenStack.

Часть I:

Глава 1, Пример архитектуры

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

Глава 2, Инициализация и развертывание

Хотя данная книга и не описывает процесс установки, мы рекомендуем автоматизировать развертывание и настройку, описанные в данной главе.

Глава 3, Проектирование контроллера облака и управления облаком

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

Глава 4, Вычислительные узлы

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

Глава 5, Масштабирование

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

Глава 6, Решения систем хранения

Как и прочим архитектурным решениям, концепциям хранения уделяется много внимания в OpenStack и данная глава излагает различные варианты для вас.

Глава 7, Проектирование сети

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

Часть II:

Глава 8, Что к чему

Эта глава написана для того, чтобы предоставить в ваши руки инструменты командной строки, обнаруживающие в вашем облаке OpenStack интересующие вас данные и отображающие их, а также понимание того, что уже установлено в вашем облаке.

Глава 9, Управление проектами и пользователями

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

Глава 10, Операции стороны пользователя

Эта глава показывает вам как использовать ресурсы облака OpenStack, а также обучать ваших пользователей.

Глава 11, Обслуживание, сбои и отладка

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

Глава 12, Устранение неполадок сети

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

Глава 13, Ведение журналов и мониторинг

Эта глава показывает вам где OpenStack размещает журналы и как лучше их читать и управлять ими для целей мониторинга.

Глава 14, Резервное копирование и восстановление

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

Глава 15, Индивидуальная настройка

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

Глава 16, Обратная связь OpenStack

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

Глава 17, Расширенная настройка

БОльшая часть OpenStack основана на драйверах, следовательно вы можете подключать различные решения к базовому набору служб. Данная глава описывает некоторые темы расширенной настройки topics.

Глава 18, Модернизации

Эта глава содержит информацию по обновлению на основе используемых в данной книге архитектур.

Справочные материалы:

Дополнение A, Варианты использования

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

Дополнение B, Байки из зашиф^H^H^H^H облака

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

Дополнение C, Работа с дорожными картами

Прочитайте о том, как отслеживать дорожные карты OpenStack с применением открытых и прозрачных процессов развития.

Дополнение D, Ресурсы

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

Словарь

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

 Как и зачем мы написали эту книгу

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

Мы написали эту книгу чтобы помочь вам:

  • Спроектировать и создать архитектуру для вашего первого нетривиального облака OpenStack. После того, как вы прочитаете данное руководство, вы будете знать какие вопросы задавать и как организовывать ваши вычислительные ресурсы, сетевые среды и системы хранения и связанные с ними программные пакеты.

  • Выполняйте ежедневные задания, необходимые для администрирования облака.

Мы написали эту книгу в книжном спринте, который является устраняющим трудности методом производства быстрой разработки книг. Для дополнительной информации обратитесь к веб-сайту BookSprints. Ваши авторы, собранные данной книгой на скорую руку вместе на пять дней в феврале 2013 года подпитывались кофеином и лучше пищей на вынос которую Остин, Техас мог предложить.

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

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

Команда включает:

Том Фифилд

Узнав о масштабируемости в вычислениях из экспериментов в физике элементарных частиц, таких как ATLAS на Большом адронном коллоайдере (LHC, Large Hadron Collider) в CERN, Том работал на облаке OpenStack в практических приложениях для поддержки Австралийского общедоступного научно- исследовательского сектора. В настоящее время Том работает в должности менеджера сообщества OpenStack и в свое свободное время работает над документацией OpenStack.

Диана Флеминг

Диана работает над документацией OpenStack API не покладая рук. В данном проекте она помогла везде, где могла.

Анна Гентл

Анна является координатором документации OpenStack, а также работала в качестве индивидуального сотрудника на саммите документации Google в 2011, сотрудничая с командой Open Street Maps. В прошлом она работала в книжном спринте с Руководствами FLOSS при содействии Адама Хайда. Анна живет в Остин, Техас.

Лорин Хочстайн

Вращающийся в академических кругах разработчик-программного-обеспечения-дробь-оператор, Лорин работал в качестве ведущего архитектора облачных служб в Nimbis Services, где он развернул OpenStack для технических вычислительных приложений. Он имеет практику работы с OpenStack, начиная с редакции Cactus. Ранее он работал с расширениями для высокопроизводительных вычислений под OpenStack в Институте информационных наук Университета южной Калифорнии (USC-ISI, University of Southern California's Information Sciences Institute).

Адам Хайд

Адам содействовал данному спринту книги. Он также основал методологию спринт книг и является наиболее искушенным в округе куратором спринт- книг. Для дополнительной информации ознакомьтесь с http://www.booksprints.net . Адам основал сообщество руководств FLOSS из примерно 3000 лиц, разрабатывающих свободные руководства о свободном программном обеспечении. Он также является основателем и руководителем проекта Booktype, проекта открытых кодов для написания, редактирования и публикации книг в интернете и в печати.

Джонатан Пру

Джон был управляющим в облаке OpenStack в качестве старшего технического архитектора в лаборатории компьютерных наук и искусственного интеллекта MIT (Computer Science and Artificial Intelligence Lab) для того, чтобы ее научные сотрудники имели столько вычислительной мощности, сколько им нужно. Он начал способствовать документации OpenStack и ее анализу, следовательно он может ускорить ее изучение..

Эверет Тойюс

Эверет является защитником разработчиков в Rackspace, создающих OpenStack и упрощающих использование облака Rackspace. Порой разработчик, порой адвокат, а иногда оператор, он строит веб- приложения, ведет семинары, проводит по всему миру презентации, а также разворачивает OpenStack для практического использования как в академической среде, так и в бизнесе.

Джо Тоджиан

Джо разработал и внедрил несколько облаков в Cybera, некоммерческой организации, где они построили электронную инфраструктуру для поддержки предпринимателей и местных исследователей в Альберте, Канада. Он также активно осуществляет сопровождение и эксплуатацию этих облаков в роли системного архитектора, и его опыт породил огромное мастерство поиска неисправностей в облачных средах.

Участники сообщества OpenStack

Многие индивидуальные усилия поддерживают жизнь книг сообщества. Члены нашего сообщества обновляют содержание этих книг круглый год. К тому же, через год после первого спринта, Джон Пру собрал второй двухдневный мини- спринт в MIT (Массачусетском технологическом институте) с целью обновления книги на последние редакции. С момента создания книги, более 30 авторов поддержали ее. У нас есть инструментарий цепочки обзоров, непрерывный построитель, а также переводы. Писатели и разработчики непрерывно просматривают исправления, вводят документацию ошибок, редактируют содержание, а также исправляют документацию ошибок. Мы хотим отметить их усилия!

Следующие люди внесли вклад в эту книгу: Акихиро Мотоки, Алехандро Авелла, Александра Сеттл, Андреа Джагер, Энди МакКалум, Бэнджамин Стассарт, Чандан Кумар, Крис Риккер, Давид Крамер, Давид Виттман, Дэнни Джанг, Эмильен Маччи, Гаувайн Покентек, Игнасио Баррио, Джеймс. Э. Блэйр, Джей Кларк, Джеф Уайт, Джереми Стэнли, К Джонатан Харкер, КАТО Томойуки, Лана Бриндлей, Лаура Элвес, Ли Ли, Лукасз Джернас, Марио Б. Коденейра, Мэтью Кассавара, Микаэль Стилл, Монти Тэйлор, Нермина Миллер, Нигель Вильямс, Фил Хопкинс, Рассел Брайант, Сахид Орентино Ферджауи, Сэнди Уолш, Саша Пейликке, Шон М. Коллинз, Сергей Лукьянов, Шилла Саэби, Стефен Гордон, Саммер Лонг, Уве Стьюлер, Вайбхав Бхаткар, Вероника Муссо, Юнг Чун "Дэйзи" Гуо, Дженггуанг У и ДжиКианг Фан.

 Как принять участие в этой книге

Происхождение этой книги было личным событием, однако теперь эта книга в ваших руках, а мы хотим чтобы вы стали ее автором. Документация OpenStack следует используемым при написании кода принципам итеративной работы, с протоколированием ошибок, их исследованием и исправлением. Мы также храним исходный код содержания в GitHub и приглашаем соавторов воспользоваться установкой OpenStack Gerrit, которая поддерживает периодические обновления. В редакции этой книги для O'Reilly мы используем систему компании Atlas, которая также сохраняет содержимое исходного кода в GitHub и допускает взаимодействие между соавторами.

Узнайте большео том, как стать соавтором документации OpenStack в Документация Как сделать.

Если вы нашли ошибку и не можете исправить ее или не уверены, что она действительно является ошибкой документации, зарегистрируйте ее в Руководств OpenStack. Пометьте ошибку при помощи Extra (дополнительных) параметров с дескриптором (tag) ops-guide для указания того, что эта ошибка присутствует в руководстве. Вы можете назначить ошибку на себя, если не знаете как исправить ее. Кроме того, члены команды ядра документации OpenStack могут установить очередность данной ошибки документации.

 Соглашения, использованные в этой книге

В данной книге используются следующие типографские соглашения:

Курсив

Указывает новые термины, URL, адреса электронной почты, имена файлов и расширения файлов.

Шрифт c постоянной шириной

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

Жирный шрифт с постоянной шириной

Показывает команды или другой текст, который в буквальном смысле должен быть набран пользователем.

Курсив с постоянной шириной

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

Приглашение команды

Команды с префиксом приглашения # должны выполняться пользователем root. Также, если это возможно {Прим. пер.: например, если это не противоречит необходимому контексту команды, например, домашней директории пользователя и т.п.}, пример может быть выполнен с применением команды sudo.

Команды с префиксом приглашения $ могут быть выполнены любым пользователем, в том числе root.

[Совет]Совет

Этот элемент обозначает подсказку или намек.

[Замечание]Замечание

Этот элемент означает общее замечание.

[Предостережение]Предостережение

Этот элемент указывает на предупреждение или предостережение.