EinfĂŒhrung
Open-Source-Projekt â eine freie Virtualisierungsplattform auf Unternehmensniveau. Beim Durchsehen von Habr habe ich festgestellt, dass es hier nicht so umfassend behandelt wird, wie es verdient.
oVirt ist faktisch das Upstream-Projekt fĂŒr das kommerzielle System Red Hat Virtualization (RHV, frĂŒher RHEV), das unter dem Schutz von Red Hat wĂ€chst. Um Verwirrung zu vermeiden, ist das nicht das gleiche wie CentOS vs RHEL, das Modell ist nĂ€her an Fedora vs RHEL.
Unter der Haube â , wird ein Web-Interface zur Verwaltung verwendet. Es basiert auf RHEL/CentOS 7.
oVirt kann sowohl fĂŒr âtraditionelleâ Server- als auch Desktop-Virtualisierung (VDI) verwendet werden; im Gegensatz zur Lösung von VMware können beide Systeme in einem Komplex koexistieren.
Das Projekt ist gut , hat seit Langem seine Reife fĂŒr den produktiven Einsatz erreicht und ist bereit fĂŒr hohe Lasten.
Dieser Artikel ist der erste in einer Reihe darĂŒber, wie man einen funktionsfĂ€higen HochverfĂŒgbarkeitscluster aufbaut. Indem wir sie durchgehen, werden wir in kurzer Zeit (etwa 2 Stunden) ein voll funktionsfĂ€higes System erhalten, auch wenn einige Fragen natĂŒrlich nicht behandelt werden können; ich werde versuchen, diese in zukĂŒnftigen Artikeln zu beleuchten.
Wir verwenden es seit mehreren Jahren, angefangen bei Version 4.1. Unser industrielles System lÀuft jetzt auf HPE Synergy 480 und ProLiant BL460c der 10. Generation mit Xeon Gold CPU.
Zum Zeitpunkt des Schreibens ist die aktuelle Version 4.3.
Artikel
- EinfĂŒhrung (Wir sind hier)
Funktionale Merkmale
In oVirt gibt es zwei Hauptbestandteile: ovirt-engine und ovirt-host(s). FĂŒr diejenigen, die mit den Produkten von VMware vertraut sind, ist oVirt insgesamt eine Plattform wie vSphere; ovirt-engine â die Steuerungsebene â erfĂŒllt die gleichen Funktionen wie vCenter, und ovirt-host â der Hypervisor, wie ESX(i). Da vSphere eine sehr beliebte Lösung ist, werde ich gelegentlich Vergleiche zu ihr anstellen.

Abb. 1 â das Dashboard von oVirt.
Als Gastmaschinen werden die meisten Linux-Distributionen und Windows-Versionen unterstĂŒtzt. FĂŒr Gastmaschinen gibt es Agents, optimierte virtuelle GerĂ€te und virtio-Treiber, in erster Linie fĂŒr den Festplattencontroller und die Netzwerkschnittstelle.
Um eine hochverfĂŒgbare Lösung und alle interessanten Funktionen zu realisieren, wird ein Shared Storage benötigt. UnterstĂŒtzt werden sowohl Block-Storage wie FC, FCoE, iSCSI, als auch Datei-Storage wie NFS und andere. Um eine hochverfĂŒgbare Lösung zu realisieren, muss das Storage-System ebenfalls hochverfĂŒgbar sein (mindestens 2 Controller, Multipathing).
Die Nutzung von lokalen Speichern ist möglich, jedoch sind fĂŒr einen echten Cluster standardmĂ€Ăig nur Shared Storages geeignet. Lokale Speicher machen das System zu einer uneinheitlichen Gruppe von Hypervisoren, und selbst mit einem Shared Storage lĂ€sst sich der Cluster nicht aufbauen. Der sinnvollste Weg sind disklose Maschinen mit Boot von SAN oder Festplatten mit minimaler KapazitĂ€t. Wahrscheinlich ist ĂŒber vdsm Hook eine Konfiguration mit lokalen Festplatten fĂŒr Software Defined Storage (z.B. Ceph) und deren PrĂ€sentation als VM möglich, jedoch habe ich dies nicht ernsthaft in Betracht gezogen.
Architektur

Abb. 2 â Architektur von oVirt.
Detailinformationen zur Architektur sind erhÀltlich bei dem Entwickler.

Abb. 3 â Objekte von oVirt.
Das oberste Element in der Hierarchie â Rechenzentrum. Es bestimmt, ob Shared oder lokale Speicher verwendet werden und welche Funktionen (KompatibilitĂ€t, von 4.1 bis 4.3) zur VerfĂŒgung stehen. Es kann ein einzelnes oder mehrere Rechenzentren geben. FĂŒr viele Anwendungsmöglichkeiten ist die Verwendung des Standard-Rechenzentrums â Default â ausreichend.
Ein Rechenzentrum besteht aus einem oder mehreren Clusters. Ein Cluster definiert den Prozessor-Typ, Migrationsrichtlinien usw. FĂŒr kleine Installationen kann man auch mit dem Cluster Default auskommen.
Ein Cluster besteht seinerseits aus HostHosts, die die Hauptarbeit verrichten â sie tragen die virtuellen Maschinen und sind mit Speicher verbunden. In einem Cluster sind 2 oder mehr Hosts vorgesehen. Obwohl es technisch möglich ist, einen Cluster mit nur 1 Host zu erstellen, hat dies keinen praktischen Nutzen.
oVirt unterstĂŒtzt viele Funktionen, einschlieĂlich Live-Migration von virtuellen Maschinen zwischen Hypervisoren (Live-Migration) und Speichern (Speichermigration), Desktop-Virtualisierung (Virtual Desktop Infrastructure) mit VM-Pools, stateful und stateless VMs, UnterstĂŒtzung fĂŒr NVidia Grid vGPU, Import aus vSphere, KVM und vieles mehr. All diese Funktionen sind ohne LizenzgebĂŒhren verfĂŒgbar, und bei Bedarf kann UnterstĂŒtzung ĂŒber Red Hat ĂŒber regionale Partner erworben werden. Die Preise fĂŒr RHV
sind im Vergleich zu VMware recht niedrig, es wird lediglich UnterstĂŒtzung erworben â ohne die Verpflichtung, eine Lizenz zu kaufen. UnterstĂŒtzung wird nur fĂŒr die Hypervisoren und ovirt-engine erworben, im Gegensatz zum vCenter Server sind keine weiteren Ausgaben erforderlich.
Beispielrechnung fĂŒr das erste Jahr des Besitzes
Betrachten wir einen Cluster aus 4 Maschinen mit 2 Sockeln und Einzelhandelspreisen (ohne Projekt-Rabatte).
Das Standard-Abonnement fĂŒr RHV
kostet 999 $ Preis von vSphere$7992.
:
- VMware vCenter Server Standard 10.837,13 $ pro Instanz, plus Basis-Abonnement 2.625,41 $ (Produktion â 3.125,39 $);
- VMware vSphere Standard 1.164,15 $ + Basis-Abonnement 552,61 $ (Produktion 653,82 $);
- VMware vSphere Enterprise Plus 6.309,23 $ + Basis-Abonnement 1.261,09 $ (Produktion 1.499,94 $).
Insgesamt: 10.837,13 + 2.625,41 + 4 * 2 * (1.164,15 + 552,61) = $27 196,62 fĂŒr die basiste Variante. Der Unterschied betrĂ€gt etwa das 3,5-fache!
In oVirt sind jedoch alle Funktionen ohne EinschrĂ€nkungen verfĂŒgbar.
Kurze Spezifikationen und Maximalwerte
Systemanforderungen
FĂŒr den Hypervisor wird ein Prozessor mit aktivierter Hardwarevirtualisierung benötigt, der minimale RAM-Bedarf zum Start betrĂ€gt 2 GiB, der empfohlene Speicherplatz fĂŒr das Betriebssystem liegt bei 55 GiB (hauptsĂ€chlich fĂŒr Protokolle usw., das Betriebssystem selbst benötigt wenig).
Weitere Einzelheiten â .
FĂŒr minimale Anforderungen 2 Kerne/4 GiB RAM/25 GiB Speicher. Empfohlen sind 4 Kerne/16 GiB RAM/50 GiB Speicher.
Wie in jedem System gibt es EinschrĂ€nkungen hinsichtlich GröĂen und Mengen, von denen die meisten die Möglichkeiten verfĂŒgbarer massengeprĂŒfter Server ĂŒberschreiten. So kann ein Paar 2 TiB RAM adressieren und bietet 40 Kerne (80 Threads), was sogar unter den Limits einer VM liegt.
Maximalwerte fĂŒr virtuelle Maschinen:
- Maximale gleichzeitig ausgefĂŒhrte virtuelle Maschinen: Unbegrenzt;
- Maximale virtuelle CPUs pro virtueller Maschine: 384;
- Maximaler Speicher pro virtueller Maschine: 4 TiB;
- Maximale einzelner DatentrĂ€gergröĂe pro virtueller Maschine: 8 TiB.
Maximalwerte fĂŒr Hosts:
- Logische CPU-Kerne oder Threads: 768;
- RAM: 12 TiB;
- Anzahl der gehosteten virtuellen Maschinen: 250;
- Gleichzeitige Live-Migrationen: 2 eingehend, 2 ausgehend;
- Live-Migrations-Bandbreite: StandardmĂ€Ăig 52 MiB (~436 Mb) pro Migration bei Verwendung der alten Migrationsrichtlinie. Andere Richtlinien verwenden adaptive Durchsatzwerte, die auf der Geschwindigkeit des physischen GerĂ€ts basieren. QoS-Richtlinien können die Migrationsbandbreite einschrĂ€nken.
Maximalwerte fĂŒr logische Manager-EntitĂ€ten:
In 4.3 gibt es .
- Rechenzentrum
- Maximale Anzahl von Rechenzentren: 400;
- Maximale Anzahl von Hosts: 400 unterstĂŒtzt, 500 getestet;
- Maximale Anzahl von VMs: 4000 unterstĂŒtzt, 5000 getestet;
- Cluster
- Maximale Anzahl von Clustern: 400;
- Maximale Anzahl von Hosts: 400 unterstĂŒtzt, 500 getestet;
- Maximale Anzahl von VMs: 4000 unterstĂŒtzt, 5000 getestet;
- Netzwerk
- Logische Netzwerke/Cluster: 300;
- SDN/externe Netzwerke: 2600 getestet, kein Durchsatzlimit;
- Speicher
- Maximale Domains: 50 unterstĂŒtzt, 70 getestet;
- Hosts pro Domain: Keine Begrenzung;
- Logische Volumes pro Blockdomain (mehr): 1500;
- Maximale Anzahl von LUNs (mehr): 300;
- Maximale DatentrĂ€gergröĂe: 500 TiB (standardmĂ€Ăig auf 8 TiB begrenzt).
Implementierungsvarianten
Wie bereits erwĂ€hnt, besteht oVirt aus 2 grundlegenden Elementen â ovirt-engine (Verwaltung) und ovirt-host (Hypervisor).
Die Engine kann sowohl auĂerhalb der Plattform (Standalone-Manager â dies kann eine VM sein, die auf einer anderen Plattform oder einem separaten Hypervisor und sogar auf einer physischen Maschine ausgefĂŒhrt wird) als auch auf der Plattform selbst (Self-hosted Engine, Ă€hnlich dem VCSA-Ansatz von VMware) gehostet werden.
Der Hypervisor kann entweder auf (EL Host) oder auf (oVirt-Node, basiert auf el7) installiert werden.
Die Hardwareanforderungen sind fĂŒr alle Varianten ungefĂ€hr gleich.

Abb. 4 â Standardarchitektur.

Abb. 5 â Architektur des selbstgehosteten Engines.
Ich habe mich fĂŒr den Standalone-Manager und EL Hosts entschieden:
- Der Standalone-Manager ist bei Startproblemen etwas einfacher, da es kein Dilemma zwischen Huhn und Ei gibt (wie bei VCSA â man kann es nicht starten, solange nicht mindestens ein Host vollstĂ€ndig hochgefahren ist), aber es besteht eine AbhĂ€ngigkeit von einem anderen System*;
- Der EL Host bietet die gesamte LeistungsfĂ€higkeit des Betriebssystems, was fĂŒr externes Monitoring, Debugging, Fehlersuche usw. nĂŒtzlich ist.
* Allerdings war dies wÀhrend der gesamten Betriebszeit nicht erforderlich, selbst nach einem schwerwiegenden Stromausfall.
Aber kommen wir nun zur Sache!
FĂŒr das Experiment besteht die Möglichkeit, ein paar ProLiant BL460c G7 mit XeonÂź CPU freizugeben. Auf diesen werden wir den Installationsprozess durchfĂŒhren.
Wir werden die Knoten ovirt.lab.example.com, kvm01.lab.example.com und kvm02.lab.example.com nennen.
Kommen wir direkt zu .
Quelle: habr.com
