"openstack & oracle — взболтать, но не смешивать"....
DESCRIPTION
Все enterprise-решения имеют свою специфику и отличаются весьма щепетильным подходом к эксплуатации. Но иногда возникает необходимость тиражировать их с минимальными усилиями. Нам в Яндексе понадобилось создать множество тестовых сред с продуктами Oracle. Для облегчения этой задачи мы виртуализовали их в приватном облаке OpenStack. В докладе пойдёт речь об этом опыте: с какими проблемами пришлось столкнуться и как мы будем использовать в дальнейшем полученные знания.TRANSCRIPT
OpenStack & Oracle — взболтать, но не смешивать
Филимонцев Сергей
О чём мой доклад
Фин. сервисы Яндекса и Oracle
Что такое OpenStack
Как приготовить в нём Oracle
3
Зачем нам OpenStack
Финансовые сервисы
5
Финансовые сервисы
Исключительные требования к системе
5
Финансовые сервисы
Исключительные требования к системе
Используем различные продукты Oracle
5
OEBS
6
OEBS
OEBS — ERP-система
6
OEBS
OEBS — ERP-система
OEBS активно растёт — за три года:
6
OEBS
OEBS — ERP-система
OEBS активно растёт — за три года:
– Данные × 5 = 1,5 TB
6
OEBS
OEBS — ERP-система
OEBS активно растёт — за три года:
– Данные × 5 = 1,5 TB– Пользователи × 50 = 1500
6
OEBS
OEBS — ERP-система
OEBS активно растёт — за три года:
– Данные × 5 = 1,5 TB– Пользователи × 50 = 1500
Активная разработка — активное тестирование
6
Тестовые среды
7
Тестовые среды
7
Разработка
Тестовые среды
7
Разработка
Тестирование
Тестовые среды
7
Разработка
Тестирование
– функциональное
Тестовые среды
7
Разработка
Тестирование
– функциональное– миграционное
Тестовые среды
7
Разработка
Тестирование
– функциональное– миграционное– пользовательское
Тестовые среды
7
Разработка
Тестирование
– функциональное– миграционное– пользовательское
Документирование
Тестовые среды
7
Разработка
Тестирование
– функциональное– миграционное– пользовательское
Документирование
Обучение
Конфигурация тестовой среды
8
6 серверов: 2 × Xeon 5530; 48GB RAM
2 дисковые полки: 24 × 2TB SATA
Конфигурация тестовой среды
8
6 серверов: 2 × Xeon 5530; 48GB RAM
2 дисковые полки: 24 × 2TB SATA
Конфигурация тестовой среды
8
iSCSI-target iSCSI-target
6 серверов: 2 × Xeon 5530; 48GB RAM
2 дисковые полки: 24 × 2TB SATA
Конфигурация тестовой среды
8
Oracle ASM iSCSI-target iSCSI-target
6 серверов: 2 × Xeon 5530; 48GB RAM
2 дисковые полки: 24 × 2TB SATA
Конфигурация тестовой среды
8
Oracle DB EE Oracle DB EE
Oracle ASM iSCSI-target iSCSI-target
6 серверов: 2 × Xeon 5530; 48GB RAM
2 дисковые полки: 24 × 2TB SATA
Конфигурация тестовой среды
8
Oracle RAC Oracle DB EE Oracle DB EE
Oracle ASM iSCSI-target iSCSI-target
6 серверов: 2 × Xeon 5530; 48GB RAM
2 дисковые полки: 24 × 2TB SATA
Конфигурация тестовой среды
8
Oracle RAC Oracle DB EE Oracle DB EE
Appl Appl
Oracle ASM iSCSI-target iSCSI-target
6 серверов: 2 × Xeon 5530; 48GB RAM
2 дисковые полки: 24 × 2TB SATA
OEBS
Конфигурация тестовой среды
8
Oracle RAC Oracle DB EE Oracle DB EE
Appl Appl
Oracle ASM iSCSI-target iSCSI-target
Сон админа тревожен и краток
9
Сон админа тревожен и краток
9
OS config Oracle patches OEBS restore adconfig
Сон админа тревожен и краток
9
OS config Oracle patches OEBS restore adconfig
администрированиесон*
Задача от разработки
10
Задача от разработки
10
Параллельное внедрение 4 модулей OEBS
Задача от разработки
10
Параллельное внедрение 4 модулей OEBS
Требуется 20 тестовых сред
Задача от разработки
10
Параллельное внедрение 4 модулей OEBS
Требуется 20 тестовых сред
≈Админо-месяц
«Запомни: лучше день потерять, потом за пять минут долететь!»
11
Крылья, ноги и хвосты ТО «Экран», 1986
New age with cloud
12
New age with cloud
Унификация аппаратного обеспечения
12
New age with cloud
Унификация аппаратного обеспечения
Более полная утилизация ресурсов
12
New age with cloud
Унификация аппаратного обеспечения
Более полная утилизация ресурсов
Создание сред «on-demand»
12
New age with cloud
Унификация аппаратного обеспечения
Более полная утилизация ресурсов
Создание сред «on-demand»
Онлайн миграция между серверами
12
Что такое OpenStack
OpenStack — IaaS provider
14
OpenStack — IaaS provider
Управляет ресурсами:
14
OpenStack — IaaS provider
Управляет ресурсами:
– Сервера: CPU, RAM, HDD
14
OpenStack — IaaS provider
Управляет ресурсами:
– Сервера: CPU, RAM, HDD– Сеть: VLAN, CIDR
14
OpenStack — IaaS provider
Управляет ресурсами:
– Сервера: CPU, RAM, HDD– Сеть: VLAN, CIDR– Образы VM
14
OpenStack — IaaS provider
Управляет ресурсами:
– Сервера: CPU, RAM, HDD– Сеть: VLAN, CIDR– Образы VM
Запускает VM
14
OpenStack — IaaS provider
Управляет ресурсами:
– Сервера: CPU, RAM, HDD– Сеть: VLAN, CIDR– Образы VM
Запускает VM
Предоставляет *aaS
14
OpenStack — IaaS provider
Управляет ресурсами:
– Сервера: CPU, RAM, HDD– Сеть: VLAN, CIDR– Образы VM
Запускает VM
Предоставляет *aaS
Разграничивает доступы14
Когда использовать OpenStack?
15
Когда использовать OpenStack?
Нужны виртуальные машины
15
Когда использовать OpenStack?
Нужны виртуальные машины
– VM нужны в количестве больше 5
15
Когда использовать OpenStack?
Нужны виртуальные машины
– VM нужны в количестве больше 5– VM работают на нескольких серверах
15
Когда использовать OpenStack?
Нужны виртуальные машины
– VM нужны в количестве больше 5– VM работают на нескольких серверах
Провайдер VM
15
Попробовать OpenStack
16
Попробовать OpenStack
16
Официальная документация:
– docs.openstack.org
Попробовать OpenStack
16
Официальная документация:
– docs.openstack.orgИнструкции по установке от Bilel Msekni:
– bit.ly/yac2013_openstack_deploy
17
BPDU
17
Quantum + OpenvSwitch + provider vlan
18
Compute-node
eth1
Quantum + OpenvSwitch + provider vlan
18
Compute-node
eth1
VM
eth0
Quantum + OpenvSwitch + provider vlan
18
Compute-node
eth1
VM
eth0
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
18
Compute-node
eth1
VM
eth0
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
18
magic
Compute-node
eth1
VM
eth0
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
18
magic
Compute-node
eth1
VM
eth0
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0 veth
18
magic
Compute-node
eth1
VM
eth0
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
103
VLAN:
veth
18
magic
Compute-node
eth1
VM
eth0
eth2 qbr1 vnet1
VM
eth0
eth1br-eth2
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
103
105
VLAN:
veth
18
magic
Compute-node
eth1
VM
eth0
eth2 qbr1 vnet1
VM
eth0
eth1br-eth2
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
103
105
VLAN:
veth
18
magic
Compute-node
eth1
VM
eth0
eth2 qbr1 vnet1
VM
eth0
eth1br-eth2
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
103
1
105
2
VLAN:
veth
18
magic
Compute-node
eth1
VM
eth0
eth2 qbr1 vnet1
VM
eth0
eth1br-eth2
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
103
1
105
2
VLAN:
veth
18
magic
Compute-node
eth1
VM
eth0
eth2 qbr1 vnet1
VM
eth0
eth1br-eth2
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
103
1
105
2
VLAN:
veth
18
magic
Compute-node
eth1
VM
eth0
eth2 qbr1 vnet1
VM
eth0
eth1br-eth2
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
103
1
105
2
VLAN:
veth
18
magic
Compute-node
eth1
VM
eth0
eth2 qbr1 vnet1
VM
eth0
eth1br-eth2
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
103
1
105
2
VLAN:
veth
18
magic
Compute-node
eth1
VM
eth0
eth2 qbr1 vnet1
VM
eth0
eth1br-eth2
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
103
1
105
2
VLAN:
veth
18
magic
Compute-node
eth1
VM
eth0
eth2 qbr1 vnet1
VM
eth0
eth1br-eth2
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
103
1
105
2
VLAN:
veth
18
magic
Compute-node
eth1
VM
eth0
eth2 qbr1 vnet1
VM
eth0
eth1br-eth2
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
103
1
105
2
VLAN:
veth
18
magic
Compute-node
eth1
VM
eth0
eth2 qbr1 vnet1
VM
eth0
eth1br-eth2
Quantum + OpenvSwitch + provider vlan
br-eth1
br-int
qbr0 vnet0
103
1
105
2
VLAN:
veth
18
magic
/etc/default/openvswitch-switch:
OVS_RESTART_SAVE_FLOWS=yes
Enterprise Oracle в OpenStack
Shaken, not stirred
Oracle в OpenStack OOB
20
Oracle в OpenStack OOB
20
OEBS
RAC DB DB
APPL APPL
ASM iSCSI iSCSI
OEBS
Oracle в OpenStack OOB
20
OEBS
RAC DB DB
APPL APPL
ASM iSCSI iSCSI
DBAPPL
Oracle в OpenStack OOB
20
OEBS
RAC DB DB
APPL APPL
ASM iSCSI iSCSI
OEBSDB
APPL ☣
Oracle в OpenStack OOB
Jumbo Frames
20
OEBS
RAC DB DB
APPL APPL
ASM iSCSI iSCSI
OEBSDB
APPL ☣
Oracle в OpenStack OOB
Jumbo Frames
Shared network interface
20
OEBS
RAC DB DB
APPL APPL
ASM iSCSI iSCSI
OEBSDB
APPL ☣
Oracle в OpenStack OOB
Jumbo Frames
Shared network interface
Security & Firewall
20
OEBS
RAC DB DB
APPL APPL
ASM iSCSI iSCSI
OEBSDB
APPL ☣
Jumbo Frames
21
Jumbo Frames
Default MTU not modifiable
21
Jumbo Frames
Default MTU not modifiable
LinuxBridge (fixed in Grizzly):
– bit.ly/yac2013_openstack_br_fixOpenvSwitch (fixed in Havana):
– bit.ly/yac2013_openstack_ovs_fix
21
Shared network interface
22
Shared network interface
22
br-eth2
eth2trunk
Shared network interface
22
br-eth2
eth2trunk
eth2.105
Shared network interface
ovs-vsctl \
! ! add-port br-eth2 eth2.105 tag=105 -- \
! ! set interface eth2.105 type=internal
22
br-eth2
eth2trunk
eth2.105
Shared network interface
ovs-vsctl \
! ! add-port br-eth2 eth2.105 tag=105 -- \
! ! set interface eth2.105 type=internal
22
ip addr add … dev eth2.105
ip link set eth2.105 up
ip route add …/… dev eth2.105
br-eth2
eth2trunk
eth2.105
Security
23
SecurityOracle RAC:
23
SecurityOracle RAC:
virtual interfaces
23
SecurityOracle RAC:
virtual interfaces
169.254.0.0/16
23
SecurityOracle RAC:
virtual interfaces
169.254.0.0/16
interconnect multicast UDP
23
SecurityOracle RAC:
virtual interfaces
169.254.0.0/16
interconnect multicast UDP
Disable firewall
23
SecurityOracle RAC:
virtual interfaces
169.254.0.0/16
interconnect multicast UDP
Disable firewall
23
OpenStack security:
SecurityOracle RAC:
virtual interfaces
169.254.0.0/16
interconnect multicast UDP
Disable firewall
23
OpenStack security:
ebtables
SecurityOracle RAC:
virtual interfaces
169.254.0.0/16
interconnect multicast UDP
Disable firewall
23
OpenStack security:
ebtables
iptables
SecurityOracle RAC:
virtual interfaces
169.254.0.0/16
interconnect multicast UDP
Disable firewall
23
OpenStack security:
ebtables
iptables
spoof-protection:
SecurityOracle RAC:
virtual interfaces
169.254.0.0/16
interconnect multicast UDP
Disable firewall
23
OpenStack security:
ebtables
iptables
spoof-protection:
MAC, IP, ARP
Firewall disabling
24
Firewall disabling
virsh nwfilter-edit nova-base
24
Firewall disabling
virsh nwfilter-edit nova-base
firewall_driver
24
Firewall disabling
virsh nwfilter-edit nova-base
firewall_driver /etc/nova/nova.conf:
24
Firewall disabling
virsh nwfilter-edit nova-base
firewall_driver /etc/nova/nova.conf:
nova.virt.firewall.NoopFirewallDriver
24
Firewall disabling
virsh nwfilter-edit nova-base
firewall_driver /etc/nova/nova.conf:
nova.virt.firewall.NoopFirewallDriver /etc/quantum/plugins/…/…ini:
24
Firewall disabling
virsh nwfilter-edit nova-base
firewall_driver /etc/nova/nova.conf:
nova.virt.firewall.NoopFirewallDriver /etc/quantum/plugins/…/…ini:quantum.agent.firewall.NoopFirewallDriver
24
Заключение
Результаты и взгляд в будущее
Что у нас получилось
26
Что у нас получилось
Proof of concept… success!
26
Что у нас получилось
Proof of concept… success!
Два облака, десятки серверов
26
Что у нас получилось
Proof of concept… success!
Два облака, десятки серверов
Подготовка среды занимает админо-минуту
26
Что у нас получилось
Proof of concept… success!
Два облака, десятки серверов
Подготовка среды занимает админо-минуту
– 30 тестовых сред Oracle– 20 прочих ВМ
26
Будущее
27
Будущее
17 октября 2013 — Havana Release (2013.2)
– Quantum ➡ Neutron
27
Будущее
17 октября 2013 — Havana Release (2013.2)
– Quantum ➡ Neutron* as a Services:
27
Будущее
17 октября 2013 — Havana Release (2013.2)
– Quantum ➡ Neutron* as a Services:
– FWaaS
27
Будущее
17 октября 2013 — Havana Release (2013.2)
– Quantum ➡ Neutron* as a Services:
– FWaaS– LBaaS
27
Будущее
17 октября 2013 — Havana Release (2013.2)
– Quantum ➡ Neutron* as a Services:
– FWaaS– LBaaS– DNSaaS
27
Будущее
17 октября 2013 — Havana Release (2013.2)
– Quantum ➡ Neutron* as a Services:
– FWaaS– LBaaS– DNSaaS– MySQLaaS
27
Спасибо за внимание
29
Сергей ФилимонцевСистемный администратор
+7 926 573-‐41-‐01
twi0er.com/troksa
;.com/sfilimontsev