Евгений Потапов (Сумма Айти)
TRANSCRIPT
![Page 1: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/1.jpg)
OpenStack изнутри
Евгений Потапов
![Page 2: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/2.jpg)
Евгений Потапов
10 лет опыта веб-разработки
5 лет опыта использования облачных технологий
генеральный директор компании «Сумма АйТи»
![Page 3: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/3.jpg)
Стартовали в 2008 году в Иркутске
Поддержка высоконагруженных веб-сайтов
140 миллионов посетителей в сутки
1000+ серверов на поддержке
40 специалистов
![Page 4: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/4.jpg)
![Page 5: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/5.jpg)
внутренние задачи
![Page 6: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/6.jpg)
внутренние задачитестирование failover-планов(быстро переключились на резервную архитектуру)
развертывание бэкапов(накатили свежий бэкап и убедились что он работает)
тестирование новых версий ПО(выкатили новую версию и убедились что она не падает)
тестирование новых решений(mongo db is web scale)
разработка внутренних проектов(доработки мониторинга, машины для девелоперов и тд)
![Page 7: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/7.jpg)
удобно и просто(не залезая в консоль можно сделать виртуалку, использовать и удалить)
о парке хост-машин думать не надо(не нужно думать о том что на хост-машине может полететь рейд-массив)
что используем за то и платим(платим только за то, что используем)
+
![Page 8: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/8.jpg)
на самом деленужно следить за AWS постоянно
закончил таск – выключи инстанс(AWS – дорогая штука при оплате за месяц)
работа на паузе – останови инстанс(не дай бог что-то было в ephemeral)
надо что-то запустить – дважды подумай(может не стоит запускать эту фигню на две недели на m1.xlarge?)
-
![Page 9: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/9.jpg)
а может ? о нем много говорят(большое комьюнити, будет нормальная поддержка)
навсегда забыть об остановках инстансов ради экономии при этом также удобно как AWS(пусть себе работает до тех пор пока не потребуются ресурсы)
вообще в целом - дешевле(на hetzner Xeon E5-1650 64GB RAM стоит 99 евро)
да и просто интересно(тренды нужно знать)
![Page 10: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/10.jpg)
![Page 11: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/11.jpg)
Не специализируемся на OpenStack
Личный опыт (+опыт друзей и коллег)
Доклад на стыке системного администрирования и менеджмента, но есть хардкор
![Page 12: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/12.jpg)
OpenStack - структура
http://www.openstack.org/software/
![Page 13: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/13.jpg)
“The diagram below, illustrates the most common architecture of an OpenStack-based cloud”
http://www.solinea.com/blog/openstack-grizzly-architecture-revisited
![Page 14: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/14.jpg)
OpenStack - структураNova – контроллер виртуализацииNeutron (Quantum) – управление сетевой инфраструктуройCinder – управление дисковой инфраструктуройGlance – управление образамиKeystone – служба идентификацииHorizon – Dashboard
![Page 15: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/15.jpg)
OpenStack - структура
http://ilearnstack.com/tag/openstack/
![Page 16: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/16.jpg)
OpenStack NovaNova – контроллер виртуализации
Службы Nova:API – интерфейс к NovaAMPQ – служба очередейCompute – взаимодействие с гипервизоромConductor – интерфейс взаимодействия с БД для ComputeScheduler – выбор узла для выполнения запроса из очереди
![Page 17: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/17.jpg)
OpenStack Nova
![Page 18: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/18.jpg)
OpenStack Nova1. Запрос на создание инстанса приходит в Nova API 2. Nova API записывает в очередь запрос к Nova Scheduler о том, что надо выполнить такой запрос3. Nova Scheduler получает запрос из очереди, выбирает узел на котором надо выполнить запрос.4. Nova Scheduler шлет запрос в очередь для Nova Compute о том, что надо запустить инстанс
![Page 19: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/19.jpg)
OpenStack Nova
![Page 20: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/20.jpg)
OpenStack Nova5. Nova Compute получает из очереди запрос о том что надо получить инстанс.6. …но Nova Compute не знает о том, какие у инстанса параметры – так как с параметрами в базе общается Nova Conductor7. Nova Compute отправляет запрос в очередь к Nova Conductor о том что надо получить параметры инстанса
![Page 21: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/21.jpg)
OpenStack Nova
![Page 22: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/22.jpg)
OpenStack Nova8. Nova Conductor делает запрос в БД о свойствах инстанса и отдает в очередь ответ с информацией о свойствах запускаемого инстанса9.Nova Compute запускает инстанс с заданными свойствами.
![Page 23: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/23.jpg)
OpenStack Nova
![Page 24: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/24.jpg)
OpenStack NovaБД – MySQLОчередь – QIPD или RabbitMQ7 демонов
те или иные ошибки возникают регулярно
![Page 25: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/25.jpg)
OpenStack Nova«Race condition возникает в момент запуска и одновременного с этим удаления инстанса, если на инстансы назначена одна и та же security group»https://bugs.launchpad.net/nova/+bug/1202449
![Page 26: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/26.jpg)
OpenStack Nova«Невозможно запустить инстанс, если существуют несколько security group с одним и тем же именем (например, в других проектах), и эта security group назначена на этот инстанс»https://bugs.launchpad.net/nova/+bug/1203413
![Page 27: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/27.jpg)
OpenStack Nova«Инстансы в состоянии suspend нельзя вывести из этого состояния после перезагрузки host-машины»
- “My lessons learned are: NEVER PUT YOUR INSTANCE IN SUSPEND STATE!!!”
https://bugs.launchpad.net/nova/+bug/1052696
![Page 28: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/28.jpg)
https://twitter.com/lusis/status/436697765679468544
![Page 29: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/29.jpg)
Neutron«Neutron это система для управления сетями и IP адресами».«Neutron позволяет вам быть уверенным в том, что сеть – не будет узким местом или лимитирующим фактором в вашей облачной среде»
http://en.wikipedia.org/wiki/OpenStack
![Page 30: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/30.jpg)
Neutron
http://openstack.redhat.com/Networking_in_too_much_detail
![Page 31: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/31.jpg)
Neutron1. Виртуальная машина получает информацию об IP-адресе своего интерфейса по DHCP (об этом позже)
[itsumma@cloud ~]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0BOOTPROTO=dhcpONBOOT=yes
пусть, назначен адрес 10.0.0.12
![Page 32: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/32.jpg)
Neutron2. Сетевой интерфейс виртуальной машины соединяется с TAP-устройством хост-машины
![Page 33: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/33.jpg)
Neutron3. На TAP-девайс, связанный с данной виртуальной машиной, навешаны iptables чейны, в которых прописаны правила назначенной на машину секьюрити-группы
![Page 34: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/34.jpg)
Neutron4. TAP-девайс соединен с интерфейсом br-int, реализованном через Open vSwitch.
«Open vSwitch – программный многоуровневый коммутатор с открытым исходным кодом, предназначенный для работы в гипервизорах и на компьютерах с виртуальными машинами»
http://openvswitch.org/
![Page 35: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/35.jpg)
Neutron5. Интерфейс br-int соединяется с интерфейсом br-ext, который уже доступен хост-машине, но это не все
![Page 36: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/36.jpg)
Neutron6. DHCP на виртуальные машины раздается через приложение dnsmasq, работающее внутри network namespace – службы linux, которая позволяет запустить собственный сетевой стэк для группы процессов
![Page 37: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/37.jpg)
Neutron[root@openstack itsumma]# ip netns exec qrouter-89f090d0-aa1e-4189-bfd8-b8381de2cc97 iptables -t nat -S-A neutron-l3-agent-OUTPUT -d x.x.x.126/32 -j DNAT --to-destination 10.0.0.16-A neutron-l3-agent-OUTPUT -d x.x.x.123/32 -j DNAT --to-destination 10.0.0.18-A neutron-l3-agent-OUTPUT -d x.x.x.245/32 -j DNAT --to-destination 10.0.0.13-A neutron-l3-agent-OUTPUT -d x.x.x.124/32 -j DNAT --to-destination 10.0.0.19-A neutron-l3-agent-OUTPUT -d x.x.x.244/32 -j DNAT --to-destination 10.0.0.9-A neutron-l3-agent-OUTPUT -d x.x.x.125/32 -j DNAT --to-destination 10.0.0.20-A neutron-l3-agent-OUTPUT -d x.x.x.122/32 -j DNAT --to-destination 10.0.0.17
![Page 38: Евгений Потапов (Сумма Айти)](https://reader031.vdocuments.mx/reader031/viewer/2022020115/5555aad7d8b42a52568b48e5/html5/thumbnails/38.jpg)
Хватит безумия, выводы На развертывание системы с нуля уходит от двух недель до двух месяцевНа хостинге должна быть возможность просто сделать OS Reload – это обязательно потребуется в первое время, несколько разЦелесообразность экономии при использовании одной машины неочевидна – у нас ушло полтора месяца работы одного человекаДля небольших деплойментов – лучше подождать пару лет