Изучаем Ceph, 2е издание

Энтони Д'Атри

Вайбхав Бхембре

Каран Сингх

 

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

Второе издание на английском языке: Октябрь 2017

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

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

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

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

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

Livery Place

35 Livery Street

Birmingham B3 2PB, UK

ISBN-13 978-1-78712-791-3

www.packtpub.com

2017-10-17

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

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

 Об авторах

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

Энтони хотел бы выразить свою признательность всем и каждому, чья техническая и профессиональная поддержка внесла свой вклад в его успех с Ceph, включая Cisco, Digital Ocean, Микаэль Кидд, Тапер Коул, Джеймс Донахью, Луис Ватта, Джейд Лестер, Нарендра Трайведи, Вейгуо Сан, Ричард "Гибкий" Миллер, Деймон Хсу- Ханг, Сатиш Сангапу, Швета Сараф, Свати Гайквад, Ии Чен, РайанRyan Роемис, Себастьян Соболевский, Стен Айзенберг, Себастьен Хан, Адам Вольф Гордон, Вайбхав Бхембре, Вильям Леман и Дену ван дер Стеру. Наивысшая благодарность его супруге Сюзанне за ее поддержку, терпение и поддержку его долгих часов.

Вайбхав Бхембре является системным программистом, работающим в настоящее время в качестве Технического руководителя для облачных продуктов хранения DigitalOcean. До своего прихода в DigitalOcean Вайбхав носил много шляп руководителя команд инженеров серверов и специалистов по надёжности в Sailthru Inc. Благодаря тому, что для проектирования платформ вычисления и хранения масштаба облака масштабируемая динамически созаваемая компания своевременно отправляла доставку более чем десятку миллионов пользователей, Вайбхав имел годы опыта в написании программного обеспечения на всех уровнях данного стека.

Вайбхав имеет степень бакалавра в области вычислительной техники в Мумбайском университете и степень магистра Вычислителной техники в Университете штата Нью-Йорк в Буффало. В свое время в академических кругах Вайбхав совместно опубликовал новый алгоритм графа, который оптимально вычислял близость и взаимосвязи в пошаговой обновляемой социальной сети. Ему также посчастливилось совершить изменения в высокодоступной распределенной файловой системе, построенной на основе структуры управления данными iRODs в качестве своего главного проекта. Эта система, которая активно использовалась в более чем в 10 учебных заведениях в реальном времени, была его вторжением в крупномасштабное распределенное хранилище, и его переход к использованию Ceph с точки зрения практики был естественным.

Вайбхав навсегда обязан своим родителям Дилеп и Вандане Бхембре за то, что он посвятил неисчислимое количество времени и усилий тому, чтобы стать тем, кем он является сегодня. Он не может не поблагодарить свою красавицу жену, Харшиту, за ее постоянную поддержку, поощрение и, самое главное, ее невероятное сердце. Вайбхав искренне благодарит всех людей, которые прямо или косвенно повлияли на его успешную карьеру, список, включающий, помимо прочего, профессора Ракеша Наги, профессора Мурата Демирбаса, Сушанта Хопкара, Яна Уайта, Моисея Урецкого, Юонаса Бергиуса и Энтони Д'Атри. И, наконец, Вайбхав глубоко благодарен сообществу Ceph за разработку и создание замечательного программного обеспечения и формирование вокруг него разнообразного и открытого сообщества.

Каран Сингх является главным архитектором систем хранения, работающим в Red Hat и проживающим со своей очаровательной женой Моникой в Финляндии. В своей настоящей роли он выполняет инженерные решения Ceph совместно с партнёрами, потребителями и изучает новые пути для программно определяемых хранилищ.

Каран посвящает часть своего времени изучению современных технологий и получает удовольствие от тех вызовов, которые они предъявляют. Он также является автором первой редакции Изучаем Ceph и Книги рецептов Ceph, Packt Publishing. Вы можете обратиться к нему через Twitter (@karansingh010).

Я бы хотел поблагодарить свою супругу Монику за то что она является моей лучшей половиной. Я также хотел бы выразить признательность Red Hat за предоставленную мне возможность работать с некоторой находящейся на переднем краю технологией и вариантами её применения. Наконец, моя особая благодарность Викхайату и Микаэлю {Прим. пер.: так в тексте, видимо, относится к соавторам промежуточной версии редакции} за то, что они приложили громадные усилия в продолжении успеха "Изучаем Ceph".

 Рецензент

Кристиан Каухаус установил свой самый первый кластер Ceph с помощью редакции Argonaut в далёком 2012. Он подключился к работе системного администратора, так как помогал в установке своего школьного компьютерного класса когда- то в девяностые. После изучения Вычислительной техники в Университете Йены он провёл несколько лет в группе Высокопроизводительных Вычислений Университета Йены. В настоящее время он работает в качестве системного инженера в Flying Circus Internet Operations GmbH, небольшой компании, предоставляющей управляемый хостинг и службы, связанные с Центром обработки данных в Галле (Саксония- Анхальт), Германия.

Помимо этого Кристиан любит программировать на Python и Rust, а также является активным участником сообщества NixOS. Он любит играть на фортепьяно в джазе в своё свободное время. В настоящее время он проживает в Йене, Германия.

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

 www.PacktPub.com

 Содержание

Предисловие
Что охватывает эта книга
Что вам нужно для этой книги
Для кого эта книга
Соглашения
Обратная связь с читателями
Поддержка пользователей
Загрузка кодов примеров
Загрузка цветных изображений данной книги
Опечатки
Незаконное тиражирование
Вопросы
Глава 1. Введение в систему хранения Ceph
История и эволюция Ceph
Редакции Ceph
Что нового со времени первой редакции
Будущее хранения
Ceph как решение облачного хранения
Ceph является программно определяемым
Ceph является единообразным решением хранения
Архитектура следующего поколения
RAID - конец эпохи
Блочное хранилище Ceph
Ceph в сопоставлении с другими решениями хранения
GPFS
iRODS
HDFS
Lustre
Gluster
Ceph
Выводы
Глава 2. Компоненты и службы Ceph
Введение
Центральные компоненты
RADOS
MON
OSD
Диспетчер Ceph
RGW
Хост администратора
MDS
Сообщество
Основные службы
RBD
RGW
CephFS
Librados
Выводы
Глава 3. Выбор оборудования и сетевой среды
Введение
Критерии выбора оборудования
Корпоративные политики закупки
Требования энергоснабжения- Амперы, Вольты и подводы
Совместимость с инфраструктурой управления
Совместимость с физической инфраструктурой
Варианты конфигураций для покупки за один раз
Оперативная память
Ёмкость и скорость ОЗУ
Устройства хранения
Ёмкость устройств хранения
Конструктивные характеристики устройств хранения
Долговечность и скорость устройств хранения
Типы устройств хранения
Число отсеков устройств хранения в шасси
Контроллеры
Тип HBA/ контроллера хранения
Сетевые опции
Сопоставление управления через сеть/ последовательный порт/ KVM
Слоты адаптеров
Процессоры
Число разъёмов ЦПУ
Модель ЦПУ
Новые технологии
Выводы
Глава 4. Планирование вашего развёртывания
Схематические решения
Конвергенция: мудрость или хайп?
Планирование серверных компонентов Ceph
Стоечная стратегия
Именование серверов
Архитектурные решения
Решения пула
Репликации
Удаляющее кодирование
Вычисление Групп размещения
Вопросы OSD
Что в основе: FileStore или BlueStore
Стратегия устройств OSD
Журналы
Файловые системы
Шифрование
Решения уровня операционной системы
Ядро и операционная система
Пакеты Ceph
Развёртывания операционной системы
Синхронизация времени
Пакеты
Решения сетевой среды
Выводы
Глава 5. Развёртывание виртуального кластера песочницы
Установка начальных условий среды нашей Песочницы
Самостоятельная загрузка нашего кластера Ceph
Развёртывание нашего кластера Ceph
Масштабирование нашего кластера Ceph
Выводы
Глава 6. Работа и сопровождение
Топология
Обзор с 40 000 футов
Ещё глубже
Дамп OSD
Список OSD
Поиск OSD
Дамп CRUSH
Пулы
Мониторы
CephFS
Настройка
Именование и настройка кластера
Файл настройки кластера
Сокеты Администрирования
Инъекция
Управление настройкой
Выскребания
Журналы
Протоколы MON
Протоколы OSD
Уровни отладки
Общие задачи
Установка
Ceph-deploy
Флаги
Управление службой
Systemd: волна (цунами?) будущего
Upstart
sysvinit
Отказы компонентов
Расширение
Балансировка
Обновления
Работа с удалёнными руками
Выводы
Глава 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
Выводы
Глава 8. Архитектура Ceph: под капотом
Объекты
Доступ к объектам
Группы размещения (PG)
Установки PG в пулах
Одноранговые сети PG
Установки PG Up и Acting
Состояния PG
CRUSH
Иерархия CRUSH
Просмотр CRUSH
Заполнение, восстановление и повторная балансировка
Персонализация CRUSH
Пулы Ceph
Работа пулов
Создание и перечисление пулов
Потоки данных Ceph
Удаляющее кодирование
Выводы
Глава 9. Снабжение хранением Ceph
Службы Ceph
Блочные устройства Ceph (RBD)
Создание и предоставление RBD
Изменение размеров RBD
Моментальные снимки RBD
Клонирование RBD
CephFS
CephFS через драйвер ядра
CephFS с помощью драйвера FUSE
Объектное хранилище Ceph (RGW)
Настройки для службы RGW
Выполнение операций с объектами S3 с помощью s3cmd
Включение API Swift
Исполнение операций с объектами при помощи API Swift
Выводы
Глава 10. Интеграция Ceph с OpenStack
Введение в OpenStack
Nova
Glance
Cinder
Swift
Ganesha / Manila
Horizon
Keystone
Наилучший выбор для OpenStack
Интеграция Ceph и OpenStack
Представление Гостевой ОС
Развёртывание Virtual OpenStack
Выводы
Глава 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 с возможной проверкой чтением
Выводы
Указатель

 Предисловие

Второе издание "Изучаем Ceph" снабдит вас навыками, которые необходимы вам для планирования, развёртывания и эффективного управления кластерами Ceph. Вы начнёте с некоторого введения в способы применения Ceph и его компоненты, затем перейдёте к рекомендациям по выбору серверов и компонентов. Затем мы обсудим ряд важных решении, которые необходимо предпринять перед развёртыванием ваших серверов и кластеров и пройдём развёртывание вручную полностью рабочего виртуализованного кластера в песочнице. Будет изучен широкий спектр обычных (и не столь обычных) задач управления. После этого следует обсуждение мониторинга для более глубокого погружения во внутреннее устройство работы Ceph, выбор тем связанных с предоставлением хранилищ, а также обзор роли Ceph как некоторого решения хранения Ceph {Прим. пер.: во многом данное обсуждение может быть соотнесено и на другие системы сопровождения облачных решений, такие как Proxmox, VMware ESXi, Citrix XenServer, Huawei FusionSphere и т.п., см. наш портфолио SD DC}. Наши завершающие главы это советы по эталонному тестированию и тонкой настройке для достижения производительности и надёжности.

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

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

Глава 1. Введение в систему хранения Ceph, здесь мы изучаем роль Ceph в качестве хранилища, которое должно развивать и охватывать облачные вычисления. Также обсуждаются циклы выпуска Ceph и история, включая изменения начиная с первой редакции "Изучаем Ceph".

Глава 2. Компоненты и службы Ceph, некий тур по основным составляющим Ceph и реализуемым ими службам. Приводятся примеры вариантов использования каждой службы.

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

Глава 4. Планирование вашего развёртывания является программным сопровождением для Глава 3. Выбор оборудования и сетевой среды. Мы снабжаем читателя руководством развёртывания и предоставления решений как для Ceph, так и для лежащей в основе операционной системы.

Глава 5. Развёртывание виртуального кластера песочницы является некоторой автоматизированным, полностью рабочим развёртыванием в виртуальных машинах. Оно предоставляет возможности вручную поэкспериментировать на протяжении какого- то времени.

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

Глава 7. Мониторинг Ceph впечатляющая коллекция команд, практического опыта и инструментального программного обеспечения чтобы помочь держать под прицелом жизнеспособность кластеров Ceph.

Глава 8. Архитектура Ceph: под капотом глубокое погружение во внутренности работы Ceph на нижнем уровне архитектуры, процессов и потока данных.

Глава 9. Снабжение хранением Ceph здесь мы практикуемся на стороне клиента в предоставлении и управлении каждой из основных служб Ceph.

Глава 10. Интеграция Ceph с OpenStack изучает компоненты платформы облачной инфраструктуры OpenStack и того как она может эксплуатировать Ceph для надёжного и масштабируемого хранения.

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

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

Базовые знания терминологии хранения, серверного оборудования и сетевых сред помогут вам глубже понимать предоставляемую информаций. Обсуждаемое развёртывание в песочнице было опробовано в macOS на определённых версиях программного обеспечения. Всё должно без труда работать в Linux или прочих настольных операционных системах. Хотя работа в таком виртуальном оснащении и желательно, оно не является обязателдьным требованием для получения преимуществ данной книги.

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

Предполагается наличие базовых знаний GNU/Linux, систем хранения и серверных компонентов. Если у вас отсутствуют практические навыки по программно определяемым решениям хранения и Ceph, но вы страстно желаете изучить эти вопросы, эта книга предназначена для вас. Те, кто уже управляет решениями Ceph также найдут пользу в широте овата и глубине предоставляемых данными материалами.

 Соглашения

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

Кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов, расширения файлов, имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter представлены следующим образом: "Создайте некоего нового пользователя для JIRA в этой базе данных и предоставьте права доступа для базы данных jiradb, которую мы только что создали применив следующую команду:..."

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


glance-api.conf:
[glance_store]
 stores = rbd
 default_store = rbd
 rbd_store_pool = images
 rbd_store_user = glance-user
 rbd_store_ceph_conf = /etc/ceph/ceph.conf
 rbd_store_chunk_size = 8
	   

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


instance$ ls /dev/vd*
/dev/vda /dev/vda1 /dev/vdb
instance$ lsblk
       

Новые термины и важные слова отображаются жирным шрифтом.

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

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

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

.

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

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

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

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

Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.

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

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

Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.

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

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

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

  1. Зарегистрируйтесь на нашем вебсайте при помощи своего адреса электронной почты и пароля.

  2. Переместите указатель мыши на закладку SUPPORT в верхней части.

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

  4. Введите название книги в блок Search.

  5. Выберите книгу для которой вы ищете для загрузки файлы исходного кода.

  6. В ниспадающем меню выберите где вы приобрели эту книгу.

  7. Кликните по Code Download.

Вы также можете загрузить файлы кодов кликнув по кнопке Code Files вебстраницы на вебсайте Packt Publishing. Доступ к данной странице может быть получен путём ввода названия книги в блоке Search. Отметим, что вы должны быть зарегистрированы со своеЙ учётной записью Packt.

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

  1. WinRAR / 7-Zip для Windows

  2. Zipeg / iZip / UnRarX для Mac

  3. 7-Zip / PeaZip для Linux

Пакет с кодом для данной книги также размещён на GitHub по адресу https://github.com/PacktPublishing/Learning-Ceph-SecondEdition. У нас также имеются прочие наборы из нашего богатого каталога книг и видео доступные на https://github.com/PacktPublishing/. Следите за ними!

 Загрузка цветных изображений данной книги

Также мы снабжаем вас неким PDF файлом, который имеет цветные изображения применяемых в данной книге снимков экрана/ схем. Эти цветные изображения помогут вам лучше понять все изменения в имеющемся выводе. Вы можете загрузить этот файл с https://www.packtpub.com/sites/default/files/downloads/LearningCephSecondEdition_ColorImages.pdf.

 Опечатки

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

Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.

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

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

Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав.

Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас имеющего ценность содержимого.

 Вопросы

Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.