Fibre Channel over Ethernet (FCoE) è uno standard sviluppato dal gruppo di lavoro FC-BB-5 del T11, pubblicato il 4 giugno 2009 e inviato all'INCITS per la pubblicazione e la ratificazione come standard ANSI.
FCoE permette di mappare i frame Fibre Channel su una rete IEEE 802.3 full-duplex. In questo modo è possibile utilizzare le connessioni 10 gigabit Ethernet per il trasporto dei pacchetti Fibre Channel senza modificare il protocollo e le funzionalità Fibre Channel. Per operare, FCoE ha bisogno di una rete lossless ethernet che garantisca un trasporto senza perdita di pacchetti indispensabile al trasporto del traffico SCSI che è incapsulato all'interno dei pacchetti Fibre Channel.
FCoE permette di consolidare il traffico Fibre Channel sulla connessione Ethernet utilizzata per i dati permettendo così una più semplice connettività dei server all'infrastruttura garantendo allo stesso tempo la piena compatibilità con tutto il software sviluppato per Fibre Channel in quanto il trasporto dei pacchetti fibre Channel è trasparente e sono garantite tutte le funzionalità native incluso lo zoning. Sono necessarie apposite schede di rete, chiamate CNA (Converged Network Adapter), e switch ethernet per il trasporto e l'instradamento di FCoE mentre tutte le altre componenti della server farm, incluso i sistemi operativi, rimangono invariate rispetto ad una soluzione nativa Fibre Channel.
Premesse storiche
Ethernet è di gran lunga il protocollo più diffuso per le connessioni dati fra host. In un centro elaborazione dati alle connessioni ethernet si aggiungono molto spesso anche le connessioni Fibre Channel oltre ad alcune connessioni proprietarie in ambito HPC. In un server tradizionale le connessioni ethernet sono utilizzate per la trasmissione di dati da e verso altri server e/o client, mentre le connessioni Fibre Channel sono utilizzate per lo scambio di dati con la Storage Area Network. Un server può quindi presentare sia interfacce di rete ethernet per il trasporto del traffico IP che interfacce Fibre Channel per il trasporto del traffico dati verso la SAN. Le connessioni ethernet sono gestite da uno switch ethernet con connessioni solitamente a 1 Gb/s, mentre quelle Fibre Channel a un Fibre Channel switch con connessioni a 2 o 4 Gb/s (sono disponibili anche connessioni a 8/16Gb/s su alcuni nuovi apparati ma probabilmente l'introduzione di FCoE contrasterà/affiancherà il decollo di questa tecnologia anche se la Fibre Channel Industry Association (FCIA) nelle sue presentazioni propone entrambe le tecnologie).
Tipologie di traffico dati All'interno di un CED si possono trovare essenzialmente tre tipologie di traffico dati: LAN: Il classico traffico LAN, che opera su IPv4 e IPv6, deve continuare ad utilizzare la rete ethernet in modo nativo in quanto gli investimenti fatti in questi ultimi tre decenni sono troppo ingenti per pensare di passare ad una tecnologia alternativa. Questo traffico dati generalmente non è sensibile alla latenza ed è in grado di recuperare in modo efficiente la perdita di uno o più pacchetti. IPC: Il traffico per la comunicazione tra processi (IPC) in un computer cluster è caratterizzato da piccoli pacchetti di segnalazione e sincronizzazione solitamente molto sensibili alla latenza e pacchetti di grandi dimensioni per la sincronizzazione o il trasferimento di grandi quantità di dati fra un sistema e l'altro. Il Clustered file system, il cluster di database (es.: Oracle RAC) e i sistemi di gestione di macchine virtuali (es. VMware Server e Hyper-V) sono esempi di computer cluster. Tutti questi sistemi di cluster hanno alla base anche uno storage condiviso che molto spesso opera attraverso connessioni Fibre Channel. Fibre Channel: Fibre Channel è diventato il protocollo più utilizzato per la connettività dedicata ai sistemi storage nei CED e una sua sostituzione con un altro protocollo che non gestisce lo zoning, come ad esempio iSCSI, creerebbe notevoli problematiche e pregiudicherebbe grandi investimenti effettuati.
Vi è, però, una sentita necessità di consolidamento in un'unica infrastruttura sia per semplificare il cablaggio sia per ottimizzare i costi dell'hardware e i costi di gestione pur garantendo le specificità e peculiarità delle attuali tecnologie.
10 gigabit Ethernet
L'avvento delle tecnologie di trasmissione a 10 gigabit Ethernet permettono di disporre di una banda sufficiente per trasportare contemporaneamente su un'unica connessione ridondata sia il traffico IP che quello Fibre Channel. Sfortunatamente, però, ethernet ed IP sono protocolli lossy ossia tollerano una perdita di un pacchetto e prevedono dei meccanismi rapidi di ritrasmissione mentre il protocollo SCSI trasportato dai pacchetti Fibre Channel non permette il recupero di un singolo pacchetto e richiede una completa rinegoziazione della connessione, operazione che, oltre ad essere molto onerosa in termini di tempo, può comportare anche degli errori a livello applicativo. SCSI, infatti, è stato pensato come un protocollo adatto ad operare su brevissime distanze (pochi metri) e su connessioni sicure.
Lossless ethernet Per garantire una connessione lossless, Fibre Channel utilizza un sistema a credit Buffer-to-Buffer (B2B) in cui, in fase di inizializzazione, le due estremità di un collegamento si scambiano le informazioni relative alla configurazione dei buffer. Uno scambio di dati avviene solo se è disponibile almeno un buffer libero. In questo modo si può garantire un livello di sicurezza di trasmissione adatto a trasmettere pacchetti SCSI.
Ethernet non è stato pensato come protocollo lossless e prevede lo scarto di un pacchetto in questi casi: Frame error: ossia errore di trasmissione. Facilmente eliminabile riducendolo a tassi insignificanti all'interno di un CED grazie alle moderne tecnologie di cablaggio. Collision: Ethernet è un protocollo che ammette la collisione. Con i moderni switch e le connessioni full-duplex non esiste la possibilità di collisione fra due trasmissioni. Congestion: La congestione avviene quando si verifica un buffer overflow, ossia quando non è possibile inviare su una linea tutti i pacchetti che si hanno in ingresso in quanto la velocità di trasmissione risulta inferiore alla velocità con cui i pacchetti sono ricevuti. Ethernet non supporta un meccanismo a credit come si ha per Fibre Channel ma ha uno strumento di controllo di flusso che permette di evitare le congestioni: il pacchetto PAUSE.
PAUSE
Il frame PAUSE è utilizzato per richiedere la sospensione della trasmissione di pacchetti permettendo, così, l'implementazione di un controllo di flusso che può evitare la congestione. Il frame PAUSE è un frame standard ethernet senza tag ossia non appartenente ad alcuna VLAN. Il frame opera, quindi, sul collegamento sospendendo il traffico di tutte le VLan.
Il frame (come si può vedere nell'illustrazione qui a fianco) è così composto Byte 1-6: Indirizzo MAC di destinazione 01:80:C2:00:00:01 Byte 7-12: Indirizzo MAC della sorgente Byte 13-14: Ethertype=0x8808 tipo di pacchetto ethernet Byte 15-16: OpCode=0x0001 Byte 17-18: Pause Time. Durata della pausa richiesta in Pause Quanta. Un Pause Quanta è il tempo necessario a trasmettere 512 bit, quindi, dipende dalla velocità di trasmissione. Byte 19-60: Padding (riempimento) di 42 byte. Byte 61-64: CRC codice di controllo del frame
Priority Flow Control
Per rendere più efficiente il controllo di flusso, invece del frame PAUSE, Cisco ha proposto l'utilizzo del frame Priority Flow Control (PFC) che definisce un Pause Quanta per ciascuna delle 8 code definite dal protocollo IEEE 802.1Q tramite il campo user priority definito dal protocollo IEEE 802.1p.
Il frame (come si può vedere nell'illustrazione qui a fianco) è così composto: Byte 1-6: Indirizzo MAC di destinazione 01:80:C2:00:00:01 Byte 7-12: Indirizzo MAC della sorgente Byte 13-14: Ethertype=0x8808 tipo di pacchetto ethernet Byte 15-16: OpCode=0x0101 (unico tipo ammesso) Byte 17-18: Class enable vector, un vettore che indica se il valore Time di ciascuna classe è valido o meno. Il byte più significativo è posto a 0 mentre i bit di quello meno significativo sono posti a 1 se il relativo Time n è valido, altrimenti sono posti a 0. Byte 19-20: Time class 0. Equivalente del Pause Time ma con riferimento alla priority 0. Byte 21-22: Time class 1. Equivalente del Pause Time ma con riferimento alla priority 1. Byte 23-24: Time class 2. Equivalente del Pause Time ma con riferimento alla priority 2. Byte 25-26: Time class 3. Equivalente del Pause Time ma con riferimento alla priority 3. Byte 27-28: Time class 4. Equivalente del Pause Time ma con riferimento alla priority 4. Byte 29-30: Time class 5. Equivalente del Pause Time ma con riferimento alla priority 5. Byte 31-32: Time class 6. Equivalente del Pause Time ma con riferimento alla priority 6. Byte 33-34: Time class 7. Equivalente del Pause Time ma con riferimento alla priority 7. Byte 35-60: Padding (riempimento) di 26 byte. Byte 61-64: CRC codice di controllo del frame
Vantaggi e svantaggi del lossless ethernet Non è molto diffusa l'implementazione del frame PAUSE, ne tanto meno la sua evoluzione (PFC) proposta da Cisco, poiché gli standard IEEE definiscono il meccanismo di base ma non, in modo particolareggiato, l'intero meccanismo e lasciano la strada aperta a diverse implementazioni con la conseguente difficoltà di standardizzazione fra diversi produttori.
L'adozione su una rete ampia che vada oltre quella specifica e dedicata del CED creerebbe, inoltre, delle grandi problematiche di gestione e causerebbero un notevole aumento di delay di trasmissione che creerebbero notevoli problemi a molti protocolli. Si potrebbe arrivare anche a situazioni limite di blocco di una rete dovuto ad una richiesta circolare di buffer deadlock.
Per poter trasportare in modo nativo il traffico di storage, ossia il protocollo SCSI, come si è detto è indispensabile evitare la perdita di pacchetti dovuta a problemi di congestione, inoltre protocolli come NFS potrebbero trarne vantaggio mentre più in generale il protocollo TCP ha un meccanismo di recupero dei pacchetti persi molto efficiente e a sua volta utilizza lo scarto (drop) dei pacchetti per controllare a livello più alto la congestione.
Congestion Notification Per armonizzare queste differenze fra diversi produttori e gestire in modo efficiente la congestione è stato proposto il protocollo 802.1Qau. Il protocollo CN permetterà funzionalità aggiuntive su una infrastruttura che implementa il controllo di flusso basato sulle classi IEEE 802.1p Class Based Flow Control (CBFC).
Trasporto di IP su Fibre Channel In passato ci si è concentrati molto sul trasporto di IP sull'infrastruttura Fibre Channel ma la diffusione della rete ethernet e le considerazioni sopra riportate hanno decretato l'abbandono, almeno commerciale, di queste tecnologie. Queste sono le principali RFC proposte per il trasporto del traffico IP su Fibre Channel: RFC 2625 - IP and ARP over Fibre Channel - Giugno 1999 - Rimpiazzata da RFC 4338 RFC 3831 - Transmission of IPv6 Packets over Fibre Channel - Luglio 2004 - Rimpiazzata da RFC 4338 RFC 4338 - Transmission of IPv6, IPv4, and Address Resolution Protocol (ARP) Packets over Fibre Channel - Gennaio 2006 - Modificata in parte da RFC 5994 RFC 5994 - IANA Allocation Guidelines for the Address Resolution Protocol (ARP) - Aprile 2009
FCoE
FCoE è un nuovo standard che è stato proposto nell'aprile 2007 dal gruppo di lavoro FC-BB-5 dell'INCITS T11.
L'idea alla base di questa proposta è molto semplice: realizzare una convergenze delle connessioni dati trasportando ciascun pacchetto Fibre Channel all'interno di un pacchetto ethernet.
FCoE o FCoCEE Entrambi i termini sono corretti. FCoCEE è l'acronimo di Fibre Channel over Convergence Enhanced Ethernet ossia Fibre Channel sulla rete ethernet evoluta con le tecnologie abilitanti necessarie per il protocollo FCoE.
Principi di funzionamento