Newsgroup: it.comp.os.linux.sys
Titolo: combinare più nics con dm-multipath

salve,
alcuni concetti non sono chiari e spero di chiarirli con voi.
Ho appena configurato correttamente la connessione tra un server Dell
Poweredge T710 con centos 5.4 e una SAN equallogic (iscsi) utilizzando
tutti i pacchetti necessari includendo il multipathd. Il multipath e'
configurato ma solo per una ethernet, vorrei combinare le 4 ethernet
del server per migliorare performance e ridondanza. Domanda: per unire
questi 4 nic devo assegnare 4 IP diversi? oppure basta utilizzare un
solo indirizzo IP? e se assegno 4 IP diversi posso utilizzare anche un
IP di gruppo.
Vorrei capire come funziona la combinazione di piu' interfacce di rete
tramite DM-Multipath.
Il concetto sul bonding e' molto piu' chiaro e semplice.


Ho appena trovato qualcosa su "Pro Ubuntu Server Administration" della
Apress che dice:
<< You can configure NIC bonding in two ways: for maximal redundancy
or for maximal performance. Your enterprise
server might connect to a SAN as well. This adds another requirement:
setting up multipathing.>>
In pratica da quello che ho capito si deve settare prima il bonding
(bond0) e poi il multipath tramite la corretta configurazione di
multipath.conf
Sarà così?

 Sar� cos�?

 IP di gruppo.
Ho messo su da poco una configurazione molto simile e per quel che ho visto, 
con le EqualLogic non ti serve multipath a meno che tu non abbia due path 
fisicamente separati nella SAN. Se hai, come ho io, la SAN su un anello di 
switch, ti basta fare bonding (io fare attivo/passivo per semplicità, ma può 
giocarci) sulle NIC dei server mentre attivi semplicemente le N NIC della 
EqualLogic (io ne ho 4+4, ho una PS6000). A quel punto ti colleghi alla IP 
del gruppo e sarà l'EqualLogic che ti risponderà con una NIC o con un altra 
ad ogni login iSCSI, aumentando quindi la banda disponibile.
-- 
Vide

san(eth1)] perche' devo gestire la ridondanza.
Risposta a Franz: è esattamente quello che devo fare io, ovvero devo
gestire la ridondanza con 4 ethernet! ma il problema è che non è ben
chiaro se devo utilizzare un indirizzo ip per ogni ethernet. Perche'
se devo utilizzare un indirizzo ip diverso per ogno ethernet allora
esistera' anche un modo per raggrupparti in un indirizzo IP di
gruppo.  Se eth0 e' 192.168.1.2 (hostname:pippo) e eth1 e' 192.168.1.3
(hostname:pippo2) quando eth0 ha problemi allora pippo non rispondera'
piu' al ping ma solo pippo2. Sono questi concetti che non ho capito!
Ho configurato il multipath per una sola interfaccia di rete (eth0) e
funziona, le altre tre le ho disabilitate, ora le voglio abilitare per
gestire la ridondanza tramite multipath....come se fa?!

 [server(eth0,eth1)->switch1->san(eth0); server(eth2,eth3)->switch1-
Sì ma switch1 e switch2 non sono collegati fra di loro?
Comunque per il multipath fondamentalmente devi prima poter vedere la stessa 
LUN su due NIC diverse del server (ti crea due dispositivi /dev/sdX diversi 
ma che puntano allo stesso volume) e quindi con dm-multipath crei un device 
che gestisce l'alta disponibilità a livello di block-device, normalmente 
/dev/mapper/nome-che-vuoi che poi partizioni, formatti e monti.
-- 
Vide

 LUN su due NIC diverse del server
si ma le NIC oltre ad essere attive devono avere un indirizzo IP
assegnato?
es. eth0: 192.168.1.2
      eth1: 192.168.1.3


 (ti crea due dispositivi /dev/sdX diversi


 (ti crea due dispositivi /dev/sdX diversi


 eth1: 192.168.1.3
Ovviamente sì, sennò come lo trovi il LUN remoto?
PS per favore impara a quotare un po' meglio
-- 
Vide

 Ovviamente sì, sennò come lo trovi il LUN remoto?
ah ecco perfetto e' questa la risposta che volevo avere. Ma allora
esiste un modo per raggruppare i 4 IP diversi in un solo IP logico di
gruppo? oppure il multipath funziona solo per le SAN con iscsi?
allora da quello che ho capito se il server DELL con le 4 nic fa da
file server a tutta la rete aziendale,  un qualsiasi client utilizzerà
solo eth0 per il collegamento client<-->server e non le altre 3 nic a
differenza del lato server<-->san che utilizza le altre in multipath.
Vero? se e' cosi' ora e' tutto chiarito.


 parametro su multipath.conf unisco tette e 4 le ethernet tra di loro?
N� una n� l'altra. Se vuoi due canali separati la cosa pi� semplice � quella
di creare due VLAN, una per ciascun PATH, e usare classi IP diverse per
ciascun path. Quindi configuri le due eth della SAN sulle due diverse vlan
con 2 IP in classi diverse; sul server invece configuri due bond (eth0+eth1
e eth2+eth3) e metti un bond su ciascuna VLAN con gli IP ovviamente nelle
stesse classi dei due controller SAN. Infine configuri il multipath con i
due path, uno su una classe IP e uno sull'altra.
In questo modo hai accessi fisici e logici separati e ridondati.
-- 
Flavio Visentin
Ubuntu in Zulu significa "Non so usare Debian". (cit. CtRiX)

 oppure il multipath funziona solo per le SAN con iscsi?
Il multipath funziona con qualsiasi sistema che mostri uno stesso device a
blocchi tramite percorsi diversi. Che sia SCSI, Fibre Channel, iSCSI, AoE,
USB o qualsiasi altra cosa � indifferente


 Vero? se e' cosi' ora e' tutto chiarito.
Facciamo prima che spieghi la tua esigenza e ti aiutiamo su quale sia la 
migliore soluzione, perchè ripeto che le EqualLogic hanno caratteristiche 
interessanti che ti possono semplificare notevolmente la vita.
Io per esempio non ho manco installato multipath e posso staccare qualunque 
cavo dal server o dalla cabina o anche spegnere un qualunque switch e 
funziona tutto senza problemi.
-- 
Vide

Disegnino.
                 +------------------+
                 | SERVER           |
                 | 0  1        2  3 |
                 +------------------+
                   |  |        |  |
                   |  |        |  |
         +---------------+  +---------------+
         | SWITCH 1      |  |      SWITCH 2 |
         +---------------+  +---------------+
                      |        |
                      |        |
                    +------------+
                    |  STORAGE   |
                    +------------+
Una soluzione ancora pi� carina, se lo storage non deve essere raggiungibile
da tutti gli altri host della rete, puoi fare la stessa cosa con due VLAN
dedicate a fungere da SAN, una per controller (in modo che ottimizzi anche
il traffico dati) e una vlan per i client.
                 +------------------+
                 |  SERVER          |
                 | 0   1      2   3 |
                 +----------------- +
                   |   |      |   |
                   |   |      |   |
        +------------+---+  +---+------------+
        | SWITCH 1   | V1|  |V2 |   SWITCH 2 |
        +------------+---+  +---+------------+
                       |      |
                       |      |
                    +------------+
                    |  STORAGE   |
                    +------------+
In questo caso 
p.es
. la rete dei client potrebbe essre la 
192.168.0.0/24
, la
VLAN 1 potrebbe essere 
192.168.1.0/24
 e la VLAN 2 
192.168.2.0/24
.
Crei un bonding eth0+eth3 sul server, la eth1 la metti su V1 e la eth2 su V2
configurando il multipath su questi ultimi indirizzamenti IP.


 configurando il multipath su questi ultimi indirizzamenti IP.
non ho capito questo:
hai detto che eth1 va su V1 e eth2 su V2 per il collegamento alla SAN,
ma allora il bonding eth0+eth3 serve per collegare il server con i
client? vero?
+----------------------------------------------+
| SERVER                                 |
| eth0+eth3           eth1     eth2   |
| (bond0)                (multipath)    |
+----------------------------------------------+
   |                         |              |
   |                         | (v1)        |(v2)
LAN         +---------------+  +---------------+
                | SWITCH 1 |  |SWITCH 2 |
               +---------------+  +---------------+
                            |              |
                            |              |
                      +--------------------+
                      |  STORAGE   |
                      +--------------------+
Se e' così da come ho capito allora va benissimo per le mie esigenze.
Il server e' un CentOS5.4 e funge da fileserver di rete che condivide
la SAN tramite SAMBA a tutti i client (WinXP, Win7) della LAN.
Praticamente le home degli utenti e tutti i dischi di rete sono sulla
SAN.

 Se e' cosě da come ho capito allora va benissimo per le mie esigenze.
Sě, hai capito bene. Il limite come detto č che cosě la SAN č accessibile
*direttamente* solo dalle VLAN dedicate e non dalla rete dei client, cosa
comunque IMHO decisamente auspicabile.


 comunque IMHO decisamente auspicabile.
Dovrei fare in modo che anche altri server linux (almeno altri 2)
possano accedere alla SAN. Ora valuto se conviene utilizzare le VLAN.
Comunque grazie mille sei stato chiarissimo!

 possano accedere alla SAN. Ora valuto se conviene utilizzare le VLAN.
Conviene assolutamente. Per gli altri due server non fai altro che mettere
una o due schede di rete sulle vlan dedicate allo storage. Avere lan di
storage separate fa parte comunque delle best practice.


ok grazie ancora.
Non mi dire male se ti faccio un'altra domanda: condierando di voler
utilizzare le VLAN separate cosa devo fare? Basta settare la vlan
sulle 2 porte dello switch, anzi 4 perche' oltre alle 2 nic del server
ci sono anche le 2 della SAN, oppure devo inserire qualche parametro
sul server linux su ogni nic che collega la SAN indicando il nome
della VLAN utilizzato sullo swich?
Scusa l'ignoranza ma non ho mai settato una VLAN, dovebbe essere
semplice sullo switch ma non ho capito se devo impostare qualcosa
anche lato server o SAN.

ho appena configurato il bonding (eth2+eth3) di tipo 4 (802.3ad) e
funziona bene! Ora non ho capito se posso collegare eth2 e eth3 su due
switch separandoli oppure devono essere collegati per forza su uno
stesso switch. Praticamente posso separare eth2 e eth3 solo con il
bonding e non il multipath oppure si creano dei conflitti di indirizzo
unico proveniente da 2 switch diversi?

forse devo aprire un'altra discussione per gli altri dubbi che ho,
comunque siccome e' sempre relativo al multipath e bonding continuo
con l'ennesima questione:
ho configurato il bond0 (eth2+eth3) per la LAN e sto configurando eth0
e eth1 per il multipath verso la SAN, ma quando stabilisco un
collegamento remoto dal server per esempio con rlogin la connessione
parte da eth0. Esiste un ordine di priorita' da definire per i nic?
per esempio vorrei dare questo ordine di priorita' bond0(eth2+eth3),
eth0 e eth1.
Oppure devo ridefinire tutte le nic mettendo la eth0+eth1 in bond0 e
eth2 e eth3 in multipath? scusate le numerose domande....

 eth2 e eth3 in multipath? scusate le numerose domande....
credo tu stia facendo una gran confusione.
-- 
Professional System & Network Sarcazzer
http://bofhskull.wordpress.com/

 della VLAN utilizzato sullo swich?
E' un lavoro che si fa solo sullo switch, configurando l'appartenenza delle
varie porte alla VLAN corretta. Io, d'abitudine, se posso configuro sempre
tutti gli switch in modo identico, in modo da poter spostare le cose senza
difficoltà in caso di problemi. Nel caso tuo 
p.es
. configurerei su ciascuno
switch almeno 2 porte per ciascuna VLAN, anche se poi in realtà 2 sarebbero
inutilizzate per ciascuno switch. Cosa buona e giusta è quella di taggare
anche il trunk che unisce gli switch (se c'è) e attivare lo spanning tree
per evitare eventuali loop.


 unico proveniente da 2 switch diversi?
Eth2 e 3 devi configurarle in bonding perché hai un solo indirizzo IP. Però
io configurerei le due schede in modalità active-backup mettendo una scheda
per ciascuno switch, altrimenti crolla tutto il discorso che hai fatto
sull'high availability.
Consiglio vivissimamente la lettura di bonding.txt nella doc del kernel.
http://www.mjmwired.net/kernel/Documentation/networking/bonding.txt


 parte da eth0. Esiste un ordine di priorita' da definire per i nic?
Hai configurato classi IP diverse sulle 3 vlan?
Come ti ha già detto Skull stai facendo un po' di confusione...


che meraviglia! non potevate essere piu' chiari di cosi'! veramente
grazie