Wie baut man ein privates Amazon AWS mit Open Source? In diesem Vortag wird die Realisierung einer privaten Cloud vom Konzept bis hin zum Produktivsystem vorgestellt. Amazon hat mit AWS diese Idee als Public Cloud für die breite Öffentlichkeit zugänglich gemacht. Es gibt jedoch gute Gründe eine eigene, private Cloud zu bauen. Diese Gründe können Sicherheitsbedenken und rechtliche Kriterien sein. Dr. Lukas Pustina und Daniel Schneller von der codecentric AG haben für das Startup CenterDevice eine private Cloud realisiert. In diesem Vortrag werden konkret Konzepte, Entscheidungen und Probleme erläutert. Dabei wird auch die ein oder andere Anekdote aus dem täglichen Wahnsinn der Cloud Administration nicht fehlen. Anhand spezifischer Anforderungen werden die eingesetzten Komponenten Ubuntu Linux, Ansible, Ceph und OpenStack eingeführt.
Slides unseres Talks auf der DevOps Conference 2015 in Berlin.
1. Private Cloud mit Ceph
und OpenStack
Daniel Schneller
daniel.schneller@centerdevice.de
@dschneller
Lukas Pustina
lukas.pustina@centerdevice.de
@drivebytesting
22. IEEE 802.3ad != IEEE 802.3ad
> cat /etc/network/interfaces
...
auto bond2
iface bond2 inet manual
bond-slaves p2p3 p2p4 # interfaces to bond
bond-mode 802.3ad # activate LACP
bond-miimon 100 # monitor link health
bond-xmit_hash_policy layer3+4 # use Layer 3+4 for link selection
pre-up ip link set dev bond2 mtu 9000 # set Jumbo Frames
auto vlan-ceph-clust
iface vlan-ceph-clust inet static
pre-up ip link add link bond2 name vlan-ceph-clust type vlan id 105
pre-up ip link set dev vlan-ceph-clust mtu 9000 # Jumbo Frames
post-down ip link delete vlan-ceph-clust
address ...
netmask ...
network ...
broadcast ...
...
36. Node 5
Node 1 Node 2 Node 3 Node 4
CD-VM1
VMs
Bare Metal
Ceph
Node 6
CD-VM2
Node 7
CD-VM3
Node 8
CD-VM4
ES Mo
CD CD
ES Mo
CD CD
ES Mo
CD CD
ES Mo
CD CD
Node …
VM …
VM …
Gesamtarchitektur
OSD 1
…
…
…
…
…
…
…
…
…
OSD 48
…
37. Node 5
Node 3Node 1
Rados GW
Node 2
Rados GW Rados GW
Node 4
Rados GW
CD-VM1
VMs
Bare Metal
Ceph
Node 6
CD-VM2
Node 7
CD-VM3
Node 8
CD-VM4
ES Mo
CD CD
ES Mo
CD CD
ES Mo
CD CD
ES Mo
CD CD
Node …
VM …
VM …
Gesamtarchitektur
OSD 1
…
…
…
…
…
…
…
…
…
OSD 48
…
38. Node 5
Node 1
Rados GW
Node 2
Rados GW
Node 3
Rados GW
Node 4
Rados GW
CD-VM1
HAProxyVMs
Bare Metal
Ceph
Node 6
CD-VM2
Node 7
CD-VM3
Node 8
CD-VM4
HAProxy HAProxyHAProxy
ES Mo
CD CD
ES Mo
CD CD
ES Mo
CD CD
ES Mo
CD CD
Node …
VM …
VM …
Gesamtarchitektur
OSD 1
…
…
…
…
…
…
…
…
…
OSD 48
…
39. Node 5
Node 1
Rados GW
Node 2
Rados GW
Node 3
Rados GW
Node 4
Rados GW
CD-VM1
HAProxyVMs
Bare Metal
Ceph
Node 6
CD-VM2
Node 7
CD-VM3
Node 8
CD-VM4
HAProxy HAProxyHAProxy
ES Mo
CD CD
ES Mo
CD CD
ES Mo
CD CD
ES Mo
CD CD
Node …
VM …
VM …
Gesamtarchitektur
OSD 1
…
…
…
…
…
…
…
…
…
OSD 48
…
46. Bonding und VLANs
Ein Switch als Weihnachtsbaum
01: Handle up event of interface Po4
02: VPC Po4(VPC ID: 4) UP on self. Inform peer to program peer-link to BLOCK traffic
03: Received control message of type MLAG_INTERFACE_DOWN, for VPC ID 4
04: Handle down event of interface Po2
05: VPC Po2(VPC ID: 2) DOWN on self. Inform peer to program peer-link to ALLOW traffic
06: Handle up event of interface Po2
07: VPC Po2(VPC ID: 2) UP on self. Inform peer to program peer-link to BLOCK traffic
08: Handle down event of interface Po42
09: VPC Po42(VPC ID: 42) DOWN on self. Inform peer to program peer-link to ALLOW traffic
10: Handle up event of interface Po42
11: VPC Po42(VPC ID: 42) UP on self. Inform peer to program peer-link to BLOCK traffic
12: Received control message of type MLAG_INTERFACE_DOWN, for VPC ID 42
13: Received control message of type MLAG_INTERFACE_UP, for VPC ID 14
14: Handle down event of interface Po16
15: VPC Po16(VPC ID: 16) DOWN on self. Inform peer to program peer-link to ALLOW traffic
16: Received control message of type MLAG_INTERFACE_DOWN, for VPC ID 39
17: Received control message of type MLAG_INTERFACE_UP, for VPC ID 42
[…]
47. Bonding und VLANs
Ein Switch als Weihnachtsbaum
CAUTION
TRUST
NOTHING!
CAUTION
FIRMWARE
FAILS, TOO!
56. Netzwerk – Total trivial
Der Wolf im Netzpelz
VHOST_NET_ENABLED=0
# To load the vhost_net module, which in some cases can speed up
# network performance, set VHOST_NET_ENABLED to 1.
$ cat /etc/default/qemu-kvm
57. Netzwerk – Total trivial
Der Wolf im Netzpelz
# To load the vhost_net module, which in some cases can speed up
# network performance, set VHOST_NET_ENABLED to 1.
VHOST_NET_ENABLED=1
$ cat /etc/default/qemu-kvm
58. Netzwerk – Total trivial
Der Wolf im Netzpelz
# To load the vhost_net module, which in some cases can speed up
# network performance, set VHOST_NET_ENABLED to 1.
VHOST_NET_ENABLED=1
$ cat /etc/default/qemu-kvm
CAUTION
VIRTUAL
NETWORKS!
59. Live Migration
“Der sich den Wolf patcht”
CAUTION
CHECK BUG
TRACKERS!
CAUTION
YOU’RE NOT
DEFAULT!
60. Heat Stacks
Ein Wolf kommt selten allein
CAUTION
CHECK BUG
TRACKERS!
CAUTION
YOU’RE NOT
THE DEFAULT!