# [TIP] dischi virtuali e remote raid con GNBD

## makoomba

Come si può condividere lo storage in rete ?

nfs lo conoscono tutti, ma alla domanda in questione si può rispondere anche:

con un "network block device".

NBD è un modulo del kernel ed ha un funzionamento molto semplice:

il device fisico (disco/partizione/file) si trova sul server, NBD lo "importa" e il client vi accede localmente.

Ora, sebbene i network block devices e relativi tools userspace non siano giovanissini, i crash frequenti ne limitano fortemente l'utilizzo.

RedHat, nella sua nuova, fiammeggiante suite dedicata al clustering, ha creato un'implementazione molto robusta denominata GNBD.

GNBD, in realtà, è solo un componente di un'infrastruttura molto più complessa che comprende GFS*, cluster manager + varie ed eventuali.

Ai fini del tip in oggetto, GNBD basta e soverchia, per cui sorvoliamo sul resto.

Installazione.

```
/etc/portage/package.keywords

..

sys-cluster/gnbd ~x86

sys-cluster/gnbd-headers ~x86

sys-cluster/gnbd-kernel ~x86

sys-cluster/magma ~x86

..

emerge sys-cluster/gnbd sys-cluster/gnbd-kernel

depmod -a
```

Ora, creiamo e due dischi virtuali ext3 da 100Mb sul server:

```
dd if=/dev/zero of=/data/disk1 bs=1024 count=`expr 100 \* 1024`

dd if=/dev/zero of=/data/disk2 bs=1024 count=`expr 100 \* 1024`

mkfs.ext3 -F /data/disk1

mkfs.ext3 -F /data/disk2
```

Creati i disci, esportarli è molto semplice:

```
# facciamo partire il server

gnbd_serv -n

# aggiungiamo gli shares

gnbd_export -c -e disk1 -d /data/disk1

gnbd_export -c -e disk2 -d /data/disk2

# visualizziamo gli shares esportati

gnbd_export -l
```

Sul client

```
# modulo del kernel

modprobe gnbd

# importiamo gli shares

gnbd_import -n -i $SERVER

# visualizziamo gli shares importati

gnbd_import -ln
```

Ora, i devices locali

```
/dev/gnbd/disk1

/dev/gnbd/disk2
```

corrispondono a disk1 e disk2 creati in precedenza sul server ed ogni modifica locale viene trasmessa via rete ai devices reali.

possiamo montarli ed utilizzarli come faremmo se i devices fossero realmente sul client

```
mount /dev/gnbd/disk1 /mnt/disk1

mount /dev/gnbd/disk2 /mnt/disk2
```

Raid remoto distribuito.

Ora la parte più bella, supponiamo che disk1 e disk2 vengano importati da due servers distinti.

Creando un raid software, potremmo distribuire il carico sui servers (raid0) o avere un backup realtime (raid1).

```
modprobe raid1

mdadm --create /dev/md0 --auto=yes --level=1 --raid-devices=2 /dev/gnbd/disk1 /dev/gnbd/disk2

mount /dev/md0 /mnt/raid1
```

Happy coding.

 * c'era scritto qualcosa qui, ma non ricordo esattamente cosaLast edited by makoomba on Tue Dec 20, 2005 10:58 am; edited 1 time in total

----------

## !equilibrium

ottimo TIP, proprio quello che cercavo.

come sono le performance in lettura/scrittura di NBD ?

----------

## makoomba

in lettura 10mb/s su una 100mbit.

in scrittura è un pò più difficile a causa della cache, ma a rigor di logica i tempi dovrebbero essere identici.

mi piacerebbe fare qualche test più serio, magari su gigabit ethernet.

----------

## !equilibrium

 *makoomba wrote:*   

> in lettura 10mb/s su una 100mbit.
> 
> in scrittura ï¿½ un pï¿½ piï¿½ difficile a causa della cache, ma a rigor di logica i tempi dovrebbero essere identici.
> 
> mi piacerebbe fare qualche test piï¿½ serio, magari su gigabit ethernet.

 

grazie per la risposta, farÃ² qualche test anche io con NBD + XFS e credo che una rete gigabit sia proprio necessaria.

----------

## SilverXXX

Molto bello, ma personalmente ce lo vedo bene solo su una gigabit

----------

## Dr.Dran

Ho una piccola curiosità, ma viene fatto un controllo di accesso sugli utenti? Oppure tutti possono montare le partizioni condivise?

Scusate ma la domanda per me è lecita e necessaria   :Wink: 

EDIT: eh eh eh scusate l'approccio ma mi interessa poichè potrebbe essere un ottimo filesystem sostitutivo per NFS   :Wink: 

----------

## xchris

complimenti makoomba  :Smile: 

ottimo tip per una cosa veramente "sconosciuta" o quasi.

Ti nomino "Capo Tips Inusuali e Curiosi"  :Laughing: 

 :Wink: 

ciao

----------

## makoomba

@xchris

ehehe, sono onorato dell'investitura e ti anticipo il nuovo (da postare, tempo permettendo)

```
[TIP] WinXP inside gentoo: was vmware-player + qemu
```

@DranXXX

no, i controlli di accesso vanno implentati nei livelli successivi (GFS)

puoi usare iptables, ma a livello globale e non per singolo share

----------

## Kernel78

Ho da poco scoperto questo strumento e mentre mi accingo a testarlo approfonditamente mi chiedo come mai sia quasi sconosciuto rispetto a NFS (almeno io ho sempre trovato riferimenti a nfs e mai a nbd).

Da quanto ho letto ndb offre prestazioni maggiori e dovrebbe anche essere più cool   :Laughing: 

Ok, questo potevo risparmiarmelo ma sembra che, contrariamente a nfs, possa fare al caso mio permettendomi di condividere un cdrom UDF (prima testo e poi confermo).

Voi lo conoscevate e lo avete scartato (se è così per quale motivo ?) o esiste una cospirazione interplanetaria per nasconderci le potenzialita di nbd (oltre che delle GPU   :Laughing:  ) ?

----------

## Ic3M4n

mi sa che la cospirazione ha lasciato il segno anche qui.   :Wink:   :Laughing: 

----------

## makoomba

è buggatissimo e crasha una bellezza

usa gnbd.

c'è un tip nella sezione apposita.

----------

## Kernel78

 *makoomba wrote:*   

> è buggatissimo e crasha una bellezza
> 
> usa gnbd.
> 
> c'è un tip nella sezione apposita.

 

Ho letto che l'hanno incluso nel kernel dalla 2.1 e pensavo che ormai fosse decisamente stabile   :Shocked: 

Dove posso trovare un elenco dei bug di cui parli ?

Grazie per avermi segnalato il tip   :Wink: 

----------

## makoomba

beh, cerca un pò su internet, ma considera che la mia è un esperienza diretta.

voglio dire, ho provato ad utilizzarlo ma crasha, oopsa, urla, sputa, rutta, etc, etc.

----------

## .:chrome:.

 *Kernel78 wrote:*   

> Ho letto che l'hanno incluso nel kernel dalla 2.1

 

no. non 2.1, ma 2.6.1

questo spiega perché è poco conosciuto (NFS esiste dalla notte dei tempi, NBD esiste dal 2004) e perché è ancora così buggato. si tratta semplicemente di un codice giovane

----------

## Kernel78

 *makoomba wrote:*   

> beh, cerca un pò su internet, ma considera che la mia è un esperienza diretta.
> 
> voglio dire, ho provato ad utilizzarlo ma crasha, oopsa, urla, sputa, rutta, etc, etc.

 

Da come le descrivi mi ricorda mio fratello   :Laughing: 

Giusto per curiosità : ti è capitato di trovare altra gente che si lamentasse dell'instabilità conclamata di nbd o i tuoi commenti sono solo frutto della tua esperienza ? non che non mi fidi di te, anzi, dopo i tuoi commenti presterò maggiore attenzione ma per il poco che ho trovato per ora mi sembrava che ne parlassero solo bene ...

Adesso provo a vedere se google mi aiuta a cercare dei bug   :Wink: 

----------

## Kernel78

 *k.gothmog wrote:*   

>  *Kernel78 wrote:*   Ho letto che l'hanno incluso nel kernel dalla 2.1 
> 
> no. non 2.1, ma 2.6.1
> 
> questo spiega perché è poco conosciuto (NFS esiste dalla notte dei tempi, NBD esiste dal 2004) e perché è ancora così buggato. si tratta semplicemente di un codice giovane

 

Allora il sito http://nbd.sourceforge.net/ è errato visto che riporta  *Quote:*   

> Network block device has been included into standard (Linus') kernel tree in 2.1.101.

  e anche http://www2.linuxjournal.com/article/3778 da cui cito  *Quote:*   

> In April of 1997, Pavel Machek wrote the code for his Network Block Device (NBD), the vehicle for his work being the then-current 2.1.55 Linux kernel.

 

Da dove hai ricavato le tue info ?

----------

## makoomba

@k.gothmog

non soffre di problemi di gioventù, soffre di problemi e basta

```
/*

 * Network block device - make block devices work over TCP

 *

 * Note that you can not swap over this thing, yet. Seems to work but

 * deadlocks sometimes - you can not swap over TCP in general.

 *

 * Copyright 1997-2000 Pavel Machek <pavel@ucw.cz>

 * Parts copyright 2001 Steven Whitehouse <steve@chygwyn.com>

 *

 * (part of code stolen from loop.c)

 *

```

 *Kernel78 wrote:*   

> Giusto per curiosità : ti è capitato di trovare altra gente che si lamentasse dell'instabilità conclamata di nbd o i tuoi commenti sono solo frutto della tua esperienza ? non che non mi fidi di te, anzi, dopo i tuoi commenti presterò maggiore attenzione ma per il poco che ho trovato per ora mi sembrava che ne parlassero solo bene ...

 

mi è bastata l'esperienza diretta.

passato a gnbd, son spariti tutti i problemi

----------

## .:chrome:.

 *Kernel78 wrote:*   

> Allora il sito http://nbd.sourceforge.net/ è errato visto che riporta  *Quote:*   Network block device has been included into standard (Linus') kernel tree in 2.1.101. 

 

evidentemente ricordo male.

eppure ricordo di avere discusso di quel coso con un tipo proprio in concomitanza delle prime uscite del kernel 2.6, e quando lavoravo là era proprio l'inizio del 2004... è possibile che sia stato pesantemente riscritto in quell'occasione o che abbia cambiato nome assumendo l'attuale NBD?

----------

## Kernel78

 *makoomba wrote:*   

> 
> 
> mi è bastata l'esperienza diretta.
> 
> passato a gnbd, son spariti tutti i problemi

 

Quello che mi secca è dover usare sw mascherato quando teoricamente esiste già un equivalente "stabile" anche se a quanto dici molto stabile non è   :Crying or Very sad: 

... mettero mano al package.keywords  :Evil or Very Mad:  ...

----------

## Kernel78

 *k.gothmog wrote:*   

>  *Kernel78 wrote:*   Allora il sito http://nbd.sourceforge.net/ è errato visto che riporta  *Quote:*   Network block device has been included into standard (Linus') kernel tree in 2.1.101.  
> 
> evidentemente ricordo male.
> 
> eppure ricordo di avere discusso di quel coso con un tipo proprio in concomitanza delle prime uscite del kernel 2.6, e quando lavoravo là era proprio l'inizio del 2004... è possibile che sia stato pesantemente riscritto in quell'occasione o che abbia cambiato nome assumendo l'attuale NBD?

 

Come diceva una celebre pubblicità "Questo lo ignoro" ... ho conosciuto nbd solo oggi   :Wink: 

----------

## makoomba

```
 * 97-3-25 compiled 0-th version, not yet tested it

 *   (it did not work, BTW) (later that day) HEY! it works!

 *   (bit later) hmm, not that much... 2:00am next day:

 *   yes, it works, but it gives something like 50kB/sec

 * 97-4-01 complete rewrite to make it possible for many requests at

 *   once to be processed

 * 97-4-11 Making protocol independent of endianity etc.

 * 97-9-13 Cosmetic changes

 * 98-5-13 Attempt to make 64-bit-clean on 64-bit machines

 * 99-1-11 Attempt to make 64-bit-clean on 32-bit machines <ankry@mif.pg.gda.pl>

 * 01-2-27 Fix to store proper blockcount for kernel (calculated using

 *   BLOCK_SIZE_BITS, not device blocksize) <aga@permonline.ru>

 * 01-3-11 Make nbd work with new Linux block layer code. It now supports

 *   plugging like all the other block devices. Also added in MSG_MORE to

 *   reduce number of partial TCP segments sent. <steve@chygwyn.com>

 * 01-12-6 Fix deadlock condition by making queue locks independent of

 *   the transmit lock. <steve@chygwyn.com>

 * 02-10-11 Allow hung xmit to be aborted via SIGKILL & various fixes.

 *   <Paul.Clements@SteelEye.com> <James.Bottomley@SteelEye.com>

 * 03-06-22 Make nbd work with new linux 2.5 block layer design. This fixes

 *   memory corruption from module removal and possible memory corruption

 *   from sending/receiving disk data. <ldl@aros.net>

 * 03-06-23 Cosmetic changes. <ldl@aros.net>

 * 03-06-23 Enhance diagnostics support. <ldl@aros.net>

 * 03-06-24 Remove unneeded blksize_bits field from nbd_device struct.

 *   <ldl@aros.net>

 * 03-06-24 Cleanup PARANOIA usage & code. <ldl@aros.net>

 * 04-02-19 Remove PARANOIA, plus various cleanups (Paul Clements)

 * possible FIXME: make set_sock / set_blksize / set_size / do_it one syscall

 * why not: would need access_ok and friends, would share yet another

 *          structure with userland

 */
```

cmq, il problema c'è anche a livello di userspace

ogni server esporta un singolo share, quindi n shares = n servers

----------

## Kernel78

Una curiosità ...

I passi che hai descritto sono sufficienti o devo mettere mano al kernel (per nbd devo aggiungere nel kernel il supporto) ?

----------

## makoomba

sys-cluster/gnbd-kernel compila il modulo per il kernel.

----------

## Kernel78

 *makoomba wrote:*   

> 
> 
> cmq, il problema c'è anche a livello di userspace
> 
> ogni server esporta un singolo share, quindi n shares = n servers

 

Domanda: con gnbd n shares = 1 server ?

----------

## Kernel78

 *makoomba wrote:*   

> sys-cluster/gnbd-kernel compila il modulo per il kernel.

 

con la domanda che sto per fare mostrerò tutta la mia abissale ignoranza !!!

Ogni volta che ricompilo il kernel devo riemergere il pacchetto ?

----------

## makoomba

sì

ps

dai tempi di risposta sul forum, si nota molto che oggi non ho voglia di fare un ca$$o ?

----------

## Kernel78

 *makoomba wrote:*   

> sì
> 
> 

 

fiko, ho visto che nella prossima versione di nbd è prevista la stessa cosa (ma se è pieno di bug come dici ...)

 *makoomba wrote:*   

> 
> 
> ps
> 
> dai tempi di risposta sul forum, si nota molto che oggi non ho voglia di fare un ca$$o ?

 

Dillo a me, oggi non ho voglia di fare un kavolo e non faccio altro che star collegato al mio pc via ssh e usare il mio proxy via openvpn   :Cool: 

P.S. ho appena emerso gnbd

----------

## makoomba

sì ma c'è un pacchetto per automatizzare la cosa

solo che non mi ricordo il nome...

----------

## Ob1w4n

Non conosco GNDB, ma conosco GFS. GFS non è un fs distribuito, ma un fs accessibile da + macchine contemporaneamente nel caso di uno storage condiviso. Dove per condiviso non intendo via rete, tipo un NAS, bensì su bus quali SCSI o FiberChannel. 

OpenAFS e Coda sono fs distribuiti, nel senso che risiedono su + dischi di + macchine, tutti indipendenti tra loro.

Io, ad esempio, ho usato GFS per connettere a 2 server un unico disc array con 6 dischi in raid 5.

Ora magari approfondisco il discorso GNDB, se dite che è fatto per sostituire NFS allora può essermi molto utile. (considerata poi la fatica che ho fatto per tirar su sta Redhat Cluster Suite sarebbe anche il caso che mi desse qualcosa di + ...  :Very Happy: )

----------

## Dr.Dran

@Ob1w4n

Grazie per il proverbiale intervento, perchè anche io ho avuto a che vedere con OpenGFS e altri fs per cluster (pvfs1/2 etc etc)...e mi hai ricordato una cosa che dimenticavo da tempo...   :Wink: 

@tutti

Bene mi sono documentato per benino e ho scoperto che GNBD non è niente altro che l'associazione del Network Block Device alle features di una implementazione open di GFS da parte di RedHatd...

Dunque il problema come ha accennato molto correttamente Ob1w4n si tratta di un sistema per render un device o un file accessibile via rete, non esistono di fatto politiche sugli accessi o sugli utenti (in questo caso differisce proprio da NFS), come anche citava makoomba le uniche politiche di accesso sono legate a programmi estreni quale iptables, per filtare gli accessi dalla rete... in effetti fu inventato concettualmente per distribuire un filesystem in una rete di un clustre di macchine senza preoccuparsi della sicurezza... e nenache della sicurezza dei dati, visto che non esisteva un sistema di ridondanza, cioè mi spiego meglio: il sistema poteva essere implementato sul device ad esempio facendo un raid software, ma a volte non era sufficiente perchè per un motivo o per l'atro si potevano perdere dei dati se una delle due macchine andava in crash...

Per sopperire a tale mancaza fu implementato in principio un nuovo sistem di gestione dell'NBD l'ENDB dove la E sta per Enhanced "avanzato"... vedete questa dcumentazione:

http://www.it.uc3m.es/~ptb/nbd/ (Questa è storia ormai)

Successivamente da ENBD venne inventato il seguente programmino DRDB specificatamente implementato per la ridondanza dei sistemi cluster:

http://www.drbd.org/

Suggerisco inoltre una bella lettura della Tesi di Laurea di Sabino Colò sull'implementazione di un sistem HA:

http://www.gentoo.it/doc/HAcluster.pdf

In ultimo RH ha deciso di prendere quello che c'è di buono di GFS (il quale mi sembra non sia opensource, ma lasciato di libero utilizzo da ibm come software closed source) e l'url è:

http://sources.redhat.com/cluster/

Scusate il pessimo Italiano e la pessima esposizione dei fatti... ma sono appena rientrato da una terapia uto per la cervicale e compagnia bella...   :Very Happy:   :Very Happy:   :Very Happy:   :Very Happy:   :Very Happy: 

Ciauz   :Very Happy: 

----------

## Dr.Dran

Mi sa che questo post potrebbe essere "mergiato" con l'altro su Gnbd   :Very Happy: 

----------

## makoomba

 *Ob1w4n wrote:*   

> Non conosco GNDB, ma conosco GFS. GFS non è un fs distribuito, ma un fs accessibile da + macchine contemporaneamente nel caso di uno storage condiviso. Dove per condiviso non intendo via rete, tipo un NAS, bensì su bus quali SCSI o FiberChannel. 
> 
> OpenAFS e Coda sono fs distribuiti, nel senso che risiedono su + dischi di + macchine, tutti indipendenti tra loro.

 

non ho esperienza con gfs ma suppongo che, tramite gnbd, si possa costruire un fs che risieda fisicamente su dischi diversi.

suppongo anche di aver utilizzato il termine "distribuito" in base alla supposizione precedente.

il che, all'atto pratico, potrebbe trasformare le mie supposizione in supposte...

----------

## Dr.Dran

Si, distribuito vuole dire che un pezzeto del filesystem risiede su ogni macchina... eh eh Vedi Coda, GFS, OpenAFS e PVFS2 (lo consigio è molto stabile e performante... è pure utilizzato e sviluppato dalla NASA)  :Very Happy: 

----------

## gutter

 *DranXXX wrote:*   

> Mi sa che questo post potrebbe essere "mergiato" con l'altro su Gnbd  

 

Done  :Wink: 

----------

## makoomba

 *makoomba wrote:*   

> il che, all'atto pratico, potrebbe trasformare le mie supposizione in supposte...

 

mmm, guardare solo le figure sui documenti rh, senza leggere il contenuto, deve avermi tratto in inganno...

facciamo così, edito il post levando "distribuito" ed, in futuro, negherò di averlo mai scritto.

direi che questa è la soluzione migliore.

----------

## Kernel78

 *makoomba wrote:*   

>  *makoomba wrote:*   il che, all'atto pratico, potrebbe trasformare le mie supposizione in supposte... 
> 
> mmm, guardare solo le figure sui documenti rh, senza leggere il contenuto, deve avermi tratto in inganno...
> 
> facciamo così, edito il post levando "distribuito" ed, in futuro, negherò di averlo mai scritto.
> ...

 

scritto cosa ???   :Laughing: 

Cavolate a parte mi sto divertendo tantissimo a giocare con questa cosa, mi sento come un bambino tra i regali di natale ... purtroppo devo stare attento al mio capo o mi riempie di calci  :Sad: 

----------

## Ob1w4n

 *Kernel78 wrote:*   

> Cavolate a parte mi sto divertendo tantissimo a giocare con questa cosa, mi sento come un bambino tra i regali di natale ... purtroppo devo stare attento al mio capo o mi riempie di calci 

 

Fortunatamente io sono pagato per provare queste cose... Ed ho 6 bellissimi server per giocare, in fondo è Natale anche per me !!!

Cmq, seriamente, se qualcuno mi sa dire per bene che è e cosa fa GNBD mi fa un favore (xkè risparmio molte ore di ricerca e lettura documentazione). Io devo condividere un fs in rete e fin'ora la scelta era NFS. Però se questo è + figo .....

----------

## makoomba

 *Ob1w4n wrote:*   

> Cmq, seriamente, se qualcuno mi sa dire per bene che è e cosa fa GNBD mi fa un favore (xkè risparmio molte ore di ricerca e lettura documentazione). Io devo condividere un fs in rete e fin'ora la scelta era NFS. Però se questo è + figo .....

 

con nfs esporti il fs, con GNBD esporti il device.

in buona sostanza, crei un disco virtuale sullo storage server e lo importi sul client che lo utilizzerà come se fosse un device locale.

----------

## Ob1w4n

bona, quindi non fa al caso mio.

Torno su NFS

----------

## Dr.Dran

Ehm... non si tratta di figo o meno figo... il discorso è proprio radicalmente differente:

NFS= filesystem distribuito, politica sugli accessi/scrittura/lettura/esecuzione; ogni utente può avere il proprio share che si monta quando entra in rete e altre menate simili... N.B. le politiche vengono definite sul server e anche il tipo di condivisione...

NBD= Block Device o File reso condivisibile in rete, nessuna politica sulgi accessi in scrittura/lettura/esecuzione impostata sul serve, ogni client può montare questa parte condivisa... e fare quello che vuole... le uniche politiche personalizzabili sono quelle sulla rete mediante iptable (che non centra nulla con NBD)

La cosa che rende NBD + performante di NFS (ovviamente su TCP e non in UDP) è sicuramente il fatto dovuto alla minore presenza di controllo da parte del demone che fa lo share... (almeno questo è quello che ritengo io...)

Probabilmente come accennava Makoomba l'unione di NBD con un filesystem distribuito come GFS probabilemtne ne ricava un ibrido che permette sial la gestione di accessi policy sui permessi cone deve avere un filesystem sugli utenti e secondo le prestazioni di NBD che sono di gran lunga superiori a NFS   :Wink: 

Comunque io suggerisco di provare ad implementare anche un PVFS2 (che fra l'altro è in portage) che è rinomato per la stabilità e le performace su sistemi critici!

Ciauzzzz   :Very Happy: 

P.S. Spero di non aver detto grosse castronerie, se qualche d'uno ha ancora esperienze differenti prego fatele conoscere, pechè il post si sta facendo + interessante di quello che era in origine  :Very Happy: 

----------

## Ob1w4n

Allora, io ho sto fs GFS montato da 2 server. Altri 2 devo accedervi via rete. Quindi, fermo restando che conosco NFS e come si usa, volevo capire se GNBD o altri possono sostituire egregiamente NFS.

Mi pare, però, di capire di no. In quanto, se non ho capito male, GNBD è alternativo a GFS e non complementare. Nel senso che con GFS monto il fs e poi eventualmente lo condivido per esempio con NFS. Mentre con GNBD io convido già il device con tutti e tutti lo possono montare (anche se non mi è chiaro se lo devono montare in GFS o può essere un Reiser, EXT3, etc..).

In sostanza, ho il GFS. Devo condividerlo via rete. Cosa uso ?

Spero di essermi fatto capire.

----------

## Dr.Dran

Se hai una rete totalmente UNIX vai con NFS! Se no puoi pensare a samba   :Very Happy: 

P.S. se però vuoi qualche cosa di + spinto... potresti provasre filesystem come CODA o OpenAFS... se no vanno benissimo le prime due opzioni

----------

## cloc3

adesso gnbd sembra non esistere più in portage.

qualcuno ha esperienza di nbd?

quanto è affidabile?

----------

