Linux – SAN e NAS ● Introduzione ● Cos'è una SAN ● Cos'è un NAS ● Architettura e differenze fra i due dispositivi ● Schemi ● Protocolli utilizzati ● Terminalogia ● Come collegare Linux (Debian) ad una SAN
Premessa ● Su questi dispositivi il PREZZO NON è la caratteristica predominante. ● Lo sono altre quali: ● Sicurezza (rarissimo ripristino da nastro) ● Flessibilità (distribuire disco fra host) ● Rapidità di ripristino tramite snapshots
Cos'è una SAN ● Dispositivo che fornisce Storage virtuale agli HOST connessi (accesso a basso livello) ● Tramite politiche di sicurezza permette di presentare i volumi virtuali a uno o più host ● I suoi componenti sono: ● Gruppo di dischi ● Controller disco ● Dispositivi di interconnessione (switch o hub) ● HBA = schede di connessione per gli hosts ● Storage Area Network = suggerisce già una rete, non ethernet o token-ring, ma una rete per la gestione dello storage ad esso dedicata.
Cos'è un NAS Dispositivo che fornisce storage agli UTENTI ad esso connessi. Gli utenti si connettono tramite la rete aziendale al dispositivo che con politiche di sicurezza condivide uno spazio disco (basato su file). E' costituito da un server o PC ridotto e ottimizzato, normalmente con Linux per condividere i file su differenti piattaforme: *nux, windows. A volte lui stesso non ha dischi fisici, ma collegato ad una SAN, usa dischi virtuali forniti da quest'ultima. ● Network Attached Storage = suggerisce un dispositivo di condivisione spazio disco attaccato alla rete aziendale
Architettura differenze fra i due sistemi ( Schemi) ● Componenti: ● Dischi ● Controller ● Fabric simile a switch ● Componenti: ● Dischi interni oppure virtuali SAN ● File Server Le unità nastro alla SAN sono collegate direttamente al fabric, mentre su di un NAS il nastro è interno. I dati in SAN quindi passano direttamente dallo storage al nastro e quest'ultimo può essere condivisa da più server.
Accenno ai protocolli ● Fibre channel = Protocollo utilizzato nelle SAN, serializza il protocollo SCSI ed altri, vedi il link del CERN, Cerca di fondere la velocità della comunicazione su canale (HW intensive) con la flessibilità di quella via rete (SW intensive – molto overhead -) ● ISCSI = Altro protocollo che permette di imbustare lo SCSI su TCP/IP, non ha bisogno dei dispositivi fabric costosi però è instradabile su internet e LAN. Normalmente usato per i disaster recovery a distanza. Non ha le prestazioni del primo. ● ATA Over Ethernet = Protocollo sviluppato per accedere a dischi SATA via Ethernet, non instradabile perché appoggiato direttamente su Ethernet. Nessuna sicurezza implementata, vari dispositivi locali possono accedervi contemporaneamente.
Terminologia SAN ● Fabric = L'equivalente degli switch solo che gestisce il protocollo fibre channel anziché l'ethernet ● Zoning = L'equivalente di Vlan, permette di isolare gli host collegati ad una SAN. Normalmente una zona contiene: i controller disco, l'host o i nodi di un cluster che condividono il volume e l'eventuale unità di backup ● Arbitrary Loop = L'equivalente degli HUB, molto meno performante rispetto all'architettura fabric ● HBA = Host Bus Adapter è la scheda che permette di collegare l'host ad una SAN ● WWN o WWID = World Wide Name o Identifier, l'equivalente del MAC, permette di identificare univocamente i dispositivi o i volumi virtuali
Terminologia SAN ● LUN = Logical Unit Number è un numero assegnato ad una unità logica o virtuale ● Snapshot = Fotografia ad un determinato istante di un volume virtuale, normalmente lo spazio è dinamico e non preallocato ● SnapClone = Come la precedente solo che lo spazio è preallocato, il volume originale viene copiato rapidamente per avere migliori prestazioni di lavoro sulla fotografia ● MirrorClone = Come il precedente solo che permette la ri- sincronizzazione automatica o manuale
Come collegare Linux ● I pacchetti necessari sono: ● dmsetup = Device Mapper, contiene un programma per configurare il driver del kernel per i volumi virtuali. Usato in LVM, EVMS ecc... ● multipath-tools = Utilità CLI per la gestione dei percorsi multipli,anche demone per l'aggancio disco. ● multipath-tools-initramfs = Supporto per il boot da volumi virtuali multipath. Necessario per caricare al boot il firmware dell'HBA
Cosa accade con una SAN ● Elevata sicurezza con percorsi multipli ● Inconvenienti: vedo un volume virtuale come se fosse moltiplicato.
Aggregazione dei percorsi ● Il pacchetto multipath permette di accorpare i vari percorsi in un solo: ● multipath -ll ● SAN_Disk1 ( b400105d7c0000d00037c70000) dm-0 HP,HSV200 ● [size=1.0G][features=1 queue_if_no_path][hwhandler=0] ● \_ round-robin 0 [prio=120][active] ● \_ 0:0:0:1 sda 8:0 [active][ready] ● \_ 0:0:1:1 sdb 8:16 [active][ready] ● \_ 1:0:0:1 sdc 8:32 [active][ready] ● \_ 1:0:1:1 sdd 8:48 [active][ready]
Aggregazione dei percorsi ● Quattro volumi fisici: ● ls -al /dev/sd* ● brw-rw root disk 8, :03 /dev/sda ● brw-rw root disk 8, :03 /dev/sdb ● brw-rw root disk 8, :03 /dev/sdc ● brw-rw root disk 8, :03 /dev/sdd ● Un solo volume virtuale: ● ls -al /dev/mapper/ ● totale 0 ● drwxr-xr-x 2 root root :03. ● drwxr-xr-x 17 root root :04.. ●..... ● brw-rw root disk 254, :03 SAN_Disk1 ●.....
Doppio volume presentato ● Notare l'assegnazione alternata dei volumi fisici: ● SAN_Disk1 ( b400105d7c0000d00037c70000) dm-0 HP,HSV200 ● [size=1.0G][features=1 queue_if_no_path][hwhandler=0] ● \_ round-robin 0 [prio=120][active] ● \_ 0:0:0:1 sda 8:0 [active][ready] ● \_ 0:0:1:1 sdc 8:32 [active][ready] ● \_ 1:0:0:1 sde 8:64 [active][ready] ● \_ 1:0:1:1 sdg 8:96 [active][ready] ● SAN_Disk2 ( b400105d7c0000d000395d0000) dm-1 HP,HSV200 ● [size=2.0G][features=1 queue_if_no_path][hwhandler=0] ● \_ round-robin 0 [prio=120][active] ● \_ 0:0:0:2 sdb 8:16 [active][ready] ● \_ 0:0:1:2 sdd 8:48 [active][ready] ● \_ 1:0:0:2 sdf 8:80 [active][ready] ● \_ 1:0:1:2 sdh 8:112 [active][ready]
Doppio volume presentato ● ls -al /dev/sd* ● brw-rw root disk 8, :35 /dev/sda ● brw-rw root disk 8, :35 /dev/sdb ● brw-rw root disk 8, :35 /dev/sdc ● brw-rw root disk 8, :35 /dev/sdd ● brw-rw root disk 8, :35 /dev/sde ● brw-rw root disk 8, :35 /dev/sdf ● brw-rw root disk 8, :35 /dev/sdg ● brw-rw root disk 8, :35 /dev/sdh ● ls -al /dev/mapper/ ● totale 0 ● drwxr-xr-x 2 root root :35. ● drwxr-xr-x 17 root root :35.. ●..... ● brw-rw root disk 254, :35 SAN_Disk1 ● brw-rw root disk 254, :35 SAN_Disk2 ●.....
Errore su un HBA ● Unico volume: ● SAN_Disk1 ( b400105d7c0000d00037c70000) dm-0 HP,HSV200 ● [size=1.0G][features=1 queue_if_no_path][hwhandler=0] ● \_ round-robin 0 [prio=60][active] ● \_ 1:0:0:1 sdc 8:32 [active][ready] ● \_ 1:0:1:1 sdd 8:48 [active][ready] ● Due volumi: ● SAN_Disk1 ( b400105d7c0000d00037c70000) dm-0 HP,HSV200 ● [size=1.0G][features=1 queue_if_no_path][hwhandler=0] ● \_ round-robin 0 [prio=60][enabled] ● \_ 1:0:0:1 sde 8:64 [active][ready] ● \_ 1:0:1:1 sdg 8:96 [active][ready] ● SAN_Disk2 ( b400105d7c0000d000395d0000) dm-1 HP,HSV200 ● [size=2.0G][features=1 queue_if_no_path][hwhandler=0] ● \_ round-robin 0 [prio=60][enabled] ● \_ 1:0:0:2 sdf 8:80 [active][ready] ● \_ 1:0:1:2 sdh 8:112 [active][ready]
Errori nei pacchetti ● Il pacchetto multipath-tools-initramfs contiene due errori: ● /usr/share/initramfs-tools/hooks/multipath_hook ● /usr/share/initramfs-tools/hooks/firmware_hook ● Il primo serve per caricare i moduli corretti per il multipath, il secondo invece serve per dare la precedenza a udev nella creazione dell'initramfs.
Configurazione ● L'HBA Qlogic necessita di caricare il firmware al boot ecco perchè si deve rifare l'nitramfs. ● Configurazione di multipath: /etc/multipath.conf è suddiviso in sezioni: ● Default = serve a definire dei parametri comuni a tutte le SAN (possibilità di averne più di una) ● Devices = definisce le varie SAN ● Devnode_blacklist = regexp per escludere i dischi normali ● Multipaths = definisce i dischi: WWID = Alias
Esempio di multipath (parte I) ● # File di configurazione per il multipath SAN EVA4000 ● # Fare riferimento ai seguenti file o siti: ● # /usr/share/doc/multipath-tools/examples/multipath.conf.annotated.gz ● # ● # ● # ● #Sezione per le impostazioni di default, che però vanno già bene ● defaults { ● } ● #Sezione per i parametri di una SAN particolare ● devices { ● device { ● vendor "HP" ● product "HSV200" ● path_grouping_policy multibus ● getuid_callout "/sbin/scsi_id -g -u -s /block/%n" ● path_checker tur ● path_selector "round-robin 0" ● prio_callout "/sbin/mpath_prio_alua %n" ● failback immediate ● rr_weight uniform ● rr_min_io 100 ● no_path_retry 10 ● }
Esempio di multipath (parte II) ● #Sezione espressioni regolari per escludere i dischi normali ● devnode_blacklist { ● devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" ● devnode "^hd[a-z][[0-9]*]" ● devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]" ● } ● #Sezione per la rinomina dei dischi SAN in maniera umana ● multipaths { ● multipath { ● wwid b400105d7c0000d00037c70000 ● alias SAN_Disk1 ● } ● multipath { ● wwid b400105d7c0000d000395d0000 ● alias SAN_Disk2 ● }
Aggiornamento ● L'initramfs: ● # update-initramfs -uvk xen-686 ● Per vedere un disco immediatamente quando presentato: ● # echo 1 > /sys/class/fc_host/host /issue_lip ● # echo "- - -" > /sys/class/scsi_host/host /scan
Conclusioni e test ● Riavviamo, così proviamo: ● initramfs ● La presentazione dei nostri dischi SAN, si dovrebbero vedere o i dischi o il famoso WWID ● # ls -al /dev/mapper ● Test: ● Verifica funzionamento multipercorso: ● # watch -n 1 multipath -ll ● Stacco una fibra o disattivo una porta sullo switch SAN
Fonti ● ● ● ● ● ● ●
Fonti ● ● ● ● ● ●
Licenza della presentazione ● Autore: Gianni Caldonazzi ● Licenza: Creative Commons Attribuzione- Condividi allo stesso modo 2.5 Italia License ● Info: