Red Hat OpenStack Platform
 
Red Hat OpenStack jest platformą wykorzystywaną do budowy chmur publicznych i prywatnych, która rozwijana jest od 2010 roku. O ile najczęściej uruchamia się ją na bazie systemu RHEL (Red Hat Enterprise Linux) oraz technologii KVM (Kernel-based Virtual Machine), to może też działać na bazie Red Hat Virtualization, VMware vSphere lub Microsoft Hyper-V. Tak jak wszystkie produkty Red Hat, posiada ona otwarty kod (ang. Open Source).
 
 
Platforma Red Hat OpenStack najczęściej jest wykorzystywana przez wszelakich dostawców usług chmurowych, organizacje tworzące własne chmury prywatne, a także dostawców usług telekomunikacyjnych, internetowych i telewizyjnych, którzy potrzebują wygodnie oraz wydajnie wirtualizować różne usługi i urządzenia sieciowe.
 
Korzysta z niej także sektor badawczy i naukowy, gdzie realizowana jest duża ilość obliczeń, analiz i symulacji, a także przedsiębiorstwa, urzędy, banki i uczelnie do uruchamiania usług i wirtualizacji desktopów.
 
Rośnie też jej zastosowanie w obszarze sztucznej inteligencji (AI - Artificial Intelligence), uczeniu maszynowym (ML - Machine Learning), robotyce, czy internecie rzeczy (IoT - Internet of Things). Stosowana jest również w obliczeniach o dużej wydajności (HPC - High Performance Computing), analizie w czasie rzeczywistym, a także przy przetwarzaniu i rozpoznawaniu obrazów.

Sprzedajemy produkty Red Hat na polskim rynku. Za naszym pośrednictwem można zakupić Red Hat OpenStack Platform. Jesteśmy także w stanie pomóc w jego wdrożeniu i obsłudze. Zainteresowanych zapraszamy do This email address is being protected from spambots. You need JavaScript enabled to view it..

Platformy do wirtualizacji, jak Red Hat Virtualization, dedykowane są do obsługi systemów o długiej żywotności, które długotrwale są utrzymywane i aktualizowane, a w przypadku wzrostu obciążenia, zwiększa się im zasoby (scale-up).

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.
Główne usługi platformy Red Hat OpenStack oraz ich funkcje zostały zobrazowane poniżej.
 
 
W platformę wbudowana jest obsługa stref dostępności (ang. Availability Zones), które definiują obszary zależne od tych samych komponentów i punktów awarii. Przykładem takich komponentów może być wspólne źródło zasilania, czy wyjście do sieci Internet. Dzięki strefom dostępności działające instancje mogą być tak rozrzucane, by awaria w ramach jednej ze stref nie miała wpływu na całościową dostępność usługi.

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). 
 
W tym obszarze dostępne jest także wsparcie dla NVIDIA GRID Virtual PC (vPC) i NVIDIA Virtual GPU (vGPU), dzięki któremu wiele instancji wirtualnych może mieć równoczesny i bezpośredni dostęp do pojedynczego procesora graficznego - GPU. Istnieje także możliwość przekazania bezpośredniego i wyłączonego dostępu danej instancji wirtualnej do urządzenia PCI, na którym działa cała karta z procesorami GPU (PCI passthrough).
 
Oprócz funkcji wysokiej dostępności (HA - High Availability) czy automatycznego skalowania, platforma pozwala m.in. na wprowadzanie dynamicznych zmian w alokacji zasobów procesora, pamięci czy dysków działających instancji, migrację instancji wirtualnych bez wyłączania (hot) i z wyłączaniem (cold) oraz obsługę migawek (ang. snapshots) dla instancji i całych wolumenów.

Red Hat OpenStack Platform wykorzystuje trwałą (ang. persistent) i nietrwałą (ang. ephemeral) przestrzeń danych. Przestrzeń nietrwała tworzona jest na czas życia danej instancji wirtualnej i ulega zniszczeniu razem z nią. Najczęściej wykorzystywana jest tylko przez system instancji i pliki tymczasowe. Działa to tak, że obraz danej instancji kopiowany jest do pamięci nietrwałej i z niej uruchamiany. Z jednego obrazu może zostać uruchomione wiele instancji i każda z nich będzie korzystała ze swojej prywatnej nietrwałej przestrzeni dyskowej, która będzie ulegać zniszczeniu razem z nią. Dzięki takiemu podejściu, każda instancja posiada świeży stan, oparty na bazowym obrazie, który nie ulega modyfikacji i przetrzymywany jest w przestrzeni trwałej tylko w jednej kopii.

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.
Red Hat Ceph Storage jest w stanie dostarczyć przestrzeń dyskową do wszystkich tych usług. Umożliwia on też wygodną rozbudowę i bardzo dużą skalowalność (scale-up & scale-out). Jest to preferowane rozwiązanie SDS (Software-Defined Storage) dla Red Hat OpenStack Platform. Przestrzeń udostępniana przez Red Hat Ceph Storage może podlegać dodatkowej ochronie przez system do obsługi kopii zapasowych Storware vProtect.
 

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.

Sprzedajemy produkty Red Hat na polskim rynku. Za naszym pośrednictwem można zakupić Red Hat OpenStack Platform. Jesteśmy także w stanie pomóc w jego wdrożeniu i obsłudze. Zainteresowanych zapraszamy do This email address is being protected from spambots. You need JavaScript enabled to view it..

Za obsługę sieci w platformie Red Hat OpenStack odpowiada usługa Neutron, która dostarcza wspólną warstwę abstrakcji do obsługi OVS (Open vSwitch), OVS-OVN (Open Virtual Network) i rozwiązań SDN (Software-Defined Network) innych producentów, jak Cisco ACI (Application Centric Infrastructure).

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.
 
Jako, że obsługuje on więcej funkcjonalności niż standardowy przełącznik, pewne jego elementy musiały zostać wyniesione do przestrzeni użytkownika. Znajduje się tam jego baza danych (ovsdb-server) oraz daemon zajmujący się kontrolą przełącznika (ovs-vswitchd).
 
 
Aby jak najwięcej ruchu mogło być przełączane na poziomie jądra, utrzymywana jest na poziomie jądra tablica przepływów. W związku z tym, że tablica ta najpierw musi się zbudować, niewielka część pakietów jest przełączana w przestrzeni użytkownika. Dopiero, kiedy daemon ovs-vswitchd przeanalizuje pakiet i doda odpowiedni wpis do tablicy przepływów, kolejne pakiety danego przepływu przełączane są bezpośrednio na poziomie jądra.
 
Do ciekawszych funkcji, jakie udostępnia OVS należy m.in.:
  • 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.
Z związku z tym, że niektóre operacje wymagają interakcji z przestrzenią użytkownika, co z kolei ma wpływ na spadek wydajności, została opracowana architektura na bazie DPDK (Data Plane Development Kit), która daje:
  • 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.


Sprzedajemy produkty Red Hat na polskim rynku. Za naszym pośrednictwem można zakupić Red Hat OpenStack Platform. Jesteśmy także w stanie pomóc w jego wdrożeniu i obsłudze. Zainteresowanych zapraszamy do This email address is being protected from spambots. You need JavaScript enabled to view it..

W celu poprawy wydajności, możliwe jest przypisywanie (ang. pinning) instancji do procesorów i węzłów NUMA. Funkcje te dostępne są na poziomie usługi Nova, gdzie można zdefiniować całą topologię NUMA na podstawie której będą dalej przydzielane zasoby.
 
 
Stosowana w obecnych serwerach architektura NUMA (Non-Uniform Memory Access) została podzielona na strefy, nazywane węzłami NUMA. Najlepiej, gdy dana instancja korzysta z zasobów jednego węzła NUMA.
 
Dotyczy to nie tylko procesora i pamięci, ale też urządzeń sieciowych (SR-IOV/OVS-DPDK). Na węzeł NUMA składać się mogą rdzenie procesora wraz z ich lokalną pamięcią, a nawet bezpośrednio dołączone urządzenia PCIe.
 

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.
 
Włączyć można także automatyczne balansowanie NUMA. Polega ono na uruchamianiu procesów najbliżej obszarów przydzielonej pamięci oraz przenoszeniu danych pamięci bliżej procesów, które z nich korzystają.

Sprzedajemy produkty Red Hat na polskim rynku. Za naszym pośrednictwem można zakupić Red Hat OpenStack Platform. Jesteśmy także w stanie pomóc w jego wdrożeniu i obsłudze. Zainteresowanych zapraszamy do This email address is being protected from spambots. You need JavaScript enabled to view it..

Red Hat OpenStack Platform umożliwia kooperację i integrację z Red Hat OpenShift Platform. Potrafi automatycznie zbudować całe środowisko platformy Red Hat OpenShift na serwerach fizycznych (ang. bare metal) i wirtualnych, hostować platformę Red Hat OpenShift, zapewnić wysoką dostępność i rozkład obciążenia do jej komponentów, usług i obsługiwanych aplikacji oraz udostępnić jej przestrzeń danych i usługi sieciowe.
 
 
Dzięki Kuryr, możliwe jest umiejscowienie kontenerów z platformy Red Hat OpenShift razem z wirtualnymi instancjami platformy Red Hat OpenStack w jednej współdzielonej sieci. Bez użycia Kuryr, sieć SDN z Red Hat OpenShift działa na warstwie sieci SDN platformy Red Hat OpenStack, czyli dochodzi do podwójnej enkapsulacji.

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.
 
 
Red Hat OpenStack Platform dobrze integruje się też z innymi produktami Red Hat. Dzięki Red Hat Satellite możemy zautomatyzować budowanie instancji, dzięki Red Hat Ansible Automation możliwa jest automatyzacja całej obsługi Red Hat OpenStack, dzięki Red Hat CloudForms możemy zapewnić wygodny interfejs samoobsługowy i rozliczanie, a dzięki Red Hat Insights mamy wgląd w szereg zaleceń dotyczących platformy.

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.