{"id":33523,"date":"2019-10-31T21:53:05","date_gmt":"2019-10-31T18:53:05","guid":{"rendered":"https:\/\/prohoster.info\/blog\/hranilishhe-linstor-i-ego-integratsiya-s-opennebula\/"},"modified":"2019-10-31T21:53:05","modified_gmt":"2019-10-31T18:53:05","slug":"hranilishhe-linstor-i-ego-integratsiya-s-opennebula","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/hranilishhe-linstor-i-ego-integratsiya-s-opennebula","title":{"rendered":"LINSTOR-Speicher und seine Integration mit OpenNebula","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"LINSTOR-Speicher und seine Integration mit OpenNebula\" src=\"\/wp-content\/uploads\/2019\/05\/c8b6a7c02c4e5b043be327838152f8a1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vor nicht allzu langer Zeit pr\u00e4sentierten die Jungs von LINBIT ihre neue SDS-L\u00f6sung \u2013 Linstor. Es handelt sich um einen vollst\u00e4ndig offenen Speicher, der auf bew\u00e4hrten Technologien basiert: DRBD, LVM, ZFS. Linstor vereint Einfachheit und eine gut durchdachte Architektur, die es erm\u00f6glicht, Stabilit\u00e4t und beeindruckende Ergebnisse zu erzielen.<\/p>\n<p><\/p>\n<p>Heute m\u00f6chte ich ein wenig ausf\u00fchrlicher dar\u00fcber sprechen und zeigen, wie einfach es ist, es mit OpenNebula unter Verwendung von linstor_un zu integrieren \u2013 einem neuen Treiber, den ich speziell f\u00fcr diesen Zweck entwickelt habe.<\/p>\n<p><\/p>\n<p>Linstor in Kombination mit OpenNebula erm\u00f6glicht den Aufbau einer schnellen und zuverl\u00e4ssigen Cloud, die problemlos auf der eigenen Infrastruktur bereitgestellt werden kann.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"arhitektura-linstor\">Architektur von Linstor<\/h2>\n<p><\/p>\n<p>Linstor ist selbst kein Dateisystem und kein Blockspeicher. Linstor ist ein Orchestrator, der eine Abstraktionsschicht bereitstellt, um die Erstellung von Volumes in LVM oder ZFS zu automatisieren und diese mit Hilfe von DRBD9 zu replizieren.<\/p>\n<p><\/p>\n<h5 id=\"lomaem-stereotipy\">Stereotype aufbrechen<\/h5>\n<p><\/p>\n<p>Aber halt, DRBD? \u2013 Warum sollte man es automatisieren und wie kann das \u00fcberhaupt funktionieren?<\/p>\n<p><\/p>\n<p>Erinnern wir uns an die Vergangenheit, als DRBD8 weit verbreitet war. Seine Standardnutzung sah vor, ein gro\u00dfes Blockger\u00e4t zu erstellen und es mit LVM in viele kleine St\u00fccke zu zerteilen. Eine Art mdadm RAID-1, aber mit Replikation \u00fcber das Netzwerk.<\/p>\n<p><\/p>\n<p>Dieser Ansatz hat seine Nachteile, und daher haben sich mit der Einf\u00fchrung von DRBD9 die Prinzipien des Speichersystems ge\u00e4ndert; jetzt wird f\u00fcr jede virtuelle Maschine ein separates DRBD-Ger\u00e4t erstellt.<\/p>\n<p><\/p>\n<p>Der Ansatz mit unabh\u00e4ngigen Blockger\u00e4ten erm\u00f6glicht eine bessere Raumausnutzung im Cluster und bietet auch eine Reihe zus\u00e4tzlicher M\u00f6glichkeiten. Zum Beispiel kann f\u00fcr jedes dieser Ger\u00e4te die Anzahl der Replikate, deren Standort und individuelle Einstellungen festgelegt werden. Sie lassen sich leicht erstellen\/l\u00f6schen, Snapshots machen, die Gr\u00f6\u00dfe \u00e4ndern, Verschl\u00fcsselung aktivieren und vieles mehr. Es ist erw\u00e4hnenswert, dass DRBD9 auch Quorum unterst\u00fctzt, um Split-Brain-Situationen zu vermeiden.<\/p>\n<p><\/p>\n<h5 id=\"resursy-i-bekendy\">Ressourcen und Backends<\/h5>\n<p><\/p>\n<p>Beim Erstellen eines neuen Blockger\u00e4ts platziert Linstor die erforderliche Anzahl an Replikaten auf verschiedenen Knoten im Cluster. Jede dieser Replikate nennen wir DRBD-Ressource.<\/p>\n<p><\/p>\n<p>Ressourcen gibt es in zwei Typen:<\/p>\n<p><\/p>\n<ul>\n<li><strong>Datenressource<\/strong> \u2013 repr\u00e4sentieren ein DRBD-Ger\u00e4t, das auf einem Knoten im LVM- oder ZFS-Pool platziert ist.<br \/>\nDerzeit gibt es Unterst\u00fctzung f\u00fcr mehrere Backends, und ihre Anzahl w\u00e4chst st\u00e4ndig. Es gibt Unterst\u00fctzung f\u00fcr LVM, ThinLVM und ZFS. Letztere beiden erm\u00f6glichen es, Snapshots zu erstellen und zu verwenden.<\/li>\n<li><strong>Diskless-Ressource<\/strong> \u2014 ist ein DRBD-Ger\u00e4t, das auf einem Knoten ohne Backend platziert ist, aber wie ein gew\u00f6hnliches Blockger\u00e4t behandelt werden kann; alle Lese-\/Schreibvorg\u00e4nge werden an die Datenressourcen umgeleitet. Der n\u00e4chstgelegene Vergleich zu diskless-Ressourcen ist ein iSCSI LUN.<\/li>\n<\/ul>\n<p><\/p>\n<p>Jede DRBD-Ressource kann bis zu 8 Replikate haben, von denen nur eines standardm\u00e4\u00dfig aktiv sein kann \u2014 <strong>Prim\u00e4r<\/strong>, alle anderen werden als <strong>Sekund\u00e4r<\/strong> betrachtet, und ihre Nutzung ist nicht m\u00f6glich, solange es mindestens einen Prim\u00e4r gibt, das hei\u00dft, sie replizieren einfach Daten untereinander.<\/p>\n<p><\/p>\n<p>Wenn ein DRBD-Ger\u00e4t im System gemountet wird, wird es automatisch zu <strong>Prim\u00e4r<\/strong>, sodass sogar eine Diskless-Ressource in der Terminologie von DRBD prim\u00e4r sein kann.<\/p>\n<p><\/p>\n<h5 id=\"tak-zachem-nuzhen-linstor\">Warum wird Linstor ben\u00f6tigt?<\/h5>\n<p><\/p>\n<p>Indem es alle ressourcenintensiven Aufgaben dem Kern anvertraut, ist Linstor im Wesentlichen eine gew\u00f6hnliche Java-Anwendung, die die Erstellung von DRBD-Ressourcen problemlos automatisiert.<br \/>\nJede erstellte Ressource stellt einen unabh\u00e4ngigen DRBD-Cluster dar, der eigenst\u00e4ndig arbeitet, unabh\u00e4ngig vom Zustand des Control-Planes und anderer DRBD-Ressourcen.<\/p>\n<p><\/p>\n<p><strong>Linstor besteht aus nur zwei Komponenten:<\/strong><\/p>\n<p><\/p>\n<ul>\n<li><strong>Linstor-Controller<\/strong> \u2014 Der Hauptcontroller, der eine API zur Erstellung und Verwaltung von Ressourcen bereitstellt. Er kommuniziert auch mit den Satelliten, \u00fcberpr\u00fcft den verf\u00fcgbaren Speicherplatz auf diesen und sendet Aufgaben zur Erstellung und L\u00f6schung neuer Ressourcen. Er l\u00e4uft als Einzelinstanz und verwendet eine Datenbank, die intern (H2) oder extern (PostgreSQL, MySQL, MariaDB) sein kann.<\/li>\n<li><strong>Linstor-Satellite<\/strong> \u2014 Wird auf allen Storage-Knoten installiert und stellt dem Controller Informationen \u00fcber den verf\u00fcgbaren Speicherplatz zur Verf\u00fcgung und f\u00fchrt Aufgaben aus, die vom Controller erhalten wurden, um neue Volumes und DRBD-Ger\u00e4te darauf zu erstellen und zu l\u00f6schen.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Linstor arbeitet mit folgenden Schl\u00fcsselbegriffen:<\/strong><\/p>\n<p><\/p>\n<ul>\n<li><strong>Node<\/strong> \u2014 Der physische Server, auf dem DRBD-Ressourcen erstellt und verwendet werden.<\/li>\n<li><strong>Storage Pool<\/strong> \u2014 Ein LVM- oder ZFS-Pool, der auf dem Knoten erstellt wurde, in dem die DRBD-Ressourcen untergebracht werden. Ein diskless-Pool ist ebenfalls m\u00f6glich \u2014 dies ist ein Pool, in dem nur diskless-Ressourcen untergebracht werden.<\/li>\n<li><strong>Ressourcendefinition<\/strong> \u2014 Definition der Ressource, im Grunde genommen ist dies ein Prototyp, der den Namen und all seine Eigenschaften beschreibt.<\/li>\n<li><strong>Volumes Definition<\/strong> \u2014 Definition des Volumes. Jede Ressource kann aus mehreren Volumes bestehen, jedes Volume muss eine Gr\u00f6\u00dfe haben.<\/li>\n<li><strong>Ressource<\/strong> \u2014 Erstellt durch eine Instanz des Blockger\u00e4ts, jede Ressource muss auf einem bestimmten Knoten und in einem bestimmten Storage-Pool platziert werden.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"ustanovka-linstor\">Installation von Linstor<\/h2>\n<p><\/p>\n<p>Ich empfehle, das System Ubuntu zu verwenden, da es daf\u00fcr existiert <noindex><a rel=\"nofollow\" href=\"https:\/\/launchpad.net\/~linbit\/+archive\/ubuntu\/linbit-drbd9-stack\">ein fertiges PPA<\/a><\/noindex>:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">add-apt-repository ppa:linbit\/linbit-drbd9-stack\napt-get update<\/code><\/pre>\n<p><\/p>\n<p>Oder Debian, wo Linstor aus dem offiziellen Repository f\u00fcr Proxmox installiert werden kann:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">wget -O- https:\/\/packages.linbit.com\/package-signing-pubkey.asc | apt-key add -\nPVERS=5 &amp;&amp; echo \"deb http:\/\/packages.linbit.com\/proxmox\/ proxmox-$PVERS drbd-9.0\" &gt; \n    \/etc\/apt\/sources.list.d\/linbit.list\napt-get update<\/code><\/pre>\n<p><\/p>\n<h5 id=\"controller\">Controller<\/h5>\n<p><\/p>\n<p>Hier ist alles einfach:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">apt-get install linstor-controller linstor-client\nsystemctl enable linstor-controller\nsystemctl start linstor-controller<\/code><\/pre>\n<p><\/p>\n<h5 id=\"storage-nody\">Storage-Knoten<\/h5>\n<p><\/p>\n<p>Momentan wird im Linux-Kernel ein in-tree Kernel-Modul geliefert <strong>DRBD8<\/strong>, leider passt es uns nicht und wir m\u00fcssen installieren <strong>DRBD9<\/strong>:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">apt-get install drbd-dkms<\/code><\/pre>\n<p><\/p>\n<p>Die Erfahrung zeigt, dass die meisten Schwierigkeiten genau dann auftreten, wenn das DRBD8-Modul in das System geladen ist, und nicht DRBD9. Gl\u00fccklicherweise l\u00e4sst sich dies leicht \u00fcberpr\u00fcfen, indem man ausf\u00fchrt:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">modprobe drbd\ncat \/proc\/drbd<\/code><\/pre>\n<p><\/p>\n<p>Wenn Sie sehen <strong>version: 9<\/strong> \u2014 dann ist alles in Ordnung, wenn <strong>version: 8<\/strong> \u2014 dann ist etwas schiefgelaufen und Sie m\u00fcssen zus\u00e4tzliche Schritte unternehmen, um die Ursache herauszufinden.<\/p>\n<p><\/p>\n<p>Jetzt installieren wir <strong>linstor-satellite<\/strong> und <strong>drbd-utils<\/strong>:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">apt-get install linstor-satellite drbd-utils\nsystemctl enable linstor-satellite\nsystemctl start linstor-satellite<\/code><\/pre>\n<p><\/p>\n<h2 id=\"sozdanie-klastera\">Cluster erstellen<\/h2>\n<p><\/p>\n<p><strong>Storage-Pools und Knoten<\/strong><\/p>\n<p><\/p>\n<p>F\u00fcr das Backend w\u00e4hlen wir <strong>ThinLVM<\/strong>, da es am einfachsten ist und Snapshots unterst\u00fctzt.<br \/>\nInstallieren Sie <strong>lvm2<\/strong>, falls Sie das noch nicht gemacht haben, und lassen Sie uns einen ThinLVM-Pool auf allen unseren Storage-Knoten erstellen:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">sudo vgcreate drbdpool \/dev\/sdb\nsudo lvcreate -L 800G -T drbdpool\/thinpool<\/code><\/pre>\n<p><\/p>\n<p>Alle weiteren Schritte k\u00f6nnen direkt am Controller durchgef\u00fchrt werden:<\/p>\n<p><\/p>\n<p>Lassen Sie uns unsere Knoten hinzuf\u00fcgen:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">linstor node create node1 127.0.0.11\nlinstor node create node2 127.0.0.12\nlinstor node create node3 127.0.0.13<\/code><\/pre>\n<p><\/p>\n<p>Lassen Sie uns Storage-Pools erstellen:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">linstor storage-pool create lvmthin node1 data drbdpool\/thinpool\nlinstor storage-pool create lvmthin node2 data drbdpool\/thinpool\nlinstor storage-pool create lvmthin node3 data drbdpool\/thinpool<\/code><\/pre>\n<p><\/p>\n<p>Jetzt \u00fcberpr\u00fcfen wir die erstellten Pools:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">linstor storage-pool list<\/code><\/pre>\n<p><\/p>\n<p>Wenn alles richtig gemacht wurde, sollten wir etwas sehen wie:<\/p>\n<p><\/p>\n<pre>+-------------------------------------------------------------------------------------------------------+\n| StoragePool | Node  | Driver   | PoolName          | FreeCapacity | TotalCapacity | SupportsSnapshots |\n|-------------------------------------------------------------------------------------------------------|\n| data        | node1 | LVM_THIN | drbdpool\/thinpool |       64 GiB |        64 GiB | true              |\n| data        | node2 | LVM_THIN | drbdpool\/thinpool |       64 GiB |        64 GiB | true              |\n| data        | node3 | LVM_THIN | drbdpool\/thinpool |       64 GiB |        64 GiB | true              |\n+-------------------------------------------------------------------------------------------------------+<\/pre>\n<p><\/p>\n<p><strong>DRBD-Ressourcen<\/strong><\/p>\n<p><\/p>\n<p>Jetzt versuchen wir, unsere neue DRBD-Ressource zu erstellen:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">linstor resource-definition create myres\nlinstor volume-definition create myres 1G\nlinstor resource create myres --auto-place 2<\/code><\/pre>\n<p><\/p>\n<p>\u00dcberpr\u00fcfen wir die erstellten Ressourcen:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">linstor resource list <\/code><\/pre>\n<p><\/p>\n<pre>+------------------------------------------------------------------------------------------------------+\n| Node  | Resource | StoragePool | VolumeNr | MinorNr | DeviceName    | Allocated  | InUse  |    State |\n|------------------------------------------------------------------------------------------------------|\n| node1 | myres    | data        | 0        | 1084    | \/dev\/drbd1084 | 52 KiB     | Unused | UpToDate |\n| node2 | myres    | data        | 0        | 1084    | \/dev\/drbd1084 | 52 KiB     | Unused | UpToDate |\n+------------------------------------------------------------------------------------------------------+<\/pre>\n<p><\/p>\n<p>Ausgezeichnet! \u2014 wir sehen, dass die Ressource auf den ersten beiden Nodes erstellt wurde, wir k\u00f6nnen auch versuchen, eine diskless Ressource auf dem dritten zu erstellen: <\/p>\n<p><\/p>\n<pre><code class=\"bash\">linstor resource create --diskless node3 myres<\/code><\/pre>\n<p><\/p>\n<p>Auf den Nodes werden Sie dieses Ger\u00e4t immer als <code>\/dev\/drbd1084<\/code> oder <code>\/dev\/drbd\/by-res\/myres\/0<\/code><\/p>\n<p><\/p>\n<p>So funktioniert Linstor, Sie k\u00f6nnen mehr Informationen aus <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.linbit.com\/docs\/users-guide-9.0\/\">offiziellen Dokumentation<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Jetzt werde ich dar\u00fcber sprechen, wie man es mit OpenNebula integriert<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-opennebula\">OpenNebula-Konfiguration<\/h2>\n<p><\/p>\n<p>Ich werde nicht zu sehr in den Prozess der OpenNebula-Konfiguration eintauchen, da alle Schritte detailliert beschrieben sind in <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.opennebula.org\/stable\/deployment\/opennebula_installation\/index.html\">offiziellen Dokumentation<\/a><\/noindex>, auf die ich Ihnen empfehle, sich zu beziehen, ich werde nur \u00fcber die Integration von OpenNebula mit Linstor sprechen.<\/p>\n<p><\/p>\n<h5 id=\"linstor_un\">linstor_un<\/h5>\n<p><\/p>\n<p>Um dieses Problem zu l\u00f6sen, habe ich einen eigenen Treiber geschrieben \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/OpenNebula\/addon-linstor_un\">linstor_un<\/a><\/noindex>, der momentan als Plugin verf\u00fcgbar ist und separat installiert werden muss.<\/p>\n<p><\/p>\n<p>Die gesamte Installation erfolgt auf den Frontend-Nodes von OpenNebula und erfordert keine zus\u00e4tzlichen Aktionen auf den Compute-Nodes.<\/p>\n<p><\/p>\n<p>Zuerst m\u00fcssen wir sicherstellen, dass wir <strong>jq<\/strong> und <strong>linstor-client<\/strong>:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">apt-get install jq linstor-client<\/code><\/pre>\n<p><\/p>\n<p>Team <code>linstor node list<\/code> sollte die Liste der Nodes anzeigen. Alle Compute-Nodes von OpenNebula m\u00fcssen dem Linstor-Cluster hinzugef\u00fcgt werden.<\/p>\n<p><\/p>\n<p>Laden wir das Plugin herunter und installieren wir es:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">curl -L https:\/\/github.com\/OpenNebula\/addon-linstor_un\/archive\/master.tar.gz | tar -xzvf - -C \/tmp\n\nmv \/tmp\/addon-linstor_un-master\/vmm\/kvm\/* \/var\/lib\/one\/remotes\/vmm\/kvm\/\n\nmkdir -p \/var\/lib\/one\/remotes\/etc\/datastore\/linstor_un\nmv \/tmp\/addon-linstor_un-master\/datastore\/linstor_un\/linstor_un.conf \/var\/lib\/one\/remotes\/etc\/datastore\/linstor_un\/linstor_un.conf\n\nmv \/tmp\/addon-linstor_un-master\/datastore\/linstor_un \/var\/lib\/one\/remotes\/datastore\/linstor_un\nmv \/tmp\/addon-linstor_un-master\/tm\/linstor_un \/var\/lib\/one\/remotes\/tm\/linstor_un\n\nrm -rf \/tmp\/addon-linstor_un-master<\/code><\/pre>\n<p><\/p>\n<p>Jetzt m\u00fcssen wir ihn zur OpenNebula-Konfiguration hinzuf\u00fcgen. Dazu f\u00fchren wir die beschriebenen einfachen Schritte aus <strong><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/OpenNebula\/addon-linstor_un#update-onedconf\">hier<\/a><\/noindex><\/strong>.<\/p>\n<p><\/p>\n<p>Nachdem wir das gemacht haben, starten wir OpenNebula neu:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">systemctl restart opennebula<\/code><\/pre>\n<p><\/p>\n<p>Und f\u00fcgen unsere Datenspeicher hinzu, den Systemspeicher:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">cat &gt; system-ds.conf &lt;&lt;EOT\nNAME=&quot;linstor-system&quot;\nTYPE=&quot;SYSTEM_DS&quot;\nSTORAGE_POOL=&quot;data&quot;\nAUTO_PLACE=&quot;2&quot;\nCLONE_MODE=&quot;snapshot&quot;\nCHECKPOINT_AUTO_PLACE=&quot;1&quot;\nBRIDGE_LIST=&quot;node1 node2 node3&quot;\nTM_MAD=&quot;linstor_un&quot;\nEOT\n\nonedatastore create system-ds.conf<\/code><\/pre>\n<p><\/p>\n<p>Und das Image-Repository:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">cat &gt; images-ds.conf &lt;&lt;EOT\nNAME=&quot;linstor-images&quot;\nTYPE=&quot;IMAGE_DS&quot;\nSTORAGE_POOL=&quot;data&quot;\nAUTO_PLACE=&quot;2&quot;\nBRIDGE_LIST=&quot;node1 node2 node3&quot;\nDISK_TYPE=&quot;BLOCK&quot;\nDS_MAD=&quot;linstor_un&quot;\nTM_MAD=&quot;linstor_un&quot;\nEOT\n\nonedatastore create images-ds.conf<\/code><\/pre>\n<p><\/p>\n<ul>\n<li>Parameter <code>AUTO_PLACE<\/code> zeigt die Anzahl der Data-Replikate an, die f\u00fcr jedes neue Image in OpenNebula erstellt werden.<\/li>\n<li>Parameter <code>CLONE_MODE<\/code> gibt an, wie die Images bei der Erstellung neuer virtueller Maschinen geklont werden sollen, <code>Snapshot<\/code> \u2014 es wird ein Snapshot des Images erstellt und dieser Snapshot wird f\u00fcr die virtuelle Maschine verwendet, <code>copy<\/code> \u2014 es wird eine vollst\u00e4ndige Kopie des Images f\u00fcr jede virtuelle Maschine erstellt.<\/li>\n<li>Im <code>BRIDGE_LIST<\/code> Es wird empfohlen, alle Nodes anzugeben, die f\u00fcr das Klonen der Images verwendet werden. <\/li>\n<\/ul>\n<p><\/p>\n<p>Die vollst\u00e4ndige Liste der unterst\u00fctzten Parameter finden Sie in der <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/OpenNebula\/addon-linstor_un#opennebula-configuration\">README<\/a><\/noindex> Projekt.<\/p>\n<p><\/p>\n<p>Damit ist die Konfiguration abgeschlossen, jetzt k\u00f6nnen wir ein beliebiges Appliance aus dem offiziellen <noindex><a rel=\"nofollow\" href=\"https:\/\/marketplace.opennebula.systems\/appliance\">OpenNebula Marketplace<\/a><\/noindex> laden und daraus virtuelle Maschinen erstellen.<\/p>\n<p><\/p>\n<p>Link zum Projekt:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/OpenNebula\/addon-linstor_un\">https:\/\/github.com\/OpenNebula\/addon-linstor_un<\/a><\/noindex><\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/451186\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0440\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 LINBIT \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0441\u0432\u043e\u0435 \u043d\u043e\u0432\u043e\u0435 SDS-\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2014 Linstor. \u042d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438: DRBD, LVM, ZFS. Linstor \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0443 \u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u043d\u0443\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u043d\u0435\u0433\u043e \u0447\u0443\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25221,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-33523","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0440\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 LINBIT.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/hranilishhe-linstor-i-ego-integratsiya-s-opennebula\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 LINSTOR \u0438 \u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 OpenNebula | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0440\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 LINBIT.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/hranilishhe-linstor-i-ego-integratsiya-s-opennebula\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:53:05+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:53:05+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47LINSTOR-Speicher und seine Integration mit OpenNebula | ProHoster","description":"Vor nicht allzu langer Zeit haben die Jungs von LINBIT.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/hranilishhe-linstor-i-ego-integratsiya-s-opennebula","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 LINSTOR \u0438 \u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 OpenNebula | ProHoster","og:description":"\u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0440\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 LINBIT.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/hranilishhe-linstor-i-ego-integratsiya-s-opennebula","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:53:05+00:00","article:modified_time":"2019-10-31T18:53:05+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33523","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 15:38:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:39:22","updated":"2026-01-21 15:38:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/33523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=33523"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/33523\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/25221"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=33523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=33523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=33523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}