2. Bcube: A High Performance, Server-centric
Network Architecture for Modular Data Centers
• The
Paper
published
in
ACM
SIGCOMM
’09
by
Microso>
Research
Asia.
• Designed
for
shipping-‐container
based
modular
data
centers.
• Server-‐centric
Network
Architecture
• Server
act
as
• End
hosts
• Relay
nodes
for
each
other
• Use
Low-‐end
commodity
switches
• Layer
structure
• Graceful
performance
degradaNon
as
servers
or
switches
fail.
4. Bcube Address (baddr)
• Every
server
connect
directly
every
level
switch.
• Bcube
use
Bbube
address
(baddr)
to
denote
a
server.
• Use
digit
array.
(Example:
120)
• Array
length
is
layer
number.
• Every
digit
mean
port
number
index
of
each
level
switch.
• Two
servers
are
neighbors
if
they
connect
to
the
same
switch.
• The
Hamming
distance
of
two
neighboring
servers
is
one.
• 202
and
222
are
neighbors.
5. Single-path Routing
/*
A=akak−1
·∙·∙·∙a0
and
B=bkbk−1
·∙·∙·∙b0;
A[i]
=
ai;
B[i]
=
bi;
Π
=
[πk,πk−1,·∙·∙·∙
,π0]
is
a
permutaNon
of
[k,k
−
1,·∙·∙·∙
,1,0]
*/
BCubeRouNng(A,
B,
Π):
path(A,
B)
=
{A,
};
I_Node
=
A;
for(i
=
k;i
≥
0;i−−)
if
(A[πi]
̸=
B[πi])
I_Node[πi]
=
B[πi];
append
I
Node
to
path(A,B);
return
path(A,
B)
BCubeRou(ng
to
find
a
path
from
A
to
B.
The
algorithm
corrects
one
digit
at
one
step.
The
digit
correc(ng
order
is
decided
by
the
predefined
permuta(on
Π.
7. • MulN-‐paths
• There
are
k(=Max
Level)
+1
parallel
paths
between
any
two
servers
in
Bcube.
• h(A,B)
paths
are
the
first
categories.
• k
+
1
–
h(A,B)
are
the
second
categories.
• Bcube
Source
RouNng
(BSR)
•
use
Source
RouNng.
8. Implementation
• We
have
prototyped
the
BCube
architecture
by
designing
and
implemenNng
a
BCube
protocol
stack.
We
have
implemented
the
stack
as
a
kernel
driver
in
the
Windows
Servers
2003
and
2008.
•
The
BCube
stack
locates
between
the
TCP/IP
protocol
driver
and
the
Ethernet
NDIS
(Network
Driver
Interface
SpecificaNon)
driver.
• TCP/IP
applicaNons
are
compaNble
with
Bcube.
• Each
packet
includes
a
BCube
header
between
the
Ethernet
header
and
IP
header.