Ceph: Разработка и реализация масштабируемых систем хранения

Мишель Хаккет, Викхайят Умрао, Каран Сингх, Ник Фиск, Энтони Д'Атри, Вайбхав Бхембре

 

Первая редакция на английском языке: Январь 2019

Ссылка на продукт: 1290119

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

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

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

Опубликовано Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK

ISBN 978-1-78829-541-3

www.packtpub.com

2019-02-09

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

Издания на английском языке
Авторы
Мишель Хаккет
Викхайят Умрао
Каран Сингх
Ник Фиск
Энтони Д'Атри
Вайбхав Бхембре

 Об авторах

Мишель Хаккет является экспертом в системах хранения и SAN в отношении поддержки пользователей. Он работал с Ceph и относящимся к системам хранения продуктам более 12 лет. Мишель в настоящее время работает в Red Hat, базирующейся в Массачусетсе, в которой он является главным инженером сопровождения программного обеспечения в отношении Red Hat Ceph и техническим руководителем продукта в отношении глобальной команды Ceph.

Викхайят Умрао работал в области технологии программно- определяемых систем хранения, причём в области специализированной экспертизы единообразной системы хранения Ceph. Он работает в настоящее время с Ceph более 3 лет и на своей текущей позиции в Red Рфе он сосредоточен на поддержке и разработке Ceph в решении проблем пользователей системы хранения Red Hat Ceph и восходящих отчётов о проблемах.

Каран Сингх является сертифицированным профессионалом в таких технологиях как OpenStack, NetApp и Oracle Solaris. В настоящее время он работает в должности Системного специалиста систем хранения и облачной платформы в CSC - IT Center for Science Ltd, сосредотачивая всех своих инженеров на предоставлении облачных решений IaaS на основе OpenStack и Ceph, а также построения экономичных систем хранения с многими пета-байтами при помощи Ceph.

Ник Фиск является ИТ специалистом с мощной историей в области корпоративных систем хранения. На протяжении своей карьеры он работал в разнообразных ролях и ведал различными технологиями. На протяжении определённого числа лет он разработал различные кластеры. Он выделял своё время сообществу Ceph, помогая всем остальным и улучшая определённые области Ceph.

Энтони Д'Атри имеет карьеру в области системного администрирования начиная с ноутбуков, заканчивая векторными суперкомпьютерами. Он привнёс свою страсть управления флотом и компонентами серверов для реализации целостного, но при этом детализированного подхода к разработке и выполнению операций. Энтони три года работал в Cisco с применением Ceph в качестве серверной основы масштаба петабайт для объектов и блочных устройств со многими облачными решениями OpenStack.

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

 www.PacktPub.com

 Содержание

Предисловие
Для кого эта книга
Что охватывает эта книга
Как получить максимальную отдачу от этой книги
Загрузка примеров кода этой книги
Принятые соглашения
Будьте на связи
Отзывы
Опечатки
Незаконное тиражирование
Вопросы
Глава 1 {CC2e~1}. Ceph: введение и за его пределами
Введение
Ceph - начало новой эры
RAID - конец эпохи
Программно определяемые хранилища - SDS
Облачные хранилища
Унифицированная архитектура хранения следующего поколения
RAID - конец эпохи
Головная боль повторного построения RAID
Запасные диски RAID увеличивают TCO
Головная боль повторного построения RAID
RAID могут быть затратными и зависящими от оборудования
Рост групп RAID является вызовом
Модель надёжности RAID больше ничего не обещает
Ceph - обзор архитектуры
Планирование развёртывания Ceph
Настройка виртуальной инфраструктуры
Подготовка
Как это сделать...
Установка и настройка Ceph
Создание кластера на ceph-node1
Как это сделать...
Увеличение Ceph в размерах
Как это сделать...
Практическое применение кластера Ceph
Как это сделать...
Глава 2 {CC2e-2}. Работа с блочными устройствами Ceph
Введение
Настройка клиента Ceph
Как это сделать...
Создание блочного устройства Ceph
Как это сделать...
Отображение блочного устройства Ceph
Как это сделать...
Изменение размеров RBD Ceph
Как это сделать...
Работа со снимками RBD
Как это сделать...
Работа с клонами RBD
Как это сделать...
Восстановление репликации после сбоя с применением зеркалирования RBD
Как это сделать...
Настройка пулов для зеркалирования RBD с помощью однонаправленной репликации
Как это сделать...
Настройка зеркалирования образа
Как это сделать...
Настройка двусторонней репликации
Как это сделать...
Смотрите также...
Восстановим после сбоя!
Как это сделать...
Глава 3 {CC2e-3}. Работа с Ceph и OpenStack
Введение
Ceph - наилучшее соответствие OpenStack
Установка OpenStack
Как это сделать...
Настройка OpenStack как клиента Ceph
Как это сделать...
Настройка Glance под сервер Ceph
Как это сделать...
Настройка Cinder под сервер Ceph
Как это сделать...
Настройка Nova для загрузки экземпляров с RBD Ceph
Как это сделать...
Настройка Nova для подключения RBD Ceph
Как это сделать...
Глава 4 {CC2e-4}. Работа с хранилищем объектов Ceph
Введение
Понимание хранения объектов Ceph
Стандартные наладка, установка и настройка шлюза RADOS
Наладка узла шлюза RADOS
Как это сделать...
Установка и настройка шлюза RADOS
Как это сделать...
Создание пользователя radosgw
Как это сделать...
Смотрите также...
Доступ к хранилищу объектов Ceph с применением S3 API
Как это сделать...
Настройка DNS
Настройка клиента s3cmd
Настройка клиента S3 (s3cmd) в client-node1
Доступ к хранилищу объектов Ceph с применением Swift API
Как это сделать...
Интеграция шлюза RADOS с OpenStack Keystone
Как это сделать...
Интеграция RADOS с подключаемым модулем Hadoop S3A
Как это сделать...
Глава 5 {CC2e-5}. Работа с объектным хранилищем Ceph множества сайтов v2
Введение
Функциональные изменения настройки федерализации в сравнении с Hammer
Требования RGW со множеством сайтов v2
Установка среды Ceph RGW со множеством сайтов v2
Как это сделать...
Настройка Ceph RGW со множеством сайтов v2
Как это сделать...
Настройка зоны хозяина
Настройка вторичной зоны
Проверка текущего состояния синхронизации
Тестирование синхронизации пользователя, сегмента и объекта между мастером и подчинёнными сайтами
Как это сделать...
Глава 6 {CC2e-6}. Работа с файловой системой Ceph
Введение
Понимание файловой системы Ceph и MDS
Развёртывание MDS Ceph
Как это сделать...
Доступ к CephFS через драйвер ядра
Как это сделать...
Доступ к CephFS через клиента FUSE
Как это сделать...
Экспорт файловой системы Ceph в качестве NFS
Как это сделать...
CephFS вклинивающаяся замена HDFS
Глава 7 {CC2e-8}. Работа в кластере Ceph и управление им
Введение
Понимание управления службами Ceph
Координация файла настроек кластера
Как это сделать...
Добавление узлов монитора в файл настроек Ceph
Добавление узлов MDS в файл настроек Ceph
Добавление узлов OSD в файл настроек Ceph
Выполнение Ceph с применением systemd
Как это сделать...
Запуск и останов демонов
Опрос элементов systemd в узле
Запуск и останов всех демонов по типу
Запуск и останов определённого демона
Сопоставление вертикального и горизонтального масштабирования
Вертикальное масштабирование вашего кластера Ceph
Горизонтальное масштабирование вашего кластера Ceph
Как это сделать...
Добавление OSD Ceph.
Добавление MON Ceph
Кроме этого...
Уменьшение размера вашего кластера Ceph
Как это сделать...
Удаление OSD Ceph.
Удаление MON Ceph
Замена отказавшего диска в вашем кластере Ceph
Как это сделать...
Обновление вашего кластера Ceph
Как это сделать...
Сопровождение вашего кластера Ceph
Как это сделать...
Как это работает...
Дросселирование заполнения и восстановления
Глава 8 {CC2e-9}. Под капотом Ceph
Введение
Масштабируемость и высокая доступность Ceph
Понимание механизма CRUSH
Карта CRUSH изнутри
Как это сделать...
Как это работает...
Регулировки CRUSH
Развитие регулировок CRUSH
Argonaut - наследование
Firefly - CRUSH_TUNABLES3
Hammer - CRUSH_V4
Jewel - CRUSH_TUNABLES5
Версии Ceph и ядра, которые поддерживают данные регулировки
Предостережения при неоптимальности регулировок
Несколько важных моментов
Карта кластера Ceph
Мониторы высокой доступности
Аутентификация и авторизация Ceph
Аутентификация Ceph
Авторизация Ceph
Как это сделать...
Путь ввода/ вывода от клиента Ceph к кластеру Ceph
Группы размещения Ceph
Как это сделать...
Состояние групп размещения
Создание пулов Ceph на специфических OSD
Как это сделать...
Глава 9 {CC2e-11}. Менеджер виртуального хранения Ceph
Введение
Понимание архитектуры VSM
Контроллер VSM
Агент VSM
Сборка среды VSM
Как это сделать...
Подготовка к VSM
Как это сделать...
Установка VSM
Как это сделать...
Создание кластера Ceph с применением VSM
Как это сделать...
Исследование инструментальной панели VSM
Обновление кластера Ceph с применением VSM
Дорожная карта VSM
Ресурсы VSM
Глава 10 {CC2e-12}. Ещё о Ceph
Введение
Базовый уровень производительности дисков
Производительность записи отдельного диска
Как это сделать...
Производительность записи множества дисков
Как это сделать...
Производительность чтения отдельного диска
Как это сделать...
Производительность чтения множества дисков
Как это сделать...
Результаты
Базовый уровень производительности сетевой среды
Как это сделать...
Смотрите также...
Показатели Ceph RADOS
Как это сделать...
Как это работает...
RADOS load-gen
Как это сделать...
Как это работает...
Кроме этого...
Эталонное тестирование блочного устройства Ceph
Как это сделать...
Как это работает...
Смотрите также...
Эталонное тестирование Ceph RBD с применением FIO
Как это сделать...
Сокет администратора Ceph
Как это сделать...
Применение команды ceph tell
Как это сделать...
Ceph REST API
Как это сделать...
Профилирование памяти Ceph
Как это сделать...
Инструментарий ceph-objectstore
Как это сделать...
Как это работает...
Применение ceph-medic
Как это сделать...
Как это работает...
Смотрите также...
Развёртывание экспериментального BlueStore Ceph
Как это сделать...
Смотрите также...
Глава 11 {MC-2}. Развёртывание Ceph
Подготовка вашего окружения при помощи Vagrant и VirtualBox
Требования системы
Получение и установка Virtualbox
Установка Vagrant
Инструмент ceph-deploy
Координация
Ansible
Установка Ansible
Создание вашего файла учёта ресурсов
Переменные
Тестирование
Очень простой план
Добавление модулей Ansible Ceph
Развёртывание проверочного кластера при помощи Ansible
Изменение и настройка управления
Выводы
Глава 12 {MC-3}. BlueStore
Что такое BlueStore?
Зачем оно?
Требования Ceph
Ограничения файлового хранения
Почему BlueStore является решением?
Как работает BlueStore
RocksDB
Отложенная запись
BlueFS
Как применять BlueStore
Обновление OSD в вашем кластере
Выводы
Глава 13 {MC-4}. Удаляющее кодирование для лучшей эффективности хранения
Что такое удаляющее кодирование?
K+M
Как работает удаляющее кодирование в Ceph?
Алгоритмы и профили
Jerasure
ISA
LRC
SHEC
Где я могу применять удаляющее кодирование?
Создание пула удаляющего кодирования
Запись поверх пулов удалённого кодирования при помощи Kraken
Демонстрация
Поиск неисправностей для ошибки 2147483647
Воспроизводство данной проблемы
Выводы
Глава 14 {MC-5}. Разработка при помощи librados
Что такое librados?
Как применять librados?
Пример приложения librados
Пример приложения librados с атомарными операциями
Пример приложения librados, которое использует наблюдателей и уведомителей
Выводы
Глава 15 {MC-6}. Распределённые вычисления при помощи классов RADOS Ceph
Примеры приложений и преимущества использования классов RADOS
Написание примера класса RADOS в Lua
Написание класса RADOS, который эмулирует распределённые вычисления
Подготовка к построению среды
Класс RADOS
Клиентские приложения librados
Вычисление MD5 в самом клиенте
Вычисление MD5 в OSD через класс RADOS
Проверка
Возражения против класса RADOS
Выводы
Глава 16 {MC-8}. Множество уровней в Ceph
Сопоставление множества уровней и кэширования
Как работает многоуровневость Ceph
Что из себя представляет фильтр bloom
Режимы многоуровневости
Отложенная запись
Упреждение
Упреждающее чтение
Посредничество
Посредническое чтение
Варианты применения
Создание уровней в Ceph
Тонкая настройка уровней
Сброс и вытеснение
Представления
Дросселирование представлений
Наблюдаемые параметры
Многоуровневость с пулами удаляющего кодирования
Альтернативные механизмы кэширования
Выводы
Глава 17 {MC-10}. Поиск неисправностей
Восстановление несогласованных объектов
Заполненные OSD
Ведение журналов OSD
Малая производительность
Причины
Возросшая рабочая нагрузка клиентов
Останов OSD
Восстановление и наполнение
Очистка
Подрезка снимков
Проблемы с оборудованием или драйверами
Наблюдение
iostat
htop
atop
Диагностика
Очень низкая производительность или отсутствие ввода/ вывода
Биения OSD
Кадры Jumbo
Начинающие отказывать диски
Медленные OSD
Расследование PG в состоянии down
Большие базы данных монитора
Выводы
Глава 18 {MC-11}. Восстановление после сбоев
Что из себя представляет катастрофа?
Как избежать потери данных
Что может повлечь вывод из строя или утрату данных?
Зеркалирование RBD
Журнал
Демон rbd-mirror
Настройка зеркалирования RBD
Отработка восстановления RBD
Восстановление RBD
Утраченные объекты и неактивные PG
Восстановление при полном отказе монитора
Применение инструмента хранения объекта Ceph
Внесение утверждений
Пример утверждения
Выводы
Глава 19 {LC2e-6}. Работа и сопровождение
Топология
Обзор с 40 000 футов
Ещё глубже
Дамп OSD
Список OSD
Поиск OSD
Дамп CRUSH
Пулы
Мониторы
CephFS
Настройка
Именование и настройка кластера
Файл настройки кластера
Сокеты Администрирования
Инъекция
Управление настройкой
Выскребания
Журналы
Протоколы MON
Протоколы OSD
Уровни отладки
Общие задачи
Установка
Ceph-deploy
Флаги
Управление службой
Systemd: волна (цунами?) будущего
Upstart
sysvinit
Отказы компонентов
Расширение
Балансировка
Обновления
Работа с удалёнными руками
Выводы
Глава 20 {LC2e-7}. Мониторинг Ceph
Мониторинг кластеров Ceph
Жизнеспособность кластера Ceph
Отслеживание событий кластера
Загруженность вашего кластера
Расхождение и заполнение OSD
Состояние кластера
Аутентификация кластера
Мониторинг Ceph MON
Состояние MON
Состояние кворума MON
Мониторинг Ceph OSD
Просмотр дерева OSD
Статистика OSD
Карта CRUSH OSD
Мониторинг групп размещения Ceph
Состояния PG
Мониторинг MDS Ceph
Инструментальные панели и средства с открытым исходным кодом
Kraken PG
Ceph-dash
Decapod
Rook
Calamari
Ceph-mgr
Prometheus и Grafana
Выводы
Глава 21 {LC2e-11}. Настройка производительности и надёжности
Обзор производительности Ceph
Настройки ядра
pid_max
kernel.threads-max, vm.max_map_count
Установки файловой системы XFS
Установки виртуальной памяти
Сетевые настройки
Кадры Jumbo
TCP и ядро сетевой среды
iptables и nf_conntrack
Установки Ceph
max_open_files
Восстановление
Настройки OSD и FileStore
Установки MON
Клиентские настройки
Эталонное тестирование
Эталонный тест RADOS
CBT
FIO
Заполнение тома, затем последовательные записи 1M на протяжении 96 часов без проверки чтением
Заполнение тома, с последующей записью небольших блоков на протяжении 96 часов без проверки чтением
Заполнение тома и случайные 4k записи на протяжении 96 с возможной проверкой чтением
Выводы
Указатель

 Предисловие

Данный Путь обучения {Прим. пер.: Learning Path - новая серия книг издательства Packt Publishing} ознакомит вас целиком с основами Ceph для более глубокого понимания его расширенных возможностей. Вы приобретёте навыки планирования, развёртывания и управления кластером Ceph. После некоторого знакомства с архитектурой Ceph и её центральными проектами вы сможете настроить кластер Ceph и обучитесь отслеживать его состояние, улучшать производительность и устранять любые проблемы.

Следуя за пошаговым подходом данного Пути обучения вы изучите как Ceph интегрируется с OpenStack, Glance, Manila, Swift и Cinder. При помощи знаний федеративной архитектуры и CephFS вы примените Calamari и VSM для отслеживания самой среды Ceph. В последующих главах вы изучите основные ключевые области Ceph, включая BlueStore, удаляющее кодирование и многоуровневое кэширование. Более конкретно, вы узнаете что они способны сделать для вашей системы хранения. В заключительных главах вы будете разрабатывать приложения, которые применяют Librados и распределённые вычисления с классами совместно используемых объектов и рассмотрите как можно оптимизировать Ceph и его инфраструктуру сопровождения. К концу данного учебного курса вы получите практические знания по работе с Ceph в промышленной среде.

{Прим. пер.:

Вышедшая в январе 2015 в издательстве Packt Publishing первая - совсем первая! - полная книга Карана Сингха Изучаем Ceph - далее ссылаемся на неё как LC (Learning Ceph) - явилась очень своевременным и полезным руководством и её перевод был достаточно интересны.

Эту книгу прекрасно добавила в феврале 2016 следующая книга того же автора в этом же издательстве Книга рецептов Ceph - далее ссылаемся на неё как СC (Ceph Cookbook).

Позднее большое внимание было уделено вопросам Ceph в выпущенной Packt Publishing в мае 2016 книге Васима Ахмеда, Proxmox. Полное руководство. 2е изд. - далее ссылаемся на неё как MP2e (Mastering Proxmox, 2ed).

Вслед за ними в этом же издательстве в мае 2017 увидела свет книга Ника Фиска Полное руководство Ceph - далее ссылаемся на неё как MC (Mastering Ceph). Эта книга явила собой новую струю и привнесла много новой информации, в частности достаточно насыщенное описание BlueStore и распределённые вычисления на основе Librados. Также полезным оказалось руководство по применению Ansible при развёртывании Ceph. Её перевод также был достаточно увлекателен.

Следующая книга издательства, вышедшее в октябре 2017 второе издание Карана Сингха в соавторстве с Энтони Д`Атри, Вайбхав Бхембре, Изучаем Ceph, 2е изд. - далее ссылаемся на неё как LC2e (Learning Ceph, 2ed), показалась нам настолько повторяющей своё первое издание и тем самым не возбуждающей интереса при переводе, что на перевод вышедшей в ноябре 2017 второго издания Книга рецептов Ceph, 2е изд. Викхайята Умрао, Мишеля Хаккет, Карана Сингха - далее ссылаемся на неё как СC2e (Ceph Cookbook, 2ed) - мы просто забили!

Представляемая сейчас книга, по беглому ознакомлению с ней, является почти полной перепечаткой избранных глав CC2e, MC и LC2e. Те разделы, которые мы заметили как отличающиеся от соответствующих разделов в указанных первоисточниках, в панели навигации выделены красным. Поэтому мы пока ограничимся ссылками на соответствующие главы этих книг. Поскольку перевод СC2e мы зажали, постараемся дать ссылки на аналогичные материалы в CC и LC2e. Если же вы найдёте зачем следует перевести ту или иную главу из данной книги, подскажите нам, пожалуйста! }

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

Если вы разработчик, системный администратор, профессионал в области систем хранения или инженер облачных решений, который желает разобраться с тем как оснастить некий кластер Ceph, данный Путь изучения идеально вам подойдёт. Он поможет вам изучить те способы, при помощи которых функционал Ceph поможет вам решить ваши проблемы хранения данных. Предпочтительным будет наличие базовых знаний по системам хранения и GNU/Linux.

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

Глава 1 {CC2e~1}. Ceph: введение и за его пределами охватывает некое введение в Ceph, постепенно подводя к RAID и его проблемам, а также рассматривает обзор архитектуры Ceph. Наконец, мы также проходим вопросы установки и настройки Ceph. {Прим. пер.: глава почти полностью дублирует CC2e~1, введу отсутствия её перевода у нас отсылаем к CC-1, а также LC2e-1, LC2e-2, LC2e-3 }

Глава 2 {CC2e~2}. Работа с блочными устройствами Ceph, покрывает введение в Блочные устройства Ceph и предоставление блочных устройств Ceph. Мы также рассмотрим моментальные снимки и клоны RBD, а также реализацию решений восстановления после сбоев с зеркалированием RBD. {Прим. пер.: глава на первый взгляд полностью дублирует CC2e~2, так как у нас нет её перевода, отсылаем к СC-2, а также LC2e-9-2 }

Глава 3 {CC2e~3}. Работа с Ceph и OpenStack, охватывает настройку клиентов Openstack для применения ими Ceph, а также варианты хранения для Openstack с применением cinder, glance и nova. {Прим. пер.: глава на первый взгляд полностью дублирует CC2e~3, так как у нас нет её перевода, отсылаем к LC2e-10 }

Глава 4 {CC2e~4}. Работа с хранилищем объектов Ceph, занята глубоким погружением в хранилище объектов Ceph, в том числе установку и настройку RGW, доступ к S3 и OpenStack Swift . Наконец, мы установим RGW при помощи подключаемого модуля Hadoop S3A. {Прим. пер.: глава на первый взгляд полностью дублирует CC2e~4, так как у нас нет её перевода, отсылаем к СC-3, а также LC2e-9-4 }

Глава 5 {CC2e~5}. Работа с объектным хранилищем Ceph множества сайтов v2, поможет вам проникнуть глубже в новый Multi-site v2 при настройке двух кластеров для зеркалирования объектов между ними и некого решения восстановления объекта после сбоя. {Прим. пер.: глава на первый взгляд полностью дублирует CC2e~5, так как у нас нет её перевода, отсылаем к MC-11, СC-3, а также LC2e-9-4, хотя, возможно, стоит перевести эту главу.}

Глава 6 {CC2e~6}. Работа с файловой системой Ceph, предоставляет некое введение в CephFS, развёртывание MDS и CephFS посредством kerenel, FUSE и NFS-Ganesha. {Прим. пер.: глава на первый взгляд полностью дублирует CC2e~6, так как у нас нет её перевода, отсылаем к СC-3, а также LC2e-9-3 }

Глава 7 {CC2e~8}. Работа в кластере Ceph и управление им рассматривает управление службой Ceph при помощи systemd, а также вертикальное увеличение и уменьшение масштаба кластера Ceph. Эта глава также содержит инструкции по замене отказавшего диска и обновлению Ceph. {Прим. пер.: глава на первый взгляд полностью дублирует CC2e~8, так как у нас нет её перевода, отсылаем к СC-5, СC-6, а также LC2e-6 и MC-11. }

Глава 8 {CC2e~9}. Под капотом Ceph изучает карту CRUSH Ceph, внутреннее понимание установки соответствия CRUSH, а также настройки CRUSH с последующей аутентификацией и авторизацией Ceph. Эта глава также охватывает динамическое управление кластером и понимание PG Ceph. Наконец, мы создаём те особенности, которые требуют специальных аппаратных средств. {Прим. пер.: глава на первый взгляд полностью дублирует CC2e~9, так как у нас нет её перевода, отсылаем к СC-7, а также LC2e-8, LC2e-5 и MC-10. }

Глава 9 {CC2e~11}. Менеджер виртуального хранения Ceph обсуждает VSM (Virtual Storage Manager), охватывая введение в него и его архитектуру. Мы также проходим развёртывание VSM, а далее само создание кластера Ceph с применением VSM для управления этим. {Прим. пер.: глава на первый взгляд полностью дублирует CC2e~11, так как у нас нет её перевода, отсылаем к СC-9. }

Глава 10 {CC2e~12}. Ещё о Ceph охватывает эталонное тестирование Ceph, поиск неисправностей Ceph при помощи сокета администратора, API и инструментарий ceph-objectstore. Данная глава также рассматривает развёртывание Ceph при помощи Ansible и профилирование памяти Ceph. Более того, она покрывает проверку жизнеспособности вашего кластера Ceph при помощи Ceph Medic и новую экспериментальную основу хранения BlueStore Ceph. {Прим. пер.: глава на первый взгляд полностью дублирует CC2e~12, так как у нас нет её перевода, отсылаем к СC-10, LC2e-11, а также MC-9 и MC-10. }

Глава 11 {MC-2}. Развёртывание Ceph это серьёзная пошаговая инструкция по настройке кластера Ceph. В этой главе описывается инструментарий ceph-deploy для проверки и прохода с покрытием Ansible. Также содержится раздел по управлению изменениями, в котором поясняется насколько это существенно для стабильности больших кластеров. {Прим. пер.: глава на первый взгляд полностью дублирует MC-2. }

Глава 12 {MC-3}. BlueStore объясняет как Ceph должен иметь возможности предоставления атомарных операций для своих данных и метаданных и как было построено файловое хранилище для предоставления таких гарантий поверх стандартных файловых систем. Мы также обсуждаем имеющиеся при таком подходе проблемы. Затем эта глава делает введение в BlueStore и объясняет как он работает и те проблемы, которые он разрешает. Это также содержит его компоненты и то, как они взаимодействуют с различными типами устройств хранения. У нас также имеется некий обхор хранилищ ключ- значение, включая RocksDB, которое применяется в BlueStore. Будут обсуждены некоторые из имеющихся настроек BlueStore и то, как они взаимодействуют с различными аппаратными конфигурациями. {Прим. пер.: глава на первый взгляд полностью дублирует MC-3. }

Глава 13 {MC-4}. Удаляющее кодирование для лучшей эффективности хранения обсуждает как работает удаляющее кодирование и как оно реализовано в Ceph, в том числе пояснения параметров пула RADOS профилей удаляющего кодирования. Ссылки на изменения в редакции Kraken высвечивают возможность перезаписи добавлением в коней в пулах с удаляющим кодированием. Также будут даны пояснения по вопросам производительности. Они будут содержать ссылки на BlueStore, поскольку оно требуется для достижения достаточной производительности. Наконец, у нас имеется пошаговые инструкции по реальной настройке удаляющего кодирования в некотором пуле, которые можно применять в качестве механического справочника для системных администраторов. {Прим. пер.: глава на первый взгляд полностью дублирует MC-4. }

Глава 14 {MC-5}. Разработка при помощи librados объясняет как применяется Librados для построения приложений, которые могут напрямую взаимодействовать с неким кластером Ceph. Она затем переходит к некоторым различным примерам использования Librados в различных языках программирования для того чтобы снабдить вас основным пониманием того как это можно применять, причём включая атомарные транзакции. {Прим. пер.: глава на первый взгляд полностью дублирует MC-5. }

Глава 15 {MC-6}. Распределённые вычисления при помощи классов RADOS Ceph объясняет основные преимущества перемещения обработки непосредственно в OSD для действенного осуществления распределённых вычислений. Затем она охватывает вопросы того как начать работу с классами RADOS путём построения образцов на Lua. Затем она обсуждает как встроить ваш собственный класс C++ RADOS имеющееся дерево исходного кода Ceph и провести эталонное тестирование производительности обработки в своём клиенте противопоставляя её вычислениям в OSD. {Прим. пер.: глава на первый взгляд полностью дублирует MC-6. }

Глава 16 {MC-8}. Множество уровней в Ceph поясняет как работает в Ceph множество уровней RADOS, где его следует применять и его ловушки. Она предпринимает пошаговую настройку множества уровней кластера Ceph и наконец рассматривает варианты тоной настройки для извлечения наилучшей производительности для множества уровней.Некий пример использования Graphite продемонстрирует ценность такой способности манипуляции перехватываемыми данными для предоставления выразительного вывода в виде графиков. {Прим. пер.: глава на первый взгляд полностью дублирует MC-8. }

Глава 17 {MC-10}. Поиск неисправностей поясняет как несмотря на значительную автономность Ceph в заботе о самой себе и восстановлении после сбоев, в некоторых случаях требуется вмешательство персонала. Мы взглянем на распространённые ошибки и сценарии отказов, а также на то как возвращать обратно Ceph в полностью жизнеспособное состояние, отыскивая в ней неисправности. {Прим. пер.: глава на первый взгляд полностью дублирует MC-10. }

Глава 18 {MC-11}. Восстановление после сбоев описывает такие ситуации, при которых Ceph пребывает в том состоянии, когда присутствует полная утрата обслуживания или возникла утрата данных. Для восстановления доступа к вашему кластеру и, будем надеяться, восстановления данных требуются менее известные технические приёмы. Эта глава вложит вам в руки такие знания чтобы попытаться провести восстановление в подобных ситуациях. {Прим. пер.: глава на первый взгляд полностью дублирует MC-11. }

Глава 19 {LC2e-6}. Работа и сопровождение проводит глубокую и широкую инвентаризацию повседневных действий. Мы рассматриваем управление топологиями, службами и установками настроек Ceph, помимо её сопровождения и отладки. {Прим. пер.: глава на первый взгляд полностью дублирует LC2e-6. }

Глава 20 {LC2e-7}. Мониторинг Ceph выразительная коллекция команд, практических приёмов и программного обеспечения инструментальной панели в помощь удержанию на глазу жизнеспособности кластеров Ceph. {Прим. пер.: глава на первый взгляд полностью дублирует LC2e-7. }

Глава 21 {LC2e-11}. Настройка производительности и надёжности предоставляет некую коллекцию установок Ceph, сетевых сред, файловых систем и лежащих в основе операционных систем для оптимизации производительности и стабильности кластера. Также изучается эталонное тестирование производительности кластера. {Прим. пер.: глава на первый взгляд полностью дублирует LC2e-11. }

 Как получить максимальную отдачу от этой книги

Данная книга требует чтобы у вас были достаточные ресурсы для запуска среды лаборатории Ceph целиком. Тот минимум оборудования или виртуальной машины, который требуется таков:

  • ЦПУ: два ядра

  • Оперативная памчять: 8 ГБ ОЗУ

  • Дисковое пространство: 40 ГБ

Для следования всем инструкциям в главах требуются различные компоненты программного обеспечения:

 Загрузка примеров кода этой книги

Вы можете выгрузить все файлы примеров кода для данной книги из своей учётной записи www.packtpub.com. Если вы приобрели эту книгу в ином месте, будьте добры, пройдите в www.packtpub.com/support и зарегистрируйтесь чтобы иметь эти файлы высланные непосредственно вам по электронной почте.

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

  1. Зайдите зарегистрированным пользователем на www.packtpub.com.

  2. Выберите закладку SUPPORT.

  3. Кликните по Code Downloads & Errata.

  4. Введите название нужной вам книги в блоке Search и следуйте появляющимся на экране инструкциям.

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

  • WinRAR/7-Zip для Windows.

  • Zipeg/iZip/UnRarX для Mac.

  • 7-Zip/PeaZip для Linux.

Пакет кода также размещён на GitHub по адресу https://github.com/PacktPublishing/Ceph-Designing-and-Implementing-Scalable-Storage-Systems. Также у нас имеются и другие пакеты кода из нашего богатого каталога книг и видео, доступные по адресу https://github.com/PacktPublishing/. Следите за изменениями!

 Соглашения

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

CodeInText указывает кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов, расширения файлов, имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter. Вот некий пример: "Проверьте файл installrc.".

Блок кода устанавливается следующим образом:


AGENT_ADDRESS_LIST="192.168.123.101 192.168.123.102 192.168.123.103" CONTROLLER_ADDRESS="192.168.123.100"
 	   

Любой ввод командной строки или её вывод записываются следующим образом:


vagrant plugin install vagrant-hostmanager
 	   

Жирно: указывает новый термин, важное слово которые вы видите на экране, например, в меню или блоках диалогов появляются именно так. Вот пример: "Это выполнило проверку данных для OSD 1 и 2, что означает, что он не обнаружил ничего требуемого. Хотелось бы попробовать OSD 0, но это невозможно, поскольку этот OSD отключён, тем самым сообщение состоит в том, что starting or marking this osd lost may let us proceed appeared (запуск или пометка данного osd утраченным может позволить нам продолжить работу).".

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

Предостережения или важные замечания появляются в блоках подобных этому.

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

Советы и ловкие приёмы возникают таким образом.

 Будьте на связи

Обращения наших читателей всегда приветствуются.

Обычная обратная связь: Пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения. Если у вас имеются вопросы относительно любых сторон данной книги, обратитесь, пожалуйста, по адресу questions@packtpub.com.

Ошибки: Хотя мы и предприняли все меры чтобы гарантировать точность содержимого, ошибки могут иметь место. Если вы обнаружили ошибку в данной книге, мы будем вам признательны если вы сообщите нам о ней. Посетите, пожалуйста, www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки.

Пиратство: Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}.

Если вы желаете стать нашим автором: Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу authors.packtpub.com.

 Отзывы

Оставляйте, пожалуйста, отзывы. Если вы прочли и воспользовались данной книгой, почему бы вам не оставить отзыв на том сайте, на котором вы её приобрели? Потенциальные читатели затем смогут увидеть и применить ваше беспристрастное суждение чтобы принять решение о приобретении, мы в Packt сможем понять что вы думаете о нашем продукте, а наши авторы увидят обратную связь относительно своей книги. Мы заранее благодарим вас!

Для получения дополнительной информации о Packt посетите, пожалуйста packtpub.com.