Porównanie wydajności wirtualnych kontrolerów SCSI i NVMe w VMware

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Obecnie w maszynach wirtualnych (VM) wykonywanych jest coraz więcej zadań (workloads), w tym zadań, które wymagają znacznie większego IO w systemie operacyjnym gościa. W przypadku maszyn wirtualnych w środowisku VMware vSphere wszystkie dyski wirtualne (VMDK) są w domyślnej konfiguracji podłączone do adaptera LSI Logical SAS SCSI. Adapter ten jest rozpoznawany przez wszystkie systemy operacyjne bez konieczności instalowania dodatkowych sterowników, ale nie zawsze zapewnia on najlepszą wydajność, zwłaszcza w przypadku korzystania z macierzy RAID SSD lub NVMe. W tym artykule porównaliśmy wirtualne kontrolery pamięci masowej LSI Logical SAS, VMware Paravirtual oraz NVMe Controller.

Modele kontrolera

Standardowym kontrolerem w prawie każdej wirtualnej maszynie jest kontroler SCSI LSI Logical SAS. Ten kontroler jest rozpoznawany i obsługiwany przez każdy system operacyjny gościa bez dodatkowych sterowników. Jest on wystarczający dla prawie każdego rodzaju zadań, które nie mają dużych wymagań dotyczących I/O, ten kontroler jest również niezbędny do skonfigurowania Microsoft Server Cluster Service (MSCS).

Od ESXi 4.0 i hardware version 7 dostępny jest również kontroler VMware Paravirtual. Kontroler ten został opracowany z myślą o wysokowydajnych systemach pamięci masowej, może on przetwarzać znacznie większe ilości I/O, jednocześnie zmniejszając obciążenie procesora. Aby ten kontroler mógł być używany przez system operacyjny gościa, muszą być zainstalowane VMware Tools.

Od ESXi 6.5 i hardware version 13 wirtualne maszyny mogą korzystać również z kontrolera NVMe. Kontroler ten dodatkowo optymalizuje wydajność macierzy RAID SSD, NVMe i pamięci masowej PMEM. Począwszy od VMware vSphere 7.0 i hardware version 17, ten kontroler jest zawarty w domyślnej konfiguracji VM i zastępuje tym samym kontroler SCSI.

Wybór właściwego kontrolera jest uzależniony od aplikacji w maszynie wirtualnej. Na przykład, jeśli chodzi o biurową maszynę wirtualną i wymagana jest stosunkowo niewielka wydajność to można użyć standardowego kontrolera SCSI LSI Logical SAS. Jeśli natomiast w maszynie wirtualnej wymagana jest większa wydajność pamięci masowej, a znajdujący się za nią system pamięci masowej również oferuje większą wydajność, to parawirtualny kontroler VMware (VMware Paravirtual Controller) jest zazwyczaj lepszym wyborem. Kontroler NVMe jest najlepszym wyborem, jeśli chodzi o wysoką wydajność podczas korzystania z macierzy RAID SSD, NVMe lub PMEM przez wirtualne maszyny.

Test wydajności

Przeprowadziliśmy różne testy wydajności dla różnych scenariuszy. Scenariusze testowe są tylko przykładami, poszczególne wartości powinny być dostosowane indywidualnie do własnego obciążenia, aby uzyskać realistyczne wyniki. Szczegółowe informacje na temat użytego systemu testowego:

Hardware / Software:

  • Supermicro Mainboard X11DPi-NT
  • 2x Intel Xeon Gold 5222 (3,80GHz, 4-Core, 16,5MB)
  • 256GB ECC Registered (RDIMM) DDR4 2666 RAM 4 Rank
  • 3,2 TB Samsung SSD NVMe PCI-E 3.0 (PM1725b)
  • ESXi 6.7.0 Update 2 (Build 13981272)

Test-VM

  • Windows 10 Pro (18362)
  • 2 CPU Sockets
  • 8 vCPUs
  • 8GB RAM
  • VMware Paravirtual
  • LSI Logical SAS
  • NVMe Controller
  • Thick-Provisioned eager-zeroed VMDK

Porównanie wydajności

Database Server

Database Server (8K Random; 70% Read; 8 Threads; 16 Outstanding IO)
IOPS MByte/s Latency (ms) CPU Usage (%)
LSI Logical SAS 78210.16 611.02 1.633 24.81
VMware Paravirtual 153723.45 1200.96 0.832 31.27
NVMe Controller 203612.54 1590.72 0.628 48.03

E-Mail Server

Email Server (4K Random; 60% Read; 8 Threads; 16 Outstanding IO)
IOPS MByte/s Latency (ms) CPU Usage (%)
LSI Logical SAS 83403.47 325.79 1.506 23.52
VMware Paravirtual 157624.97 615.72 0.811 31.46
NVMe Controller 236622.59 924.31 0.540 52.11

File Server

File Server (64K Sequential; 90% Read; 8 Threads; 16 Outstanding IO)
IOPS MByte/s Latency (ms) CPU Usage (%)
LSI Logical SAS 44739.43 2796.21 2.860 12.29
VMware Paravirtual 53717.26 3357.33 2.382 16.87
NVMe Controller 48929.05 3058.07 2.615 14.14

Streaming Media Server

Streaming Media Server (5120K Random; 80% Read; 8 Threads; 16 Outstanding IO)
IOPS MByte/s Latency (ms) CPU Usage (%)
LSI Logical SAS 458.16 2290.81 279.607 2.18
VMware Paravirtual 504.22 2521.10 253.949 12.26
NVMe Controller 505.14 2525.68 253.659 1.56

VDI Workload

VDI Workload (4K Random; 20% Read; 8 Threads; 8 Outstanding IO)
IOPS MByte/s Latency (ms) CPU Usage (%)
LSI Logical SAS 140155.89 547.48 0.456 35.69
VMware Paravirtual 163073.26 637.00 0.392 37.98
NVMe Controller 203464.89 794.78 0.314 49.55

Autor: Sebastian Köbke

Powiązane artykuły

Pamięć USB jako datastore w vSphere
Tuning konfiguracji iSCSI w Open-E JovianDSS i VMware
Wymiana certyfikatu SSL w VMware vCenter Server Appliance