Gatekeepers z Red Hat OpenShift lub Upstream Kubernetes
Zusammenfassung: W tym artykule bazy wiedzy wyjaśniono, w jaki sposób korzystać z repozytorium Red Hat GitHub kubevirt-rawio-addon w celu prezentowania strażników PowerMax w środowisku Red Hat OpenShift lub Upstream Kubernetes. ...
Weisungen
Strażnicy PowerMax
Gatekeeperzy PowerMax to małe urządzenia (zazwyczaj trzy MB) wycięte z dysków w PowerMax, które działają jako obiekty docelowe SCSI dla poleceń narzędzia Solutions Enabler. Informacje o konfiguracji i stanie są przechowywane w pliku bazy danych hosta PowerMax symapi_db.bin domyślnie. Jest ona znana jako baza danych konfiguracji PowerMax. Zmniejsza to liczbę zapytań wysyłanych z hosta do macierzy pamięci masowej. Gatekeeperzy muszą być surowymi urządzeniami, aby system operacyjny po prostu przekazywał polecenia SCSI bez manipulacji. Podczas gdy hosty fizyczne zawsze współpracują ze strażnikami (z obsługiwanym systemem operacyjnym), hosty wirtualne są ograniczone do VMware korzystającego z fizycznych mapowań urządzeń surowych (RDM), iSCSI gościa w systemie Windows lub Linux, NVMe/TCP w gościu w systemie Linux lub urządzeń przekazywanych (karta sieciowa lub HBA). Jednak tylko VMware może przedstawić prawdziwe surowe urządzenie, które jest uznawane za realnego strażnika. Inne rozwiązania wirtualizacyjne pozwalają użytkownikowi prezentować urządzenia jako "surowe", ale ich rozwiązania blokują niektóre polecenia SCSI, uniemożliwiając ich użycie jako Gatekeeperów. Narzędzie Solutions Enabler oznacza je jako strażników, ale zgłasza błąd jak poniżej.

Co więcej, jeśli przyjrzysz się strażnikom dostępu, pokazują oni stan "CLS" lub zamknięty.

W związku z tym nie można przekazać niezbędnych poleceń SCSI.
Aby skorzystać z tego rozwiązania, należy użyć protokołu obsługiwanego przez narzędzie Solutions Enabler w wybranym systemie operacyjnym. Zapoznaj się z dokumentacją produktu.
Rozwiązanie Red Hat GitHub
Firma Dell zwróciła się do firmy Red Hat z prośbą o pomoc w opracowaniu obejścia problemu dla strażników dostępu w środowisku OpenShift dla niektórych naszych wspólnych klientów. W tym celu stworzyli rozwiązanie, które działa zarówno dla OpenShift, jak i Upstream Kubernetes z niewielkimi różnicami w implementacji. Repozytorium GitHub nazywa się kubevirt-rawio-addon, ponieważ znajduje się tutaj: https://github.com/openshift-cnv/kubevirt-rawio-addon GitHub zawiera https://github.com/openshift-cnv/kubevirt-rawio-addon/blob/main/README.md readme.
Dodatek instaluje kilka elementów:
- Mutowanie elementów webhook w celu modyfikowania obiektów w locie
- Walidacja elementu webhook — kontrola bezpieczeństwa specyficzna dla OpenShift
- Konfiguracja zabezpieczeń umożliwiająca korzystanie z funkcji uprzywilejowanych
- Hak wózka bocznego
Przyczepka to mały dodatkowy kontener, który działa obok zasobnika maszyny wirtualnej i modyfikuje konfigurację niskiego poziomu maszyny wirtualnej przed jej uruchomieniem. Przechwytuje konfigurację maszyny wirtualnej wygenerowaną przez KubeVirt, znajduje dyski z adnotacjami i ustawia rawio=yes. Następnie KubeVirt pobiera z powrotem XML. Podstawowa architektura libvirt/QEMU obsługuje to, ale nie udostępnia tego, więc ta drobna korekta jest wymagana. Możliwe, że KubeVirt ujawni to w przyszłości, w którym to momencie obejście będzie niepotrzebne.
Wdrożenie na platformie OpenShift
Repozytorium zawiera wszystkie instrukcje dotyczące implementacji tego rozwiązania. Ponieważ firma Red Hat jest właścicielem rozwiązania, firma Dell zaleca przestrzeganie bieżących instrukcji, które mogą ulec zmianie w przyszłości. Firma Dell nie zaktualizuje bazy wiedzy w celu odzwierciedlenia tych zmian. Z grzeczności poniżej podajemy podstawowe informacje, ale zachęcamy użytkowników tego artykułu bazy wiedzy do korzystania z nich razem z repozytorium.
Jak wspomniano, można to zaimplementować na platformie OpenShift lub Upstream Kubernetes. Ponieważ kroki są dla OpenShift, istnieje kilka elementów na uwagę, jeśli wykonujesz nadrzędną platformę Kubernetes.
- Jeśli implementujesz na waniliowych K8s, musisz mieć zainstalowany cert-manager. Jeśli sterownik PowerMax CSI jest zainstalowany, oznacza to, że jest on obecny.
- Jeśli implementujesz na waniliowych K8s, potrzebujesz uprzywilejowanej przestrzeni nazw. Możesz użyć przestrzeni nazw w skryptach lub utworzyć własną, a następnie zmodyfikować skrypty.
Dwa skrypty potrzebne do implementacji znajdują się w folderze hack . rawio-setup.sh jest pierwszym skryptem i jest taki sam dla obu platform, ale należy pamiętać, że opiera się na przestrzeni nazw openshift-cnv, która jest obecna tylko w OpenShift. Dodaj przestrzeń nazw lub utwórz nową i zmodyfikuj skrypt dla K8s. Skrypt tworzenia maszyny wirtualnej jest unikatowy dla platformy, ale ponownie używa openshift-cnv przestrzeni nazw. W przypadku OpenShift jest to rawio-create-vm-openshift.sh. Skrypty są przeznaczone do tworzenia środowiska testowego i będą wymagały modyfikacji w celu skonfigurowania produkcyjnego. W szczególności skrypt rawio-setup.sh tworzy wirtualne urządzenie SCSI. Zamiast tego zmodyfikuj skrypt w celu użycia klasy pamięci masowej PowerMax. Ponadto w skrypcie założono, że jeden węzeł służy do planowania maszyny wirtualnej. Zmodyfikuj go, aby umożliwić jego uruchamianie w dowolnym węźle roboczym. Skrypt używa systemu operacyjnego Fedora pre-buit.
Przykładowe skrypty znajdują się w sekcji Zawartość uzupełniająca.
Podstawowe kroki
- Sklonuj repozytorium: git clonehttps://github.com/openshift-cnv/kubevirt-rawio-addon.git
- Zainstaluj manifest: oc apply -fhttps://github.com/openshift-cnv/kubevirt-rawio-addon/releases/download/v0.1.0/rawio-addon-openshift.yaml
- Zainstaluj przyczepkę: oc annotate –overwrite -n openshift-cnv hco kubevirt-hyperconverged kubevirt.kubevirt.io/jsonpatch='[{"op": "dodaj", "ścieżka": "/spec/configuration/developerConfiguration/featureGates/-", "value": "Wózek boczny"}]'
- Uruchom instalację: rawio-setup.sh
- Utwórz maszynę wirtualną: rawio-create-vm-openshift.sh
- Zainstaluj system operacyjny (zakładając, że nie używasz gotowego)
Należy pamiętać, że interfejs CSI PowerMax nie może utworzyć urządzenia mniejszego niż 50 MB, nawet jeśli zażądasz tradycyjnego strażnika 3 MB. Nie powoduje to problemu.


Inne rozwiązania wirtualizacji
Żadne z poniższych rozwiązań nie działa z tym repozytorium Red Hat.
- Rozwiązania oparte na K8s, takie jak SUSE Harvester - SUSE musi opracować własne rozwiązanie
- Rozwiązania KVM, takie jak Proxmox lub Oracle KVM (oVirt) - nie są one oparte na KubeVirt i nie mogą być używane
Weitere Informationen
rawio-setup.sh
*******************************************
rawio-create-vm-openshift.sh