Scalable cluster router
First Claim
Patent Images
1. A server, comprising:
- a set of internal ports;
at least one external port; and
a scheduler;
wherein;
said set comprises a plurality of internal ports;
each of said plurality of internal ports is configured to be coupled to and to communicate with at least one other server and included in a cluster of N interconnected servers to form a router having M router ports corresponding to the total number of external ports of all the servers in the cluster;
said at least one external port is configured to couple to and to communicate with a network or a network device to receive one of a plurality of packet flows;
said scheduler is configured to switch packets from said at least one external port to at least one of the plurality of internal ports of said set, or from one of the plurality of internal ports of said set to another one of the plurality internal ports of said set, by load balancing a packet flow comprising a plurality of packets;
said load balancing comprises randomly selecting one of said plurality of internal ports from said set to transmit each packet of said plurality of packets to a receiving interconnected server coupled to the selected internal port; and
the scheduler is further configured to switch at a processing rate that is independent of M.
1 Assignment
0 Petitions
Accused Products
Abstract
Generally, this disclosure describes a scalable cluster router that includes a plurality of server-class computers interconnected together to form a router. Each server may be configured to independently schedule switching of packets to reduce the switch speed requirements on a per server basis. Each server may include a scheduler that independently load balances packet flows across servers of the cluster. Router capacity may be incrementally scaled by adding more servers, and router capacity may be increased by load balancing techniques within individual servers.
38 Citations
27 Claims
-
1. A server, comprising:
-
a set of internal ports; at least one external port; and a scheduler; wherein; said set comprises a plurality of internal ports; each of said plurality of internal ports is configured to be coupled to and to communicate with at least one other server and included in a cluster of N interconnected servers to form a router having M router ports corresponding to the total number of external ports of all the servers in the cluster; said at least one external port is configured to couple to and to communicate with a network or a network device to receive one of a plurality of packet flows; said scheduler is configured to switch packets from said at least one external port to at least one of the plurality of internal ports of said set, or from one of the plurality of internal ports of said set to another one of the plurality internal ports of said set, by load balancing a packet flow comprising a plurality of packets; said load balancing comprises randomly selecting one of said plurality of internal ports from said set to transmit each packet of said plurality of packets to a receiving interconnected server coupled to the selected internal port; and the scheduler is further configured to switch at a processing rate that is independent of M. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method, comprising:
-
receiving a packet flow at an external port of an input node server, wherein said input node server is one of a plurality of N node servers coupled in an interconnect topology in a cluster router, the cluster router comprising a plurality of M router ports corresponding to the total number of external ports of all the servers in the cluster, processing said packet flow to determine a destination of each of the packets of the packet flow, wherein said destination comprises an output node server of said plurality of node servers; switching packets of said packet flow from an external port to an internal port of a set of internal ports, or from one internal port of said set to another internal port of said set, by load balancing a packet flow; wherein; said load balancing comprises randomly selecting, for each packet of said packet flow, one internal port of said set of internal ports to transmit each packet of said packet flow to a receiving interconnected server coupled to the selected internal port; and said switching occurs at rate that is independent of M. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. An apparatus comprising a computer-readable storage medium having stored thereon computer readable instructions that when executed by one or more processors result in the following operations, comprising:
-
processing a packet flow received at an external port of an input node server to determine a destination of the packets of the packet flow, wherein said destination comprises an output node server; switching packets from said external port to one internal port of a set of internal ports of the input node server, or from one internal port of said set to another internal port of said set, by load balancing a packet flow; wherein; said load balancing comprises randomly selecting, for each packet of a plurality of packets within the packet flow, one of said set of internal ports to transmit each packet of said plurality of packets to another server coupled to the selected internal port; said input node server is one of a plurality of N node servers coupled in an interconnect topology in a cluster router, the cluster router comprising a plurality of M router ports corresponding to the total number of external ports of all the servers in the cluster; and said switching occurs at rate that is independent of M. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
Specification