graph G { node [ shape=box, fontcolor="#ffffff", color="#40a9e3", style="filled" ] # This is needed to prevent compile errors / too many ranks # newrank = true; subgraph cluster_internet { label="The Internet"; sunrise [ label="Sunrise upstream Router" ]; netstream [ label="Netstream upstream Router" ]; saltlte [ label="Salt (LTE)" ]; hetzner [ label="Hetzner" ]; mythicbeasts [ label="Mythic Beasts" ]; } subgraph cluster_place4 { label="place4: Germany"; server1p4 [ label="server1\ndns backup\nmx backup" ]; } subgraph cluster_place5 { label="place5: Schwanden"; server1p5 [ label="server1\nopennebula master\nceph osd" ]; server2p5 [ label="server2\nopennebula nodes\nceph osd" ]; server3p5 [ label="server3\nopennebula nodes\nceph osd" ]; server4p5 [ label="server4\nopennebula nodes\nceph osd" ]; router1p5 [ label="router1\nfirewall\nrouter\nnetboot" ]; router2p5 [ label="router2\nfirewall\nrouter\nnetboot" ]; apurouter1p5 [ label="dhcpv4\nnetboot\ncoworking" ]; apurouter2p5 [ label="dhcpv4\nnetboot\ncoworking" ]; red1p5 [ label="red1\nceph monitor\nopennebula mysql" ]; red2p5 [ label="red2\nceph monitor\n" ]; red3p5 [ label="red3\nceph monitor\n" ]; cephp5 [ label="ceph cluster" shape=oval ]; onep5 [ label="opennebula cluster" shape=oval ]; uplinkp5 [ label="Sunrise Uplink Device" ]; switch1p5 [ label="switch1"]; switch2p5 [ label="switch2"]; switch1p5--switch2p5 [ label="20G\nLACP\nMLAG" ]; {server1p5,server2p5,server3p5,server4p5,router1p5,router2p5}--{switch1p5,switch2p5} [ label="20G\nLACP" ]; {server1p5,server2p5,server3p5,server4p5,router1p5,router2p5}--{switch1p5,switch2p5} [ label="20G\nLACP" ]; server1p5--{server1p5,server2p5,server3p5,server4p5} [ label="Manage VMs" ]; cephp5--{server1p5,server2p5,server3p5,server4p5,red1p5,red2p5,red3p5} onep5--{server1p5,server2p5,server3p5,server4p5,red1p5} [ label="consists of" ]; {server1p5,server2p5,server3p5,server4p5}--{apurouter1p5,apurouter2p5} [ label="Netboot" ]; # This is the power connections ups1 [ label="UPS1\n2200VA\n1320W" ] ups2 [ label="UPS2\n2200VA\n1320W" ] ups3 [ label="UPS3\n2200VA\n1320W" ] ups4 [ label="UPS4\n2200VA\n1320W" ] ups5 [ label="UPS5\n2200VA\n1320W" ] ups6 [ label="UPS6\n2200VA\n1320W" ] ups7 [ label="UPS7\n2200VA\n1320W" ] ups1small [ label="UPS1-Small\n1000VA\n550W" ] noorunknownups [ label="No or unknown UPS" ] server1p5 -- ups1 [ label="Power connection 1100W" ] server2p5 -- ups3 [ label="Power connection 1100W" ] server3p5 -- ups6 [ label="Power connection 1100W" ] server4p5 -- ups7 [ label="Power connection 1100W" ] router1p5 -- ups5 [ label="Power connection 1100W" ] mdarrayserver2 -- ups2 [ label="Power connection 600W" ] mdarrayserver3 -- ups4 [ label="Power connection 600W" ] mdarrayserver4 -- ups5 [ label="Power connection 600W" ] switch1p5 -- ups4 [ label="Power connection 460W" ] switch2p5 -- ups2 [ label="Power connection 460W" ] uplinkswitchp5 -- ups1small [ label="Power connection 350W" ] red1p5 -- ups1small [ label="Power connection 24W" ] red1p5 -- ups1small [ label="Power connection 24W" ] red1p5 -- ups1small [ label="Power connection 24W" ] red2p5 -- ups7 [ label="Power connection 24W" ] mikrotikcrs3261 -- ups1small [ label="Power connection 24W" ] mikrotikcrs3262 -- ups1small [ label="Power connection 24W" ] apurouter1p5 -- ups7 [ label="Power connection 24W"] apurouter2p5 -- ups1small [ label="Power connection 24W"] router2p5 -- noorunknownups [ label="???" ] # MDarray section mdarrayserver2 [ label="MDArray (server2)" ] mdarrayserver3 [ label="MDArray (server3)" ] mdarrayserver4 [ label="MDArray (server4)" ] server2p5 -- mdarrayserver2 [ label="via SAS" ] server3p5 -- mdarrayserver3 [ label="via SAS" ] server4p5 -- mdarrayserver4 [ label="via SAS" ] subgraph cluster_place5_switches { label="Switches place5"; switch1p5 [ label="switch1"]; switch2p5 [ label="switch2"]; mikrotikcrs3261 [ label="CRS326-1" ]; mikrotikcrs3262 [ label="CRS326-2" ]; switch1p5--switch2p5 [ label="20G\nLACP\nMLAG" ]; } } subgraph cluster_place6 { label="place6: Linthal"; subgraph cluster_place6_ceph { label="place6: ceph cluster"; cephp6 [ label="ceph cluster" shape=oval ]; } cephp6--{serversnorthp6,serverseastp6} subgraph cluster_place6_north { label="place6: North (Production)"; switch1p6 [ label="switch1"]; switch2p6 [ label="switch2"]; switch1p6--switch2p6 [ label="20G\nLACP\nMLAG" ]; serversnorthp6 [ label="servers\nopennebula nodes\nceph osd" ]; serversnorthp6--{switch1p6,switch2p6} [ label="20G\nLACP" ]; {router2p6,serversnorthp6}--{switch1p6,switch2p6} [ label="20G\nLACP" ]; } subgraph cluster_place6_kraftwerk { label="place6: Kraftwerk (Production)"; switch3p6 [ label="switch3"]; switch4p6 [ label="switch4"]; switch3p6--switch4p6 [ label="20G\nLACP\nMLAG" ]; } subgraph cluster_place6_east { label="place6: East (Production)"; subgraph cluster_place6_east_shelf7 { label="Shelf 7" server4p6 [ label="server4.place6" ] mdarrayserver4p6 [ label="MDArray server4.place6" ] server4p6 -- mdarrayserver4p6 [ label="SAS" ] ciara1 [ label="ciara1" ]; # 770W router2p6 [ label="router2.place6" ] ups10 [ label="UPS10 (1400W / 2200VA)" ] ups11 [ label="UPS11 (1400W / 2200VA)" ] router2p6 -- ups1p6 [ label="570W" ] mdarrayserver4p6 -- ups1p6 [ label="600W" ] server4p6 -- ups11 [ label="1100W" ] ciara1 -- ups10 [ label="770W" ] } subgraph cluster_place6_east_shelf6 { label="Shelf 6" randomr710 overdrive1 overdrive2 server17p6 [ label="server17.place6" ] mdarrayserver17p6 [ label="MDArray server17.place6" ] ups12 [ label="UPS12 (1400W / 2200VA)" ] server17p6 -- ups12 [ label="870W" ] server17p6 -- mdarrayserver17p6 [ label="SAS" ] mdarrayserver17p6 -- ups10 [ label="600W" ] } subgraph cluster_place6_east_shelf5 { label="Shelf 5" ciara3 [ label="ciara3.place6" ]; server15p6 [ label="server15.place6" ] mdarrayserver15p6 [ label="MDArray server15.place6" ] ups13p6 [ label="UPS13 (1400W / 2200VA)" ] ups14p6 [ label="UPS14 (1400W / 2200VA)" ] ciara3 -- ups13p6 [ label="770W" ] server15p6 -- ups14p6 [ label="570W" ] mdarrayserver15p6 -- ups14p6 [ label="600W" ] server15p6 -- mdarrayserver15p6 [ label="SAS" ] } subgraph cluster_place6_east_shelf4 { label="Shelf 4" server11p6 [ label="server11.place6" ] server12p6 [ label="server12.place6" ] ups15p6 [ label="UPS15 (1320W / 2000VA)" ] ups16p6 [ label="UPS16 (1320W / 2000VA)" ] ups17p6 [ label="UPS17 (1320W / 2000VA)" ] ups18p6 [ label="UPS18 (1320W / 2000VA)" ] server3p6 [ label="server3.place6" ] # 1100W mdarrayserver3p6 [ label="MDArray server3.place6" ] server3p6 -- mdarrayserver3p6 [ label="SAS" ] mdarrayserver3p6 -- ups13 [ label="600W" ] server11p6 -- {ups15p6,ups16p6,ups17p6,ups18p6} [ label="1200W" ] } subgraph cluster_place6_east_shelf3 { label="Shelf 3" ups4p6 [ label="UPS4 (1320W / 2000VA)" ] ups5p6 [ label="UPS5 (1320W / 2000VA)" ] ups6p6 [ label="UPS6 (1320W / 2000VA)" ] ups7p6 [ label="UPS7 (1320W / 2000VA)" ] ups9p6 [ label="UPS7 (1320W / 2000VA)" ] server9p6 [ label="server9.place6" ] server10p6 [ label="server10.place6" ] server2p6 [ label="server2.place6" ] mdarrayserver2p6 [ label="MDArray server2.place6" ] server2p6 -- mdarrayserver2p6 [ label="SAS" ] server2p6 -- ups9p6 [ label="1100W" ] server9p6 -- {ups4p,ups5p6,ups6p6,ups7p6} [ label="1200W" ] } subgraph cluster_place6_east_shelf2 { label="Shelf 2" router1p6 [ label="router1.place6" ] ups3p6 [ label="UPS3 1320W" ] router1p6 -- ups3p6 [ label="570W" ] } subgraph cluster_place6_east_shelf1 { label="Shelf 1" switch5p6 [ label="switch5"]; switch6p6 [ label="switch6"]; switch5p6--switch6p6 [ label="20G\nLACP\nMLAG" ]; black3 apurouter1p6 ups8p6 [ label="UPS7 (1320W / 2000VA)" ] server6p6 [ label="server6.place6" ] mdarrayserver6p6 [ label="MDArray server6.place6" ] server6p6 -- mdarrayserver6p6 [ label="SAS" ] server6p6 -- ups8p6 [ label="1100W" ] mikrotikcrs326_8_p6 [ label="mikrotik-crs326-8.place6" ] {black3, apurouter1p6} -- mikrotikcrs326_8_p6 [ label="1 Gbit/s" ] mdarrayserver6p6 -- ups3p6 [ label="600W " ] } # serversnorthp6 [ label="servers\nopennebula nodes\nceph osd" ]; # {router1p6,serverseastp6,replacementroutersp6}--{switch5p6,switch6p6} [ label="20G\nLACP" ]; } subgraph cluster_place6_west { label="place6 west"; switch1p9 [ label="switch1.p9"]; mikrotikcrs326_2_p6 [ label="mikrotik-crs326-2.place6" ] {apurouter2p6,emonitor1p6,black2} -- mikrotikcrs326_2_p6 [ label="1 Gbit/s" ] switch7p6 [ label="switch7"]; switch8p6 [ label="switch8"]; switch7p6--switch8p6 [ label="20G\nLACP\nMLAG" ]; switch7p6 -- mikrotikcrs326_2_p6 [ label="Fiber 1 Gbit/s" ]; } {switch1p6,switch2p6}--{switch3p6,switch4p6} [ label="40G\nLACP\nMLAG" ]; {switch5p6,switch6p6}--{switch3p6,switch4p6} [ label="40G\nLACP\nMLAG" ]; {switch5p6,switch6p6}--{switch7p6,switch8p6} [ label="40G\nLACP\nMLAG" ]; switch1p9--switch5p6 [ label="10G\nROUTED" ]; } subgraph cluster_place7 { label="place7: Luchsingen"; redp7 [ label="red as a router"] } subgraph cluster_place8 { label="place8"; switch1p8 [ label="switch1\nmain"]; switch2p8 [ label="switch2\nbackup"]; switch1p8--switch2p8 [ label="20G\LACP\nMLAG" ]; } subgraph cluster_place10 { label="place10: Diesbach"; switch1p10 [ label="switch1\nmain"]; } subgraph cluster_place11 { label="place11"; server1p11 [ label="server1\nprometheus\nmailing list" ]; } switch1p5--switch1p8 [ label="Dark fiber" ]; switch3p6--switch1p8 [ label="Dark fiber" ]; switch1p10--switch3p6 [ label="Dark fiber"]; server1p11--{router1p5,router2p5,router1p6,router2p6} [ label="Place11 monitors" ]; server1p4--hetzner [ label="Default Route" ]; {router1p5,router2p5}--sunrise [ label="BGP Peering" ]; uplinkp5--sunrise [ label="Fiber" ]; {router1p6,router2p6}--netstream [ label="BGP Peering" ]; redp7--saltlte; server1p11--mythicbeasts [ label="Default Route" ]; # BGP / routing / logic networking }