
Red Hat OpenStack Platform ukierunkowana jest na obsługę systemów o krótkiej żywotności, które uruchamiane są w większej ilości na relatywnie krótki okres czasu. Choć sumarycznie dana usługa może działać bardzo długo, to obsługujące ją instancje wirtualne mają relatywnie krótki czas życia. Wprowadzanie zmian w ich konfiguracji czy aktualizacja, polega na uruchamianiu nowych instancji i wyłączaniu starych. W przypadku wzrostu obciążenia, uruchamia się dodatkowe instancje (scale-out), a przy spadku obciążenia się je wyłączane.
Każda z usług platformy Red Hat OpenStack działa jako wyizolowany i niezależny kontener. Do ich obsługi stosowany jest Podman, Buildah i Skopeo. Pozwala to wygodnie aktualizować poszczególne komponenty platformy, a w przypadku pojawienia się podatności zapewniona jest należyta izolacja. Do komunikacji pomiędzy usługami platformy stosowane są szyfrowane połączenie na bazie TLS. Do usług platformy należy m.in.:
- Horizon - udostępnia interfejs webowy do zarządzania usługami Red Hat OpenStack. To poprzez niego można m.in. tworzyć nowe instancje, zarządzać siecią, tworzyć trwałą i ulotną przestrzeń dyskową, monitorować różne metryki czy zarządzać dostępem i zasobami.
- Nova - zajmuje się tworzeniem oraz przygotowaniem instancji wirtualnych, kontenerów i serwerów fizycznych (bare-metal). Kooperuje z różnymi hiperwizorami. Zarządza dostępnymi zasobami pamięci i procesora.
- Glance - służy do przechowywania oraz udostępniania obrazów (ang. images) i migawek (ang. snapshots).
- Ironic - umożliwia obsługę i konfigurację od zera (ang. provisioning) serwerów fizycznych (bare metal). Do tego celu wykorzystuje Intelligent Platform Management Interface (IPMI), HP iLO, Cisco IMC lub Dell DRAC. Potrafi też zarządzać zasilaniem i zbierać informacje na temat stanu różnych komponentów serwera.
- Keystone - udostępnia centralny punkt uwierzytelnienia i autoryzacji użytkowników dla wszystkich komponentów platformy Red Hat OpenStack oraz usługi do zarządzania użytkownikami, rolami i projektami. Rozdaje tokeny, które są wykorzystywane przy korzystaniu z różnych usług platformy Red Hat OpenStack.
- Barbican - służy do zarządzania certyfikatami, kluczami i hasłami usług platformy. Udostępnia bezpieczne metody ich składowania i udostępniania.
- Heat - zajmuje się orkiestracją aplikacji i zasobów. Umożliwia wcześniejsze opisanie infrastruktury dla aplikacji i jej zasobów przy użyciu specjalnych szablonów (HOT - Heat Orchestration Template), które służą do ich budowy i uruchamiania. Usługa ta monitoruje, weryfikuje łańcuch zależności, dba o wysoką dostępność, automatycznie skaluje i umożliwia zautomatyzowaną aktualizacje instancji. Akcje orkiestratora mogą bazować na różnych danych telemetrycznych z obszaru całego klastra.

Innym zastosowaniem stref dostępności, jest uruchamianie usług najbliżej użytkowników, co jest przydatne m.in. w przypadku obsługi wirtualnych desktopów (VDI - Virtual Desktop Infrastructure).
Trwała przestrzeń nie ulega zniszczeniu razem z instancją, stąd może być równolegle używana przez wiele instancji, jak i przez nowe instancje, które uruchamiane są w miejsce starych. Trwałą przestrzeń można także zastosować dla obrazu czy systemu bazowego instancji. Wtedy jej obraz uruchamia się bezpośrednio z przydzielonej przestrzeni trwałej i zawsze zawiera ostatni stan, z jakim pozostawiła go instancja. W tym obszarze jest to dość podobne do tego, jak działają maszyny wirtualne w środowiskach do wirtualizacji.
Dostarczeniem przestrzeni dyskowej w Red Hat OpenStack Platform zajmuje się:
- Cinder - dostarcza trwałą blokową przestrzeń danych (ang. persistent block storage) dla instancji, do której dostęp w danej chwili ma tylko jedna instancja (RWO - ReadWriteOne).
- Manila - dostarcza trwałą plikową przestrzeń danych (ang. persistent file storage), która może być współdzielona przez wiele instancji wirtualnych, fizycznych czy kontenerów (RWX - ReadWriteMany). Obsługuje m.in. NFS, SMB/CIFS, GlusterFS (Red Hat Gluster Storage) i CephFS (Red Hat Ceph Storage).
- Swift - dostarcza trwałą obiektową przestrzeń danych (ang. persistent object storage), która stosowana jest do przetrzymywania statycznych obiektów, jak wiadomości e-mail, pliki, nagrania czy obrazki, do których można uzyskać dostęp bezstanowo za pomocą HTTPS. Pozycjonowana jest w miejsce Amazon S3.

Zapis i odczyt z przestrzeni dyskowych może podlegać limitom ilości bajtów na sekundę oraz operacji IOPS. Istnieje również możliwość definiowania ograniczeń pojemnościowych (ang. quotas) dla uruchamianych projektów czy też poszczególnych użytkowników.
OVS (Open vSwitch) stara się przełączać pakiety na poziomie jądra hosta. Każdy z jego portów jest oddzielnym vhost-net, w stronę virtio-net maszyny wirtualnej lub interfejsem do sieci zewnętrznej. Ta część jest dość podobna do standardowego przełącznika w jądrze hosta, o którym więcej można przeczytać przy Red Hat Virtualization.

- IPv4/IPv6, NetFlow, IPFIX, SPAN/RSPAN,
- LACP (IEEE 802.1AX-2008), VLAN i Trunk (IEEE 802.1Q),
- STP (IEEE 802.1D-1998) i RSTP (IEEE 802.1D-2004),
- Multicast Snooping (IGMP/MLD),
- IETF Auto-Attach SPBM i LLDP,
- BFD i 802.1ag Link Monitoring,
- bardzo granularny QoS i limitowanie ruchu,
- kolejkowanie ruchu z użyciem HFSC (Hierarchical Fair Service Curve),
- obsługa protokołu OpenFlow i jego rozszerzeń,
- tunelowanie GRE, VXLAN, STT, Geneve i IPsec.
- dostęp aplikacji z przestrzeni użytkownika do karty sieciowej z pominięciem jądra (pominięcie przełączania kontekstu użytkownika/jądra oraz obsługi całego stosu sieciowego i sterowników na poziomie jądra),
- dostęp do karty sieciowej bez żadnych przerwań i blokad (zamiast czekać na przerwanie od karty sieciowej, dedykowany dla Poll Mode Driver (PMD) rdzeń procesora cały czas sprawdza i odpytuje jej kolejkę, do której ma wyłączny dostęp, bez żadnych blokad).
Jest to oczywiście kosztem wspomnianego rdzenia procesora, który zajmuje się ciągłym odpytywaniem kolejki karty sieciowej. Najczęściej dla PMD (Poll Mode Driver) rezerwowany jest jeden lub więcej rdzeni procesora, z których użyciem odpytuje on nieustannie kolejki wejściowe przypisanych mu portów kart sieciowych.
W ten sposób, działający w przestrzeni użytkownika OVS-DPDK dostaje bezpośredni i bardzo wydajny dostęp do kart sieciowych. Dodatkowo może on udostępniać taki dostęp w stronę instancji wirtualnych. Realizuje to za pomocą modułu vhost-user, który działa w przestrzeni użytkownika hosta (w odróżnieniu od modułu jądra hosta vhost-net).
OVS-DPDK może też oddać bezpośredni dostęp do swoich portów aplikacji działającej w przestrzeni użytkownika wirtualnej instancji, wtedy zamiast virtio-net stosuje ona sterownik virtio-pmd.
Red Hat OpenStack Platform daje także możliwość oddanie maszynie wirtualnej bezpośredniego, współdzielonego lub wyłączonego dostępu do karty sieciowej w gnieździe PCI Express (PCIe). Wyłączny dostęp rezerwuje kartę sieciową dla pojedynczej wirtualnej instancji, a współdzielony umożliwia jej współdzielenie przez wiele instancji wirtualnych równocześnie. Współdzielony dostęp realizowany jest poprzez SR-IOV (Single-Root Input/Output Virtualization) lub vDPA (vHost Data Path Acceleration). Z vDPK i SR-IOV mogą korzystać instancje, kontenery oraz OVS-DPDK.
Karta sieciowa z obsługą SR-IOV może być współużytkowana przez wiele instancji. Do każdej z nich udostępniana jest wirtualna karta sieciowa, zwana VF (Virtual Function), która obsługiwana jest na wewnętrznym, wbudowanym w kartą sieciową przełączniku. Funkcjonalność, wydajność i ilość obsługiwanych VF może być różna, w różnych kartach sieciowych. Dodatkowo do obsługi SR-IOV mogą być potrzebne specyficzne sterowniki danego producenta.
vDPA standaryzuje obsługę warstwy kontrolnej SR-IOV u różnych producentów. Udostępnia uniwersalny interfejs warstwy kontrolnej, który komunikuje się warstwą kontrolną kart różnych producentów. Na poziomie hosta nadal jest potrzebny odpowiedni sterownik dla karty sieciowej danego producenta, natomiast na poziomie systemu gościa (wirtualna instancja lub kontener) wystarczy, że będzie dostępny tylko sterownik vDPA. Ścieżka danych w SR-IOV i vDPA nie zmienia się, gdyż vDPA zmienia tylko sposób obsługi warstwy kontrolnej.
OVS-DPDK, SR-IOV i vDPK mają kluczowe znaczenia dla urządzeń VNF (Network Function Virtualization). Należą do nich wirtualne urządzenia sieciowe, zajmujące się m.in. rozkładem obciążenia, obsługą VPN, wykrywaniem zagrożeń w ruchu, analizą i filtrowaniem ruchu, kierowaniem ruchu czy jego akceleracją.
Niezależny instytut standaryzacyjny ETSI (European Telecommunications Standards Institute) opracował cały model, w tym szereg wymagań i specyfikacji, które powinna spełniać architektura do obsługi NFV. Red Hat świetnie się w nią wpasowuje ze swoimi produktami.
OVN (Open Virtual Network) jest kontrolerem SDN, służącym do wysokopoziomowego zarządzania wieloma OVS i w ten sposób kreowania wirtualnych topologii sieciowych L2 i L3 (IPv4/IPv6). OVN stara się jak najwięcej funkcji implementować bezpośrednio na poziomie OVSi obsługuje też OVS-DPDK. Jest on back-endem dla usługi Neutron.
Oprócz funkcji OVS, OVN umożliwia m.in. skalowalne i wygodne filtrowanie z wykorzystaniem mechanizmu security groups, obsługę NAT, DHCP, DNS i ruchomych IP (ang. floating IPs). Domyślnie OVS-OVN stosuje enkapsulację GENEVE (Generic Network Virtualization Encapsulation).
Ciekawą funkcją OVN jest Flow Caching, który pozwala pominąć przetwarzanie pakietu na każdym z wirtualnych urządzeń L2/L3, jakie stoją na jego drodze. Kontroler jest w stanie określić końcowe miejsce przeznaczenia pakietu. Na tej podstawie m.in. zmniejsza odpowiednio TTL i ustawia odpowiedni adres MAC docelowy, a następnie przekazuje go już do końcowego miejsce przeznaczenia. Znacząco podnosi to wydajność przełączania oraz umożliwia osiągnięcie podobnej wydajności i opóźnień dla przełączania L2 i L3.
Dzięki funkcji ARP/ND Suppression, OVN minimalizuje także ilość ruchu rozgłoszeniowego związanego z działaniem ARP w IPv4 i ND w IPv6. Lokalny kontroler węzła jest w stanie przechwycić takie zapytanie i wygenerować stosowne odpowiedzi. Dzięki temu, ruch ten niepotrzebnie nie jest tunelowany do innych węzłów.
Platforma Red Hat OpenStack udostępnia także wbudowane funkcje rozkładu obciążenia (ang. load balancing) i dystrybucji ruch do działających instancji. Do tego celu stosowana jest usługa Octavia.


Nie można też tutaj zapomnieć o rezerwacji odpowiednich zasobów procesora z każdego węzła NUMA na potrzeby wspomnianego wcześniej PMD przy wykorzystaniu OVS-DPDK.

Na bazie Red Hat Virtualization możliwe jest uruchomienie całej infrastruktury do zarządzania i kontroli dla platformy Red Hat OpenStack. Red Hat Virtualization może korzystać z obrazów VM i plików ISO dostępnych w usłudze Glance oraz przestrzeni blokowej usługi Cinder do obsługi dysków i migawek. Możliwe jest również wykorzystanie w Red Hat Virtualization sieci na bazie OVS/OVN z usługi Neutron platformy Red Hat OpenStack.

Zapraszamy do kontaktu drogą mailową This email address is being protected from spambots. You need JavaScript enabled to view it. lub telefonicznie +48 797 004 932.