[Linuxtrent] ancora sulle prestazioni iSCSI

  • From: Marco Agostini <comunelevico@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Wed, 23 Feb 2011 15:29:49 +0100

Ciao, mentre spetto alcuni preventivi per delle soluzioni SAN sto
facendo dei test per capire le prestazioni ottenibili con iSCSI
abbinato alla Proxmox.

Stò ottenendo veramente dei risultati "strani" .... :-|

Nello specifico:
- ho configurato un server iSCSI (provato sia con OpenFiler che con un
prodotto proprietario)
- ho creato una lun da 100GB
- ho connesso i miei due nodi Proxmox, tramite l'initiator iscsi, alla lun

Lanciando un hdparm -tT sui dischi scsi connessi tramite iscsi
direttamente dai nodi Proxmox ottengo qualcosa del tipo:
/dev/sdb:
 Timing cached reads:   3016 MB in  2.00 seconds = 1508.17 MB/sec
 Timing buffered disk reads:  250 MB in  3.01 seconds =  82.98 MB/sec

questo mi dice che il lettura siamo attorno agli 80MB/Sec  (sono
assolutamente consapevole che hdparm NON è il massimo come test, ma
perlomeno mi da una prima idea di massima)

Predispongo una nuova macchina virtuale eseguendo da una delle due
proxmox i seguenti comandi dalla shell:
pvcreate /dev/sdb
vgcreate /dev/sdb

e dall'interfaccia web del nodo master:
- creo un nuovo storage e lo chiamo vg101
- creo una nuova macchina virtuale con un solo disco di tipo RAW
utilizzando lo storage vg101 appena creato
- avvio la macchina e installo correttamente una debian lenny

A questo punto entro tramite ssh nella macchina virtuale appena creata
e provo a lanciare un hdparm -tT ottenendo qualcosa del tipo:
/dev/sda:
 Timing cached reads:   4466 MB in  2.00 seconds = 2233.97 MB/sec
 Timing buffered disk reads:  228 MB in  3.02 seconds =  75.48 MB/sec

questo mi dice che pur girando su di una macchina virtuale sono
passato da 82.98 MB/sec a 75.48 MB/sec e la cosa mi sembra
accettabile.

Per testare le prestazioni in scrittura, direttamente dalla macchina
virtualizzata eseguo questo:
dd if=/dev/zero of=test.img bs=8k count=256k
262144+0 records in
262144+0 records out
2147483648 bytes (2,1 GB) copied, 136,966 s, 15,7 MB/s

e questo "potrebbe" essere ragionevole in quanto:
- il server che sto utilizzando come server iSCSI non è una scheggia
- i dischi fisici NON sono eccezzionali e nemmeno il controller
- lo switch di rete dedicato alla SAN non è eccezzionale

pero...... vedi sotto.....

Dopo aver spento la nuova macchina virtualizzata mi intestardisco e
provo a fare lo stesso test di scrittura ma questa volta direttamente
dal server proxmox:
- utilizzo il comando kpartx per montare in /dev/mapper le partizioni
messe a disposizione dal disco connesso tramite iSCSI (lo stesso che
ho appena utilizzato per installare la macchina virtuale debian)
- il comando è questo kpartx -av /dev/vg101/vm-101-disk-1
- creo una cartella pippo in /root
- lancio un mount /dev/mapper/vg101-vm--101--disk--1p1 /root/pippo
- a questo punto entrando in /root/pippo (sempre dalla mia proxmox)
vedo l'elenco dei file della mia macchina virtuale (che ovviamente ora
è ferma)
- provo a lanciare un dd if=/dev/zero of=test.img bs=8k count=256k e
questo è il risultato
262144+0 records in
262144+0 records out
2147483648 bytes (2,1 GB) copied, 4,44468 s, 483 MB/s

483 MB/s ..... impossibile !!!

eppure se lancio un ls -lh test.img ottengo:
-rw-r--r-- 1 root root 2,0G 23 feb 15:16 test.img

e se eseguo un du -h test.img ottengo:
2,1G     test.img

il file l'ha creato e ci ha messo uno sputo di un lama :-|
se copio dei file dal disco locale della macchina proxmox direttamente
nella cartella /root/pippo (che come descritto sopra è il disco iSCSI
reso disponibile dal server iSCSI) il disco è molto "reattivo" (es.
copia di un file da 512MB da /tmp a /root/pippo ci mette circa 1.5
secondi !!).

Apparentemente, qualsiasi operazione effettuata direttamente dalla
proxmox verso il disco connesso tramite iSCSI è molto rapida, mentre
se le stesse operazioni le eseguo dalla macchina virtualizzata (come
ripeto la macchina virtualizzata utilizza il disco iSCSI come disco
RAW) i tempi scendono a picco.

qualsiasi idea a questo punto è ben accetta !
grazie dell'attenzione.
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: