Newsgroup: it.comp.os.linux.sys
Titolo: NBD & RAID

Salve,
qualcuno ha mai provato ad creare un array RAID
software usando, come device, i Network Block Device?
Sarei curioso di sapere se sia possibile avere un
RAID distribuito in rete.
Thanks,
bye,
-- 
piergiorgio

 software usando, come device, i Network Block Device?
http://www.complang.tuwien.ac.at/reisner/drbd/
Non usa nbd, funziona come un vero network raid 1 per due host e
accoppiato con heatbeat (
http://linux-ha.org/download
) ti consente
di creare un vero cluster-ha con due pc. Tempo fa l'ho provato e 
funzionava discretamente (almeno per quello che mi serviva). Se 
decidi di usarlo ti conviene iscriverti alla mailing list.
-- 
Vincenzo

 decidi di usarlo ti conviene iscriverti alla mailing list.
L'ho provato anche io per realizzare un cluster ha. Ma confesso che dà 
un po' di problemi implementativi nella gestione degli stati del cluster.
Alla fine basarmi su kimberlite per il cluster è costato molto di + in 
HW, ma ha fatto risparmiare un sacco di tempo.
Comunque, sì, drbd funziona bene come network raid, ma non mi sentirei 
di consigliarlo se la richiesta è quella di avere macchine a downtime 
inferiore al secondo...
byez
-- 
Emanuele "SKULL" Balla
----------------------------------------------------------------------
"How should I know if it works?  That's what beta testers are for. I
only coded it." (Attributed to Linus Torvalds, somewhere in a posting)

 inferiore al secondo...
La mia idea, pero`, era di usare i "tool" che
sono a disposizione nel kernel standard.
Cioe` usare X PC (al momento 2), ognuno con un
NBD, e creare un array RAID (1, 2, 5...) con
gli X device disponibili, senza preoccuparsi
di dove e come sono implementati.
Eventualmente con la possibilita` di hot swap,
hot upgrade, cambiando/aggiungendo un PC.
bye,
-- 
  Piergiorgio Sartor

 hot upgrade, cambiando/aggiungendo un PC.
capisco. In questo caso, drbd non è quello che ti serve: si limita a 
utilizzare una network block device (la partizione remota) e mantenerla 
allineata con una partizione fisica a cui la associ. + o - un raid 1, ma 
è (comprensibilmente) altra cosa...
Per la cronaca, comunque, gira in userspace...
Per utilizzare il raid software su device nbd onestamente non so cosa 
consigliarti, non mi sono interessato alla cosa, ma dovrebbe essere 
teoricamente fattibile.
Se decidi di sperimentare facci sapere i risultati...


 inferiore al secondo...
Ah, su questo sono pienamente d'accordo :)
-- 
Vincenzo

 Hai usato una versione recente ?
Versione onestamente non ricordo. Avrň provato la soluzione qualche mese 
fa... L'applicazione era qualcosa di simile a quanto indichi tu, ma lě 
la parte piů pesante (e da mantenere fail-safe) era il db.
Per quanto riguarda i problemi, si tratta per lo piů di questioni di 
automatizzazione: volevo qualcosa di simile a quanto č possibile fare 
con kimberlite: avere un cluster ha che mi permettesse di dare servizio 
continuo e inarrestabile.
Il problema con drbd era il concetto stesso di primary/secondary: alla 
variazione di stato del cluster mi risultava un po' troppo macchinoso il 
fatto di "deassociare" la partizione fisica dall' nbd per poi ri-montare 
la stessa come primary del cluster.
Soprattutto, alla risalita del "morto" (ora secondary...), il 
riallineamento del network block da parte del primary era procedura 
troppo lenta (nonostante tutto..) e lasciava con un eccessivo tempo il 
sistema a " braghe calate"...
Con l'architettura di kimberlite, per quanto piů costosa, ho la garanzia 
della consistenza del supporto del file system _indipendentemente_ dallo 
stato del cluster.


 stato del cluster.
Credo che la mia idea sia simile.
Avere un array RAID 5, anche molto ridondante
(credo si possa configurare, questo), in rete.
In modo tale che anche se un PC non c'e`, e`
spento, e` rotto, si possa continuare senza
preoccupazioni.
Inoltre, all'aumentare dei PC, si dovrebbe
poter aumentare la capacita` di storage.
bye,
-- 
  Piergiorgio Sartor

 poter aumentare la capacita` di storage.
Qui ti tiri dentro network block, software raid e LVM tutto insieme...
Avrai di che divertirti :-)
BTW, è un'architettura che per sua natura richiede più di 2 macchine 
(perlomeno se vuoi una cosa abbondantemente ridondante tipo un raid 5)
delle quali solamente una mantiene il FS montato (ma puoi esportarlo 
alle altre via nfs, per dire). Se non capisco male, dalle tue specifiche 
non hai bisogno che una seconda macchina possa prenderne il posto in 5 
secondi: non è più una questione di continuità del servizio, ma di 
integrità dei dati. Quindi le nostre richieste all'NBD mi sembrano 
diverse... ;-)


 diverse... ;-)
Beh, anche di continuita`, nel senso che se un PC va giu`,
nessuno se ne deve accorgere...
Con RAID 5 dovrebbe essere possibile.
bye,
-- 
  Piergiorgio Sartor

 Con RAID 5 dovrebbe essere possibile.
Si, quello che intendevo dire è che (citando quanto detto sopra) se ti 
va giù la macchina con il server nfs, casca il palco...
Le partizioni le hai ancora, certo... ma il servizio non è più 
disponibile...


 Al massimo la può montare una macchina che poi la esporta via nfs server.
Ma come dici sotto, se ho ben capito, vi
e` il problema che questa singola macchina
sarebbe un collo di bottiglia, sia come
traffico che come affidabilita`.
bye,
-- 
  Piergiorgio Sartor

 traffico che come affidabilita`.
come traffico si può limitare: una scheda a 100 Mbit ha nonostante tutto 
un thruput simile a quello di un disco fisso decente. Va da sè che la 
progettazione della rete deve essere piuttosto mirata all'utilizzo...
<SPOT IBM ON>
Conviene piuttosto pensare ad un filesystem di rete con supporto alla 
ridondanza, come può essere quella meraviglia della tecnica che è GPFS...
<SPOT IBM OFF>
;-)


 <SPOT IBM OFF>
Ma io volevo fare le scarpe, ad IBM... :-)
bye,
-- 
  Piergiorgio Sartor

 
Hmmm... da questo punto di vista la vedo dura ;-)
byez e buon hacking!
PS: messaggio di servizio: c'è qualcuno dei presenti che domani è a 
Bologna per l'Hackmeeting? mi piacerebbe conoscere qualche nerd tra 
coloro qui presenti... Ho preso ferie apposta ... ;-)


 Hmmmm i brevetti non li vedo troppo bene ;-)
Immaginavo, per questo l'ho scritto ;-)
bye,
-- 
  Piergiorgio Sartor

 montare la partizione raid da pių di una macchina contemporaneamente.
Infatti, questa soluzione ha lo svantaggio di non essere completamente
distribuita. Come hai detto, non mi risulta che una partizione md
possa essere montata da piu` di un pc. Quindi ci sara` sempre una
macchina (quella che monta la partizione) che diventera` il 'single 
point of failure' del sistema.
Poi, in linea generale, se fosse possibile realizzare un filesystem
di rete fault-tolerant con mezzi 'standard' e disponibili nel kernel 
quali raid-sw e nbd non ci sarebbero sviluppatori che realizzano 
oggetti come 'drbd' proprio per fare le stesse cose ;)
O, per lo meno, dopo un po` se ne accorgono e smettono ;)
-- 
Vincenzo

 O, per lo meno, dopo un po` se ne accorgono e smettono ;)
Beh, magari e` solo un problema prestazionale
o di diversi requisiti.
bye,
-- 
  Piergiorgio Sartor

 oggetti come 'drbd' proprio per fare le stesse cose ;)
Mah.. alla fine drbd non fa molto più che un mirroring. Infatti si 
appoggia a sua volta a nbd.
In ogni caso, anche drbd non ti permette di montare il f/s condiviso su 
entrambe le macchine contemporaneamente. Solo, se smonti il NBD e lo 
rimonti come partizione "normale", hai il filesystem duplicato dalla 
precedente...
Byez


 precedente...
Giusto, giusto.
Ma, hai presente i vari protocolli usati da drbd per la sincronizzazione ?
Bene, con quelli puoi decidere il tradeoff tra velocita` ed integrita`.
Con raid-sw e nbd forse (ma dico forse perche` onestamente non ho
guardato) non hai questa possibilita`. In pratica quello che non mi
convince e` il fatto di usare uno strumento pensato principalmente
per i device locali, con una tipologia di dispositivi del tutto diversa.
Probabilmente funziona, ma lo strumento non credo sia ottimizzato per
viaggiare su un dev. di rete con tutte le differenze del caso.
-- 
Vincenzo

 viaggiare su un dev. di rete con tutte le differenze del caso.
Infatti, per questo chiedevo :-)
Il problema dei race condition, pero`,
credo sia alquanto insormontabile,
senza una qualche centralizzazione
delle operazioni.
Oppure, credo, si potrebbe risolvere
forzando la sincronizzazione fra i
device dell'array.
Cioe` quando si invia un blocco al
PC x, si informa questo di quali
altri PC hanno ricevuto lo stesso
blocco, e questi (i vari PC) si
sincronizzano, in modo da evitare
problemi.
Ovviamente questo non si risolve con
NBD e RAID SW.
Pero` un PC alla volta...
bye,
-- 
piergiorgio

 viaggiare su un dev. di rete con tutte le differenze del caso.
certamente. soprattutto in considerazione del fatto che il nostro amico 
non ha intenzione di alterare la sua geometria di rete (cosa che 
potrebbe velocizzare parecchio le operazioni...). D'altra parte è solo 
un esperimento.
E resta il fatto che sono esperimenti interessanti... certo non farai 
concorrenza a IBM, però può essere formativo ;-)
Io personalmente di queste bojate ne ho fatte parecchie: d'altra parte 
fino a quando non vedi da te _perchè_ non funziona, hai 1/5 comprensione 
che potresti/dovresti avere del problema...
byez
