Изучаем Ceph

Каран Сингх

Первая публикация на английском языке: январь 2015

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

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

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

Перевод: ООО "Модуль- Проекты" ("Modue- Pojects" Ltd.)

2015-01-23

Аннотация

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


 Состав исполнителей

Первого издания на английском языке
Автор
Каран Сингх
Рецензенты
Дзихонг Чен
Себастьян Хан
Жульен Рекурт
Дон Талтон
Редактор выпуска
Тарон Перейра
Редактор
Джеймс Джонс
Редактор разработки содержания
Шубханги Дхамгайе
Технический редактор
Панкаж Кадам
Литературные редакторы
Джанбал Дхармарадж
Сайани Мукжерджи
Алфида Пайва
Координатор проекта
Харшал Вед
Корректоры
Симран Бхогал
Ами Джонсон
Кевин МакГован
Составитель указателя
Теджал Сони
Графика
Диша Хария
Координатор производства
Мелвин Дьса
Изготовитель переплета
Мелвин Дьса

 Предисловие

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

Проект Ceph начинался как исследовательская инициатива в Университете Калифорнии, Санта Круз, финансируемом несколькими лабораториями Министерства энергетики (Лос-Ала́мосская национа́льная лаборато́рия, Ливерморская национальная лаборатория им. Э.Ло́уренса, Национальная лаборатория Сандия). Цель состояла в дальнейшем продвижении проектирования объектно ориентированных систем хранения масштаба пета-байт. Когда автор предисловия присоединился к группе в 2005г, его первоначальный акцент был направлен на управление масштабируемыми метаданными для файловых систем — как распределить функции иерархии файлов и каталогов на множество серверов так, чтобы система могла управиться с миллионом процессоров в суперкомпьютере, сохранением файлов в файловой системе, зачастую в одном и том же каталоге и в одно и то же время. В последующие 3 года мы объединили ключевые идеи годов исследований и построили завершенную архитектуру и рабочую реализацию системы.

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

Построение живого сообщества пользователей вокруг проекта Ceph было наиболее плодотворной частью данного опыта. При построении бизнеса Inktank при производстве Ceph в 2012 и 2013 сообщество было общей темой обсуждения и изучения. Вопросом в тот момент времени было то как нам сделать инвестиции и осуществить найм для построения сообщества экспертов и участников, которые не работают на их компанию? Автор предисловия уверен, что это оказалось судьбоносным решением для понимания модели открытого кода, которое, в конечном итоге, привело к успеху Inktank и Ceph. Мы стремились создать экосистему из пользователей, партнеров и конкурентов, которых мы бы могли вести без доминирования над ними.

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

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

Сейдж Вейль
Главный архитектор Ceph, Red Hat

 Об авторе

Каран Сингх

 Рецензенты

Джихон Чен

Себастьян Хан

Жульен Рекурт

Дон Талтон

 www.PacktPub.com

Автор посвящает эту книгу Светлой памяти его бабушки и дедушки, Лэйт Раджешвари и Хариш Кумар Верма; без их поддержки он никогда бы не существовал в этом мире.

Эта книга также посвящена его очаровательной жене, его жизни, его талисмане, Монике Шрестхе Сингх. Автор говорит о своей любви к ней, MJ.

 Содержание

Вводные материалы
Авторские права
Состав исполнителей
Об авторах
Рецензенты
www.PacktPub.com
Оглавление
Предисловие
Что охватывает эта книга
Что вам нужно для этой книги
Для кого эта книга
Соглашения
Обратная связь с читателями
Загрузка кода примеров
Поддержка пользователей
Опечатки
Незаконное тиражирование
Вопросы
1. Введение в систему хранения Ceph
Обзор Ceph
История и эволюция Ceph
Редакции Ceph
Ceph и будущее систем хранения
Ceph как решение для облачного хранилища
Ceph как определяемое программным обеспечением решение
Ceph как универсальное решение для хранения данных
Архитектура следующего поколения
RAID - конец эпохи
Портфолио совместимости
Блочное хранилище Ceph
Файловая система Ceph
Хранилище объектов Ceph
Ceph в противовес остальным
GPFS
iRODS
HDFS
Lustre
Gluster
Ceph
Заключение
2. Моментальное развертывание Ceph
Создание среды песочницы с использованием VirtualBox
От нуля к Ceph- развертывание вашего первого кластера Ceph
Увеличение вашего кластера Ceph в масштабах- добавление монитора и OSD
Добавление монитора Ceph
Добавление OSD Ceph
Заключение
3. Архитектура и компоненты Ceph
Архитектура системы хранения Ceph
Ceph RADOS
Устройство хранения объектов Ceph
Файловая система OSD Ceph
Журнал OSD Ceph
Команды OSD
Мониторы Ceph
Команды монитора
librados
Блочное хранилище Ceph
Шлюз объектов Ceph
MDS Ceph
Развертывание MDS для вашего кластера Ceph
Файловая система Ceph
Заключение
4. Ceph изнутри
Под капотом Ceph
Объект
Местонахождение объектов
CRUSH
Нахождение CRUSH
Иерархия CRUSH
Восстановление и балансировка
Изменение карты CRUSH
Индивидуальная настройка компоновки кластера
Группы размещения
Вычисление номеров PG
Изменение PG и PGP
Обмен между PG, наборы включенных и действующих
Пулы Ceph
Работа пула
Создание пула и просмотр списка пулов
Управление данными Ceph
Заключение
5. Развертывание Ceph - дорога, которую вы обязаны знать
Планирование аппаратных средств для кластера Ceph
Требования монитора
Требования OSD
Требования сетевой среды
Требования MDS
Настройка вашей среды VirtualBox - еще раз
Подготовка к установке вашей Ceph
Получение программного обеспечения
Получение пакетов
Получение tar- архивов Ceph
Получение Ceph из GitHub
Развертывание кластера Ceph вручную
Установка дополнительных благ
Развертывание кластера Ceph
Развертывание мониторов
Создание OSD
Масштабирование вашего кластера
Добавление мониторов
Добавление OSD
Развертывание кластера Ceph с использованием инструмента ceph-deploy
Модернизация вашего кластера Ceph
Модернизация монитора
Модернизация OSD
Заключение
6. Подготовка хранилища к работе в Ceph
Блочные устройства RADOS
Настройка вашего первого клиента
Установление соответствия блочных устройств RADOS
Изменение размера RBD Ceph
Изготовление моментальных снимков RBD Ceph
Клонирование RBD Ceph
Файловая система Ceph
Монтирование CephFS с применением драйвера ядра
Монтирование CephFS в качестве FUSE
Хранение объектов с применением шлюза Ceph RADOS
Настройка виртуальной машины
Установка шлюза RADOS
Настройка шлюза RADOS
Создание пользователя radosgw
Доступ к хранилищу объектов Ceph
Совместимое с API S3 хранилище объектов
Совместимое с API Swift хранилище объектов
Заключение
7. Эксплуатация и обслуживание Ceph
Управление службой Ceph
Выполнение Ceph с использованием sysvinit
Запуск демонов по типам
Останов демонов по типам
Запуск и останов всех демонов
Запуск и останов определенного демона
Выполнение Ceph как службы
Запуск и останов всех демонов
Запуск и останов определенного демона
Увеличение масштаба кластера Ceph
Добавление узлов OSD в кластер Ceph
Уменьшение масштаба кластера Ceph
Вывод OSD и отключение из кластера Ceph
Удаление OSD из кластера Ceph
Замена отказавшего диска
Обработка карт CRUSH
Определение местоположений CRUSH
Таблицы соответствий CRUSH изнутри
Разнообразные пулы на различных OSD
Заключение
8. Наблюдение за вашим кластером Ceph
Наблюдение за кластером Ceph
Проверка работоспособности кластера
Отслеживание событий в кластере
Статистики использования кластера
Проверка состояния кластере
Ключи аутентификации кластера
Наблюдение за Ceph MON
Состояние MON
Состояние кворума MON
Наблюдение за Ceph OSD
Просмотр дерева OSD
Статистика OSD
Проверка соответствий CRUSH
Наблюдение за группами размещения
Наблюдение за MDS
Наблюдение за Ceph с использованием инструментальной панели на основе открытого кода
Kraken
Развертывание Kraken
Инструментарий ceph-dash
Развертывание ceph-dash
Calamari
Заключение
9. Включение Ceph в состав OpenStack
Введение в OpenStack
Ceph - наилучший выбор для OpenStack
Создание среды для тестирования OpenStack
Наладка машины OpenSatck
Установка OpenSatck
Применение Ceph в OpenStack
Установка Ceph на узел OpenStack
Настройка Ceph для работы с OpenStack
Настройка Cinder OpenSatck
Настройка Nova OpenSatck
Настройка Glance OpenSatck
Перезапуск служб OpenStack
Тестирование Cinder OpenSatck
Тестирование Glance OpenSatck
Заключение
10. Настройка производительности Ceph и эталонное тестирование
Общее представление о производительности Ceph
Анализ производительности Ceph- аппаратный уровень
Процессор
Оперативная память
Сетевые средства
Диск
Настройка производительности Ceph- уровень программного обеспечения
Файл настройки кластера
Разделы настройки
Общий раздел
Раздел MON
Раздел OSD
Раздел MDS
Раздел client
Настройка производительности кластера Ceph
Параметры общей настройки
Сетевые ресурсы
Максимальное число открытых файлов
Параметры настройки OSD
Параметры настройки клиента
Параметры настройки общей производительности
Кодирование затирания Ceph
Замороженное хранение с низкой стоимостью
Реализация кодирования затирания
Многоуровневое кэширование Ceph
Режим с обратной записью
Режим только для чтения
Реализация многоуровневого кэширования
Создание пула
Создание многоуровневого кэширования
Настройка многоуровневого кэширования
Тестирование многоуровневого кэширования
Эталонное тестирование Ceph с применением оснастки RADOS
Заключение
Указатель

 Предисловие

 Что охватывает эта книга

 Что вам нужно для этой книги

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

 Соглашения

 Обратная связь с читателями

 Загрузка кода примеров

 Поддержка пользователей

 Опечатки

 Незаконное тиражирование

 Вопросы