Storage area network

PS6000 350px-06Een Storage Area Network (SAN) een architectuur die dient als koppeling tussen servers (initiator) en opslagapparaten (target) (denk hierbij aan disk arrays, tape libraries en optical jukeboxes) op zo’n manier dat het voor het besturingssysteem lijkt alsof het opslagapparaat direct is aangesloten. Omdat de server en opslag fysiek van elkaar losgekoppeld zijn, is het beheer van het opslagsysteem eenvoudig uit te voeren zonder de server uit bedrijf te nemen. Ook kan een SAN-systeem met redundante opslag uitgerust worden.

Hoewel kosten en complexiteit verminderen, worden (gemeten naar 2007) SAN’s vooral gebruikt in de grotere rekencentra.

In tegenstelling tot een SAN maakt network-attached storage (NAS) gebruik van bestandsgeoriënteerde protocollen zoals NFS of SMB/CIFS, waar het duidelijk is dat de opslag extern plaatsvindt en de computers een deel van een bestand opvragen in plaats van een blok op een opslagmedium.

 

Netwerktypen

De meeste Storage Area Networks maken gebruik van het SCSI-protocol voor de communicatie tussen servers en de via het SAN aangeboden opslag. Het maakt echter geen gebruik van de fysieke SCSI-interface (bijvoorbeeld kabels), omdat de topologie hiervan niet bruikbaar is in dit netwerk. Om een netwerk te creëren, wordt een mapping layer gebruikt via andere laagniveauprotocollen:

  • iSCSI, mapping SCSI over TCP/IP
  • iSER, mapping iSCSI over InfiniBand (IB)
  • HyperSCSI, mapping SCSI over ethernet
  • FICON mapping over Fibre Channel (gebruikt door mainframecomputers)
  • ATA over ethernet, mapping ATA over ethernet
  • Fibre Channel over ethernet


SCSI

SCSI betekent Small Computer System Interface en is een controller-technologie die gebruikt wordt om harde schijven en randapparaten zoals cd-rom-spelers en tapestreamers te koppelen op servers. Ook werd SCSI voor de komst van USB en Firewire gebruikt om scanners aan te sluiten.

De SCSI-bus en SCSI-schijven liggen aan de bovenkant van de markt en worden vooral gebruikt op de wat zwaardere computers, zoals werkstations, servers en minicomputers. SCSI-schijven hebben tegenwoordig toerentallen tot 15000 rotaties per minuut(rpm). Omdat de SCSI-bus niet bezet blijft terwijl een schijf bezig is met een zoekactie (in tegenstelling tot IDE) kan een systeem met meerdere SCSI-aansluitingen zeer hoge doorvoersnelheden halen.

De interface bevat een parallelle databus die 8 of in latere uitvoeringen 16 bits breed is. De 8-bitsuitvoeringen gebruiken 50-aderige kabels, voor 16 bits zijn dit 68 aders. Er zijn 3 respectievelijk 4 adreslijnen zodat 8 of 16 adressen voor de nummering van de aangesloten apparaten gebruikt kunnen worden. Eén adres is echter altijd in gebruik door de controller. De databus moet aan beide uiteinden afgesloten worden met een set afsluitweerstanden (terminator). Voor de “LVD” (Low Voltage Differential) uitvoeringen is deze afsluiting actief uitgevoerd, hiermee kan de bruikbare buslengte aanmerkelijk vergroot worden.

Van de 16 bitsuitvoering is ook een “hot pluggable” uitvoering beschikbaar. Deze gebruikt een 80 pinsaansluiting (SCA), waarin ook de voeding van de schijf meegenomen is. Deze laatste wordt veel toegepast in RAID-configuraties waarbij schijven verwisseld kunnen worden zonder dat het systeem uit de lucht gaat.

De laatste incarnatie van SCSI is Serial Attached SCSI (SAS), waarmee de gegevens serieel vervoerd worden.

 

iSCSI

Internet Small Computer System Interface (iSCSI) is een netwerkprotocol ontwikkeld door de Internet Engineering Task Force (IETF). Het wordt gebruikt om SCSI-commando’s te verzenden over TCP/IP netwerken, dit kan een Local area network, een Wide area network of het internet zijn. De bedoeling van dit protocol is om verbindingen op te stellen tussen opslagapparaten, servers en clients. Wanneer een opslagfaciliteit niet rechtstreeks verbonden is met de server, zal iSCSI dit wel zo doen lijken. Dit protocol wordt gebruikt met Storage Area Network (SAN). Een alternatief protocol dat gebruikt wordt bij SAN’s is Fiber Channel over IP. Een nadeel hiervan is dat de transmissies dan over glasvezel moeten gebeuren terwijl iSCSI kan gebruikt worden over bestaande netwerkinfrastructuur. Bekende bedrijven zoals Microsoft, IBM, Cisco en Intel maken gebruik van de iSCSI-standaard.

 

Werking

De client zal hier de term ‘initiator’ worden toegewezen en de server ‘target’.

Een initiator zal een SCSI commando versturen naar een I/O-apparaat, logical unit (LU) genoemd, van een server om een service aan te vragen. Omdat een target meerdere LU’s kan hebben, zal naar elke LU verwezen worden via een logical unit number (LUN).

SCSI-commando’s worden verstuurd in een command descriptor block (CDB) datastructuur.

 

Basisprincipes:

  1. Sessies

De data die wordt verstuurd van initiator naar target en terug wordt opgedeeld in protocol data units(PDU). Als een initiator en een target met elkaar communiceren kan dit gebeuren over meerdere TCP-connecties. De verzameling van zo’n connecties noemt men een sessie en wordt benoemd met een sessie ID. Ook krijgt elke connectie een connectie ID. Over alle connecties wordt de target op dezelfde wijze bekeken en de initiator is ook gelijk over alle connecties van een sessie.

  1. Loginproces

Om een connectie tussen initiator en target te vestigen zal het loginproces moeten worden gestart. Dit proces wordt gestart als een initiator connecteert met een TCP-poort van de target. Dan kan er optioneel een authenticatie uitgevoerd worden en kan er een security association protocol ingesteld worden, zoals bijvoorbeeld IPsec. Als dan de juiste parameters zijn bevestigd eindigt de loginfase en begint de fase met volledige functionaliteit en mogen SCSI-commando’s verzonden worden. Tijdens de loginfase mag enkel gebruikgemaakt worden van login requests en login responses. Als er buiten deze fase login PDU’s ontvangen worden door een target zal deze direct de connectie verbreken.

  1. Connectie-aanhankelijkheid

Als een initiator over een bepaalde connectie een request stuurt naar een target zal het target de response of andere gerelateerde PDU’s over dezelfde connectie moeten terugsturen. Als de connectie wordt verbroken voor het commando voltooid is, zal een andere connectie worden toegewezen aan het onvoltooide commando.

  1. Naamgeving

Elke initiator of target heeft een unieke naam voor identificatie. Er zijn drie gebruikte formaten in iSCSI:

 

IQN

De iSCSI Qualified Name maakt gebruik van domeinnamen. Diegene die de naam genereert moet een geregistreerde domeinnaam bezitten, dit om te voorkomen dat verschillende targets dezelfde naam hebben. De iSCSI Qualified Name bestaat uit volgende onderdelen:

iqn.2001-04.com.example:storage.disk1.sys1.xyz 

 

IEEE EUI-64

Dit formaat, opgesteld door IEEE, wordt gebruikt zodat er makkelijk kan worden omgezet naar een globale identifier voor gebruik in andere netwerkprotocollen. Dit formaat bestaat uit volgende onderdelen:

eui.02004567A425678D

 

T11 Network Address Authority (NAA)

Dit is een formaat voor compatibiliteit met glasvezel en serial attached SCSI (SAS). Dit formaat bestaat uit volgende delen: * De string naa. * ASCII-gecodeerde hexadecimale cijfers

naa.62004567BA64678D0123456789ABCDEF