Полное руководство Ceph, 2е изд.
Copyright © 2019 Packt Publishing
|
Данный документ предоставляется по лицензии Creative Commons Attribution 3.0 License, за исключением разделов со специальными оговорками. |
Первая публикация на английском языке: Май 2017
Второе издание на английском языке: Февраль 2019
Ссылка на продукт: 1010319
Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе или передана в любой форме или любыми средствами без предварительного письменного разрешения издателя, за исключением случаев кратких цитат, встроенных в критические статьи и обзоры.
При подготовке этой книги были предприняты все усилия чтобы гарантировать точность представленной информации. Тем не менее, информация, содержащаяся в этой книге, продаётся без гарантии в явном или неявном виде. Ни авторы, ни Packt Publishing, ни их дилеры и дистрибьюторы не будут нести ответственность за любые убытки, вызванные или предположительно вызванные прямо или косвенно этой книгой.
Packt Publishing пыталась предоставить информацию о товарных знаках обо всех компаниях и продуктов, упомянутых в данной книге для надлежащего использования капиталов. Тем не менее, Packt Publishing не может гарантировать точность этой информации.
Опубликовано Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK
ISBN-13 978-1-78961-070-3
2019-03-16
- Авторы
- Ник Фиск
- Рецензент
- Редактор выпуска
- Пэйвэн Памчандэйни
- Редактор приобретения
- Мита Рэёджэёни
- Редактор разработки содержания
- РНитхин Джордж Варгиз
- Технический редактор
- Рутуджа Пэйтэйд
- Литературный редактор
- Safis Editing
- Координатор проекта
- Драшти Панчал
- Корректор
- Safis editing
- Составитель указателя
- Тихал Дэйрувэйл Соуни
- Графика
- Том Скэйрия
- Координатор производства
- Апрна Бхагат
Ceph является унифицированной, высоко надёжной, распределённой системой хранения, которая предоставляет доступ на уровне блоков, объектов и файлов, причём пользуется всплеском популярности за последние несколько лет. Благодаря своему построению на открытом коде, Ceph быстро завоевала популярность как у разработчиков, так и у конечных пользователей, поскольку в данный проект был вовлечён ряд широко известных корпораций. С каждым новым выпуском имеющийся масштаб её производительности и набор функций продолжают расти, что ещё больше повышает статус Ceph.
При текущих запросах для всё возрастающего хранения данных, а также при тех вызовах, с которыми сталкиваются наследуемые системы на основе RAID, Ceph оказалась в удачном месте для предложения ответа на данные проблемы. По мере того как наш мир движется в сторону приспособления к новым облачным технологиям и хранения на основе объектов, Ceph уже готова и ждёт своего места в качестве основной движущей силы новой эры технологий хранения.
В данной книге мы охватим широкое разнообразие тем, начиная с установки и управления неким кластером Ceph, через то как выполнять восстановление при сбоях, если вы вдруг окажетесь в таком положении. Для тех кто заинтересован в получении своих приложений напрямую работающими с Ceph, данная книга также покажет как разрабатывать приложения которые применяют библиотеки Ceph и даже как осуществлять распределённые вычисления путём вставки вашего собственного кода в Ceph. К окончанию данной книги вы твёрдо встанете на путь освоения Ceph.
Вторая редакция Mastering Ceph теперь содержит обновления относительно новой технологии BlueStore, введённой в выпуске Luminous с руководствами, призванными помочь вам понять BlueStore и обновить свой существующий кластер для получения её преимуществ.
Если вы профессионал систем хранения, системный администратор или инженер облачных решений, который ищет решения для построения мощных систем хранения для своей облачной и локальной инфраструктуры, тогда эта книга для вас.
Глава 1. Планирование Ceph Охватывает основы того как работает Ceph, его базовую архитектуру и изучает некоторые приемлемые варианты использования. Она также обсуждает те шаги планирования, которые вам следует предпринять прежде чем реализовывать Ceph, в том числе постановку целей проектирования, доказательство работоспособности концепции и работу над проектированием инфраструктуры.
Глава 2. Развёртывание Ceph в контейнерах
это пошаговая инструкция без дураков относительно того как установить некий кластер Ceph. Эта глава рассматривает
ceph-deploy
в качестве проверки и переходит к обсуждению Ansible. Наконец, мы взглянем на проект Rook
для развёртывания кластеров Ceph, запускаемых поверх кластера Kubernetes. Также содержится раздел по изменению управления и даются пояснения насколько
это существенно для стабильности больших кластеров Ceph. Данная глава также служит целям предоставления читателю общей платформы в рамках которой вы
сможете строить те примеры, которые мы будем позднее применять в данной книге.
Глава 3. BlueStore поясняет что Ceph должен иметь возможность предоставлять атомарные операции над данными и метаданными и как строился FileStore для предоставления таких гарантий поверх стандартных файловых систем. Мы также рассмотрим те проблемы, которые появляются при подобном подходе.
Затем эта глава представляет BlueStore и поясняет как он работает и те проблемы которые он разрешает. Это охватывает сами компоненты и то как они взаимодействуют с различными типами устройств хранения. Мы рассмотрим обзор хранилищ ключ- значение, в том числе RocksDB, который применяется в BlueStore. Будут обсуждены некоторые настройки BlueStore, а также их взаимодействие с различными аппаратными конфигурациями.
Данная глава завершается обсуждением тех методов, которые доступны для обновления некого кластера на BlueStore и проводит читателя по некому примеру обновления.
Глава 4. Ceph и инородные протоколы Обсуждает возможности того хранения, которые предоставляет Ceph естественным клиентам Ceph, а затем высвечивает те проблемы, в большем числе унаследованных систем хранения, где они в настоящее время пока не получили широкого распространения. Данная глава продолжается рассмотрением тех путей, которыми Ceph может быть экспортирован через NFS и iSCSI в клиенты, которые естественным путём не общаются с Ceph и предоставляет примеры для демонстрации конфигураций.
Глава 5. Пулы RADOS и доступ клиента рассматривает как Ceph предоставляет хранилище через свои три основных протокола блоков, файлов и объектов. Эта глава обсуждает варианты применения каждого из них и те компоненты Ceph, которые применяются для предоставления каждого протокола. Данная глава также охватывает основные различия между пулами репликаций и удаляющего кодирования и более пристально рассматривает работу пулов удаляющего кодирования.
Глава 6. Разработка при помощи librados объясняет как librados применяется для построения приложений которые напрямую могут взаимодействовать с неким кластером Ceph. Затем она переходит к ряду различных примеров использования librados в различных чзыках программирования чтобы представить самому читателю некую идею как может применяться librados, включая атомарные транзакции.
Глава 7. Распределённые вычисления при помощи классов RADOS Ceph обсуждает те преимущества переноса обработки непосредственно в OSD для действенного исполнения распределённых вычислений. Она затем обсуждает как приступить к работе с классами RADOS путём построения такого примера с помощью Lua. Затем она исследует как собирать ваш собственный класс RADOC C++ в вашем дереве исходного кода Ceph и проводить эталонное тестирование относительно производительности обработки в самих клиентах в сопоставлении с обработкой в OSD.
Глава 8. Мониторинг Ceph Начинает с описания того почему важен мониторинг и обсуждает различия между оповещениями и мониторингом. Данная глава затем обсуждает как получать счётчики производительности ото всех компонентов Ceph, объясняет что означают ключевые счётчики и как преобразовывать их в доступные к использованию значения.
Некий пример применения graphite покажет особую ценность способности манипуляции перехватываемыми данными для предоставления более выразительного вывода в графическом виде. рассматривается некий обзор новой Инструментальной панели Ceph, введённой в выпуске Mimic совместно с пошаговым примером его включения в исполняемый кластер Ceph.
Глава 9. Тонкая настройка Ceph начинается с краткого обзора того как настраивать Ceph и его операционную систему. Она также охватывает основные понятия обхода попыток настройки чего- то что не является узким местом. Она также рассматривает те области, которые вы можете пожелать настроить и устанавливает как замерять успешность попыток настройки. Затем она показывает как осуществлять эталонное тестирование Ceph и получать замеры базового уровня с тем, чтобы все достигаемые значения были существенными. Наконец, она обсуждает различные инструменты и как эталонное тестирование может соотноситься с производительностью в реальной жизни.
Глава 10. Множество уровней в Ceph объясняет как множество уровней RADOS работает в Ceph, где его следует применять и его ловушки. Данная глава служит для предоставления читателю пошагового руководства по настройке множественности уровней в неком кластере Ceph и в конце концов обсуждает возможности настроек для того чтобы иметь возможность извлекать наилучшую производительность от множественности уровней.
Глава 11. Поиск неисправностей описывает как в ряде случаев требуется вмешательство персонала, несмотря на то что хотя Ceph в значительной степени автономен в отношении заботы о себе и восстановлений после ситуаций отказа. Данная глава рассмотрит распространённые ошибки и ситуации отказов, а также способы восстановления работоспособности Ceph путём устранения неполадок.
Глава 12. Восстановление после сбоев подробно описывает как возобновить доступ к вашему кластеру и, как мы надеемся, восстановить данные, в случае, когда Ceph пребывает в таком состоянии, когда произошла полная утрата службы или произошла потеря данных и требуются менее известные техники восстановления. Данная глава вооружит вас знаниями для попытки восстановления при подобных ситуациях.
Эта книга предполагает средний уровень профессионализма в операционной системе Linux и базовых знаний технологий хранения и сетевых сред. Хотя данная книга пройдёт некий пример установки кластера со множеством узлов, было бы желательно чтобы у читателя имелся бы некий предварительный опыт применения Ceph. Хотя сама книга и применяет Virtual Box, не стесняйтесь использовать и любую иную лабораторную среду, например, VMware Workstation или прочие инструментальные средства.
Данная книга предполагает что вы имеете достаточные ресурсы для лабораторной среды Ceph целиком. Минимальные аппаратные или виртуальные требования перечисляются следующим образом:
-
ЦПУ: 2 ядра
-
Память: 8 ГБ ОЗУ (рекомендуется 16 ГБ)
-
Дисковое пространство: 40 ГБ
Следуя по этой книге вам потребуется такое программное обеспечение:
-
VirtualBox
-
vagrant
Для установки необходимых пакетов, как части имеющихся в каждой из глав примеров, требуется связь с Интернетом.
Вы можете загрузить файлы примеров кода по адресу из своей учётной записи: http://www.packtpub.com. Если вы приобрели книгу где- либо ещё, вы можете посетить http://www.packtpub.com/support и зарегистрироваться для получения этих файлов по электронной почте непосредственно на свой адрес.
Вы можете загрузить эти файлы с кодом выполнив следующие шаги:
-
Зарегистрируйтесь на нашем вебсайте при помощи своего адреса электронной почты и пароля.
-
Переместите указатель мыши на закладку SUPPORT в верхней части.
-
Кликните по Code Downloads & Errata.
-
Введите название книги в блок Search.
-
Выберите книгу для которой вы ищете для загрузки файлы исходного кода.
-
В ниспадающем меню выберите где вы приобрели эту книгу.
-
Кликните по Code Download.
Вы также можете загрузить фалы кодов кликнув по кнопке Code Files вебстраницы на вебсайте Packt Publishing. Доступ к данной странице может быть получен путём ввода названия книги в блоке Search. Отметим, что вы должны быть зарегистрированы со своеЙ учётной записью Packt.
После загрузки убедитесь, пожалуйста, что вы раззиповали или раскрыли эту папку при помощи самой последней версии:
-
WinRAR / 7-Zip для Windows
-
Zipeg / iZip / UnRarX для Mac
-
7-Zip / PeaZip для Linux
Пакет с кодом для данной книги также размещён на GitHub по адресу https://github.com/PacktPublishing/Mastering-Ceph-Second-Edition. У нас также имеются прочие наборы из нашего богатого каталога книг и видео доступные на https://github.com/PacktPublishing/. Следите за ними!
Загрузка цветных изображений данной книги
Также мы снабжаем вас неким PDF файлом, который имеет цветные изображения применяемых в данной книге снимков экрана/ схем. Эти цветные изображения помогут вам лучше понять все изменения в имеющемся выводе. Вы можете загрузить этот файл с https://www.packtpub.com/sites/default/files/downloads/9781789610703_ColorImages.pdf.
В данной книге вы найдёте ряд текстовых стилей, которые делают разницу между различными видами информации. Здесь мы приводим некоторые примеры этих стилей и объяснение их назначения.
как CodeInText
: Кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов,
расширения файлов, имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter представлены следующим образом:
"Установите набор инструментов corosync
, pacemaker
и
cmrsh
с помощью следующего кода:"
Блок кода записываются следующим образом:
Vagrant.configure("2") do |config|
nodes.each do |node|
config.vm.define node[:hostname] do |nodeconfig|
nodeconfig.vm.box = "bento/ubuntu-16.04"
Когда мы хотим привлечь ваше внимание к некоторой определённой части блока кода, соответствующие строки и элементы выделяются жирным шрифтом:
Vagrant.configure("2") do |config|
nodes.each do |node|
config.vm.define node[:hostname] do |nodeconfig|
nodeconfig.vm.box = "bento/ubuntu-16.04"
Любой ввод и вывод командной строки записываются так:
yum install *.rpm
Новые термины и важные слова отображаются жирным шрифтом. Слова, которые вы видите на экране, например, в меню или блоках диалогов появляются в тексте следующим образом: "Кликните по ссылке Repo URL, которая переместит вас в соответствующее дерево каталога репозитория."
Замечание | |
---|---|
Предостережения или важные замечания появляются в блоках подобных этому. |
Предостережение | |
---|---|
. |
Совет | |
---|---|
Советы и ловкие приёмы возникают таким образом. |
Обращения наших читателей всегда приветствуются. Дайте нам знать что вы думаете об этой книге - что вам нравится или не нравится. Обратная связь с читателями важна нам, так как помогает нам разрабатывать издания, от которых вы на самом деле получите максимальную пользу.
Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.
Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.
Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.
Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны. Если вы обнаружили ошибку в нашей книге - возможно, ошибку в тексте или в коде - мы будем признательны если вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень существующих ошибок с заголовком раздела Errata.
Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.
Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.
- Предисловие
- Часть 1. Планирование и развёртывание
- Глава 1. Планирование Ceph
- Что такое Ceph?
- Как работает Ceph?
- Варианты применения Ceph
- Проектирование инфраструктуры
- Как спланировать успешную реализацию Ceph
- Осознание ваших требований и того как они относятся к Ceph
- Определение целей с тем, чтобы вы могли измерять его как успешный проект
- Воссоединение с сообществом Ceph
- Выбор вашего оборудования
- Подготовка себя и своей команды к применению Ceph
- Исполнение PoC для определения того, отвечает ли Ceph поставленным целям
- Применение практического опыта для развёртывания вашего кластера
- Определение процесса изменения управления
- Создания плана резервного копирования и восстановления
- Выводы
- Вопросы
- Глава 2. Развёртывание Ceph в контейнерах
- Глава 3. BlueStore
- Глава 4. Ceph и инородные протоколы
- Часть 2. Работа и настройка
- Глава 5. Пулы RADOS и доступ клиента
- Глава 6. Разработка при помощи librados
- Глава 7. Распределённые вычисления при помощи классов RADOS Ceph
- Глава 8. Мониторинг Ceph
- В чём заключается важность мониторинга Ceph
- Что подлежит мониторингу
- Инструментальная панель Ceph
- Состояния PG - хорошо, плохо и опасно
- Мониторинг Ceph при помощи collectd
- Выводы
- Вопросы
- Глава 9. Тонкая настройка Ceph
- Глава 10. Множество уровней в Ceph
- Часть 3. Устранение неисправностей и восстановление
- Глава 11. Поиск неисправностей
- Глава 12. Восстановление после сбоев
- Что из себя представляет катастрофа?
- Как избежать потери данных
- Что может повлечь вывод из строя или утрату данных?
- Зеркалирование RBD
- Восстановление RBD
- RGW со множеством площадок
- Восстановление CephFS
- Утраченные объекты и неактивные PG
- Восстановление при полном отказе монитора
- Применение инструмента object-store Ceph
- Внесение утверждений
- Выводы
- Вопросы
- Приложение A: Аттестация
- Глава 1. Планирование Ceph
- Глава 2. Развёртывание Ceph в контейнерах
- Глава 3. BlueStore
- Глава 4. Ceph и инородные протоколы
- Глава 5. Пулы RADOS и доступ клиента
- Глава 6. Разработка при помощи librados
- Глава 7. Распределённые вычисления при помощи классов RADOS Ceph
- Глава 8. Мониторинг Ceph
- Глава 9. Тонкая настройка Ceph
- Глава 10. Множество уровней в Ceph
- Глава 11. Поиск неисправностей
- Глава 12. Восстановление после сбоев
- Указатель