Opublikowano wydanie rozproszonego, replikowanego bloku urządzenia DRBD 9.2.0, które pozwala zrealizować podobieństwo macierzy RAID-1, utworzonej z połączonych sieciowo dysków różnych maszyn (mirroring przez sieć). System został opracowany w postaci modułu dla jądra Linux i jest rozpowszechniany na licencji GPLv2. Gałąź drbd 9.2.0 może być używana jako przejrzysta zamiana drbd 9.x.x i jest w pełni kompatybilna na poziomie protokołu, plików konfiguracyjnych i narzędzi.
DRBD umożliwia połączenie dysków węzłów klastra w jedną niezawodną przestrzeń dyskową. Dla aplikacji i systemu taka przestrzeń dyskowa wygląda jak jednolite urządzenie blokowe dla wszystkich systemów. Przy użyciu DRBD wszystkie operacje na lokalnym dysku są wysyłane do innych węzłów i synchronizowane z dyskami innych maszyn. W przypadku awarii jednego z węzłów, przestrzeń dyskowa automatycznie kontynuuje pracę dzięki pozostałym węzłom. Po przywróceniu dostępności uszkodzonego węzła, jego stan zostanie automatycznie doprowadzony do aktualnej wersji.
W skład klastra tworzącego magazyn może wchodzić kilka dziesiątek węzłów, umieszczonych zarówno w lokalnej sieci, jak i geograficznie rozproszonych w różnych lokalizacjach. centra przetwarzania danych. Synchronizacja w takich rozbudowanych magazynach odbywa się z wykorzystaniem technologii sieci mesh (dane rozprzestrzeniają się w łańcuchu od węzła do węzła). Replikacja węzłów może odbywać się zarówno w trybie synchronizacyjnym, jak i asynchronizacyjnym. Na przykład, lokalnie umiejscowione węzły mogą stosować replikację synchronizacyjną, a dla zdalnych lokalizacji może być stosowana replikacja asynchronizacyjna z dodatkowym kompresowaniem i szyfrowaniem ruchu.

W nowym wydaniu:
- Zredukowano opóźnienia dla replikowanych zapytań zapisu. Bardziej ścisła integracja z zestawem sieciowym pozwoliła na zmniejszenie liczby przełączeń kontekstu planisty.
- Zmniejszono konkurencję między wejściem/wyjściem aplikacji a wejściem/wyjściem replikacji dzięki optymalizacji blokad podczas ponownej synchronizacji ekstentów.
- Zdecydowanie zwiększono wydajność ponownej synchronizacji na backendach, w których stosuje się dynamiczne przydzielanie miejsca w magazynie («thin provisioning»). Udało się to osiągnąć dzięki połączeniu operacji trim/discard, które trwają znacznie dłużej niż zwykłe operacje zapisu.
- Dodano wsparcie dla przestrzeni nazw sieci (network namespaces), co pozwoliło na integrację z Kubernetes w celu przesyłania ruchu sieciowego replikacji przez oddzielną sieć powiązaną z kontenerami, zamiast sieci środowiska hosta.
- Dodano moduł transport_rdma do wykorzystania jako transport Infiniband/RoCE zamiast TCP/IP na Ethernet. Użycie nowego transportu pozwala na zmniejszenie opóźnień, zmniejszenie obciążenia CPU oraz uzyskanie danych bez zbędnych operacji kopiowania (zero-copy).
Źródło: opennet.ru
