Active-active w macierzach dyskowych – dlaczego tak trudno jednoznacznie wyjaśnić, o co naprawdę chodzi?

W potocznym rozumieniu, gdy użytkownicy mówią o kontrolerach w macierzach typu active-active, mają na myśli, że oba kontrolery pracują jednocześnie i obsługują ruch I/O w tym samym czasie.

Oczekują, że macierz automatycznie rozkłada obciążenie na oba kontrolery, co przekłada się na lepszą wydajność i większą niezawodność. W razie awarii jednego z kontrolerów, drugi natychmiast przejmuje całość ruchu bez przerwy w dostępie do danych, dzięki czemu użytkownicy i aplikacje nie zauważają żadnych zakłóceń. 
 
Użytkownicy często zakładają też, że hosty mogą korzystać z obu ścieżek do macierzy, a przełączenie w razie awarii jest całkowicie przezroczyste dla systemów i aplikacji. 
 
W praktyce nie zawsze jest to tak idealne, bo szczegóły działania zależą od konkretnej architektury macierzy i konfiguracji środowiska, ale właśnie tak najczęściej rozumiane jest pojęcie active-active w kontekście kontrolerów macierzowych. 

Active-active w macierzach Dell – jak kontrolery obsługują operacje I/O

Architektura kontrolerów w systemach pamięci masowej ma kluczowe znaczenie dla wydajności, dostępności i odporności na awarie.  

W szczególności tryb active-active jest często postrzegany jako gwarancja wysokiej dostępności, ale jego implementacja może się znacząco różnić w zależności od klasy urządzenia.  

W macierzach Dell PowerVault ME5, Unity XT i PowerStore zastosowano trzy odmienne podejścia do przypisywania operacji I/O do kontrolerów, co wpływa na sposób pracy całego systemu.
 

1.PowerVault ME5 – aktywność kontrolerów z ograniczoną równoległością na poziomie wolumenu 

W przypadku Dell PowerVault ME5 mamy do czynienia z architekturą dual-controller active-active, która jednak nie oznacza pełnej równoległości przetwarzania danych. Choć oba kontrolery są aktywne, nie realizują dynamicznego rozkładu obciążenia dla operacji I/O dotyczących tego samego wolumenu. Równoległość istnieje jednak na poziomie całej macierzy – jeśli pule dyskowe są rozdzielone pomiędzy kontrolery, to przypisane do nich wolumeny mogą być obsługiwane jednocześnie, każdy przez swój kontroler. 
 
W odróżnieniu od bardziej zaawansowanych rozwiązań, w ME5 przypisanie nie dotyczy pojedynczego wolumenu (LUN), lecz całej puli dyskowej (disk pool).  
 
Oznacza to, że wszystkie wolumeny utworzone w ramach danej puli są przypisane do jednego z dwóch kontrolerów jako ich „właściciela” (owner).  
 
Wszystkie operacje I/O dla tych wolumenów są kierowane wyłącznie do przypisanego kontrolera. Drugi kontroler pozostaje aktywny, ale pełni rolę zapasową, przejmuje obsługę tylko w przypadku awarii kontrolera głównego. 
Taki model działania, choć zapewnia wysoką dostępność dzięki automatycznemu mechanizmowi failover, nie pozwala na dynamiczne rozdzielanie obciążenia między kontrolerami.  
 
W praktyce oznacza to, że jeden kontroler może być przeciążony, jeśli obsługuje intensywnie wykorzystywaną pulę, podczas gdy drugi pozostaje niewykorzystany.  
Co więcej, przypisanie puli do kontrolera jest stałe i nie zmienia się automatycznie w odpowiedzi na zmiany w obciążeniu. 
To ograniczenie sprawia, że ME5 nie nadaje się do środowisk o dużej zmienności obciążenia lub wymagających intensywnego przetwarzania danych, gdzie kluczowe jest równoważenie operacji I/O w czasie rzeczywistym. 

2.Unity XT – preferowany kontroler i częściowa równoległość 

Dell Unity XT również wykorzystuje dwa kontrolery w trybie active-active, ale w bardziej zaawansowany sposób niż ME5.  
 
Każdy LUN ma przypisany „preferowany” kontroler, do którego domyślnie kierowane są operacje I/O. W odróżnieniu od ME5, drugi kontroler nie jest tylko zapasowy, może aktywnie uczestniczyć w obsłudze danych, szczególnie w sytuacjach przeciążenia lub awarii. 
Mechanizm ten pozwala na częściowe rozdzielanie obciążenia i lepsze wykorzystanie zasobów, choć nadal nie mamy pełnej swobody w przypisywaniu operacji I/O do dowolnego kontrolera.  
 
Failover jest szybki i automatyczny, a system potrafi dynamicznie reagować na zmiany w obciążeniu, co czyni Unity XT bardziej elastycznym rozwiązaniem dla środowisk produkcyjnych. 

3.PowerStore   – pełna równoległość i dynamiczne przypisywanie I/O 

Najbardziej zaawansowane podejście do architektury active-active prezentuje Dell PowerStore.  
 
W tym modelu zastosowano kontenerową architekturę scale-out, w której każdy węzeł (kontroler) może obsługiwać operacje I/O dla dowolnego LUNa, bez przypisania właściciela. Oznacza to, że dane mogą być przetwarzane równolegle przez wiele kontrolerów, a system samodzielnie decyduje, który węzeł najlepiej obsłuży daną operację. 
Dzięki globalnej pamięci podręcznej (global cache), PowerStore potrafi dynamicznie balansować obciążenie między węzłami, co przekłada się na maksymalną wydajność i optymalne wykorzystanie zasobów. Failover jest całkowicie automatyczny, a migracja wolumenów między kontrolerami odbywa się bez przestojów. To podejście eliminuje wąskie gardła i pozwala na skalowanie wydajności w miarę rozbudowy klastra. 
 
Porównanie podejść do przypisywania I/O: 

Wnioski 

Choć wszystkie trzy macierze Dell deklarują tryb pracy active-active, ich rzeczywiste możliwości w zakresie przypisywania operacji I/O do kontrolerów są bardzo różne. ME5 oferuje podstawową dostępność z ograniczoną równoległością, Unity XT zapewnia większą elastyczność i częściowe rozdzielanie obciążenia, natomiast PowerStore reprezentuje pełną implementację active-active z dynamicznym przypisywaniem I/O i skalowalnością klasy enterprise. 

Zrozumienie tych różnic jest kluczowe przy projektowaniu infrastruktury IT, szczególnie tam, gdzie wydajność, dostępność i skalowalność mają krytyczne znaczenie.