Dzięki uprzejmości DellEMC Polska mieliśmy możliwość przeprowadzenia testu wydajności systemu dyskowego w zależności od ilości dysków oraz grup dyskowych co jest często istotnym pytaniem przy konfiguracji zestawów VxRail. Dodatkowo porównaliśmy wydajność w zależności od polityk przechowywania danych – które są mocno upraszczając są odpowiednikiem znanych RAID0/1/5
Konfiguracja środowiska testowego
środowisko składa się z 4-ech węzłów VxRail, typu P, gdzie konfiguracja pojedynczego węzła była następująca:
- 2 x Intel Xeon 6134 8c @3.2Ghz
- 384 GB RAM
- 2 disk groups, each (1 x 1,7 TB SATA capacity SSD, 1 x 400 GB SAS cache SSD)
- 2 x 10G Ethernet (VM and vSAN traffic)
- 1 x 1G Ethernet (management traffic)
wersje oprogramowania użytego do testów:
Tabela wersji vSAN dla danej wersji esxi: https://kb.vmware.com/s/article/2150753
PLAN TESTÓW
Zaplanowane testy zakładają sprawdzenie wydajności podsystemu rozproszonego systemu Storage (vSAN) z wykorzystaniem narzędzia HCI Bench (labs.vmware.com/flings/hcibench). Jest to dedykowane narzędzie Vmware, które ułatwia automatyzację testów w klastrze HCI. HCI bench ma na celu uproszczenie i przyspieszenie testów wydajności na potrzeby testów POC i POP w spójny i kontrolowany sposób. Narzędzie w pełni automatyzuje kompleksowy proces wdrażania maszyn wirtualnych, koordynowania przebiegu pracy, agregacji wyników testów i zbierania danych niezbędnych do rozwiązywania problemów.
HCIBench jest nie tylko narzędziem benchmarkingowym zaprojektowanym dla vSAN, ale może być również używany do oceny wydajności wszystkich rodzajów pamięci masowych Hyper-Converged Infrastructure Storage w środowisku vSphere.
Plan testów zakładał testy porównawcze dla stałej floty maszyn wirtualnych o następującej charakterystyce:
Parametr | Wartość | uwagi |
Ilość hostów | 4 | |
Ilość maszyn wirtualnych | 32 | włączony mechanizm DRS |
Ilość dysków dla każdej VM | 8 | nie licząc dysku systemowego |
Rozmiar pojedynczego dysku | 10 GB | Dyski typu Thin |
Konfiguracja obciążenia:
Parametr | Wartość |
Wielkość bloku | 4K |
Stosunek odczyt/zapis | 70/30 |
Czas trwania każdego testu | 10 minut |
Ilość wątków na każdy dysk wirtualny | 2 |
Working-Set | 10% |
Podsumowanie charakteryski obciążenie: vdb-8vmdk-10ws-4k-70rdpct-30randompct-2threads
Realizowane testy:
Testy zostały podzielone na 3 grupy
- Wydajności pomiędzy dwoma grupami dyskowymi a jedną grupą dyskową
- Rożnicę wydajności pomiędzy konfiguracją Stripe 1/2
- Wydajności pomiędzy polityką RAid0/ Raid11/RAid5
- Spadku wydajności po włączeniu kompresji i deduplikacji
Test 1 – zależność ilości dysków i grup dyskowych
Konfiguracja 1 – dwie grupy dyskowe w każdej grupie jeden dysk SSD SAS 400Gb Cache + 1 dysk SSD SATA 1,75TB
Wydajność obserwowana przez VxRail Managera
Konfiguracja 2 – jedna grupa dyskowa w każdej grupie jeden dysk SSD SAS 400Gb Cache + 1 dysk SSD SATA 1,75TB
Grupy dyskowe:
Dyski w każdej grupie:
Wydajność obserwowana przez VxRail Managera
Konfiguracja 3 – jedna grupa dyskowa w każdej grupie jeden dysk SSD SAS 400Gb Cache + dwa dyski danych SSD SATA 1,75TB
Grupy dyskowe:
Dyski w każdej grupie:
Wydajność obserwowana przez VxRail Managera
Wyniki sumarycznie
Descripe | IOPS | Throughput | Latency | Read Latency | Write Latency | Latency Standard Deviation | Total Outstanding IO | Physical CPU Usage | Physical Memory Usage | vSAN CPU Usage |
2 grupy dyskowe | 197512,3 | 771,53 | 2,6958 | 2,4891 | 3,1769 | 557,69 | 204,688 | 65.46% | 25.67% | 25.36% |
1 grupa z jednym dyskiem | 73475,1 | 287,01 | 9,1686 | 6,9976 | 14,1928 | 265,21 | 368,054 | 32.41% | 23.18% | 10.0% |
1 grupa z dwoma dyskami | 76646,7 | 299,41 | 8,936 | 6,4656 | 14,6595 | 276,38 | 371,457 | 32.84% | 23.5% | 10.15% |
Wnioski
Wyniki dość jasno wykazują, że zwiększenie ilości grup dyskowych zwielokrotniają wydajność całego podsystemu pamięci masowej. Nieduży przyrost z kolei daje nam dokładanie kolejnych dysków ramach tej same j grupy dyskowej (około 5%) co pokazuje, że według architektów vSANu jest to działanie mającena celu powiększanie przestrzeni nie wydajności.
Test 2 – różnice wydajności dla polityki Stripe 1/2
Celem testu jest obserwacja różnicy w wydajności i obciążeniu systemu przy polityce Stripe=1 oraz Stripe=2. O ile przyjęcie polityki stripe=2 może zwiększyć liczbę IOPS dla pojedynczego obciążenia to spójrzmy jak sumarycznie klaster zachowa się w przypadku gdy wiele maszyn będzie intensywnie pisało/czytało w jednym czasie. W tym przypadku nadal 32 maszyny, każda z maszyn posiadająca 8 dysków wirtualnych i piszaca jednocześnie dwoma wątkami na każdym dysku.
Na potrzeby tego testu przyjęliśmy jedną konfigurację posiadającą węzły z jedną dwu-dyskową grupą dyskową (analogicznie do 2 konfiguracji z pierwszego testu)
Policy | IOPS | Throughput | Latency | Read Latency | Write Latency | Latency Standard Deviation | Total Outstanding IO | Physical CPU Usage | Physical Memory Usage | vSAN CPU Usage |
Stripe=1 | 46129,5 | 180,2 | 11,2668 | 7,3767 | 20,2729 | 340,07 | 447,65 | 24.98% | 23.75% | 6.91% |
Stripe=2 | 36728,3 | 143,49 | 15,2444 | 4,8675 | 39,2475 | 882,76 | 851,294 | 29.75% | 23.75% | 9.59% |
Wnioski
Wyniki wskazują na to, że wdrożenie polityki Stripe=2 w przypadku wielu róznoległych operacji IOPS zmniejsza wydajność całego systemu oraz jednocześnie zwiększa narzut vSANu na procesory. Zgodnie zresztą z zamysłem architektów polityka ta ma najistotniejsze znaczenie w przypadku dysków mechanicznych gdzie wydajność IO pojedynczego dysku jest bardzo ograniczona.
Test 3 – różnice wydajności w zależności od polityki
Konfiguracja Storage do testu (dwie grupy dyskowe w każdej grupie jeden dysk SSD SAS 400Gb Cache + 1 dysk SSD SATA 1,75TB)
Aby maksymalnie obciążyć testowany klaster zwiększono flotę maszyn wirtualnych generujących obciążenie dwukrotnie, czyli do 64 maszyn. Reszta paramentów pozostała bez zmian.
Parametr | Wartość | uwagi |
Ilość hostów | 4 | |
Ilość maszyn wirtualnych | 64 | włączony mechanizm DRS |
Ilość dysków dla każdej VM | 8 | nie licząc dysku systemowego |
Rozmiar pojedynczego dysku | 10 GB | Dyski typu Thin |
Konfiguracja 1 = Polityka (failures to tolerate =1) RAID 1
Konfiguracja 2 = Polityka (failures to tolerate =0) RAID 1
Konfiguracja 3 = Polityka (failures to tolerate =1) RAID 5/6
Wydajność obserwowana przez VxRail Managera dla konfiguracji 1
Wydajność obserwowana przez VxRail Managera dla konfiguracji 1 oraz 2
Czerwoną przerywaną linią zaznaczono charakterystyczne dla VxRAil managera przesunięcie w czasie odczytu obciążenia procesorów. Wykresy aktualizowane są przez VxRail Managera co minutę, odczyty obciążenia procesowa opóźnione są o jeden odczyt w stosunku do Storage IOPS.
Wyniki i wnioski
Configuration | IOPS | Throughput | Latency | Read Latency | Write Latency | Latency Standard Deviation | Total Outstanding IO | Physical CPU Usage | Physical Memory Usage | vSAN CPU Usage |
RAID1/ NumberOfTolerance=0 | 315083,7 | 1230,76 | 4,0433 | 4,0312 | 4,0717 | 832,94 | 479,253 | 81.23% | 23.86% | 31.9% |
RAID1/ NumberOfTolerance=1 | 308508,4 | 1205,13 | 3,802 | 3,8823 | 3,615 | 343,61 | 399,205 | 83.56% | 25.65% | 34.26% |
RAID5/ NumberOfTolerance=1 | 302161,1 | 1180,29 | 3,8559 | 4,0242 | 3,4644 | 333,25 | 404,589 | 84.83% | 25.84% | 35.16% |
Konfiguracja polityki trzymania danych bez żadnej redundancji pozwoliła osiągnąć największą ilość IOPS (347.574 szczytowo, 315.083 wartość uśredniona). No co istotne – stosowanie polityki RAID5 w porównaniu do RAID1 z polityką tolerancji awarii jednego węzła nie przynosi dużego narzutu obliczeniowego czy też zmniejszenia wydajności IOPS oraz opóźnień. Różnica utrzymała się na poziomie około 1%
TEST 4 – narzut obliczeniowy i zmniejszenie wydajności IOPS przy stosowaniu deduplikacji i kompresji danych
Oczywiście należy sobie zdawać sprawę, że test realizowany na danych losowych nie pokaże zysku z deduplikacji i kompresji, niemniej celem tego testu jest jedynie zaobserwowanie narzutu vSAN na obliczenia związane z procesem analizy bloków do deduplikacji cz też kompresją danych.
Przeprowadzono więc test porównawczy:
- Konfiguracja 1 – bez kompresji i deduplkacji
- Konfiguracja 2 – z włączona kompresją oraz dedupliakcją
Konfiguracja floty VDI Bench jest oczywiście jednakowa we wszystkich 3 konfiguracjach: 64 VMki, każda po 8 dysków na testy, kady dysk 10GB, charakterystyka obciążenia: vdb-8vmdk-10ws-4k-70rdpct-30randompct-2threads
Wyniki i wnioski
Configuration | IOPS | Throughput | Latency | Read Latency | Write Latency | Latency Standard Deviation | Total Outstanding IO | Physical CPU Usage | Physical Memory Usage | vSAN CPU Usage |
Bez dedup. I kompresji | 152308 | 594,93 | 9,0278 | 6,4617 | 14,9704 | 295,8 | 776,644 | 63.0% | 26.0% | 22.62% |
Z dedup. I kompresją | 122234,8 | 477,46 | 10,4328 | 5,8143 | 21,1162 | 365,06 | 992,79 | 57.2% | 26.25% | 19.95% |