Topologia di rete (centro elaborazione dati)

La topologia di rete di un data center è il tipo di interconnessione tra server e switch e viene scelta in base alle esigenze aziendali o di business. La topologia di rete deve essere scalabile ed efficiente nel connettere decine o anche centinaia di migliaia di server per rispondere alla domanda crescente in ambito di cloud computing.

Classificazione fissa/flessibile di una topologia modifica

 
Classificazione della topologia di rete di un data center.

Una classificazione possibile per la topologia di rete di un data center distingue le reti fisse da quelle flessibili dopo che viene fisicamente costruita. Le architetture vengono classificate a topologia fissa (fixed-topology architectures) o a topologia flessibile (flexible-topology architectures)[1] in base alla possibilità di modificare la rete una volta che questa è entrata in funzione. Le architetture a topologia fissa possono essere di tipo fat-tree come l'architettura proposta da Al-Fares[2] o le architetture PortLand[3] e Hedera[4]. Altre architetture a topologia fissa sono le Clos networks[5] e le topologie ricorsive come le DCell[6] e le BCube[7], le MDCube[8] o le FiConn[9]. Le architetture a topologia flessibile possono assere ad esempio di tipo c-Through[10], Helios[11] e OSA[12].

Le reti a topologia flessibile possono essere basate su una tecnologia ottica[12] (ne è un esempio l'architettura di rete Proteus): queste offrono una larghezza di banda maggiore rispetto a quelle basate sui cavi elettrici e la loro topologia può essere modificata anche durante l'operatività del data center. Altre topologie flessibili usano una tecnologia ibrida, ovvero basate sia su un protocollo di packet switching di tipo elettrico che ottico[10]. Esistono inoltre reti per data center flessibili denominate Jellyfish che adottano la topologia di un grafo random[13].

Nella maggior parte di queste architetture il punto di partenza è la scelta della topologia, così da evitare l'implementazione di un protocollo di routing; infatti ogni nodo può eseguire un algoritmo specifico per determinare la porta di uscita di un pacchetto in base all'indirizzo di destinazione. Un protocollo di multipath routing o altre tecniche possono essere implementate per migliorare le performance della rete[1].

Topologie ad albero modifica

Basic tree modifica

 
topologia di rete per data center basic tree

La topologia basic tree è una topologia ad albero consiste in due o tre livelli di switch/router aventi i server come foglie (nodi terminali dell'albero). In una topologia a 2 livelli vi è un core tier switch alla radice dell'albero, collegato ad un livello di edge tier switch connessi a loro volta ai server. In una topologia a 3 livelli un livello di aggregation tier switch è interposto tra il livello core tier e il livello edge tier. Ogni livello dell'albero è connesso solamente a quello superiore e quello inferiore, dunque la comunicazione tra livelli non adiacenti è possibile solo grazie ai livelli intermedi. Poiché i tier switch di livello più alto devono garantire la comunicazione tra un elevato numero di server, è necessario che forniscano alte performance e affidabilità. Questo crea dei problemi di scalabilità che possono essere risolti sfruttando altre topologie di rete.

Fat tree modifica

 
topologia di rete per data center fat tree

La topologia di rete fat tree è stata introdotta da Charles E. Leirson nel 1985[14]. In una topologia di rete fat tree i rami (vertici) in prossimità del livello core tier sono più "spessi", ovvero permettono una larghezza di banda maggiore rispetto al basic tree impiegando un maggior numero di switch.

La topologia di rete fat tree è basata su un albero binario completo i cui nodi sono switch aventi n porte. Ogni switch del livello edge tier è connesso a   server mentre le rimanenti   porte sono connesse ad altre   porte di switch appartenenti al livello aggregation tier. Le   porte degli switch dell'aggregation level, le   porte degli switch dell'edge level e le rimanenti   connesse ai server formano una cella elementare del fat tree chiamata pod. Ogni pod ha   collegamenti al livello core tier, ovvero   percorsi per ognuno degli   edge switch del pod. Nel livello core tier ci sono   switch aventi   porte, ognuno connesso a ciascuno dei pod facenti parte della rete.

Topologie ricorsive modifica

DCell modifica

 
topologia di rete per data center DCell, n = 4

Una topologia DCell è una topologia di rete per data center proposta da Chuanxiong Guo nel 2008[6]. La DCell è una struttura definita ricorsivamente in cui una DCell di alto livello è costruita da diverse DCell di basso livello; ognuna di queste è completamente connessa con le altre. Nell'architettura DCell un server è dotato di più network interface controller (NIC). Di solito, la sfida più rilevante in una rete di data center è come interconnettere in modo efficiente un numero esponenziale di server. Per questo motivo ci sono tre obiettivi di design[15] per la rete di data center:

  • Scalabilità
  • Tolleranza ai guasti
  • Capacità complessiva di trasmissione dell'informazione

Una struttura DCell con un basso grado di connessione può supportare diversi milioni di server. La struttura DCell è tollerante ai guasti perché non ha un singolo punto di errore e il suo protocollo di routing esegue l'instradamento del percorso più breve anche in presenza di errori gravi del nodo o del collegamento. La DCell offre una capacità di rete superiore rispetto ad una tradizionale struttura ad albero perché il traffico di rete viene distribuito in modo uniforme tra i server e tra i collegamenti su un server.

Struttura fisica e costruzione ricorsiva di una rete DCell modifica

L'elemento più elementare di un DCell si chiama DCell . Una DCell  composta da   server e uno switch n-port; ogni server nella DCell  è connesso allo switch nella stessa DCell . Una DCell di alto livello è costruita partendo da altre DCell di livello più basso. Consideriamo una DCell  appartenente al livello k-esimo dell'intera DCell. Il primo passo è costruire una DCell  partendo da altre DCell . Ogni DCell  ha   DCell , e ogni server di ogni DCell  dentro una DCell  è connesso rispettivamente al server di un’altra DCell . Le DCell  sono connesse a tutte le altre grazie ad una connessione fra ogni coppia di DCell . Per costruire la DCell  possiamo applicare la stessa procedura usando diverse DCell s. In una DCell , ogni server avrà   connessioni: la prima connessione o livello-0 si connette a uno switch formando una DCell , e i livelli-i sono connessi al server nella stessa DCell  ma con una differente DCelli . Assumendo che ogni DCell  ha   servers, otterremo che una a DCell  sarà costituita da   DCell s, e di conseguenza   servers. Alla fine avremo:   servers. Il numero di server nella DCell cresce doppiamente in modo esponenziale, e il numero totale di livelli nella DCell è limitato dal numero di NIC presenti dentro di essa. La struttura DCell ha la capacità di scalare un numero molto grande di server usando switch e server con pochissime porte.

BCube modifica

 
topologia di rete per data center BCube

L'architettura di rete BCube adotta un approccio server-centrico per la produzione di un data center modulare utilizzando degli switch[16].L’elemento principale di una BCube, chiamato BCube , è molto simile ad una DCell :   server sono connessi a n-porte degli switch. La differenza principale tra BCube e DCell consiste nel loro diverso modo di scalare: BCube fa un uso maggiore di switches quando costruisce una struttura di alto livello. Durante la costruzione di una BCube , sono usati   extra switch connessi esattamente ad un server in ogni BCube . Pertanto una BCube  contiene n BCube  e   extra switch (se gli switch nella BCube  sono presi in considerazione, ci sono in totale   switches nella BCube ). Più genericamente, una BCube  è costruita da   BCube  e n  extra switch da n-porte. Questi extra switches sono connessi esattamente ad un server nella BCube . nel livello-k BCube, ogni livello non ha bisogno di switch (ciascuno dei quali è uno switch di n-porte). La topologia BCube fa un uso maggiore di switch nella costruzione di una struttura di alto livello, a differenza di quella DCell che usa soltanto un livello-0 di switch aventi n-porte. In ogni caso entrambe hanno bisogno di server per avere   NIC. La conseguenza è che i server saranno coinvolti nel passaggio di più pacchetti nella topologia DCell rispetto a BCube. Il numero dei livelli della BCube dipende dal numero delle porte nei server. Il numero dei server nella BCube cresce esponenzialmente con i livelli in una maniera molto più lenta rispetto a DCell. Considerando che BCube è un’architettura progettata per i data center basati su container mobili, questo livello di scalabilità è più che sufficiente.

Topologie ottiche modifica

Proteus modifica

Comparazione delle topologie fisse modifica

Comparazione della scala di grandezza modifica

Per paragonare la scala di grandezza di un grafo che rappresenta la rete di un data center si possono variare: il numero di porte di uno switch n (grado di connessione del nodo associato allo switch), il numero di porte di un server k (grado di connessione del nodo associato allo switch) e il numero totale di server N all'interno del data center. La seguente tabella vengono analizzati il grado di connessione di un server, il diametro della reta (il più lungo tra tutti i percorsi più brevi esistenti tra due server), numero degli switch e il numero di cavi (archi del grafo) in relazione ai parametri n, k e N della topoligia fissa specifica.

Basic tree Fat tree DCell BCube
Grado di connessione dei server 1 1 k+1 k+1
Diametro della rete   6    
Numero di switch        
Numero di cavi (archi)        
Numero di server        

La prossima tabella mette in relazione il numero di server di una rete per data center rispetto al numero di porte di uno switch n (grado di connessione del nodo associato allo switch) e il numero di porte di un server k (grado di connessione del nodo associato allo switch).

n Basic tree Fat tree k DCell BCube
4 64 16 2 420 64
3 176.820 256
4   3   10   1.024
6 216 54 2 1.806 216
3 3.263.442 1.296
4   10   7.776
8 512 128 2 5.256 512
3 27.630.792 4.096
4   7   10   32.768
16 4.096 1.024 2 74.256 4.096
3   5   10   65.536
48 110.592 27.648 2 5.534.256 110.592

Note modifica

  1. ^ a b Liu, Y., Muppala, J. K., Veeraraghavan, M., Lin, D., Hamdi, M., Data Center Networks - Topologies, Architectures and Fault-Tolerance Characteristics, Springer, 2013, chapter 3, p. 15, ISBN 978-3-319-01948-2
  2. ^ Al-Fares, M., Loukissas, A., Vahdat, A., A scalable, commodity data center network architecture, In: Proceedings of the ACM SIGCOMM 2008 Conference on Data Communication, Seattle, pp. 63–74. ACM (2008)
  3. ^ Niranjan Mysore, R., Pamboris, A., Farrington, N., Huang, N., Miri, P., Radhakrishnan, S., Subramanya, V., Vahdat, A. Portland: a scalable fault-tolerant layer 2 data center network fabric, ACM SIGCOMM Comput. Commun. Rev. 39(4), 39–50 (2009)
  4. ^ Al-Fares, M., Radhakrishnan, S., Raghavan, B., Huang, N., Vahdat, A., Hedera: dynamic flow scheduling for data center networks, Proceedings of the 7th USENIX Conference on Networked Systems Design and Implementation, San Jose, p. 19. USENIX Association (2010)
  5. ^ Clos, Charles, "A study of non-blocking switching networks". Bell System Technical Journal. 32 (2): 406–424.
  6. ^ a b Guo, C., Wu, H., Tan, K., Shi, L., Zhang, Y., Lu, S. DCell: a scalable and fault-tolerant network structure for data centers, ACM SIGCOMM Comput. Commun. Rev. 38(4), 75–86 (2008)
  7. ^ Guo, C., Lu, G., Li, D., Wu, H., Zhang, X., Shi, Y., Tian, C., Zhang, Y., Lu, S., BCube: a high performance, server-centric network architecture for modular data centers, ACM SIGCOMM Comput. Commun. Rev. 39(4), 63–74 (2009)
  8. ^ Wu, H., Lu, G., Li, D., Guo, C., Zhang, Y., MDCube: a high performance network structure for modular data center interconnection, Proceedings of the 5th International Conference on Emerging Networking Experiments and Technologies, Rome, pp. 25–36. ACM (2009)
  9. ^ Li, D., Guo, C., Wu, H., Tan, K., Zhang, Y., Lu, S., Ficonn: using backup port for server interconnection in data centers, IEEE INFOCOM, Rio de Janeiro (2009)
  10. ^ a b Wang, G., Andersen, D., Kaminsky, M., Papagiannaki, K., Ng, T., Kozuch, M., Ryan, M., c-Through: part-time optics in data centers, ACM SIGCOMM Computer Communication Review, New Delhi, vol. 40, pp. 327–338. ACM (2010)
  11. ^ Farrington, N., Porter, G., Radhakrishnan, S., Bazzaz, H., Subramanya, V., Fainman, Y., Papen, G., Vahdat, A., Helios: a hybrid electrical/optical switch architecture for modular data centers, ACM SIGCOMM Computer Communication Review, New Delhi, vol. 40, pp. 339–350.ACM (2010)
  12. ^ a b Chen, K., Singla, A., Singh, A., Ramachandran, K., Xu, L., Zhang, Y., Wen, X., Chen, Y., OSA: an optical switching architecture for data center networks with unprecedented flexibility, Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation, Berkeley, pp. 1–14. USENIX Association (2012)
  13. ^ Ankit Singla, Chi-Yao Hong, Lucian Popa, P. Brighten Godfrey, Jellyfish: Networking Data Centers Randomly, University of Illinois at Urbana–Champaign, HP Labs, 2012
  14. ^ Charles E. Leiserson, Fat-trees: universal networks for hardware-efficient supercomputing, IEEE Transactions on Computers, Vol. 34 , no. 10, Oct. 1985, pp. 892-901.
  15. ^ M. Al-Fares, A. Loukissas, A. Vahdat, A scalable, commodity data center 2 network architecture, ACM SIGCOMM 2008 Conference on Data 3 Communication, Seattle, WA, 2008, pp. 63-74.
  16. ^ Lebiednik, B., Mangal, A., Tiwari, N., A Survey and Evaluation of Data Center Network Topologies, arXiv:1605.01701, 5 May 2016

Voci correlate modifica