# Fibre Channel

Het Fibre Channel protocol is een van de belangrijkste standaarden die worden gebruikt voor storage area-netwerken of SAN's.
Bij de opkomst van SAN's als tegenhanger van direct gekoppelde opslagsystemen die tot dan toe de belangrijkste methode van opslag waren, was Fibre Channel de eerste netwerktechniek die hoge doorvoersnelheden tussen de servers en het SAN-opslagsysteem mogelijk maakte.

## Ontwikkelingen

De ontwikkelingen op het gebied van Fibre Channel begonnen rond 1988 en de eerste standaard volgde in 1994. FC moest een veel eenvoudigere en goedkopere oplossing vormen voor HPPI (high performance parallel interface): een bustechnologie die gebruikt werd in supercomputer-omgevingen.
In de late jaren 1990 werden snelheden tussen servers en de SAN's van 1 Gbps gerealiseerd. Vooral in datacenter-omgevingen en geclusterde systemen was er behoefte aan een alternatief voor direct-attached storage-oplossingen (systemen waarbij het opslagmedium direct (fysiek) gekoppeld is aan de processor/server). In grotere systemen was SCSI de tot dan toe meest gebruikte techniek waarmee het onder meer mogelijk was om redundantie te realiseren via RAID-oplossingen.
Nadeel van DAS was dat een opslagsysteem vast gekoppeld zat aan de server: als je dan een cluster wilde opzetten om bij uitval van het ene systeem heel snel te kunnen overschakelen naar een andere server, moest elke node van zo'n cluster een eigen opslagsysteem hebben met alle data.
De eerste oplossingen waren om een speciale server op te zetten die alleen verantwoordelijk was voor dat doel: een zogenaamde file-server, maar als je ook die file-server redundant wilde uitvoeren, dan moest je elke file-server voorzien van een eigen opslagsysteem.
De oplossing was een SAN waarbij meerdere (file)servers gebruik konden maken van een gedeeld opslag-medium.
Het was daarbij noodzakelijk dat er een systeem werd ontwikkeld dat snelle communicatie tussen die servers en het opslagsysteem zelf ondersteunde, en de oplossing was Fibre Channel: een protocol dat gebruikmaakte van glasvezelverbindingen en dat hoge snelheden ondersteunde; dat het tevens mogelijk maakte om deze communicatie via switches te laten verlopen en dat geoptimaliseerd was voor deze toepassing.
Na de eerste FC-platforms met een lijnsnelheid van 1 Gbps werd in 2001 de snelheid verdubbeld tot 2 Gbps, vier jaar later gevolgd door 4 Gbps. Deze hoge snelheden konden worden gerealiseerd door gebruik te maken van speciale ASICs voor Fibre Channel: hiermee kon de verwerking in speciale hardware geschieden in plaats van gebruik te maken van algemene geïntegreerde circuits met een softwarematige oplossing.
In recente jaren zijn Fibre Channel-standaarden ontwikkeld tot 16 32 en ook al 64 Gbps.
Vooral marktleiders McData Corporation en Brocade Communications Systems (overgenomen door Broadcom) liepen voorop in de ontwikkeling van deze ASIC's en de producten die deze IC's gebruikten.

### Fibre Channel ontwikkelingen

Fibre Channel Variants :
| Naam | Line-rate (GBaud) | Doorvoer-snelheid (MBps)* | Beschikbaarheid (jaar) |
| 1GFC | 1.0625 | 200 | 1997 |
| 2GFC | 2.125 | 400 | 2001 |
| 4GFC | 4.25 | 800 | 2005 |
| 8GFC | 8.5 | 1600 | 2008 |
| 10GFC Serial | 10.52 | 2550 | 2004 |
| 10GFC Parallel | 12.75 | | |
| 16GFC | 14.025 | 3200 | 2011 |
| 20GFC | 21.04 | 5100 | 2008 |
* - Doorvoersnelheid bij duplex-verbindingen

## Protocol

Fibre Channel onderscheidt een viertal protocol-lagen of layers, vergelijkbaar met de OSI layers bekend van bijvoorbeeld TCP/IP dat op laag drie geschiedt en gebruikmaakt van ethernet op laag twee etc. Maar FC volgt niet het standaard zevenlagenmodel van OSI.
De lagen in FC zijn beschreven als volgt:
* FC4 — Protocol Mapping layer, hierin vindt de applicatie-laag plaats zoals bijvoorbeeld iSCSI of het IP. FC4 wordt ingekapseld in een protocol data unit of PDU en aangeboden aan laag FC2.
* FC3 — Common Services layer, een dunne tussenlaag die diensten kan aanbieden zoals encryptie of RAID-algoritmes;
* FC2 — Network layer, beschreven in de FC-PI-2-standaard, dit is de core van de belangrijkste Fibre Channel-networkprotocollen;
* FC1 — Data Link layer, hierin wordt de line coding en signalering beschreven;
* FC0 — PHY, fysieke laag voor de bekabeling, (elektrische of optische) signalen etc.;
Lagen FC0 t/m FC2 staan samen bekend als FC-PH, de fysieke lagen van Fibre Channel.
Fibre Channel-routers opereren op niveau FC4, switches tot FC2 en hubs op FC0.
De standaarden die 1, 2, 4, 8 en 16 Gb ondersteunen zijn backwards-compatibel: op een 16Gb-switch kunnen ook tragere snelheden gebruikt worden, maar de recente 10Gb- en 20Gb-standaarden ondersteunen deze compatibiliteit niet. Je kunt niet een 20Gb-switch gebruiken in een bestaande 4Gbps-FC-omgeving.

## Topologie

Fibre Channel kent drie verschillende topologieën:

### FC P2P

De meest eenvoudige toepassing van FC is een point-to-point topologie: hierbij zijn twee onderdelen rechtstreeks aan elkaar gekoppeld: de host is rechtstreeks gekoppeld aan het opslagsysteem. Alle bandbreedte is exclusief beschikbaar voor de host om met de storage te communiceren en vice-versa. Hoewel het meest eenvoudig is een P2P ook erg beperkt in de mogelijkheden en zijn de voordelen van een SAN ten opzichte van een DAS oplossing erg klein.

### Arbitrated loop

Ook wel bekend als FC-AL: hierbij zijn de hosts en een of meer opslagmedia aangesloten in een lus. Hierbij kunnen vele hosts toegang krijgen tot een enkel opslagsysteem. De bandbreedte in het netwerk wordt gedeeld, en de communicatie loopt slechts in een richting. De FC-AL was een betaalbaar alternatief voor een switched-topologie: in de beginjaren waren fibre-chanel switches erg kostbaar, en FC-AL bood een betaalbare oplossing om toch meerdere servers en opslag-nodes in een topologie te kunnen gebruiken. Enkele specificaties van FC-AL zijn:
* In FC-AL kunnen 127 nodes gebruikt worden (servers of storage nodes)
* Het is een serieel communicatie-protocol
* Op enig moment kunnen slechts twee nodes met elkaar communiceren
* Als de bekabeling ook daadwerkelijk als lus wordt gerealiseerd, kunnen bij uitval van een node de overige nodes met elkaar blijven communiceren.

### Switched fabric

Een FC-SW maakt in haar netwerk gebruik van een speciale FC-switch, die de commucatie regelt tussen de verschillende nodes in het netwerk. Door de toepassing van een switch is het mogelijk dat meerdere nodes tegelijkertijd gebruikmaken van het FC-netwerk. Hierdoor kunnen complexe structuren worden opgezet met optimale redundantie: een server kan meerdere FC-interfaces gebruiken en een storage-node ook waardoor het aantal "single point of failures" geminimaliseerd kunnen worden: de uitval van enig onderdeel in het netwerk zal dan niet leiden tot verlies van functionaliteit. Via de techniek "FC Zoning" kan een FC omgeving verdeeld worden in partities. Een FC-SW-omgeving maakt optimaal gebruik van de voordelen van een fibre-channel-oplossing: het ondersteunt efficiënte redundantie, biedt mogelijkheden tot het beveiligen van de toegang en kan de beschikbare bandbreedte optimaal gebruiken.

### Vergelijking topologieen

| Item | Point-to-Point | Arbitrated loop | Switched fabric |
| Max poorten | 2 | 127 | ~16777216 (2$^{24}$) |
| Adressering | N/A | 8-bit ALPA | 24-bit port ID |
| Effect bij uitval van 1 poort | Link valt uit | Loop onderbroken todat defecte poort wordt overbrugd | nvt |
| Verschillende link-snelheden ondersteund | Nee | Nee | Ja |
| Aankomst frames | In volgorde van zenden | In volgorde van zenden | Niet gegarandeerd |
| Toegang tot medium | Dedicated | Arbitrated | Dedicated |

## Fibre Channel infrastructuur

Een FC-infrastructuur in een "switched fabric" fibre-channel-oplossing kunnen verdeeld worden in twee modellen infrastructuur. Dit onderscheid vormt overigens geen onderdeel van de FC-standaarden: het is meer een algemeen ingeburgerde term, die ontstaan is uit de marketing-materialen om onderscheid tussen verschillende FC-toepassingen duidelijk te maken:

### FC Director

Een FC Director biedt een groot aantal poorten/interfaces in een - normaliter - modulair chassis. In een infrastructuur waar gebruikgemaakt wordt van een director kan je een systeem realiseren zonder enig "single point of failure".

### FC Switches

FC Switches zijn over het algemeen systemen met een vaste configuratie of beperkt modulair en bieden minder poorten dan een director.

### FC Host Bus Adaptor

Een HBA verbindt de node met andere onderdelen van het FC netwerk (vaak de switch of director in een FC-SW netwerk). HBA's zijn beschikbaar voor de meest voorkomende computer-systemen. Dat kan een standaard server zijn (bijvoorbeeld een server op basis van een Intel processor die draait onder Windows of Linux), maar ook een supercomputer of een ander high-end-systeem.

### Fysieke laag

Afhankelijk van de gewenste toepassing en de topologie van het netwerk kunnen verschillende media worden gebruikt zoals "multimode" fibre (MMF) of "single mode fibre" (SMF). MMF is over het algemeen goedkoper en geschikt voor kortere afstanden: als alle onderdelen van het netwerk fysiek op dezelfde locatie zijn ondergebracht (bijvoorbeeld in een datacenter) dan zal vaak een MMF-infrastructuur voor de hand liggen. Met een SMF infrastructuur is het mogelijk om de nodes van een enkel FC-netwerk tot op tientallen kilometers van elkaar op te stellen.

## FCoE

Fibre Channel over Ethernet: hierbij worden Fibre Channel-frames ingekapseld in een ethernet-frame zodat een FC-netwerk gebruik kan maken van moderne snelle ethernet-standaarden. Dit is niet hetzelfde als onderstaande iSCSI-norm: bij iSCSI wordt het SCSI-protocol verstuurd over een IP-netwerk, wat in de praktijk een ethernet-netwerk zal zijn, overigens. Bij FCoE worden fibre-channel-frames ingepakt in een ethernet-frame: dus puur een OSI layer 2-oplossing terwijl bij iSCSI een SCSI-frame in een IP-pakket wordt gepakt en vervolgens over een TCP/IP-netwerk verstuurd en kunnen de pakketten gerouteerd worden op OSI layer 3.

## iSCSI

Door de ontwikkelingen op het gebied van ethernet is het iSCSI-protocol snel marktaandeel aan het overnemen van fibre-channel. Omdat iSCSI gebruikmaakt van ethernet-verbindingen kunnen zowel de "gewone" dataverbindingen als de SAN-verbindingen gebruikmaken van dezelfde infrastructuur zoals switches. Moderne (high-end) ethernet-switches bieden mogelijkheden om speciale VLAN's te configureren die geoptimaliseerd zijn voor SAN's via iSCSI. Hoewel in vrijwel alle gevallen een iSCSI netwerk gebruikmaakt van een ethernet-infrastructuur is dit niet vereist: het zou ook een Packet over SONET/SDH netwerk kunnen zijn.

## Logical unit number

Een LUN is een nummer dat in een opslagsysteem gebruikt wordt om een logische unit te adresseren. LUN's worden in diverse storage oplossingen gebruikt, maar zullen door de meeste mensen tegenwoordig geassocieerd worden met een Fibre-Channel- of iSCSI-omgeving. Een LUN kan toegekend worden aan elk device wat lees- en schrijfoperaties ondersteunt (zoals bijvoorbeeld een tape-drive) maar wordt vooral gebruikt om een logische disk in een SAN te identificeren. Voorbeeld: Als je een SCSI-opslagsysteem in gedachten hebt: het opslagsysteem bestaat uit meerdere fysieke disk-drives en wordt geformatteerd als een RAID 5-array. De gehele RAID 5-array wordt vervolgens gepartioneerd in een aantal opslagvolumes. Om de verschillende opslagvolumes te kunnen identificeren wordt aan elk volume een LUN toegekend. Overigens hoeft een LUN helemaal geen "nummer" te zijn: de term logical unit number is blijven hangen maar is in werkelijkheid een 64 bits identifier, verdeeld in 4 - 16 bits onderdelen. Zo'n 16 bits identifier wordt over het algemeen aangeduid met een decimaal getal.

## SAN versus NAS

Een SAN is een netwerk dat het mogelijk maakt om meerdere servers gebruik te laten maken van dezelfde opslagomgeving. Hoewel het voor de eindgebruiker wellicht overeenkomsten lijkt te vormen met Network Attached Storage is het iets geheel anders. Een NAS-systeem biedt op bestandsniveau een opslagmedium via een netwerk. Voorbeelden zijn NFS of CIFS. Een SAN biedt op blokniveau toegang tot data en dus niet op file-niveau.