...

DIACONO - Introduzione alla progettazione di un Data Center

by user

on
Category: Documents
24

views

Report

Comments

Transcript

DIACONO - Introduzione alla progettazione di un Data Center
Introduzione alla progettazione
di un Data Center complesso
Domenico Diacono
INFN-Bari
[email protected]
Corsi intensivi per APM GARR - Bari, Napoli,
Reggio Calabria, Catania
TIA
• La Telecommunications Industry Association nell’Aprile del 2005 ha
rilasciato il documento
TIA-942 Telecommunications Infrastructure Standard for Data Centers
progettato per essere usato fin dalle prime fasi della progettazione, ed
approvato dall’American National Standard Institute (ANSI)
• ANSI/NECA/BICSI 002 Data Center Design and Implementation Best
Practices
• La TIA-942 copre le seguenti aree:
1.
2.
3.
4.
Organizzazione dello spazio e layout del DC
Infrastruttura di cablaggio
Livelli di ridondanza ed affidabilità
Impatto ambientale
Site space and layout
Site space and layout
• Una corretta allocazione degli spazi deve garantire una riallocazione
semplice al crescere del DC: si tratta quindi di trovare un equilibrio
tra i costi iniziali e le previsioni di espansione futura.
• Il DC dovrebbe contenere una quantità ragionevole di «white
space» flessibile, lo spazio circostante dovrebbe anche essere
considerato in vista di una espansione.
• TIA-942 individua delle aree funzionali, che aiutano alla
sistemazione delle apparecchiature seguendo uno schema standard
a stella: seguire questa traccia permette di costruire un DC capace
di assorbire le crescite future con minimo downtime.
Functional area: ER
• Una o più Entrance Room (ER):
– E' uno spazio nel quale gli apparati di accesso del
fornitore di connettività (GARR?) si interfacciano con il
sistema di cablaggio interno del data center.
– Lo standard raccomanda si tratti di una stanza a parte,
in modo che un accesso per manutenzione possa
essere effettuato senza accedere all'interno della
computer room, che ospita i server di calcolo.
– Se viene realizzata all’interno della computer room
viene consolidata con la MDA
Functional area: MDA
• Una Main Distribution Area (MDA):
– La Main Distribution Area è uno spazio centrale nel quale è sistemato il punto
di distribuzione del cablaggio strutturato dell'intero datacenter.
– All'interno ospita i router e gli switch di core per LAN e SAN, e il Main Cross
Connect (MC), che può includere l'Horizontal Cross Connect (HC) nel caso in
cui le aree di calcolo siano servite direttamente dalla MDA.
– Questo spazio è l'hub della infrastruttura di cablaggio dell'intero DC, e come
tale contiene i router di core, gli switch di core della LAN, gli switch di core
della SAN.
– TIA-942 presenta la architettura cross-connect come la best-practice per
l'MDA: in questo sistema di patching centrale, tutti gli elementi di rete usano
dei cavi che hanno connessioni permanenti, terminate una volta per tutte.
Cross Connect
Tutte le operazioni possono essere effettuate sulle patch, facili da maneggiare e
intercambiabili, senza toccare il cablaggio orizzontale fatto da cavi permanenti già fissati
e terminati.
Questo schema permette anche di modificare rapidamente la rete, agendo sui pannelli
di distribuzione.
Cross Connect
• Lower operating costs:
Se confrontato con altre soluzioni, il cross-connect riduce il tempo
necessario per la manutenzione (aggiunta di schede, movimentazione di
circuiti, upgrade sw).
• Improved reliability and availability:
Le connessioni permanenti proteggono i cavi da attività quotidiane che li
possono danneggiare. Le operazioni Moves, Adds and Changes (MAC)
vengono eseguite solo sulle patch e non sul backplane di apparati di
routing e switching. Con le patch inoltre è possibile isolare facilmente un
circuito di rete.
• Competitive Advantage:
Un sistema Cross-Connect permette di effettuare rapidi cambiamenti allo
schema della rete. La connessione di un nuovo servizio può avvenire
mediante il plug di una patch, invece che con la posa di nuove connessione
cablate. Quindi è possibile avere un nuovo servizio più velocemente.
Functional Area: HDA
• Una o più Horizontal Distribution Area (HDA):
– È il punto di distribuzione del cablaggio orizzontale che
porta i cavi alla equipment distribution area.
– Come nella MDA lo standard prevede che ci siano rack
separati per fibre, UTP e cavi coassiali, e raccomanda di
prevedere switch e patch-panels per facilitare le operazioni
MAC.
– Il numero di connessioni in una HDA dovrebbe essere
limitato a 2000, il numero di HDA presenti dipende dal
cablaggio e dalla grandezza del DC (almeno una per piano)
Functional Area: EDA
• Una o più Equipment Distribution Area (EDA):
– Il cablaggio orizzontale termina con dei patch
panel nella EDA, che ospita i rack del DC.
– Lo standard prescrive l'installazione alternata di
rack e cabinet per la creazione di corridoi freddi e
corridoi caldi.
Functional Area: ZDA
• Una o più Zone Distribution Area (ZDA):
– La ZDA è un punto di connessione intermedio, opzionale,
nel cablaggio orizzontale tra HDA ed EDA.
– Agisce come punto di consolidamento del cablaggio, per
aggiungere flessibilità alla configurazione della rete, o
come zona dove far risiedere mainframe o server che non
possono essere usati con i patch panel.
– All'interno di una HDA è ammessa una sola ZDA, con un
massimo di 288 connessioni.
– La ZDA non contiene cross connect o apparati attivi.
Backbone and Horizontal Cabling
• Il cablaggio di backbone all'interno del DC collega MDA, HDA ed ER
• Il cablaggio orizzontale fornisce connettività tra HDA, ZDA ed EDA: collega
la HC nella MDA o nella HDA alle prese ospitate nella EDA o ZDA.
• Per ridondanza è possibile installare del cablaggio di backbone opzionale
tra le HDA.
• Ogni area funzionale deve essere situata nel DC in modo che il cablaggio di
backbone e quello orizzontale non eccedano le massime lunghezze
consentite dalla tecnologia.
• La massima distanza orizzontale è 90m indipendente dal media type. Se
non esiste una HDA la massima distanza in un DC è 300m se si usa la fibra
ottica, e 100m per il cablaggio in rame
Supporto alle functional areas
• Tutte le aree qui identificate potrebbero
essere confinate in stanze fisicamente
separate tra loro (ma anche no).
• Nel caso si tratti di stanze chiuse, ognuna di
esse deve essere supportata da HVAC
(Heating, Ventilation e Air Conditioning), PDU,
e accesso al sistema UPS.
Reduced Topology
La Main Cross Connect e la Horizontal Cross Connect possono essere
consolidati in una singola MDA, e quel punto il disegno del datacenter
potrebbe ridursi:
Cabling Infrastructure
Star Topology
Il cablaggio non strutturato (ossia punto-punto con jumpers) rende le operazioni MAC
(Moves, Adds and Changes) molto più complesse.
La architettura Cross Connect, e l'uso di appropriati adattatori, permette di accomodare
nella topologia a stella anche sistemi pensati per topologie differenti (ring, bus o tree)
Media riconosciuti
• Standard singlemode fibre
• 62.5 and 50μm multimode fibre
• Laser-optimised 50μm multimode fibre
(recommended)
• 75-ohm coaxial cable (recommended for E-1, E-3, and
T-3 circuits)
• 4-Pair Category 6 UTP and ScTP cabling (Cat 6*
recommended)
Raccomandazioni
• Per il backbone si raccomanda la fibra multimodale da 50μm laseroptimized, perchè supporta velocità di rete maggiori su lunghe
distanze ed è più economica della singlemode.
• Per l'horizontal cabling si raccomanda di installare il media di più
alta capacità possibile, in modo da ridurre la necessità di rifare il
cablaggio in futuro.
• Altre raccomandazioni riguardano la necessità che i cavi per la
comunicazione e per l'elettricità vengano separati, che ci sia una
protezione per l'eccessiva curvatura delle fibre, che lo spazio sia
sufficiente a manovrare agilmente le connessioni, che tutti i cavi
siano dotati di label identificative.
Tiered reliability
Ridondanza
• TIA-942 definisce 4 "Tier", che si riferiscono a 4 livelli possibili di
ridondanza, corrispondenti ai tier ratings definiti dal Uptime Institute:
1.
2.
3.
4.
•
Tier 1 - Nessuna ridondanza (Disponibilità 99.671%)
Tier 2 - Componenti ridondanti, ma singolo path (Disponibilità 99.741%)
Tier 3 - Componenti ridondanti, path multipli, un singolo path attivo
(Disponibilità 99.982%)
Tier 4 - Componenti ridondanti tutti attivi, path multipli (Disponibilità
99.995% ossia downtime inferiore a 30 minuti per anno)
I requirements di un Tier superiore includono quelli dei Tier inferiori, e
possono essere specificati separatamente (e possono essere diversi) per
ogni singolo componente del DC: sistemi elettrici, strutturali, meccanici. Il
Tier di un DC è pari al Tier inferiore tra quelli di tutti i suoi sottosistemi
Ridondare la MDA se non si
usano stanze separate non
ha senso.
La SDA e la MDA dovrebbero
essere in stanze separate,
servite da diversi impianti
antincendio, diverse PDU, e
diverso HVAC
Ridondanza
• N - base: Il sistema rispetta i requisiti di base e NON ha ridondanza
• Ridondanza N+1: Esiste una unità addizionale, un modulo, un path,
un sistema in aggiunta a quelli minimi richiesti per soddisfare i
requisiti di base. La rottura o la manutenzione di una singola unità,
path o modulo non ha effetto sulle operazioni del DC
• Ridondanza N+2: Come la precedente con 2 unità addizionali
• Ridondanza 2N: Per ogni sistema richiesto ne esiste una copia
funzionante.
• Ridondanza 2(N+1): Ci sono due completi (N+1) sistemi per ogni
sistema N richiesto dai requisiti minimi.
Tier 1: Basic 99.671%
•
Non c'è ridondanza, i path sono singoli e i componenti non sono replicati (N)
•
Per l'alimentazione elettrica si consiglia di evitare la presenza di moduli, e di porre
N=1 per non diminuire la disponibilità complessiva.
•
Un T1 è suscettibile di interruzioni causate sia da attività pianificate che non
pianificate. Può non avere un UPS, o un generatore ausiliario; se ha un UPS si tratta
di un sistema singolo, ed esistono molti SPoF.
•
L'infrastruttura deve essere spenta completamente ogni anno per manutenzione
preventiva e riparazioni.
•
Una situazione di emergenza richiede spesso lo spegnimento totale, così come una
operazione umana sbagliata può comportare lo shutdown dei sistemi.
•
Annual downtime: 28.8h
Tier 2: Redundant Components
99.741%
• La presenza di componenti ridondanti rende meno probabile
l'interruzione dei servizi sia per attività pianificate che non
pianificate.
• E' presente un pavimento flottante, c'è l'UPS ed il generatore di
emergenza, di capacità N+1. Il carico arriva al 100% di N.
• Elettricità e raffreddamento hanno path singoli.
• La manutenzione delle linee di alimentazione e di altre parti della
struttura del sito richiede lo shutdown del DC.
• Annual downtime: 22h
Tier 3: Concurrently Maintainable
99.982%
•
Un data center di questo tipo ha più path, di cui uno solo attivo. Questo vuol dire
che è sempre essere possibile fermare uno solo dei path senza problemi per
effettuare manutenzione preventiva e programmata, riparazioni ed aggiornamento
di componenti, aggiunta e rimozione di componenti, testing ed altro.
•
Ad esempio se si usa acqua raffreddata, devono essere presenti due circuiti.
•
I carichi elettrici singoli sono alimentati da commutatori statici, quelli a doppia
entrata da due distinte PDU
•
Attività non programmate, come errori nelle operazioni o malfunzionamenti,
possono ancora causare uno shutdown del DC.
•
Il carico sui sistemi non deve eccedere il 90% di N, la ridondanza dei sistemi è N+1
•
Annual downtime: 1.6h
Tier 4 : Fault tolerant
99.995%
• I path multipli sono attivi contemporaneamente: è possibile ogni
tipo di manutenzione programmata senza interrompere
l'operazione del DC, e il sito può sostenere una failure non
programmata o un errore umano senza impatto sulle operazioni.
• Questo vuol dire, ad esempio elettricamente, che ci sono due
sistemi di UPS, ognuno in ridondanza N+1, che alimentano i server
con doppia o singola alimentazione (con interruttori automatici).
(2*(N+1))
• L'unica sorgente di downtime è l'allarme incendio o il power off di
emergenza.
• Annual downtime: 0.04h
source: http://www.eci.com/blog/40-a-refresher-on-data-center-tiers.html
Logical layers
Architettura Logica
• Non esiste uno standard accettato come la TIA,
l'architettura logica varia a seconda delle preferenze,
ma alcune "best practices" possono essere fornite.
• In generale è possibile suddividere la logica in quattro
strati:
1.
2.
3.
4.
Core
Aggregation
Access
Storage
Logical layers
• Core: fornisce la connettività ad alta velocità tra il data center e
l'esterno, e gestisce il traffico tra gli switch di aggregazione. Non ha
SPoF. Vi transita tutto il traffico in entrata ed uscita dal DC
• Aggregation: è il punto in cui tutti i server possono condividere
applicazioni come firewall, cache, load balancer, intrusion detection
ecc…Lo strato di aggregazione è il punto di transizione tra lo strato
di accesso, con switch L2, e lo strato di core con switch L3. Vi
transita tutto il traffico Server-to-Server.
• Access: Il punto di collegamento alla rete dei server. Nel modello
multi tier si divide in sottosistemi separate.
• Storage: Switch Fiber Channel e altri device di storage
Multi Tier Model
• Il modello di DC multi tier è plasmato intorno alla fornitura
di applicazioni web. Il modello prevede sw in esecuzione
sulla stessa macchina ma in processi separati, che
comunicano via IPC, o sw in esecuzione su macchine
separate che comunicano attraverso la rete.
• In quest’ultimo caso alla separazione logica tra i diversi Tier
applicativi corrisponde la separazione logica tra diversi
gruppi di server, disposti in aree differenti del DC:
– Front-end: web server, DNS, FTP (interfaccia utente)
– Application: layer di collegamento (business logic)
– Back-end: DB e connessione alla SAN (storage server)
Multi Tier Model
• Resilienza: un server può essere messo in manutenzione
mentre la sua funzione viene espletata da un altro server
dello stesso strato logico. Si ottiene mediante il load
balancing del traffico attraverso i tier.
• Sicurezza: un attaccante può compromettere un web server
senza per questo accedere ai server applicativi o di storage.
Si ottiene mediante firewall che filtrano il traffico attraverso
i tier.
• Isolamento: è anche possibile isolare del tutto i tier
mediante reti su switch differenti o mediante VLAN (che
riduce la complessità della rete)
La tabella naturalmente non esaurisce ogni possibilità, ma indica solo una strada. Proviamo ad
esempio a capire come tradurre l'architettura logica delle slide precedenti in una architettura
fisica del piccolo data center sotto. Dato che si tratta di un DC piccolo usiamo la reduced
topology (MDA, ZDA, EDA)
Implementing TIA-942
• Segmentiamo il DC basandoci sulla topologia logica vista prima:
1.
2.
3.
Gli switch di core LAN e gli switch di aggregazione, nonchè gli switch SAN
vengono posti nella MDA (core layer)
Lo strato di accesso viene diviso nelle tre zone front-end, application, e backend (access layer)
Lo storage viene sistemato in una zona separata. (storage layer)
• Ogni zona userà una soluzione MoR per il cablaggio e all'interno di ogni
zona avremo connessioni ToR.
• La EDA fornirà le connessioni per ogni rack e la ZDA fornirà le connessioni
a ciascuna EDA.
• Le ZDA termineranno nella MDA, in un main cross connect MC
Un ulteriore step consiste nel determinare quante fibre prevedere in ogni connessione.
Questo calcolo sarà influenzato dalla ridondanza che si vuole ottenere, sia nelle ZDA che
nelle EDA.
Il modello multi-tier è il più usato nei DC commerciali, perchè supportato nativamente da
architetture come .NET o Java 2 Enterprise Edition, usate da ERP come quelli di Oracle.
Server cluster model
• Questo modello è più comunemente associato agli
ambienti High Performance Computing (HPC), grid,
High Throughput Computing (HTC), calcolo parallelo.
• Le architetture SW che supportano questo modello
logico sono tipicamente basate su applicazioni custom,
a volte proprietarie.
• Tutti i cluster comunque sono caratterizzati
dall’aggregare molte CPU apparendo all’utenza come
un singolo sistema ad alte prestazioni
Logical overview
• Front end: interfacce IP usate per accedere dall’esterno al cluster,
quindi forniscono l’accesso ad un application server e permettono
di sottomettere e recuperare dei job.
• Master nodes: sono responsabili della gestione dei nodi di calcolo,
e sono gli unici che comunicano con l’esterno. Ospitano il
middleware necessario alla gestione delle risorse, allo scheduling
dei job, al monitoring dello stato dei nodi di calcolo.
• High speed back end: è la rete di comunicazione tra master node e
compute node e tra i compute node stessi. Tipicamente richiede
bassa latenza e alta banda (10gbE, Infiniband)
• Compute nodes: eseguono le operazioni CPU intensive
• Storage path: rete di collegamento, tramite Eth o FC, alla SAN.
• Common File system: il cluster deve usare un file system parallelo
comune ai nodi di calcolo (PVFS, LUSTRE,GPFS)
•
•
•
•
•
•
CotS server hardware
GigE or 10GigE Eth
Low Latency Hardware
Non blocking or low-over-subscribed switch fabric
Mesh/partial mesh connectivity
Jumbo frame support
ECMP (from wikipedia)
• Equal-cost multi-path routing (ECMP) is a routing strategy where next-hop
packet forwarding to a single destination can occur over multiple "best
paths" which tie for top place in routing metric calculations. Multipath
routing can be used in conjunction with most routing protocols, since it is
a per-hop decision that is limited to a single router. It potentially offers
substantial increases in bandwidth by load-balancing traffic over
multiple paths; however, there can be significant problems in its
deployment in practice.[1] RFC 2991 discusses multipath routing in
general.
• In 2014 the Institute of Electrical and Electronics Engineers (IEEE)
incorporated Equal Cost Multiple Paths (ECMP) or IEEE standard 802.1Qbp
into IEEE 802.1Q-2014) for Shortest Path Bridging. Specifying the forward
and reverse paths used for unicast and multicast traffic in shortest path
bridging as symmetric insuring flows on deterministic paths, resolving
configuration complexities, management functionality and performance
issues within original standards implementations.[2] [3][4][5][6]
DMZ
DMZ
• Chi accede ai servizi offerti all'esterno non deve essere in
nessun modo in grado di raggiungere le macchine di calcolo
all'interno del laboratorio o del Datacenter.
• La rete separata sulla quale i server risiedono è detta anche
rete demilitarizzata o DMZ, in analogia alla parte di
territorio che divide due nazioni e non appartiene a
nessuna delle due. La DMZ
1.
2.
non è sicura come la rete interna
non è insicura come Internet.
• I server nella DMZ hanno quindi
1.
2.
connettività limitata verso server specifici della rete interna
connettività limitata verso l'esterno
DMZ
source: http://v.gd/PpMaNO
Perchè usarla? Se si ospita un server accessibile dall'esterno l'intera rete è a rischio, quindi ci
sono tre soluzioni: affidarlo in outsourcing, ospitarlo SUL firewall ammesso che sia possibile, o
appunto isolarlo in modo che una sua compromissione non pregiudichi l'intera rete.
Indirizzamento IP
• La DMZ è una rete separata, sia dalla LAN che dal
firewall, e quindi ha bisogno di reti IP separate.
• Può usare IP pubblici o privati, a seconda della
configurazione dei firewall. Se usa i primi bisogna
partizionare la rete pubblica avuta dal GARR, se i
secondi il firewall deve usare il NAT (port forwarding)
• Se si usa un solo switch sulla rete interna, è possibile
ricavare la DMZ mediante VLAN tagging.
Anche se sembra complicato in realtà si semplifica la vita, perchè è possibile avere una sola
regola di filtraggio per tutti i computer nella DMZ, quando invece se si fossero mantenuti nella
rete interna ci sarebbe stato bisogno di un filtraggio ad hoc per ogni server.
ATTENZIONE: Usare sempre il principio del MINIMO PRIVILEGIO
La precedente configurazione "back to back" è la più sicura, ma ha bisogno di due firewall
separati, uno veloce verso internet (packet filter) ed uno più lento verso la LAN (application layer
filtering), con due configurazioni differenti
Questa configurazione "three legged firewall" necessita invece di un solo firewall con tre
interfacce di rete, che però diventa un SPoF per i vostri servizi e fa tutto il lavoro dei due firewall
visti prima.
WAN->DMZ ok
WAN->LAN blocked
LAN->DMZ ok
LAN->WAN ok
DMZ->LAN filtered
DMZ->WAN filtered
DMZ security
• Accesso non autenticato o anonimo
– Web server
• Accesso autenticato
– Sito aziendale (scolastico?) intranet
• La sicurezza degli host è molto più importante che nella LAN
1.
2.
3.
4.
5.
6.
Tutti i servizi non necessari vanno disabilitati
I servizi necessari vanno eseguiti con il minor numero di privilegi
possibile
Devono essere usate password sicure
Bisogna disabilitare account utenti non necessari
Il sistema deve essere aggiornato con le ultime patch di sicurezza
Bisogna abilitare un log degli accessi
pfsense
• https://www.pfsense.org/ (ISO da 84M)
• https://doc.pfsense.org/index.php/Main_Page
• HW requirements:
–
–
–
–
CPU: 1Ghz
RAM: 1GB
USB flash drive or 1GB HD or 1GB Flash card
Intel NIC up to 1Gbps
• Se si usano caratteristiche avanzate (come VPN o Captive Portal), le
richieste di CPU e RAM aumentano
• pfsense con 3 interfacce:
1.
2.
3.
NAT (internet)
Host only (LAN)
Internal network (DMZ)
192.168.56.100
192.168.2.100
admin
pfsense
Regole del firewall
• Le regole sulle interfacce si applicano in INGRESSO:
questo vuol dire che se mi metto sulla interfaccia di
rete guardando la DMZ, allora la regola si applica per il
traffico che ESCE dalla rete DMZ ed ENTRA nel firewall
• Quelle che seguono sono delle regole di esempio
• E' possibile scriverle in modo più maneggevole usando
gli aliases, gruppi di host reali, reti o porte ai quali
vengono applicate le stesse regole di firewall
ToR or EoR?
Switch locations
ToR Pros and Cons
•
•
•
•
•
•
•
Dal rack partono pochi cavi quindi la complessità del cablaggio è limitata e minore
il costo.
E' possibile aggiornare la connessione tra gli switch senza alterare il cablaggio
verso i server
L'aggiornamento del DC è modulare.
Può essere difficile scalare all'interno del singolo rack oltre un certo numero di
porte, determinato dalla capacità degli switch 1U/2U
C'è bisogno di molti switch, ognuno da gestire indipendentemente
Il numero di porte usato in ogni rack può variare molto, è possibile avere switch
sottoutilizzati.
Una espansione non programmata all'interno del singolo rack può rivelarsi molto
complicata.
EoR Pros and Cons
•
•
•
•
•
•
•
•
•
Le espansioni sono generalmente molto semplici: basta aggiungere una scheda allo switch di
aggregazione
Gli switch di aggregazione permettono una ridondanza pressochè totale (N+1 o N+N) con failover
immediati
La distribuzione dei server nei rack del DC non è limitata dal numero di porte disponibili nello
switch ToR
C'è un solo switch da gestire
La latenza della rete, dovuta al passaggio attraverso più switch, viene ridotta.
Server che parlano molto tra loro possono essere connessi alla stessa scheda di aggregazione,
qualsiasi sia il loro rack di appartenenza.
Sono richiesti più cavi e più lunghi: se si tratta di rame la complessità aumenta grandemente
Aggiornare la velocità della rete del DC può essere molto difficile, perchè bisogna rimpiazzare un
grande numero di cavi lunghi
Se si usa la fibra bisogna prevedere che i server usino schede di rete apposite.
Network problems
Oversubscription
•
Gli strati logici superiori sono generalmente oversubscribed: l'oversubscription esiste quando la
banda massima teorica di cui hanno bisogno gli apparati collegati ad uno switch supera la banda
massima teorica disponibile in uplink, ammesso ovviamente che il backplane sia non-blocking.
•
Si esprime come il rapporto dell'input sull'output (ad esempio 3:1) oppure come una percentuale,
calcolata come (1-(#input/#output)), ad esempio 1-1/3= 67%
•
Tipicamente :
–
–
–
altri server nello stesso rack 1:1
Uplink da switch ToR da 2:1 a 20:1
(32x10Gb down, 8X10Gb up = 4:1 oversubscription)
Core routers 240:1
•
Attenzione: non si tratta di una caratteristica negativa per-se, la rete può essere anche pensata
così fin dall'inizio. Bisogna tener presente che si tratta del caso peggiore possibile per la rete. Se
non tutti i server saturano la loro connessione allora potrebbe essere disponibile anche la banda
totale del link al singolo server.
•
Per cercare di rimediare in genere si mantengono i servizi che parlano tra loro in un ramo singolo, il
che implica che non è possibile muovere arbitrariamente i server nei rack.
Oversubscribed network
• Supponiamo di voler realizzare una rete con OS 3:1, usando uno
switch TOR line-speed, 32-port 40GbE. Ogni porta 40Gb QSFP può
essere divisa in 4 10Gb SFP+ usando un cavo splitter. Quanti
downlink verso i server e uplink verso lo strato superiore devono
essere usati?
• Il conteggio delle porte di uplink viene determinato dividendo il
numero totale di porte dello switch per la somma del numero di
input ed output preso dal rapporto di OS. Nel caso in esempio
32/(1+3) = 8
• Le rimanenti 24 porte a 40 possono essere splittate in 96 porte a 10
Oversubscribed network
• Lo switch di accesso si collega poi in uplink agli switch di
aggregazione per completare il "Fat Tree".
• Il numero di "spine" switch che sono necessari si
determinano contando il numero totale di uplink a 40Gb da
tutti i "leaf" switch e dividendo per 32 (il numero di porte
che stiamo supponendo disponibile). Gli uplink vengono poi
divisi in modo simmetrico tra gli spine switch.
• Se ad esempio si sono 8 leaf del tipo che abbiamo visto, con
quindi 8 link di uplink, potremmo usare 2 switch di spine
(da ogni leaf partono 4 link verso ciascun spine),
supportando 8x24x4 = 768 server.
Non blocking Fat Tree
• Con lo stesso switch è possibile costruire un Fat Tree non bloccante,
quindi privo di oversubscription, semplicemente usando 16 porte a
40 in uplink e 16 porte splittate per la connessione dei server: la
banda in entrata deve essere uguale a quella in uscita.
• Il cluster a due livelli non bloccante quindi supporta
(4switchx16portex4server) 256 server che parlano tra loro a 10Gb
wire speed, usando 6 switch da 32 porte a 40Gb.
Perchè questo setup funzioni naturalmente gli switch devono essere di livello 3, ed essere capaci
di usare un protocollo di routing per determinare la topologia della rete (OSPF, IS-IS, BGP).
Inoltre per poter usare contemporaneamente i path ridondanti deve essere supportato ECMP
(STP usa solo un path).
Fat switch 
• Ma… invece di avere un fat tree con n switch di m
porte, è possibile avere un solo switch con n x m porte!
• Il pattern di cablaggio è molto più semplice: ogni server
si collega direttamente allo switch centrale, e i cablaggi
tra edge e core sono fatti direttamente all'interno dello
switch. È uno sviluppo "estremo" della EoR.
• Ad esempio RECAS, ha uno switch centrale a 10 Gb a
doppio chassis, con 480 porte (scalabile a 576). La rete
fisica di RECAS sarà la base per eseguire OpenStack.
Altri problemi
• Un servizio che viene usato pesantemente può
influenzare altri servizi
• Se uno switch di accesso si rompe il carico sugli altri
aumenta
• Sotto utilizzo: in un Tier 3 o 4 molti path non vengono
usati
• Muovere un server con un suo IP in una differente zona
di un DC può essere molto complesso e comportare la
riconfigurazione di un gran numero di apparati.
Cooling
Bassa densità
Si usa in questo caso un sistema di corridoi
caldi e corridoi freddi: l'aria fredda viene
fornita attraverso il pavimento, davanti al
rack, quella calda torna alle unità di
raffreddamento
L'obiettivo della progettazione è ridurre la
miscelazione dei flussi caldi e freddi di aria.
Si arriva ad incrementare così del 20%
l'efficienza del tradizionale design che non
teneva conto di tale miscelazione.
Media densità
Per aumentare il calore dissipato si separano completamente i
flussi d'aria. La soluzione può essere adottata anche in DC che
hanno già in funzione una soluzione a bassa densità.
Alta densità
Si aggiungono dei raffreddatori nei punti di maggior
riscaldamento (porte refrigerate o condizionatori inRow)
APC è stata pioniera nelle soluzioni inRow.
Knuerr(Rittal) vende sistemi autocontenuti.
SDN
Software Defined Network
Quale bisogno realmente soddisfano? Storage e nodi di calcolo
diventano sempre più virtuali, non così la rete.
• Le reti su Ethernet&IP sono "semplici", facili da maneggiare e
gestire, ma caratteristiche aggiuntive come ACL, VLAN, DPI (deep
packet inspection), NAT firewall le complicano notevolmente.
• Il problema è che questa complessità è il sintomo di fondamenti
strutturalmente deboli.
• Siamo troppo vicini al livello zero, nelle reti tradizionali si ragiona in
quel che in programmazione potrebbe essere il linguaggio
macchina.
Analogia con la programmazione
• Dal linguaggio macchina, complesso, estremamente vicino
all'hardware, si è passati a linguaggi di programmazione strutturata,
che contengono astrazioni come file system, virtual memory, data
type astratti, ed infine ai linguaggi moderni ad oggetti/interfacce.
C'è stato un cammino verso l'astrazione e l'incremento della
semplicità. Fino ad ora questo non è successo con le reti.
• Le interfacce sono l'istanziazione delle astrazioni: schermano il
programma ed il programmatore dai dettagli sottostanti, e
permettono di programmare in modo modulare.
• NON rimuovono la complessità, ma la nascondono: si affronta la
complessità una volta per tutte, e poi si riutilizza quel lavoro
Astrazione nelle reti: data plane
• Che astrazioni si usano nel networking?
• I layer (IP TCP) sono le principali astrazioni (data plane).
– Ottime per quanto riguarda lo schermo dei meccanismi inferiori: IP
best effort delivery, TCP reliable byte stream: non si sa come ma cosa
succede.
– Pessime per quanto riguarda l'interfaccia: IP è embedded nella
architettura di TCP, che funziona solo su indirizzi IP, quindi non posso
usare i due strati in modo DAVVERO indipendente.
• Ma non esiste una astrazione del control plane: non ci sono blocchi
di controllo modulari che permettano di gestire la rete, e di
aggiungere e creare nuovi controlli se è necessario. Ogni volta che
c'è bisogno di un nuovo controllo bisogna inventare qualcosa di
nuovo, tipicamente un nuovo protocollo che viaggi su IP.
Control vs Data plane
• Control plane: è lo strato applicativo dove vengono prese le
decisioni di routing (L3) o forwarding (L2), basandosi sui protocolli
di routing conosciuti. Qui si decide dove inviare un pacchetto in
transito attraverso un router, qui risiede tutta la logica della rete. Il
Control plane sa DOVE indirizzare i pacchetti.
• Data plane: è dove le azioni decise dal control plane avvengono.
Comprende ad esempio le tabelle di routing, le tabelle ARP, le VLAN
ecc. Qui a seconda delle decisioni prese dal Control plane i
pacchetti vengono indirizzati al next hop di competenza, l'unica
cosa che il data plane conosce è COME indirizzare un pacchetto ad
una interfaccia.
• Management plane: CLI
Source Ivan Pepelnjak NIL Data Communications
Astrazione: control plane
• Come controlliamo ora le reti? Definiamo un nuovo
protocollo da zero (cfr. routing), oppure un nuovo
meccanismo di controllo (cfr. traffic engineering), o
lasciamo che sia l'operatore ad imporre manualmente dei
controlli, ad esempio delle ACL.
• Se si vuole semplificare la gestione il nuovo tipo di controllo
dovrà soddisfare tre requisiti:
– Deve poter controllare l'intero datapath IP
– Deve sopravvivere alle incertezze delle WAN
– Deve poter configurare ogni device di rete (switch, router, ACL)
Astrazione nelle reti
• Con le tecnologie tradizionali questa semplificazione semplicemente non
si può fare. Sarebbe come se per fare un programma un programmatore
dovesse specificare le locazioni di memoria di ogni singolo bit, gestire
qualsiasi errore interno di comunicazione, e il tutto con un linguaggio
molto povero: mancano le interfacce di alto livello.
• In programmazione quel che si fa è tipicamente ridefinire il problema
usando un livello di astrazione maggiore per la memoria, delle primitive di
comunicazione affidabili, un linguaggio potente.
• Perché non fare la stessa cosa per il network? A questo bisogno
rispondono le SDN.
• Le SDN non sono quindi un ulteriore meccanismo di rete, ma una
istanziazione di una astrazione, volta a fare in modo che la gestione della
rete sia più semplice, e fatta di mattoni fondamentali con una chiara
interfaccia.
Source: SDN Approach to Large Scale Global Data Centers - Rakesh Saha, Amit Agarwal
Ogni elemento di rete ha la stessa interfaccia di configurazione, management e controllo.
Esiste un solo punto di accesso alla configurazione della rete, il controller SDN, non più le
centinaia di punti di accesso corrispondenti ai vari elementi di rete tradizionali. L'interfaccia
è inoltre indipendente dal vendor.
Una visione GLOBALE della rete del DC permette di usare in modo efficiente la banda
disponibile, e di rendere la rete flessibile e capace di supportare nuove esigenze: le decisioni
possono essere prese a livello applicativo sulla base di fattori interni o completamente
esterni alla rete stessa (come orario o occupazione di banda)
La parte cablata del DC viene realizzata una volta per tutte, ma la capacità della rete SDN di
ridefinire la topologia degli accessi permette (o permetterebbe) di realizzare delle reti
dedicate ad un particolare utente o progetto, tra loro del tutto isolate (Network As An
Infrastructure o Network As A Service)
In generale un controller si costruisce un modello della rete man mano che i device vi si
connettono.
Network Functions Virtualization (NFV)
• Le SDN permettono
l'implementazione delle
NFV: gli elementi funzionali
della rete sono virtualizzati,
e possono essere distribuiti
su più device o hypervisor.
• NFV non è dipendente dalle
SDN. Gli elementi
virtualizzabili possono essere
ad esempio load balancers,
firewalls, IDS, Routers.
• SDN+NFV+Cloud promette di
dare una grande flessibilità:
si tratta di verificarne le
prestazioni.
Openflow
• Openflow è una delle possibili interfacce per il controllo remoto degli
apparati di rete SDN.
• Per avere una idea pratica di come funziona ho simulato un ambiente di
test nel quale eseguire openflow. La macchina virtuale mininet si scarica
da
http://mininet.org/
username:
password:
mininet
mininet
• Dato che sarà necessario aprire wireshark all'interno della macchina
virtuale, ma facendo apparire il display sulla propria macchina, bisogna
usare una connessione ssh con tunnel X. La funzionalità della connessione
si uò provare con xterm. L'indirizzo da contattare è quello della macchina
virtuale, che deve avere una interfaccia host-only
Terminologia
• OpenFlow Controller: il controller è la parte "superiore" della
interfaccia OpenFlow; la distribuzione di riferimento include un
controller che si comporta come uno switch ethernet intelligente, in
combinazione con uno switch OpenFlow. È possibile scriverne di
diversi
• OpenFlow Switch: la parte "inferiore" della interfaccia OpenFlow; la
distribuzione di riferimento ne include uno in user-space. Open
vSwitch è un altro switch software, che però gira in kernel space.
Molti vendor forniscono pezzi di ferro compatibili.
• dpctl: utility command line di interazione con OpenFlow
• Mininet: piattaforma di emulazione che crea una rete openflow
virtuale.
La prima rete openflow
La rete è formata dal controller C0 , che parla
allo switch OpenFlow S1 tramite interfaccia di
loopback 127.0.0.1 sulla porta 6633.
Nella realtà il collegamento tra S e C deve
essere fatto su una rete dedicata (secure
channel)
Allo switch sono collegati su due interfacce i
due host H1 ed H2.
Per far partire questa rete minimale di test,
nella finestra ssh con la quale siamo collegati
alla macchina:
mininet@mininet-vm:~$ sudo mn
I due host sfruttano per l'emulazione i
network namespaces, e hanno quindi le reti
separate.
Network namespace
• Una installazione di Linux condivide un singolo insieme di interfacce di
rete e di righe nella tabella di routing.
• Ogni NetNS ha le proprie schede di rete, la propria tabella di routing, i
propri IP, la propria /proc/net, le proprie porte…
• Potete fare le prove seguenti su una qualsiasi macchina Linux recente
(anche sulla garrx):
– Per creare il namespace garrx:
mininet@mininet-vm:~$ sudo ip netns add garrx
– Per avere una lista dei namespace:
mininet@mininet-vm:~$ sudo ip netns list
NetNS
• Al network namespace (NetNS) bisogna adesso assegnare le interfacce, e
configurarle in modo che funzionino.
• Al NetNS si possono aggiungere solo interfacce virtuali (veth#): si tratta di
interfacce che si possono usare solo in coppia, e sono connesse tra loro
come con un filo diretto: ciò che entra in una esce dall'altra, e ogni
interfaccia appare come una comune porta ethernet al so e ai sw.
– Prima si crea una coppia:
mininet@mininet-vm:~$ sudo ip link add veth0 type
veth peer name veth1
mininet@mininet-vm:~$ sudo ip link list
• Le due interfacce appaiono, nel namespace DEFAULT. Ora per collegare il
namespace garrx al DEFAULT:
– Aggiungere una delle due interfacce all'interno:
mininet@mininet-vm:~$ sudo ip link set veth1 netns
garrx
mininet@mininet-vm:~$ sudo ip link list
Garrx netns
•
Dall'output dell'ultimo comando è scomparsa veth1
– Per vederla nuovamente bisogna eseguire il comando nel namespace garrx:
mininet@mininet-vm:~$ sudo ip netns exec garrx ip link list
•
Per configurare l'interfaccia nel namespace garrx:
– mininet@mininet-vm:~$ sudo ip netns exec garrx ifconfig veth1
10.1.1.1/24 up
•
Comandi utili a verificare che tutto sia a posto:
–
–
–
–
–
•
mininet@mininet-vm:~$
mininet@mininet-vm:~$
mininet@mininet-vm:~$
mininet@mininet-vm:~$
mininet@mininet-vm:~$
sudo
sudo
sudo
sudo
sudo
ip
ip
ip
ip
ip
addr list
netns exec garrx ip addr list
netns exec garrx ifconfig
route list
netns exec garrx ip route list
Come ci si aspetta la rete non è raggiungibile, perché non è collegata al namespace
di default:
– mininet@mininet-vm:~$ sudo ping 10.1.1.1
Peer
Ma al namespace di default è collegata veth0, che è unita al suo
peer veth1.
– mininet@mininet-vm:~$ sudo ifconfig veth0
10.1.1.2/24 up
– mininet@mininet-vm:~$ sudo ping 10.1.1.1
– mininet@mininet-vm:~$ sudo ip netns exec
garrx ping 10.1.1.2
• Infine il collegamento con l'esterno e quindi la rete fisica
volendo si fa con un bridge, o un linux bridge standard o
uno switch openflow o un open vSwitch. Non lo proviamo
perché l'interfaccia eth1 è già collegata al bridge Vbox.
Mininet default network
• Tornando alla rete di default (sudo mn), dal prompt di mininet si
possono ottenere molte informazioni:
mininet>
mininet>
mininet>
mininet>
mininet>
mininet>
mininet>
mininet>
help
nodes
dump
net
h1 ping h2
xterm h1
pingall
iperf
• Avrete senz'altro notato che il primo ping impiega un tempo
considerevolmente maggiore degli altri. Non è un caso.
• La spiegazione risiede nel funzionamento di OpenFlow: per sapere come
indirizzare il primo pacchetto lo switch deve interrogare il controller, che è
l'unico che conosce la topologia della rete. I pacchetti successivi invece
vanno direttamente da h1 allo switch ad h2.
Introducing openflow
mininet> exit
mininet@mininet-vm:~$ sudo mn –c
Per ispezionare i pacchetti e capire cosa sta succedendo apriamo un'altra
sessione sulla macchina virtuale, con tunnel X, e apriamo wireshark.
mininet@mininet-vm:~$ sudo wireshark &
Nella casella filter mettiamo la stringa of, per indicare che vogliamo vedere
solo i pacchetti openflow, e facciamo partire la cattura solo sulla interfaccia
lo. Si vedono soplo echo request e reply tra controller e switch
Facciamo ripartire mininet secondo uno schema della rete con 1 controller e
4 host:
mininet@mininet-vm:~$ sudo mn --topo=single,4
mininet> nodes
mininet> dump
mininet> net
wget
• Su wireshark all'inizio si vedono solo i pacchetti di OFP echo request e
reply
• Su H4 server web minimale con python:
mininet> h4 python –m SimpleHTTPServer 80 &
• Su H1 la richiesta della pagina di indice:
mininet> h1 wget 10.0.0.4
• Infine blocchiamo l'acquisizione con wireshark
• Se si vogliono vedere i flow installati
mininet> dpctl dump-flows
S1 manda il pacchetto al controller C0
o per intero oppure indicando un ID di
buffer interno nel quale il pacchetto viene
conservato
Da H1 parte il pacchetto SYN di richiesta
Packet IN
della connessione verso H4. Se si trattasse di
SYN (port 80) OR
uno switch tradizionale verrebbe indirizzato verso
Buffer ID = 279
H4. Ma in S1, dato che si tratta del primo pacchetto
non c'è una regola (flow entry) che dica come
indirizzare il pacchetto (table miss)
il secondo installa una entry nella
C0
manda
a S1 un
Packet OUT
flow
table che,
basandosi
sui e/o
un
Flow
Mod.eIlmask,
primopermette
dice cosaa
campi
match
fare
quello
specifico
pacchetto
S1 dicon
sapere
come
indirizzare
pacchetti simili al nostro SYN
FLOW MOD
Packet& OUT
Match
Mask
Buffer
ID 80)
= 279
SYN
(port
OR
Idle Timeout=60
Buffer
ID = 279
Hard Timeout=0
Action=forward
port 4
Priority=0
Action=forward port 4
FLOW ENTRY H1->H4 port 80
Wget
SYN (port 80)
Wget
SYN (port 80)
Packet-IN
Flow mod mask & action
Controller remoto
• È anche possibile usare un controller remoto, presente su un'altra
macchina, e con una differente implementazione.
• Apriamo ad esempio due finestre sulla macchina virtuale mininet. Sulla
prima facciamo partire, in ascolto sull'indirizzo di rete, il controller POX
(una implementazione in Python) che realizza uno switch l2 learning
mininet@mininet-vm:~$ cd pox
mininet@mininet-vm:~/pox$ python ./pox.py
forwarding.l2_learning
• Sulla seconda finestra facciamo partire la rete di default di mininet,
indicando come controller remoto quello in ascolto sull'indirizzo IP esterno
della macchina.
mininet@mininet-vm:~$ sudo mn
--controller=remote,ip=192.168.56.101,port=6633
The learning switch "brain" associated with a single OpenFlow switch.
When we see a packet, we'd like to output it on a port which will
eventually lead to the destination. To accomplish this, we build a
table that maps addresses to ports.
We populate the table by observing traffic. When we see a packet
from some source coming from some port, we know that source is out
that port.
When we want to forward traffic, we look up the destination in our
table. If we don't know the port, we simply send the message out
all ports except the one it came in on. (In the presence of loops,
this is bad!).
Controller remoto
• A questo punto lo switch si è collegato al controller, e il ping
funziona:
mininet> h1 ping h2
• Se si interrompe l'esecuzione del controller, si vede che come
detto in precedenza, il ping continua perché i pacchetti non
devono più passare per il controller, essendo stata installata nella
tabella di flow dello switch la relativa entry
• In questa versione del controller esiste però un tempo massimo di
vita dell'entry, scaduto il quale questa viene rimossa anche se il
traffico continua. Ad un certo punto quindi il traffico viene
interrotto.
Load Balancing using openFlow
• pox/pox/misc/ip_loadbalancer implementa un semplice
load balancer che istruisce lo switch ad inviare richieste di
connessione HTTP provenienti dai client da h3 fino ad h6,
indirizzate a 10.0.1.1, verso i due server h1 ed h2
• Il setup del laboratorio vede quindi uno switch e 6 macchine
collegate.
Load Balancing
• Lanciamo il controller su una sessione aperta su mininet:
– mininet@mininet-vm:~/pox$ ./pox.py log.level --DEBUG
misc.ip_loadbalancer --ip=10.0.1.1
--servers=10.0.0.1,10.0.0.2
• Su un'altra sessione, attenzione al tunnel X, lanciamo la simulazione della
topologia di rete:
– mininet@mininet-vm:~$ sudo mn --topo single,6 --mac
--arp --controller=remote
• Ora apriamo i terminali grafici sugli host
– mininet> xterm h1 h2 h3 h4 h5 h6
• Facciamo partire i due server web:
– H1: root@mininet-vm:~# python -m SimpleHTTPServer 80
– H2: root@mininet-vm:~# python -m SimpleHTTPServer 80
Load Balancing
• A questo punto su ogni terminale da h3 a h6
possiamo lanciare il comando seguente, e verificare
sulle finestre di h1 ed h2 che il load balancing stia
effettivamente funzionando:
• H3-6: root@mininet-vm:~# wget 10.0.1.1
• Se si vogliono vedere i flow installati
• mininet> dpctl dump-flows
OpenDaylight is an open platform for network programmability to enable SDN and create a solid foundation for
NFV for networks at any size and scale.
For those looking to manage their networks using OpenDaylight, there is deeper integration with OpenStack,
including significant improvements in the Open vSwitch Database Integration project, and a technology preview of
advanced OpenStack features such as Security Groups, Distributed Virtual Router and Load Balancing-as-a-Service.
SAN
SAN
• Una SAN (Storage Area Network) è una rete il cui scopo primario è
trasferire i dati tra gli elementi di storage (block storage, tape
library, Blu Ray Juke box) e i computer di calcolo.
• Consiste di:
–
–
–
–
una infrastruttura di comunicazione, che fornisce le connessioni fisiche
uno strato di gestione, che organizza le connessioni
un insieme di elementi di storage
dei computer che si occupano della pubblicazione dei dati
• Una SAN in altre parole è una rete specializzata ad alta velocità, che
collega storage e server, eliminando la tradizionale connessione
dedicata tra storage e server, e il concetto collegato che il server
gestisca lo storage. Se i client parlano tra loro con la LAN, i server
parlano agli storage di backend con la SAN.
iSCSI
Perchè la SAN?
• CLUSTER: in tutti i tipi di cluster (HPC, HA, LVS) i server hanno
bisogno di accedere ad uno storage condiviso tra i nodi di calcolo.
Spesso si usa un block storage che viene formattato con un file
system cluster-aware (OCFS2, Lustre, GPFS, GFS) o con LVM.
• CAPACITÀ: gli storage usati per la SAN riescono a servire
contemporaneamente un gran numero di client fornendo capacità
non disponibili per i server (dell'ordine dei Petabyte). Naturalmente
c'è anche la possibilità di usare file system distribuiti (CEPH,
HadoopFS, GoogleFS)
• VELOCITÀ: I bus locali non arrivano alla velocità di una SAN : FC
arriva a 16Gb/sec, iSCSI a 40Gb/sec, FCoE a 10Gb/sec. su singola
fibra
Vantaggi della SAN
• Lo storage è indipendente dalle applicazioni, e
accessibile tramite diversi data path per aumentarne la
disponibilità ed affidabilità.
• Dato che la gestione dello storage è demandata su una
rete dedicata, i server sono alleggeriti da questo lavoro.
• La gestione dello storage è centralizzata
• E' possibile in modo relativamente facile prevedere un
backup anche geografico dei dati
Connettività
• SCSI (Small Computer System Interface) è uno standard ANSI
(American National Standard Institute). Si tratta di un bus di
comunicazione parallelo, che esiste in un grande numero di varianti.
• Gli standard SCSI definiscono sia lo standard di collegamento fisico,
sia lo standard logico che i disk device devono soddisfare. Questo
standard logico è il CSS (Common Command Set).
• La progressione dello standard SCSI ha portato alla definizione del
modello FC (Fibre Channel). FC è una interfaccia seriale,
implementata sopratutto con cavi in fibra ottica.
SCSI
• L'interfaccia SCSI è stata per molto tempo il modo
convenzionale e server-centrico di connettere tra loro
le periferiche in un ambiente client/server. Era dotata
di cavi dedicati, e permetteva di mettere in cascata,
fino a 15 device su un bus di comunicazione. L'ultimo
device andava sempre "terminato".
• Con il termine SCSI ci si riferisce anche ad un protocollo
di comunicazione, che specifica i comandi che un
server e dei device collegati possono usare per
scambiarsi su un bus di comunicazione dei blocchi di
dati.
Limitazioni dello SCSI
• La scalabilità era un problema: praticamente i 15 device si
riducevano a non più di 5, per limitazioni sulle performance dovute
alla condivisione del bus di comunicazione.
• I cavi erano costosi ed ingombranti.
• C'erano problemi di affidabilità: l'accesso ai dati era perso nel caso
si fosse persa la connessione ad uno qualsiasi dei device sul bus.
Inoltre la riconfigurazione di uno dei device sul bus comportava la
necessità di spegnere l'intero bus.
• La velocità e la latenza erano limitate dall'architettura stessa scelta
per la comunicazione (8 – 16 bit in parallelo)
• La distanza dei cavi era limitata a 12 metri
• La condivisione di device tra più host era seriamente limitata dal
meccanismo usato, che prevedeva che prima e durante la
trasmissione di dati sul bus non transitasse nulla per permettere al
protocollo la determinazione dell'host abilitato a trasmettere…
Fibre Channel Protocol è un mapping dello SCSI su Fibre Channel, iSCSI su TCP/IP.
Fibre Channel over IP è un protocollo pensato per estendere la SAN sui network IP
(nuovo protocollo iFCP)
FCoE funziona con le tradizionali schede di rete, gestendo il traffico FC a livello datalink, e usando frames Ethernet per incapsulare, instradare e trasportare frames FC
attraverso una rete Ethernet da uno switch con porte FC e un device collegato ad un
altro switch simile.
iSCSI: è un protocollo di trasporto che trasporta i comandi SCSI da un initiator ad un
target, di fatto muovendo richieste SCSI standard usando TCP/IP.
Con iSCSI è possibile implementare delle SAN basate su connessioni IP, e quindi che
consentono ai client di usare la stessa tecnologia sia per la rete esterna che per quella
di storage.
FCP (Fiber Channel Protocol) è il protocollo di interfaccia di SCSI su FC.
FCIP è anche noto come FC tunnelling, e permette la trasmissione di informazioni FC
su rete ethernet, di nuovo permettendo di costruire una SAN basata su IP. La
connessione è gestita quindi interamente da TCP/IP e permette una estensione
geografica.
FC
• Con il termine Fibre Channel ci si riferisce a tutta una serie di
concetti e tecnologie legate insieme, che permettono agli host di
vedere i device (ad esempio gli storage) come locali.
• FC ha le caratteristiche di una rete, quindi supporta più protocolli, e
una ampia varietà di device. Come in altre reti, l'informazione viene
inviata in pacchetti strutturati, o frames, e i dati vengono serializzati
prima di essere trasmessi. Al contrario di altre reti però
l'architettura FC richiede un significativo apporto dell'hardware per
ottenere alte velocità.
• FC usa generalmente fibre ottiche per la trasmissione del segnale.
Terminologia
• Qualsiasi sia la topologia della rete FC, le informazioni sono
scambiate tra due nodi, il mittente (detto initiator) e il destinatario
(detto target).
• Un nodo può essere un computer come un PC o un server, oppure
una periferica come un disco, o una libreria di nastri, o una
videocamera.
• Tra i nodi vengono scambiati frame di informazione, la cui struttura
è definita da un protocollo.
• Ovviamente initiator e target per parlare devono condividere il
protocollo di comunicazione, ma la rete può supportare diversi
protocolli contemporaneamente.
Topologia
• point to point: è la topologia più semplice, e viene
usata quando ci sono solo due nodi, e due rimarranno
sempre. Non c'è condivisione della rete, quindi la
connessione può usare tutta la banda disponibile. FC è
full duplex, quindi un link a 4Gbps può avere
simultaneamente in trasmissione e ricezione 400MBps
• switched fabric: l'ampiezza di banda completa è
disponibile per ogni porta dello switch, ed è possibile
aumentare facilmente il numero di host e device che
utilizzano la SAN.
Indirizzamento
• Ma come si riconoscono tra loro i device? Ogni device in un
ambiente FC ha la sua identità univoca, chiamata
WorldWide Name (WWN). Si tratta di un identificativo
simile al MAC per le chede ethernet.
• Ogni porta ha il suo WWPN (Port Number), ed ogni device
nella SAN è identificato dal suo WWNN (Node Name).
• Dato che questi campi identificativi sono di 64 bit, e quindi
pongono problemi al routing veloce, esiste un indirizzo a 24
bit delle porte FC che viene usato per lo switching e la
costruzione di SAN. E' anzi proprio lo switch che assegna
questi indirizzi a 24 bit, e mantiene la corrispondenza tra
questi e il WWN del device collegato.
iSCSI
• La terminologia e la topologia di iSCSI mutuano molto
di quanto visto per FC.
• La parte fisica si poggia su ethernet, e quindi su comuni
switch, la parte logica prevede la trasmissione dei
comandi SCSI su ethernet tra un initiator ed un target,
identificato da un ID dal target.
• I target e gli initiator iSCSI possono essere costruiti
tramite software Linux, e funzionano piuttosto bene:
non hanno bisogno di HW particolare, e si riescono ad
ottenere facilmente 10Gbits.
Terminologia
• Initiator: è il sw che si trova sulle macchine client e permette di effettuare
il mounting delle LUN.
• Target: il software presente sui sistemi iSCSI che devono esportare delle
LUN.
• iqn: è l'identificativo univoco che rappresenta un nodo in una rete iSCSI.
• IP: ogni nodo deve avere un indirizzo IP per ogni singola porta.
Solitamente si usa la porta TCP 3260
• LUN: come in FC, le LUN sono mappate attraverso gli iqn
• multipath: per aumentare la banda a disposizione o gestire il failover si
può usare l'aggregazione di canali tramite il multipath.
File server
• Non è necessario avere costosi sistemi HW per realizzare un
File Server che possa servire il vostro laboratorio o i vostri
uffici.
• Anche una macchina capace di montare più dischi
contemporaneamente, come ad esempio un vecchio PC in
formato tower al quale si aggiunge RAM fino a 8G, può
essere trasformato in un file server RAID con l'aiuto di un
software adeguato.
• Uno di questi sw è freenas (www.freenas.org) , ma ce ne
sono vari similari (nas4free, openmediavault, openfiler…)
Esempio
• Per fare pratica potete installare freenas su una macchina
virtuale, sulla quale andremo ad installare 3 dischi
aggiuntivi
• La caratteristica principale di FreeNAS, che me lo fa
preferire a soluzioni alternative, è l'uso "sotto il cofano" di
FreeBSD e del porting su tale sistema operativo di ZFS
• ZFS è sia un files system, sia un logical volume manager,
progettato dalla SUN Microsystem per sistemi professionali
e portato prima su BSD e poi su Linux
• ZFS supporta protezioni contro la corruzione dei dati, check
continuo della integrità, riparazione automatica,
compressione, snapshot, cloni COW, RAID-Z e NFSv4 ACL
FreeNAS su VBox
Per poter usare l'interfaccia grafica, impostare la scheda di rete su host only,
(parla sulla rete 192.168.56), Intel PRO 1000 Desktop
FreeNAS su VBox
Una volta terminata l'installazione spegnere la macchina e rimuovere il disco
di installazione.
FreeNAS su VBox
Dalla stessa interfaccia aggiungere un controller SATA e tre dischi virtuali
dinamici da 12 Gb
FreeNAS su VBox
Dalla stessa interfaccia aggiungere un controller SATA e tre dischi virtuali
dinamici da 12 Gb
FreeNAS su VBox
Al termine dei tentativi di inizializzazione dell'IP, si arriva ad una console
simile alla seguente.
FreeNAS su VBox
Bisogna impostare l'indirizzo di rete con l'opzione 1.
A "Reset Network Configuration" rispondere no e proseguire con il resto delle
domande, impostando l'indirizzo 192.168.56.2/24, senza IPv6.
Riavviare quindi la macchina e reimpostare la password di root
FreeNAS su VBox
A questo punto si può puntare il browser del proprio pc all'indirizzo della
macchina virtuale ed entrare con username root e password impostata.
Uscite dal wizard di configurazione dello storage.
Storage
Storage
Extent
• In iSCSI il target virtualizza qualcosa e la presenta come
un device al client. Quel qualcosa può essere un "file
extent" o un "device extent".
1. Il device extent virtualizza un disco fisico non formattato,
un controller RAID, oppure un volume ZFS.
2. Il file extent permette di esportare una porzione di un
volume ZFS, con il vantaggio di poter avere più
esportazioni separate per ogni volume.
• Virtualizzare un volume ZFS ha senso in quanto sfrutta
le caratteristiche di cache in lettura e scrittura del
filesystem, nel caso non si abbia un controller avanzato
a disposizione.
Extent
Aggiungiamo un extent. Dopo aver premuto OK dovrebbe comparire nell'albero a
sinistra.
Initiators
Portals
Un portale specifica gli indirizzi IP e i numeri di porta che devono essere usati per la
connessione al target. Possono essere specificati anche più indirizzi IP, per aumentare
la disponibilità o partizionare l'accesso fornendo servizi differenti su diverse interfacce
di rete.
Target Global Configuration
• Qui vengono impostati una serie di valori validi per tutti i
target del sistema. Possono essere usati per ottimizzare la
connessione in particolari ambienti, nel nostro caso
ovviamente lasciamo tutto così com'è.
• Passiamo quindi ad aggiungere il target, che verrà
esportato via iSCSI. A questo proposito notiamo che un
target iSCSI è un block device come un qualsiasi disco. Se
deve essere usato da più di un initiator deve esistere uno
strato software (VMFS, LVM clustered) che permetta l'uso
contemporaneo. Se viene formattato con un filesystem
ordinario bisogna fare in modo che un solo initiator alla
volta possa montarlo con privilegi di lettura e scrittura.
Target
Associazione
Infine facciamo partire il servizio da Services->Control Services
initiator
root@garrx-VirtualBox:~# iscsiadm -m discovery -t sendtargets -p
192.168.168.1
192.168.168.1:3260,1 iqn.2011-03.org.example.istgt:mytarget
root@garrx-VirtualBox:~# iscsiadm -m node --targetname iqn.201103.org.example.istgt:mytarget -p 192.168.168.1 --login
Logging in to [iface: default, target: iqn.201103.org.example.istgt:mytarget, portal: 192.168.168.1,3260]
(multiple)Login to [iface: default, target: iqn.201103.org.example.istgt:mytarget, portal: 192.168.168.1,3260] successful.
root@garrx-VirtualBox:~# dmesg
...
[ 3726.607072] sd 3:0:0:0: [sdb] Attached SCSI disk
Ora nella macchina è disponibile un nuovo disco, sdb, che posso formattare ed usare:
root@garrx-VirtualBox:~#
root@garrx-VirtualBox:~#
root@garrx-VirtualBox:~#
root@garrx-VirtualBox:~#
cfdisk /dev/sdb
mkfs.ext4 /dev/sdb1
mkdir /iscsi
mount /dev/sdb1 /iscsi
• https://manuais.iessanclemente.net/images/9/9f/Tia942.pdf
• http://www.adckcl.com/in/en/library/white_papers/enterprise/40
1260in.pdf
• http://www.aeit-taa.org/Documenti/Chloride-1-Data-Centre-TCDBZ.pdf
• http://www.cse.wustl.edu/~jain/cse570-13/ftp/m_03dct.pdf
• http://clusterdesign.org/fat-trees/
• http://www.herts.ac.uk/__data/assets/pdf_file/0017/45350/datacentre-standards.pdf
• http://www.excitingip.com/2802/data-center-network-top-ofrack-tor-vs-end-of-row-eor-design/
• http://www.ieee802.org/3/hssg/public/nov06/diminico_01_1106.
pdf
• http://www.graybar.com/documents/zone-distribution-in-the-data-center.pdf
•
https://uptimeinstitute.com/
•
http://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Data_Center/DC_Infr
a2_5/DCInfra_1.html
•
http://www.techrepublic.com/article/solutionbase-strengthen-network-defensesby-using-a-dmz/
•
http://lutung.lib.ums.ac.id/freebsd/pfSense/docs/dmz.html
•
http://en.community.dell.com/techcenter/high-performancecomputing/b/general_hpc/archive/2012/07/02/designing-scalable-10gb-ethernetnetworks-part-1
• http://en.wikipedia.org/wiki/Equal-cost_multi-path_routing
•
http://www.climaveneta.com/IT/Download/View/930.dl
•
https://agenda.infn.it/getFile.py/access?contribId=21&sessionId=7&resId=0&mate
rialId=slides&confId=9201
Fly UP