Newsgroup: it.comp.os.linux.sys
Titolo: Test di un NAS open&cheap con Openfiler

ATTENZIONE: � lungo e noioso come il 740, prendete due caff�
prima di leggere.
Ho usato Openfiler 2.3 64bit per provare a realizzare un NAS a basso
costo e opensource.
Hardware utilizzato (prezzi di 
kelkoo.it
):
CPU Intel E7400 2,8Ghz                      120?
Motherboard Intel DP43TF                     92?
4Gb RAM                                      58?
Scheda video Gainward 8400GS                 34?
3 schede rete 10/100/1000 della Trendnet     60?
3 HD SATA Seagate 7200.11 1TB               360?
Switch LinkSys SR20204C
Com'� andata:
All'avvio un kernel panic con "DMAR hardware is malfunctioning"
Avviando con intel_iommu=off parte, ma non vede il lettore DVD n� pata
n� sata.
Per il pata provo con 'all-generic-ide=1' ma il controller jmicron
comunque non viene visto. Installo con un lettore dvd su usb.
La scheda video non viene riconosciuta e quindi devo installare in
modalit� text.
All'inizio collego un solo disco, gli dico di fare il partizionamento
automatico e lui si prende tutto il disco per /.
In pi� intel_iommu=off non � stato aggiunto automaticamente alla
command line del kernel, quindi il primo avvio mi da' un bel kernel
panic...
Collego gli altri due dischi, creo una partizione, un volume group,
un volume iscsi da 128MB e inizio i test con HD Tune
http://www.hdtune.com/
.
In questo momento il mio pc (Win XP SP3) e il NAS sono collegati
ad uno switch 100Mbit.
Risultati dei test (media di 10 test, scartando il risultato migliore
ed il peggiore):
Senza crc32c, in MB/sec
transfer rate minimo: 7.66
transfer rate massimo: 9.65
transfer rate medio: 9.44
Con header crc32c, in MB/sec
transfer rate minimo: 6.25
transfer rate massimo: 9.60
transfer rate medio: 9.40
Con header e data crc32c, in MB/sec
transfer rate minimo: 7.36
transfer rate massimo: 9.20
transfer rate medio: 9.10
Decido di usare solo l'header digest.
Cancello il volume da 128Mb, creo un volume da 100Gb, lo monto su una
Suse 11.1, lo formatto in reiserfs e testo con bonnie++.
Ottengo circa 11MB/sec.
Riprovo hd tune su windows, ma collego tutto allo switch gigabit.
Con header crc32c, in MB/sec
transfer rate minimo: 25.01
transfer rate massimo: 53.80
transfer rate medio: 49.30
Al primo tentativo di creare un bonding tra eth1/2/3 la macchina
diventa irragiungibile. Reboot da console e la rivedo.
Come bonding ho usato inizialmente il bonding-alb, ma tra kernel panic,
crash e riavvii mancati alla fine ho usato il bonding-xor con il quale
non ho pi� avuto problemi.
Visto che con il bonding non ottenevo miglioramenti, anche in caso di
accessi concorrenti, ho montato 3 dischi, li ho messi in raid0 tra
loro e ho creato un volume iscsi montato su windows e uno share nfs
montato su linux.
Prova con bonnie++ da server linux collegato a 1Gbit, su share nfs:
       ------Sequential Output------ --Sequential Input- --Random-
       -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
  Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
12000M           78831   7 32317   4           50613   2 306.5   0
       ------Sequential Create------ --------Random Create--------
       -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
 files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
   100   345   0  6505   2   203   0   338   0  7793   3   203   0
(100 file vuol dire 100*1024).
Visto che avevo ancora il disco 1 tutto occupato dall'installazione,
che gli update non andavano a buon fine e cos� via, decido di
cancellare tutto e reinstallare.
Stavolta monto subito tre dischi, su ogni disco partiziono cos�:
/dev/sda1   *     1          17      136521   fd  Linux raid autodetect
/dev/sda2        18         261     1959930   82  Linux swap / Solaris
/dev/sda3       262      121601   974663550    5  Extended
/dev/sda5       262        1478     9775521   fd  Linux raid autodetect
/dev/sda6      1479      120000   952027933+  8e  Linux raid autodetect
(l'ultima partizione va a 120000 e non a 121601 per non avere problemi
in caso di sostituzione di un disco con uno leggermente pi� piccolo)
sd[a,b,c]1 diventa /dev/md0 e viene montato come /boot
sd[a,b,c]5 diventa /dev/md1 e viene montato come /
Faccio un raid1 a due dischi + uno spare.
Subito dopo l'installazione inizio a fare gli update, ma stavolta
li faccio uno o due alla volta.
Finiti gli update, creo /dev/md2 (raid0 chunk 4k sd[a,b,c]6).
Su /dev/md2 creo un volume group e l� tre volumi, due iscsi e uno xfs.
Prova con bonnie++
       ------Sequential Output------ --Sequential Input- --Random-
       -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
  Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
11760M           75315   7 33920   6           62614   6 307.0   0
       ------Sequential Create------ --------Random Create--------
       -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
 files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
   100   141   0  6222   3  1035   0   162   0  7562   2   186   0
Se contemporaneamente monto i due volumi iscsi su due macchine winxp
diverse, una collegata a 1000 e l'altra a 100, bonnie++ scende:
       ------Sequential Output------ --Sequential Input- --Random-
       -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
  Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
11760M           60343   5 34194   7           63200   3 303.2   0
       ------Sequential Create------ --------Random Create--------
       -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
 files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
   100   137   0  3453   1   310   0   141   0  6331   2   132   0
E hd tune mi riporta un transfer rate medio di 20MB/sec sulla macchina
collegata in gigabit e 7.5MB/sec sulla macchina collegata a 100Mbit.
Ho provato anche ad utilizzare lo striping di lvm, montando
singolarmente i pv e poi creando a mano i volumi logici, ma �
macchinoso perch� l'interfaccia web di openfiler poi non li vede ed �
necessario modificare a mano
/opt/openfiler/etc/volumes.xml
Il risultato � praticamente identico, quindi vista la macchinosit�
e visto che poi voglio usare anche drbd, ho lasciato perdere e sono
tornato al raid0, stavolta con chunk da 4k.
Ecco il risultato di bonnie++:
       ------Sequential Output------ --Sequential Input- --Random-
       -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
  Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
11760M           75315   7 33920   6           62614   6 307.0   0
       ------Sequential Create------ --------Random Create--------
       -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
 files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
   100   141   0  6222   3  1035   0   162   0  7562   2   186   0
HD Tach (
http://www.simplisoftware.com/Public/index.php?request=HdTach
)
sui volumi iscsi montati su windows:
1Gbit: transfer rate 51.1 e 7.4ms di access time
100Mbit: transfer rate 10.1 e 7.5ms di access time
Provo a metterlo sotto stress: bonnie++ e contemporaneamente HD Tach
su due macchine diverse (le solite 100Mbit e 1Gbit):
HD Tach 1Gbit (media di 7 rilevazioni, senza migliore e peggiore):
Trasfer rate medio: 14.28MB/sec
Trasfer rate massimo: 52.30MB/sec
HD Tach 100Mbit (media di 5 rilevazioni):
Trasfer rate medio: 6,44MB/sec
Trasfer rate massimo: 10.70MB/sec
Bonnie++:
       ------Sequential Output------ --Sequential Input- --Random-
       -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
  Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
11760M           59038   5 28853   5           57944   4 269.0   0
       ------Sequential Create------ --------Random Create--------
       -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
 files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
   100   122   0  3951   1   898   0   137   0  7755   1   165   0
(ricordo che i tre test erano _contemporanei_)
Scarico hd speed che mi permette di indicare per quanto tempo deve
continuare il test. Dopo 5 minuti a girare da solo risulta che la
velocit� media raggiungibile in lettura del volume iscsi � 69.7MB.
Provo con la scrittura: 76.0MB.
ATTO Disk Benchmark, formattando il volume iscsi in NTFS e montandolo
come U: 110MB/sec in scrittura, 79 in lettura.
http://www.grana.to/nas/raid0-iscsi1.jpg
Riprovo a creare i volumi in lvm striping, i risultati sono simili.
http://www.grana.to/nas/lvm-iscsi1.jpg
Il che mi conferma l'utilizzo del raid.
Leggendo dei benchmark su NAS di vario tipo:
http://www.slimmit.com/go.asp?7QG
mi sembra di aver ottenuto un buon risultato, con circa 800 euro
(calcolando i prezzi su 
kelkoo.it
).
Ora il prossimo passo � montarne uno uguale e metterlo in cluster
con drdb, proprio oggi mi � arrivato l'altro case e la settimana
prossima potr� fare delle prove al riguardo.
Se a qualcuno viene in mente qualche altro test che posso fare...
-- 
ValeRyo
CBR600F "Cerbero" - 
http://www.slimmit.com/go.asp?6YT
GamerTag: 
http://card.mygamercard.net/IT/nxe/ValeRyo76.png
 

 Se a qualcuno viene in mente qualche altro test che posso fare...
Rimedia due dischi SAS :-)

 Rimedia due dischi SAS :-)
Ok correggo: se a qualcuno viene in mente qualche altro test che posso
fare _con questo hardware_ me lo faccia sapere :-)


 3 HD SATA Seagate 7200.11 1TB               360?
Che load e quanta ram stai usando sotto stress?
Io ho questo (HP DL320), che dici, lascio perdere?
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 15
model		: 4
model name	: Intel(R) Celeron(R) CPU 2.93GHz
stepping	: 1
cpu MHz		: 2926.315
cache size	: 256 KB
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 5
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov 
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm 
constant_tsc up pni monitor ds_cpl tm2 cid cx16 xtpr
bogomips	: 5858.07
clflush size	: 64
Mi serve temporaneamente, giusto per avviare la struttura, poi
cambierï¿œ. Perï¿œ un conto ï¿œ avviare il tutto e far collassare il
server nel giro di mezza giornata, un conto ï¿œ andare avanti 2 mesi.

 model name : Intel(R) Celeron(R) CPU 2.93GHz
Non saprei... non mi pare particolarmente performante come processore :D
L'unica � provare, purtroppo non so aiutarti di pi�.


 L'unica ï¿œ provare, purtroppo non so aiutarti di piï¿œ.
non ï¿œ performante per niente, per questo ti ho chiesto
che load avevi.
Ma lo converto in logserver, per lo storage utilizzo
degli xeon che a breve si libereranno.

 Io ho questo (HP DL320), che dici, lascio perdere?
Secondo me con FreeNAS va alla grande, non e' che poi ci voglia tutta 
sta cpu per fare un NAS.
-- 
Bye
Gianfranco Bartolini
(gianfranco punto bartolini at tiscali punto it)