graph G { node [ shape=box, fontcolor="#ffffff", color="#40a9e3", style="filled" ] 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+2\nfirewall\nrouter\nnetboot" ]; router2p5 [ label="router1+2\nfirewall\nrouter\nnetboot" ]; 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 ]; subgraph cluster_place5_switches { label="Switches place5"; switch1p5 [ label="switch1"]; switch2p5 [ label="switch2"]; switch1p5--switch2p5 [ label="20G\nLACP\nMLAG" ]; } {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}--routersp5 [ 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_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 [ label="router2\nfirewall\nrouter\nnetboot" ]; {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)"; router1p6 [ label="router1\nfirewall\nrouter\nnetboot" ]; replacementroutersp6 [ label="replacement-router1+2\nnext gen routing" ]; serverseastp6 [ label="servers\nopennebula nodes\nceph osd" ]; serverseastp6--{switch1p6,switch2p6} [ label="20G\nLACP" ]; switch5p6 [ label="switch5"]; switch6p6 [ label="switch6"]; switch5p6--switch6p6 [ label="20G\nLACP\nMLAG" ]; serversnorthp6 [ label="servers\nopennebula nodes\nceph osd" ]; {router1p6,serverseastp6,replacementroutersp6}--{switch5p6,switch6p6} [ label="20G\nLACP" ]; } subgraph cluster_place6_west { label="place6: West == place9 == Testing"; switch1p9 [ label="switch1.p9"]; serversp9 [ label="Non-prod systems" ]; serversp9--switch1p9 [ label="10G" ]; } {switch1p6,switch2p6}--{switch3p6,switch4p6} [ label="40G\nLACP\nMLAG" ]; {switch5p6,switch6p6}--{switch3p6,switch4p6} [ 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--{routersp5,router1p6,router2p6} [ label="Place11 monitors" ]; server1p4--hetzner [ label="Default Route" ]; routersp5--sunrise [ label="BGP Peering" ]; {router1p6,router2p6}--netstream [ label="BGP Peering" ]; redp7--saltlte; server1p11--mythicbeasts [ label="Default Route" ]; }