Google Around 1,000,000 servers 20-50 datacenters, up to 100MW each Microsoft: Adding 20,000 servers per month 15x servers and power over next 5 years Electronic Trading Whoever trades the fastest and smartest wins Cloud Computing Oil&Gas Drug Discovery ...
are direct descendents of the Telegraph. Still work with 50 year old teletypes! SCSI is almost 30 years old Ethernet packets backwards compatible to 1980 x86 instruction set: 1978
believe in 'Clean Slate' But, Virtualization can “contain” compatibility problems Telnet, VLANs, VPNs, VMware, Virtual disks, .. Virtualization used to share resources 1 mainframe, many systems Virtualization used for consolidation Multiple physical objects to 1 Virtualization used for encapsulation Ability to capture, manage, redeploy state
of failure 2 general Ethernet connections 2 storage network connections 2 power connections usually one 1 console connection Every server on 7 networks! Enter the blade server: shared wiring for servers Net consolidation: Storage, Ethernet & Console iSCSI or FCOE KVM/IP
require human touch, training, configuration, monitoring What if I don't want to set the time on my coffee maker? But systems are just components of a datacenter Reverse Turing Test – management software pretending to be humans We need a standard paradigm for devices to manage other devices
bandwidth 10,000x less than WAN 1Gb links nearing zero cost This is the year of affordable 10Gbps Higher level protocols are speed-independent PHY layers have largely converged among different standard Most performance problems not related to “raw” performance
Data Center Ethernet Choice of congestion classes Lossy vs lossless Choice of storage transports TCP or F.C. (FCOE) Choice of hardware or software transport TOE w TCP, software FCOE, ...
networks are tree structured Only topology that Ethernet supports parallel trees for redundancy Bandwidth of core nodes limits bandwidth of entire network Need to evolve to support of fat-tree, mesh, arbitrary topologies - “multi-path” Redundancy / Incompatibility between different network layers L2 / Ethernet L3 / IP Storage multi-pathing
Servers are redundantly connected, yet don't participate in network topology determination Onto which interface should I send a packet? Multi-path access to storage is very important But storage doesn't participate in network topology either What if there was just one control plane? Unify Ethernet, IP, SCSI addressing Arbitrary topology – simple graph theory Huge boost in possible bandwidth Huge reduction in congestion & latency
Ethernet today supports “pause” All or nothing – congestion spreading Soon: “Per Priority Pause” 8 classes of traffic – independent pause Congestion signaling – IEEE p802.3au / QCN backwards congestion notification to source will take a long time to diffuse to many products Adapters need better queueing Single deep queue leads to massive unfairness Multi-queue / flow awareness needed Better integration between hw/sw queue management
today supports ECN But its turned off because there's too many broken routers in the world Layer 2 switches don't mark, need L3 awareness Extend TCP to select ECN or not based on routes Enable for “local” or “known good” subnets TCP timeouts are ludicrously high Need to decrease by 1000x for the datacenter OS impact
Old world: The network (world) is flat Keep going and you'll eventually get to the edge New world: The network (world) is round Wherever the data goes, it's still in the network Servers just talk to other servers The data goes in, rattles around, and comes back out again Storage: just a network with a time dimension Spacetime Data Fabric?: Data constantly in motion/transformation distance == time == latency
Geocentric The CPU/OS is the center of the universe Heliocentric The DataCenter as a holistic unit Galactic DataCenters all over the world You are here
time, space, bandwidth & energy does my application use? We can almost answer this within a single server But how can we answer this for distributed applications? Monitoring needs transparency – the opposite of virtualization
of networking moves the data to the processor Why not move the processing to the data? “function shipping” Hypervisor on disk drive? Map/Reduce model What if the data is distributed? Move the processing into the network – EC2 Steiner points?
are the new heavy industry Networking is the raison d'être for data centers From inter-continental to intra-chip, networking issues are the major problems to be solved