Zagadnienia dotyczące wydajności magazynu danych usługi Azure VMware Solution dla usługi Azure NetApp Files
Ten artykuł zawiera zagadnienia dotyczące wydajności dotyczące projektowania i określania rozmiaru magazynu danych usługi Azure VMware Solution w przypadku użycia z usługą Azure NetApp Files. Ta zawartość ma zastosowanie do administratora wirtualizacji, architekta chmury lub architekta magazynu.
Zagadnienia opisane w tym artykule ułatwiają osiągnięcie najwyższych poziomów wydajności aplikacji ze zoptymalizowaną wydajnością.
Usługa Azure NetApp Files zapewnia natychmiast skalowalną, wysoką wydajność i wysoce niezawodną usługę magazynu dla rozwiązania Azure VMware Solution. Testy obejmowały różne konfiguracje między usługą Azure VMware Solution i usługą Azure NetApp Files. Testy mogły obsługiwać ponad 10 500 miB/s i ponad 585 000 operacji wejścia/wyjścia na sekundę (IOPS) z tylko czterema hostami usługi Azure VMware Solution/ESXi i jedną pulą pojemności usługi Azure NetApp Files.
Osiąganie wyższej wydajności magazynu dla rozwiązania Azure VMware Solution przy użyciu usługi Azure NetApp Files
Aprowizowanie wielu, potencjalnie większych magazynów danych na jednym poziomie usługi może kosztować mniej, jednocześnie zapewniając większą wydajność. Przyczyną jest dystrybucja obciążenia między wieloma strumieniami TCP z hostów usługi Azure VMware Solution do kilku magazynów danych. Możesz użyć magazynu danych usługi Azure NetApp Files dla narzędzia do szacowania TCO rozwiązania Azure VMware Solution, aby obliczyć potencjalne oszczędności kosztów, przekazując raport RVTools lub wprowadzając ręczne ustalanie rozmiaru średniej maszyny wirtualnej.
Podczas określania sposobu konfigurowania magazynów danych najprostszym rozwiązaniem z perspektywy zarządzania jest utworzenie pojedynczego magazynu danych usługi Azure NetApp Files, zainstalowanie go i umieszczenie wszystkich maszyn wirtualnych. Ta strategia działa dobrze w wielu sytuacjach, dopóki nie jest wymagana większa przepływność lub liczba operacji we/wy na sekundę. Aby zidentyfikować różne granice, testy używały syntetycznego generatora obciążeń, programu fio
, w celu oceny zakresu obciążeń dla każdego z tych scenariuszy. Ta analiza może pomóc w ustaleniu, jak aprowizować woluminy usługi Azure NetApp Files jako magazyny danych, aby zmaksymalizować wydajność i zoptymalizować koszty.
Zanim rozpoczniesz
Aby uzyskać dane wydajności usługi Azure NetApp Files, zobacz:
Azure NetApp Files: jak najlepiej wykorzystać magazyn w chmurze
Na hoście usługi Azure VMware Solution zostanie nawiązane jedno połączenie sieciowe na magazyn danych systemu plików NFS, który
nconnect=1
będzie używany w testach systemu Linux wymienionych w sekcji 6 (Opcje dostrajania). Ten fakt jest kluczem do zrozumienia, jak rozwiązanie Azure VMware Solution skaluje wydajność tak dobrze w wielu magazynach danych.
Metodologia testowania
W tej sekcji opisano metodologię używaną do testów.
Scenariusze testowe i iteracje
Ten test jest zgodny z metodologią "cztery rogi", która obejmuje zarówno operacje odczytu, jak i operacje zapisu dla każdego sekwencyjnego i losowego wejścia/wyjścia (we/wy). Zmienne testów obejmują jeden do wielu hostów rozwiązania Azure VMware Solution, magazyny danych usługi Azure NetApp Files, maszyny wirtualne (na hosta) i dyski maszyn wirtualnych (VMDK) na maszynę wirtualną. Wybrano następujące skalowanie punktów danych, aby znaleźć maksymalną przepływność i liczbę operacji we/wy na sekundę dla danych scenariuszy:
- Skalowanie zestawów VMDKs , z których każda ma własny magazyn danych dla pojedynczej maszyny wirtualnej.
- Skalowanie liczby maszyn wirtualnych na hosta w jednym magazynie danych usługi Azure NetApp Files.
- Skalowanie liczby hostów usługi Azure VMware Solution, z których każda ma jedną maszynę wirtualną, współużytkując jeden magazyn danych usługi Azure NetApp Files.
- Skalowanie liczby magazynów danych usługi Azure NetApp Files z jednym zestawem VMDK równomiernie rozłożonym na hostach usługi Azure VMware Solution.
Testowanie zarówno małych, jak i dużych operacji blokowych oraz iterowanie za pośrednictwem sekwencyjnych i losowych obciążeń zapewnia testowanie wszystkich składników w stosach obliczeniowych, magazynowych i sieciowych do "krawędzi". Aby zakryć cztery rogi z rozmiarem bloku i randomizacją, używane są następujące typowe kombinacje:
- Testy sekwencyjne 64 KB
- Duże obciążenia przesyłania strumieniowego plików często odczytują i zapisują w dużych rozmiarach bloków, a także są domyślnym rozmiarem zakresu MSSQL.
- Duże testy blokowe zwykle generują najwyższą przepływność (w miB/s).
- Losowe testy 8 KB
- To ustawienie jest często używanym rozmiarem bloku oprogramowania bazy danych, w tym oprogramowaniem firmy Microsoft, Oracle i PostgreSQL.
- Małe testy blokowe zwykle generują największą liczbę operacji we/wy na sekundę.
Uwaga
Ten artykuł dotyczy tylko testowania usługi Azure NetApp Files. Nie obejmuje magazynu vSAN dołączonego do usługi Azure VMware Solution.
Szczegóły środowiska
Wyniki w tym artykule zostały osiągnięte przy użyciu następującej konfiguracji środowiska:
- Hosty usługi Azure VMware Solution:
- Rozmiar: AV36
- Liczba hostów: 4
- VMware ESXi w wersji 7u3
- Łączność z chmurą prywatną rozwiązania Azure VMware Solution: brama UltraPerformance z rozwiązaniem FastPath
- Maszyny wirtualne gościa:
- System operacyjny: Ubuntu 20.04
- Procesory/pamięć: 16 procesorów wirtualnych / 64 GB pamięci
- Wirtualny kontroler SCSI SAS LSI z dyskiem systemu operacyjnego 16 GB w magazynie danych VMware Solution vSAN
- Parawirtualny kontroler SCSI dla testowych zestawów VMDKs
- Konfiguracje LVM/Disk:
- Jeden wolumin fizyczny na dysk
- Jedna grupa woluminów na wolumin fizyczny
- Jedna partycja logiczna na grupę woluminów
- Jeden system plików XFS na partycję logiczną
- Protokół Azure VMware Solution do usługi Azure NetApp Files: NFS w wersji 3
- Generator obciążeń:
fio
wersja 3.16 - Skrypty fio:
fio-parser
Wyniki testu
W tej sekcji opisano wyniki wykonanych testów.
Skalowanie pojedynczej maszyny wirtualnej
Podczas konfigurowania magazynu danych prezentowanego na maszynie wirtualnej usługi Azure VMware Solution należy wziąć pod uwagę wpływ układu systemu plików. Skonfigurowanie wielu zestawów VMDKs rozmieszczonych w wielu magazynach danych zapewnia najwyższą ilość dostępnej przepustowości. Skonfigurowanie zestawów VMDK typu jeden do wielu umieszczonych w jednym magazynie danych zapewnia największą prostotę, jeśli chodzi o kopie zapasowe i operacje odzyskiwania po awarii, ale kosztem niższego limitu wydajności. Dane empiryczne podane w tym artykule ułatwiają podejmowanie decyzji.
Aby zmaksymalizować wydajność, często skalowanie pojedynczej maszyny wirtualnej na wielu zestawach VMDKs i umieszczanie tych zestawów VMDK w wielu magazynach danych. Pojedyncza maszyna wirtualna z tylko jednym lub dwoma zestawami VMDK może być ograniczona przez jeden magazyn danych NFS, ponieważ jest on instalowany za pośrednictwem jednego połączenia TCP z danym hostem usługi Azure VMware Solution.
Na przykład inżynierowie często aprowizują zestaw VMDK dla dziennika bazy danych, a następnie aprowizują zestawy VMDK jeden do wielu dla plików bazy danych. W przypadku wielu zestawów VMDK dostępne są dwie opcje. Pierwsza opcja polega na użyciu każdego zestawu VDMK jako pojedynczego systemu plików. Drugą opcją jest użycie narzędzia do zarządzania magazynem, takiego jak LVM, MSSQL Filegroups lub Oracle ASM, aby zrównoważyć we/wy przez usunięcie wielu zestawów VMDK. Gdy zestawy VMDK są używane jako poszczególne systemy plików, dystrybucja obciążeń w wielu magazynach danych jest procesem ręcznym i może być uciążliwa. Użycie narzędzi do zarządzania magazynem w celu rozłożenia plików na zestawy VMDKs umożliwia skalowalność obciążeń.
W przypadku usuwania woluminów na wielu dyskach upewnij się, że oprogramowanie do tworzenia kopii zapasowych lub oprogramowanie odzyskiwania po awarii obsługuje tworzenie kopii zapasowych wielu dysków wirtualnych jednocześnie. Ponieważ poszczególne operacje zapisu są rozłożone na wiele dysków, system plików musi upewnić się, że dyski są "zamrożone" podczas operacji migawek lub kopii zapasowych. Większość nowoczesnych systemów plików obejmuje operację blokowania lub migawki, taką jak xfs
(xfs_freeze
) i NTFS (kopie woluminów w tle), które oprogramowanie do tworzenia kopii zapasowych może wykorzystać.
Aby dowiedzieć się, jak dobrze jest skalować pojedynczą maszynę wirtualną usługi Azure VMware Solution w miarę dodawania większej liczby dysków wirtualnych, przeprowadzono testy z jednym, dwoma, czterema i ośmioma magazynami danych (z których każda zawiera pojedynczy zestaw VMDK). Na poniższym diagramie przedstawiono jeden dysk średnio około 73 040 operacji we/wy na sekundę (skalowanie z 100% operacji zapisu/0%, do 0% zapisu/100% odczytu). Gdy ten test został zwiększony do dwóch dysków, wydajność wzrosła o 75,8% do 128 420 operacji we/wy na sekundę. Zwiększenie do czterech dysków zaczęło wykazywać malejące zwroty tego, co pojedyncza maszyna wirtualna o rozmiarze testowanym może zostać wypchnięta. Zaobserwowano szczytową liczbę operacji we/wy na sekundę 147 000 operacji we/wy na sekundę z 100% losowymi operacjami odczytu.
Skalowanie pojedynczego hosta — pojedynczy magazyn danych
Jest ona źle skalowana, aby zwiększyć liczbę maszyn wirtualnych kierujących we/wy do pojedynczego magazynu danych z jednego hosta. Jest to spowodowane jednym przepływem sieciowym. Gdy osiągnięto maksymalną wydajność dla danego obciążenia, często jest to wynik pojedynczej kolejki używanej w drodze do pojedynczego magazynu danych NFS hosta za pośrednictwem pojedynczego połączenia TCP. Przy użyciu rozmiaru bloku 8 KB łączna liczba operacji we/wy na sekundę wzrosła między 3% a 16% podczas skalowania z jednej maszyny wirtualnej z jedną maszyną wirtualną vmDK do czterech maszyn wirtualnych z 16 łącznymi zestawami VMDKs (cztery na maszynę wirtualną, wszystkie w jednym magazynie danych).
Zwiększenie rozmiaru bloku (do 64 KB) dla dużych obciążeń blokowych miało porównywalne wyniki, osiągając szczyt 2148 miB/s (pojedyncza maszyna wirtualna, pojedyncza maszyna wirtualna, pojedynczy zestaw VMDK) i 2138 MiB/s (4 maszyny wirtualne, 16 zestawów VMDK).
Skalowanie na jednym hoście — wiele magazynów danych
Z kontekstu pojedynczego hosta usługi Azure VMware Solution, podczas gdy pojedynczy magazyn danych zezwolił maszynom wirtualnym na dysk około 76 000 operacji we/wy na sekundę, rozkładając obciążenia w dwóch magazynach danych, zwiększył łączną przepływność o 76% średnio. Przejście poza dwa magazyny danych do czterech spowodowało wzrost o 163% (ponad jeden magazyn danych, wzrost o 49% z dwóch do czterech), jak pokazano na poniższym diagramie. Mimo że nadal nastąpił wzrost wydajności, wzrost ponad osiem magazynów danych pokazało malejące zwroty.
Skalowanie wielu hostów — pojedynczy magazyn danych
Pojedynczy magazyn danych z jednego hosta wygenerował ponad 2000 MiB/s z sekwencyjnej przepływności 64 KB. Dystrybucja tego samego obciążenia na wszystkich czterech hostach przyniosła szczytowy wzrost o 135% w porównaniu z 5000 miB/s. Ten wynik prawdopodobnie reprezentuje górny limit wydajności przepływności woluminu usługi Azure NetApp Files.
Zmniejszenie rozmiaru bloku z 64 KB do 8 KB i ponowne uruchomienie tych samych iteracji spowodowało, że cztery maszyny wirtualne generują 195 000 operacji we/wy na sekundę, jak pokazano na poniższym diagramie. Wydajność jest skalowana zarówno w miarę wzrostu liczby hostów, jak i liczby magazynów danych, ponieważ liczba przepływów sieciowych wzrasta. Wydajność zwiększa się przez skalowanie liczby hostów pomnożonych przez liczbę magazynów danych, ponieważ liczba przepływów sieciowych jest czynnikiem czasu hostów magazynów danych.
Skalowanie wielu hostów — wiele magazynów danych
Pojedynczy magazyn danych z czterema maszynami wirtualnymi rozłożonymi na cztery hosty produkowane ponad 5000 MiB/s sekwencyjnych operacji we/wy 64 KB. W przypadku bardziej wymagających obciążeń każda maszyna wirtualna jest przenoszona do dedykowanego magazynu danych, tworząc łącznie ponad 10 500 miB/s, jak pokazano na poniższym diagramie.
W przypadku małych, losowych obciążeń pojedynczy magazyn danych wygenerował 195 000 losowych operacji we/wy na sekundę 8 KB. Skalowanie do czterech magazynów danych wygenerowało ponad 530 000 losowych operacji we/wy na sekundę 8K.
Implikacje i zalecenia
W tej sekcji omówiono, dlaczego rozpowszechnianie maszyn wirtualnych w wielu magazynach danych ma znaczne korzyści z wydajności.
Jak pokazano w wynikach testu, możliwości wydajności usługi Azure NetApp Files są obfite:
- Testowanie pokazuje, że jeden magazyn danych może prowadzić średnio ~148 980 8 KB operacji we/wy na sekundę lub ok. 4147 MiB/s z 64 KB operacji we/wy na sekundę (średnio wszystkich testów zapisu%/odczytu%) z konfiguracji czterech hostów.
- Jedna maszyna wirtualna w jednym magazynie danych —
- Jeśli masz poszczególne maszyny wirtualne, które mogą potrzebować więcej niż 75 8 KB operacji we/wy na sekundę lub ponad 1700 MiB/s, rozłóż systemy plików na wiele zestawów VMDK, aby skalować wydajność magazynu maszyn wirtualnych.
- Jedna maszyna wirtualna w wielu magazynach danych — pojedyncza maszyna wirtualna w 8 magazynach danych osiągnęła do około 147 000 8 KB operacji we/wy na sekundę lub ok. 2786 MiB/s z rozmiarem bloku 64 KB.
- Jeden host — każdy host mógł obsługiwać średnio około 198 060 8 KB operacji we/wy na sekundę lub ok. 2351 MiB/s , jeśli używasz co najmniej 4 maszyn wirtualnych na hosta z co najmniej 4 magazynami danych usługi Azure NetApp Files. Masz więc możliwość zrównoważenia aprowizacji wystarczającej liczby magazynów danych dla maksymalnej, potencjalnie zwiększenia wydajności, wydajności i komplikacji związanych z zarządzaniem i kosztami.
Zalecenia
Gdy możliwości wydajności jednego magazynu danych są niewystarczające, rozłóż maszyny wirtualne w wielu magazynach danych, aby jeszcze bardziej skalować. Prostota jest często najlepsza, ale wydajność i skalowalność mogą uzasadniać dodanie, ale ograniczoną złożoność.
Cztery magazyny danych usługi Azure NetApp Files zapewniają maksymalnie 10 GB/s przepustowości do wykorzystania w przypadku dużych sekwencyjnych operacji we/wy lub możliwości kierowania do 500 800 80000 operacji we/wy na sekundę. Chociaż jeden magazyn danych może być wystarczający dla wielu potrzeb w zakresie wydajności, aby uzyskać najlepszą wydajność, zacznij od co najmniej czterech magazynów danych.
W celu szczegółowego dostrajania wydajności systemy operacyjne gościa systemu Windows i Linux umożliwiają usuwanie na wielu dyskach. W związku z tym systemy plików należy rozdzielić na wiele zestawów VMDKs rozmieszczonych w wielu magazynach danych. Jeśli jednak spójność migawek aplikacji jest problemem i nie można jej przezwyciężyć w przypadku funkcji LVM lub miejsc do magazynowania, rozważ zainstalowanie usługi Azure NetApp Files z systemu operacyjnego gościa lub zbadanie skalowania na poziomie aplikacji, z których platforma Azure ma wiele doskonałych opcji.
W przypadku usuwania woluminów na wielu dyskach upewnij się, że oprogramowanie do tworzenia kopii zapasowych lub oprogramowanie odzyskiwania po awarii obsługuje tworzenie kopii zapasowych wielu dysków wirtualnych jednocześnie. Ponieważ poszczególne operacje zapisu są rozłożone na wiele dysków, system plików musi upewnić się, że dyski są "zamrożone" podczas operacji migawki lub kopii zapasowej. Większość nowoczesnych systemów plików obejmuje operację blokowania lub migawki, taką jak xfs (xfs_freeze) i NTFS (kopie woluminów w tle), które może korzystać z oprogramowania do tworzenia kopii zapasowych.
Ponieważ usługa Azure NetApp Files nalicza opłaty za aprowizowaną pojemność w puli pojemności zamiast przydzielonej pojemności (magazyny danych), na przykład zapłacisz to samo za magazyny danych 4x20 TB lub magazyny danych o pojemności 20x4 TB. Jeśli chcesz, możesz dostosować pojemność i wydajność magazynów danych na żądanie, dynamicznie za pośrednictwem interfejsu API/konsoli platformy Azure.
Na przykład w miarę zbliżania się do końca roku obrachunkowego okaże się, że potrzebujesz większej wydajności magazynu w magazynie danych w warstwie Standardowa. Możesz zwiększyć poziom usług magazynów danych przez miesiąc, aby umożliwić wszystkim maszynom wirtualnym w tych magazynach danych uzyskanie większej wydajności przy zachowaniu innych magazynów danych na niższym poziomie usługi. Nie tylko oszczędzasz koszty, ale zyskujesz większą wydajność, ponieważ obciążenia są rozłożone między więcej połączeń TCP między każdym magazynem danych a każdym hostem usługi AVS.
Metryki magazynu danych można monitorować za pomocą programu vCenter Server lub interfejsu API/konsoli platformy Azure. Z poziomu programu vCenter Server można monitorować zagregowaną średnią liczbę operacji we/wy magazynu danych na sekundę w wykresach wydajności/zaawansowanych, o ile włączysz zbieranie metryk kontroli we/wy magazynu danych. Interfejs API platformy Azure i konsola przedstawiają między innymi metryki dla WriteIops
elementów , ReadIops
ReadThroughput
i WriteThroughput
, w celu mierzenia obciążeń na poziomie magazynu danych. Za pomocą metryk platformy Azure można ustawić reguły alertów z akcjami, aby automatycznie zmieniać rozmiar magazynu danych za pomocą funkcji platformy Azure, elementu webhook lub innych akcji.
Następne kroki
- Usuwanie dysków na platformie Azure
- Tworzenie woluminów rozłożonych w systemie Windows Server
- Architektura magazynu usługi Azure VMware Solution
- Dołączanie magazynów danych usługi Azure NetApp Files do hostów usługi Azure VMware Solution
- Dołączanie usługi Azure NetApp Files do maszyn wirtualnych usługi Azure VMware Solution
- Kwestie dotyczące wydajności usługi Azure NetApp Files
- Najlepsze rozwiązania dotyczące instalacji systemu plików NFS w systemie Linux dla usługi Azure NetApp Files