-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ceph + iscsi #8
base: master
Are you sure you want to change the base?
Ceph + iscsi #8
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
************ | ||
Ceph + iscsi | ||
************ | ||
|
||
Ceph-iscsi | ||
========== | ||
|
||
Первый и основной способ это использование ceph-iscsi. Продукт этот на данный момент зрелый, поддерживается компанией | ||
redhat и, с недавних пор, suse. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. О - орфография. Проставь где нужно большие буквы в названиях компаний. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Принято |
||
|
||
Пакеты можно взять на `официальном репозитории <https://download.ceph.com/ceph-iscsi/>`_. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. RST это клёво, но при печати в PDF ссылки не видно. Поэтому предпочитаю по-старинке (вообще не выделять ссылки спецтегами -- на реадзедокс они сами собой станут ссылками. тоесть:
И да, проебл после точки чтобы к урлу не приобщило. Ну или приедложи другой способ чтобы пофиксить проблему с пдф.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Не печатал никогда такого рода доки, да и кто будет ссылку с распечатки набирать? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ну хз, тут вопрос спорный. тут ещё важно видеть, что это за сайт по ссылке (домен тоесть) .... В общем, не критично для мерджа, но желательно поправить. |
||
Установка тривиальна и хорошо описана в `официальной документации ceph <http://docs.ceph.com/docs/mimic/rbd/iscsi-overview/>`_, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. mimic -> master There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Принято |
||
так и в документации `Red Hat Ceph Storage 3+ <https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/3/html/block_device_guide/using_an_iscsi_gateway>`_. | ||
В документации так же описано как настраивать инициаторы, и этих правил следует придерживаться, | ||
т.к. у текущей реализации `есть свои ограничения <https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/3.0/pdf/release_notes/Red_Hat_Ceph_Storage-3.0-Release_Notes-en-US.pdf>`_. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. может приложим пдфку прямо в эту репу ? полюбому шляпы выпилият. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Приложить можно, идея хорошая. Не выпялит, как мне кажется, до выпуска новой версии rhceph, а там уже и ограничения будут другие. |
||
|
||
Из приятных бонусов этого решения: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. по сравнению с какими? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Хз, по сравнению с классическими хранилками, или классической реализации через LIO. Из чего делаем вывод, что ограничения связаны с tcmu-runner. Но это не очень важно, т.к. в документации по настройке инициаторов вполне четко указано какие режимы поддерживаются (собственно только failover). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. По этому и последующим комментариям... лично мне можно не отвечать :) важно ответить потенциальному читателя, который это будет читать. Например, достаточно написать "Из приятных бонусов по сравнению с реализацией через LIO". может быть подробнее написать где-то про вариант с лио ещё долонительно. Мои вопросы -- это вопросы -- это я спрогнозировал вопросы других читателей. |
||
|
||
* Централизованое управление через утилиту gwcli | ||
* Простой деплой самого приложения | ||
* Интегрированность в ceph (в частности в выводе `ceph -s` можно увидеть `tcmu-runner: 3 daemons active` ) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. цеф с большой буквы, после частности запятая There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Принято |
||
* Поддержка `SCSI-3 PR <http://www.gonzoleeman.net/scsi-3-pgr-tutorial-v1.0>`_, которая может понадобится, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. понадобитЬся ( http://tsya.ru ) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Принято There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. PR или PGR ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Вообще я имел в виду PR, но дока действительно по PGR, а я не обратил сразу внимание. Хотя сейчас читаю доку, и пока не вижу фундаментальных различий, завтра сформулирую более точный ответ. |
||
например, для серверов на базе ОС Windows для кворумных дисков или общих ресурсов для БД или кластеризиции. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ничо не понял, как связано всё это? Очень кратко в одно предложение напиши что это за резервация ? что резервируется? и зачем это нужно. А где оно применяется.... ну твой вариант всеравно ни о чём не говорит. Слишком общо. Короче говоря, читатель доки должен что-то прочитать и понять надо ли ему это. Ненавижу доку в стиле "Если вам надо alqwerzx568 то это включается командой system.alqwerzx568=on" Сидишь такой и думаешь... а оно мне надо? чо это вобще. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Кратко - без луна с поддержкой PR не запустить win cluster и не запустить mssql в кластерном режиме. Но мысль понял, дополню |
||
* Отказоустойчивость из коробки, т.к. вы анонсируете портальную группу, и ваш клиент может переключиться | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Я конечно не в теме, но разве multipath это не оно ? если есть несколько айдресов по которым достижи этот лун, что ещё надо ? тоесть наличие нескольких айскайзи гейтвеев этого же достаточно.. нет? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Да, multipath это оно (хотя я и не вижу причин настраивать iscsi на linux'е, можно же нативно пользоваться rbd), и в доке по настройке инициатора описано как его настроить. В случае с win и vmware, другие настройки. |
||
по failover на другой портал. | ||
|
||
Минусы этого решения: | ||
|
||
* Не будет бонусов в виде отказоустойчивости, если инициатор не умеет с этим работать | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. а какие умеют? какие не умеют ? (конкретные названия) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Linux без multipath'а, например. Или какой нибудь древний centos 5 (возможно). А может какое энтерпрайз оборудование. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ну как-бы да, укажи более подробно про что известно что точно работает как надо и что точно не работает как надо. |
||
* В основе продукта лежит tcmu-runner, который **значительно** медленнее работает чем вариант | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. но чтобы замаппить рбд надо отключить фастдифф например. тут тоже надо? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. В случае с tcmu-runner не нужно маппить рбд, с версии tcmu-runner 1.3 (актуальная 1.4), если мне не изменяет память. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. в доку. мне рассказывать нет смысла. |
||
"замаппить rbd и отдать его как диск", т.к. последний вариант близок по скорости к варианту отдать rbd нативно через librbd, | ||
в то время, как вариант с tcmu-runner'ом медленнее в ~2 раза | ||
|
||
Особенности этого решения: | ||
|
||
Приведу здесь несколько графиков, снятых с помощью fio на кластере среднего пошиба из ВМ. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. фио в виртуалке было запущено? а что в качестве клиента ? фио само по протоколу айскайзи долбилось? или примапплено в блокдевайс было? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Да, fio в виртуалке, мы тестировали производительность разных решений в связке ovirt + ceph, с тех времен графики и остались. Целью исследования было узнать, насколько мы проиграем, при выборе того или иного решения, т.к. с овиртом не получается всё сделать просто. |
||
Диски подключались к ВМ нативно через qemu, через iscsi (в двух вариациях), через nfs | ||
|
||
Профиль | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. лучше в варианте комманд-лайна (так проще использовать имхо) но это не точно. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Принято |
||
ioengine=libaio | ||
direct=1 | ||
buffered=0 | ||
time_based=1 | ||
size=20g | ||
wait_for_previous | ||
filename=/root/tests/bigfile | ||
iodepth=32 | ||
rw=randwrite | ||
bs=4m | ||
|
||
* Разница между tcmu-runner версий 1.3.0 и версии 1.3.X с одним из последних патчей который повышает производительность, | ||
который бэкпортировали себе в продукт RHCEPH компания RedHat | ||
|
||
.. image:: _static/compare-old-new-tcmu-runner-rw_bs64k_d32_bw.-2Dtrend.png | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. на 2 пробела вправо смести чтобы картинка была внутри элемента списка а не на равне. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Принято |
||
|
||
| | ||
|
||
* Разница между различными бэкендами | ||
|
||
.. image:: _static/compare-rw_bs64k_d32_bw.-2Dtrend.png | ||
|
||
| | ||
|
||
Из этих графиков видно что: | ||
|
||
#. TCMU-runner значительно медленее варианта с raw iscsi | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. чиво ? что такое рав-айскайзи ? может рбд имелось в виду ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Мне надо будет расшифровку дать. Raw iscsi в контексте графиков и наших тестов, это замапленный рбд, выкинутый как lun через LIO. Т.е. самый простой и очевидный вариант. |
||
|
||
#. Работа по решению проблем со скоростью ведется, и стоит ожидать что в следующих версиях | ||
скорость будет выше | ||
|
||
|
||
Raw rbd + iscsi | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. а где тут айскайзи ? если есть блокдевайс то зачем вообще айскайзи ? Я понял. видимо схема такая -- берём эн хостов, там маппим рбд через крбд и экспортируем данные девайсы через (какое решение?) по протоколу айскайзи. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
А по поводу названия этой секции подумаю, т.к. какого либо официального называния у данного метода нет. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "kRBD + LIO" ? |
||
=============== | ||
|
||
Второй вариант заключается в том что нужно замаппить rbd на систему предполагаемого таргета | ||
и анонсировать как блочное устройство. | ||
|
||
Плюсы этого решения: | ||
|
||
* Скорость близка к нативному rbd | ||
* Нет надобности ставить дополнительное ПО | ||
|
||
Минусы этого решения: | ||
|
||
* Так как не все rbd features реализованы в модуле rbd в ядре (далее krbd), необходимо отключать все | ||
features rbd выше layering (далее выдержка из master ветки ядра) | ||
|
||
:: | ||
|
||
/* Feature bits */ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. в доке уже есть соотв. описание рбд фичъ, лучше сослаться на него. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Поищу. Там есть информация о том какие фичи реализованы именно в ядре? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Нашел описание фич, но там они указаны все, и нет информации что есть именно в ядре. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. В разных версиях набор фич разный. можешь там расширить таблицу, указав какие фичи появились в ядре начиная с какой версии. |
||
#define RBD_FEATURE_LAYERING (1ULL<<0) | ||
#define RBD_FEATURE_STRIPINGV2 (1ULL<<1) | ||
#define RBD_FEATURE_EXCLUSIVE_LOCK (1ULL<<2) | ||
#define RBD_FEATURE_DATA_POOL (1ULL<<7) | ||
#define RBD_FEATURE_OPERATIONS (1ULL<<8) | ||
|
||
* Т.к. используется krbd, существует вполне реальная опасность, что некорректно работающий инициатор может `положить` | ||
не только iscsi, но и кластер ceph. У автора этой заметки были случаи когда windows initiator мешал модуль lio, а | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. про автора лучше убрать, ибо солянка сборная, и авторов много. да и звучит как-то по-Лебедевски. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ок, а как тогда написать эту информацию? Просто "Были случаи"? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Как вариант -- вобще не писать. Иначе -- "одна бака сказала", без пруфов и конкретики, британские учёные и ведущие собаководы. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Случай реальный, личный. Упомянуть важно, т.к. нужно подумать о таких опасностях на этапе планирования |
||
вместе с ним падал и ceph, т.к. появлялось много blocked requests, связанных с sub ops'ами. | ||
|
||
* Если нужна отказоустойчивость, придётся делать её самому. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. от какого отказа устойчивость? крбд вполне себе её даёт. Либо я не понял где т ут айскайзи вобще. в заголовке напиши предлагаемую схему. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Отказоустойчивость на случай если твой iscsi таргет на этом сервере ляжет. |
||
|
||
Плюсы этого решения: | ||
|
||
* Относительная простота | ||
|
||
* Скорость работы | ||
|
||
При работе с krbd следует максимально обезопасить кластер, для этого нужно обновлять ПО на инициаторе (например кумулятивные | ||
апдейты windows), и обновлять версию ядра на кластере с iscsi таргетами, т.к. модули LIO и RBD находятся в ядре, | ||
более новые ядра ведут себя стабильнее даже когда начинаются проблемы с подсистемой iscsi (LIO), это уже не так пагубно влияет | ||
на кластер ceph. Желательно использовать 4.14+. | ||
|
||
У автора данной заметки windows initiator с определенным набором апдейтов с mtu 9000 на сетевом адаптере выводил из строя | ||
кластер ceph, и при этом же с mtu 1500 такой проблемы не наблюдалось. | ||
|
||
Если нужен SCSI-3 PR, то оптимальным вариантом будет сделать "плавающий" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. PGR? |
||
таргет. Самый простой вариант сделать virtual ip (далее vip), настроить таргеты на прослушивание этого vip, и сделать | ||
миграцию адреса через pacemaker, keepalived, etc. | ||
|
||
В этом случае будет работать Persistant Reservation, т.к. PR эмулируется LIO локально на таргете. | ||
Но все запросы будут приходить на один сервер | ||
|
||
Если не требуется поддержка PR, то можно сделать несколько разных порталов с идентичными таргетами (c одинаковыми wwn), и настраивать | ||
failover на инициаторах (например через multipath). В некоторых решениях, используется кластерный lvm (clvmd или lvmlockd). | ||
|
||
|
||
Резюмируя вышесказанное | ||
======================= | ||
|
||
Выводы: | ||
|
||
#. Самый простой отказоустойчивый спобоб использовать iscsi и ceph - использовать ceph-iscsi. Все остальные способы | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. споСоб There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Принято |
||
потребуют инженерной смекалки и осторожности. | ||
|
||
#. Всегда предварительно нужно тестировать работу на конкретном оборудовании | ||
|
||
#. Даже, казалось бы, такая мелочь, как MTU на стороне инициатора может вызвать отказ в обслуживании в нашем СХД | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "Необходимо выставить такие-то MTU (одинаковые?) там-то и там то иначе произойдёт то-то" лучше в доке без эмоциональных вставок и "нашем схд" There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Насчёт эмоциональности принято. Насчёт MTU тут нет советов, на другом оборудовании мне уже не получилось спровоцировать подобное поведение. Тут то ли в версии Win была проблема (хотя на другом стенде, с такими же версиями всё было ок), то ли в железе и его firmware, то ли всё разом. Тут скорее важен сам факт, что такое возможно. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. тогда выпиливай про мту. дока в стиле "одна бабка сказала". Либо хотябы напиши приблизительное описание ситуации при которой произошла пепяка, а не просто "что-то с мту" |
||
|
||
#. Очень желательно ставить обновления, на системы, что на Linux (обновление системы и ядра), что Windows, ставить | ||
последние прошивки и драйвера для сетевых устройств. | ||
|
||
#. В ядро rhel постоянно бэкпортируют части кода из нового ядра, но в некоторых случаях новые ядра ведут себя стабильнее. | ||
А т.к. модули Lio и модуль rbd находятся в ядре, и в них регулярно вносят изменения, то это напрямую влияет на | ||
возможности и стабильность кластера. В официальной документации рекомендованы lts ядра версий 4.9 или 4.14. Если | ||
используется ceph-iscsi, то ядра 4.16+/ядра из rhel 7.5+, т.к. для его работы нужны специфичные патчи в ядро. | ||
|
||
#. Если бы мы использовали tcmu-runner, который не использует krbd, а использует librbd, скорее всего проблемы с | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. а есть такой ? он медленнее? и я всеравно не понял как проблемы с инициатором влияют на кластер. и почему при переносе в юзерспейс они перестанут влиять. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Кто есть такой? В трейсах ядра мы видели эксепшн в модуле LIO, на строчке с TX (увы, я не знаю где сейчас отыскать этот трейс, может в почте найду), и в это же время появлялись block requests в цефе. С учетом как ведет себя linux, когда ты пишешь в некое устройство или фс, и с ним что то происходит, и ты получаешь неубиваемый pid, то разгадка где то рядом. Возможно операция чтения\записи в block layer'е стакается. В любом случае, проблема была зафиксирована, и свежее ядро и обновы минимализируют риск глобальных проблем, так что каковы бы ни были истоки проблем, решение известно. |
||
инициатором не затрагивали бы наш кластер ceph | ||
|
||
|
||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,6 +14,7 @@ | |
bench | ||
bluestore | ||
cephfs | ||
cephiscsi | ||
cpu_and_mem | ||
disks | ||
how-it-works | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не плохо бы очень кратко написать нахрена это вообще надо. А именно - кормить варю и маздай айсказями. Ибо другие опенстеки (KVM) умеют в рбд напрямую.
+ желательно как это со стороны линуксов мапить (быть клиентом) инициатором? всёвремя путаю.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Таргет - сервер, инициатор - клиент. Распишу