I.   Présentation

 

 

J’ai voulu connaitre les différences entre chaque format de disques virtuels ainsi qu’avec les option proposé dans Proxmox. D’où est né cet article de benchmark. Je l’accrémenterai en fonction des nouveautés et mes envies  😛

 


II.   Le test

Le test se fera sous ma machine Proxmox évidement dont voici les caractéristiques:

  • AMD FX 6300 Black Edition (3.5 GHz)
  • Crucial DDR3 32 Go (2 x 16 Go) 1600 MHz CL11
  • SanDisk SSD ReadyCache 32 Go
  • 4 x Seagate Barracuda 7200.14 SATA 6Gb/s 2 To

Les 4 Seagate servent de stockage des VMs et sont configurés en RAID 10.

 

Le test s’effectue sur des VMs sous Windows 2012 R2. J’ai au total 12 VMs. Pour format, j’ai 4 VMs correspondant au 4 BUS existant sous Proxmox à savoir: IDE, SATA, VIRTIO, SCSI.

Les caractéristiques des VMs sont:

  • CPU: 2 (1core, 2 sockets)
  • RAM: 1 Go
  • Disque: 32  Go

Toutes les autres options sont par défaut.

 

Sur chaque VM j’ai installé CrystalDiskMark5_2_0. Ce qui me permettra d’avoir une constante dans ce test.

Et je vais tester pour chaque format (raw, qcow2, vmdk) l’écriture et la lecture pour les différents BUS (ide, sata, virtio, scsi) et avec les différents cache proposés (no-cache, directsync, writethrough, writeback, writeback (non-sûr)).

Je testerai également les options discard et IO thread. Option seulement valable pour les BUS virtio et scsi. Je réaliserai ce test seulement sur le format le plus rapide et le format le plus lent sans cache.

 


III.   Les performances

 

Tout d’abord avant de présenter les résultats, voici les performances des disques dur (Seagate) ou sont hébergés les VMs, parce que finalement c’est ici que tout ce joue.

Donc voici les performance des 4 disques durs et du raid 10:

Les disques seul ont un débit de 200 Mb/s en moyenne et en les mettant en RAID 10 nous passons à presque 400 Mb/s. Ce sera notre base pour ce test bien sur si j’avais eu des SSD ou mis en RAID 0 cela aurait été meilleur.

Voici à titre informatif les performance du petit SSD de 32 Go qui me sert à héberger le système Proxmox:

 

Enfin pour comparaison voici les performances sous Windows 10 de mon disque dur et mon ssd sur mon PC. (Résultat étonnant pour mon SSD !!)

 

 


IV.   Benchmark

 

Dans cette partie nous allons retrouver les résultats sous CrystalDiskMark

 

1.  Format RAW

a. No-cache

   

b. Directsync

   

 

c. Writethrough

   

 

d. WriteBack

   

 

e. Writeback (non-sûr)

   

 

2.  Format QCOW2

a. No-cache

   

b. Directsync

   

c. Writethrough

   qcow2-virtio-writethrough

d. WriteBack

qcow2-ide-writeback qcow2-sata-writeback qcow2-scsi-writeback 

e. Writeback (non-sûr)

   

 

3. Format VMDK

a. No-cache

   

b. Directsync

   

c. Writethrough

   

d. WriteBack

   

e. Writeback (non-sûr)

   

 


V.   Les chiffres (résumé)

 

  

  • En vert : les meilleurs valeurs pour le même type de cache
  • En rouge: les meilleurs valeurs par type test (seq ou 4K…)

Exemple: pour le cache writethrough en lecture le BUS virtio est le meilleur sauf pour le SEQ Q32T1. Par contre en écriture le BUS sata est le meilleur.

 


VI.   Graphiques

Voici graphiquement la comparaison des différents format de disque virtuels.

 

a. SEQ 32T1 et SEQ

   

 

b. 4K Q32T1 et 4K

   

 

c. RAW no-cache avec options discard et io thread

   

 

d. VMDK no-cache avec options discard et io thread

   

 


VII.   Conclusion

 

Pour une VM tournant sous Windows 2012 R2

Le meilleur rapport Lecture / Ecriture serait la configuration suivante:

  • Format: RAW
  • BUS: VIRTIO
  • Cache: Write-back

 

 

Pour une performance en lecture de petits fichiers:

  • Format: QCOW2
  • BUS: SCSI
  • Cache: Writethrough

Pour une performance en écriture de petits fichiers:

  • Format: RAW
  • BUS: VIRTIO
  • Cache: Write-back

Pour une performance en lecture de gros fichiers:

  • Format: RAW
  • BUS: SCSI
  • Cache: Writethrough

Pour une performance en écriture de gros fichiers:

  • Format: RAW
  • BUS: VIRTIO
  • Cache: Write-back