{"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\/fr\/blog\/administrirovanie\/hranilishhe-linstor-i-ego-integratsiya-s-opennebula","title":{"rendered":"Stockage LINSTOR et son int\u00e9gration avec OpenNebula","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Stockage LINSTOR et son int\u00e9gration avec OpenNebula\" src=\"\/wp-content\/uploads\/2019\/05\/c8b6a7c02c4e5b043be327838152f8a1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Il n'y a pas si longtemps, les gars de LINBIT ont pr\u00e9sent\u00e9 leur nouvelle solution SDS \u2014 Linstor. C'est un stockage compl\u00e8tement libre bas\u00e9 sur des technologies \u00e9prouv\u00e9es : DRBD, LVM, ZFS. Linstor allie simplicit\u00e9 et architecture bien con\u00e7ue, ce qui permet d'atteindre une stabilit\u00e9 et des r\u00e9sultats assez impressionnants.<\/p>\n<p><\/p>\n<p>Aujourd'hui, je voudrais en parler un peu plus en d\u00e9tail et montrer \u00e0 quel point il est simple de l'int\u00e9grer avec OpenNebula en utilisant linstor_un \u2014 un nouveau pilote que j'ai d\u00e9velopp\u00e9 sp\u00e9cialement pour cela.<\/p>\n<p><\/p>\n<p>Linstor, associ\u00e9 \u00e0 OpenNebula, permet de construire un cloud rapide et fiable, qui peut \u00eatre d\u00e9ploy\u00e9 sans probl\u00e8me sur une infrastructure propre.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"arhitektura-linstor\">Architecture de Linstor<\/h2>\n<p><\/p>\n<p>Linstor n'est ni un syst\u00e8me de fichiers ni un stockage en bloc \u00e0 lui seul, Linstor est un orchestrateur qui fournit une couche d'abstraction permettant d'automatiser la cr\u00e9ation de volumes dans LVM ou ZFS et de les r\u00e9pliquer avec DRBD9.<\/p>\n<p><\/p>\n<h5 id=\"lomaem-stereotipy\">Bousculons les st\u00e9r\u00e9otypes<\/h5>\n<p><\/p>\n<p>Mais attendez, DRBD ? \u2014 Pourquoi l'automatiser et comment cela peut-il fonctionner ?<\/p>\n<p><\/p>\n<p>Souvenons-nous du pass\u00e9, lorsque DRBD8 \u00e9tait tr\u00e8s populaire. Son utilisation standard supposait la cr\u00e9ation d'un grand dispositif de blocs et la d\u00e9coupe de celui-ci en plusieurs petits morceaux, \u00e0 l'aide de LVM. Une sorte de RAID-1 mdadm mais avec r\u00e9plique sur le r\u00e9seau.<\/p>\n<p><\/p>\n<p>Ce type d'approche n'est pas sans d\u00e9fauts, et c'est pourquoi avec l'arriv\u00e9e de DRBD9, les principes de construction du stockage ont chang\u00e9, d\u00e9sormais pour chaque machine virtuelle, un dispositif DRBD distinct est cr\u00e9\u00e9.<\/p>\n<p><\/p>\n<p>L'approche avec des dispositifs de blocs ind\u00e9pendants permet une meilleure utilisation de l'espace dans le cluster, et ajoute une s\u00e9rie de possibilit\u00e9s suppl\u00e9mentaires. Par exemple, pour chaque dispositif, on peut d\u00e9finir le nombre de r\u00e9pliques, leur emplacement et des r\u00e9glages individuels. Il est facile de les cr\u00e9er\/d\u00e9truire, de faire des instantan\u00e9s, de modifier leur taille, d'activer le chiffrement et bien plus encore. Il est \u00e0 noter que DRBD9 prend \u00e9galement en charge le quorum, ce qui permet d'\u00e9viter les situations de split-brain.<\/p>\n<p><\/p>\n<h5 id=\"resursy-i-bekendy\">Ressources et backends<\/h5>\n<p><\/p>\n<p>En cr\u00e9ant un nouveau dispositif de blocs, Linstor place le nombre requis de r\u00e9pliques sur diff\u00e9rentes n\u0153uds dans le cluster. Chaque r\u00e9plique sera appel\u00e9e ressource DRBD.<\/p>\n<p><\/p>\n<p>Les ressources se divisent en deux types :<\/p>\n<p><\/p>\n<ul>\n<li><strong>Ressource de donn\u00e9es<\/strong> \u2014 repr\u00e9sentent un dispositif DRBD situ\u00e9 sur un n\u0153ud dans un pool LVM ou ZFS.<br \/>\nActuellement, il y a un support pour plusieurs backends et leur nombre ne cesse d'augmenter. Le support de LVM, ThinLVM et ZFS est disponible. Les deux derniers permettent de cr\u00e9er et d'utiliser des snapshots.<\/li>\n<li><strong>Ressource sans disque<\/strong> \u2014 repr\u00e9sente un dispositif DRBD situ\u00e9 sur un n\u0153ud sans backend, mais permettant d'interagir avec lui comme avec un dispositif de bloc classique, toutes les op\u00e9rations de lecture\/\u00e9criture seront redirig\u00e9es vers des ressources de donn\u00e9es. L'analogue le plus proche des ressources sans disque est un LUN iSCSI.<\/li>\n<\/ul>\n<p><\/p>\n<p>Chaque ressource DRBD peut avoir jusqu'\u00e0 8 r\u00e9pliques, et une seule d'entre elles peut \u00eatre active par d\u00e9faut \u2014 <strong>Primaire<\/strong>, toutes les autres seront <strong>Secondaire<\/strong> et leur utilisation sera impossible tant qu'il y a au moins un Primaire, c'est-\u00e0-dire qu'elles r\u00e9pliqueront simplement les donn\u00e9es entre elles.<\/p>\n<p><\/p>\n<p>En montant le dispositif DRBD dans le syst\u00e8me, il devient automatiquement <strong>Primaire<\/strong>, ainsi m\u00eame une ressource sans disque, dans la terminologie DRBD, peut \u00eatre Primaire.<\/p>\n<p><\/p>\n<h5 id=\"tak-zachem-nuzhen-linstor\">Alors, pourquoi a-t-on besoin de Linstor ?<\/h5>\n<p><\/p>\n<p>En confiant toutes les t\u00e2ches gourmandes en ressources au noyau, Linstor se pr\u00e9sente essentiellement comme une application Java ordinaire qui permet d'automatiser facilement la cr\u00e9ation de ressources DRBD.<br \/>\nChaque ressource cr\u00e9\u00e9e sera un cluster DRBD ind\u00e9pendant, qui fonctionne de mani\u00e8re autonome, ind\u00e9pendamment de l'\u00e9tat du plan de contr\u00f4le et des autres ressources DRBD.<\/p>\n<p><\/p>\n<p><strong>Linstor se compose de deux composants :<\/strong><\/p>\n<p><\/p>\n<ul>\n<li><strong>Linstor-controller<\/strong> \u2014 Le contr\u00f4leur principal, qui fournit une API pour cr\u00e9er et g\u00e9rer des ressources. Il communique \u00e9galement avec les satellites, v\u00e9rifiant l'espace libre sur ceux-ci, et envoie des t\u00e2ches pour la cr\u00e9ation et la suppression de nouvelles ressources. Il est ex\u00e9cut\u00e9 en instance unique et utilise une base de donn\u00e9es qui peut \u00eatre interne (H2) ou externe (PostgreSQL, MySQL, MariaDB).<\/li>\n<li><strong>Linstor-satellite<\/strong> \u2014 S'installe sur tous les n\u0153uds de stockage et fournit au contr\u00f4leur des informations sur l'espace disponible, ainsi qu'ex\u00e9cute des t\u00e2ches re\u00e7ues du contr\u00f4leur pour cr\u00e9er et supprimer de nouveaux volumes et des dispositifs DRBD au-dessus d'eux.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Linstor op\u00e8re avec les concepts cl\u00e9s suivants :<\/strong><\/p>\n<p><\/p>\n<ul>\n<li><strong>N\u0153ud<\/strong> \u2014 un serveur physique, sur lequel les ressources DRBD seront cr\u00e9\u00e9es et utilis\u00e9es.<\/li>\n<li><strong>Storage Pool<\/strong> \u2014 un pool LVM ou ZFS, cr\u00e9\u00e9 sur le n\u0153ud o\u00f9 les ressources DRBD seront h\u00e9berg\u00e9es. Un pool sans disque est \u00e9galement possible \u2014 c'est un pool qui ne contiendra que des ressources sans disque.<\/li>\n<li><strong>D\u00e9finition de la ressource<\/strong> \u2014 D\u00e9finition de la ressource, c'est essentiellement un prototype qui d\u00e9crit le nom et toutes ses propri\u00e9t\u00e9s.<\/li>\n<li><strong>D\u00e9finition du volume<\/strong> \u2014 D\u00e9finition d'un volume. Chaque ressource peut \u00eatre compos\u00e9e de plusieurs volumes, chaque volume doit avoir une taille.<\/li>\n<li><strong>Ressource<\/strong> \u2014 Instance cr\u00e9\u00e9e d'un dispositif de bloc, chaque ressource doit \u00eatre plac\u00e9e sur un certain n\u0153ud et dans un pool de stockage.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"ustanovka-linstor\">Installation de Linstor<\/h2>\n<p><\/p>\n<p>Je recommande d'utiliser Ubuntu, car il existe <noindex><a rel=\"nofollow\" href=\"https:\/\/launchpad.net\/~linbit\/+archive\/ubuntu\/linbit-drbd9-stack\">un PPA pr\u00eat \u00e0 l'emploi<\/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>Ou Debian, o\u00f9 Linstor peut \u00eatre install\u00e9 depuis le d\u00e9p\u00f4t officiel pour Proxmox :<\/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\">Contr\u00f4leur<\/h5>\n<p><\/p>\n<p>Ici, c'est simple :<\/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\">N\u0153uds de stockage<\/h5>\n<p><\/p>\n<p>Actuellement, le noyau Linux fournit un module de noyau in-tree <strong>DRBD8<\/strong>, malheureusement il ne nous convient pas et nous devons installer <strong>DRBD9<\/strong>:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">apt-get install drbd-dkms<\/code><\/pre>\n<p><\/p>\n<p>Dans la pratique, la plupart des difficult\u00e9s surviennent lorsque le module DRBD8 est charg\u00e9 dans le syst\u00e8me, et non DRBD9. Heureusement, cela peut \u00eatre facilement v\u00e9rifi\u00e9 en ex\u00e9cutant :<\/p>\n<p><\/p>\n<pre><code class=\"bash\">modprobe drbd\ncat \/proc\/drbd<\/code><\/pre>\n<p><\/p>\n<p>Si vous voyez <strong>version: 9<\/strong> \u2014 tout va bien, si <strong>version: 8<\/strong> \u2014 cela signifie que quelque chose s'est mal pass\u00e9 et que vous devez prendre des mesures suppl\u00e9mentaires pour comprendre les raisons.<\/p>\n<p><\/p>\n<p>Maintenant, installons <strong>linstor-satellite<\/strong> et <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\">Cr\u00e9ation du cluster<\/h2>\n<p><\/p>\n<p><strong>Pools de stockage et n\u0153uds<\/strong><\/p>\n<p><\/p>\n<p>Pour le backend, nous allons prendre <strong>ThinLVM<\/strong>, car c'est le plus simple et qu'il prend en charge les instantan\u00e9s.<br \/>\nInstallez <strong>lvm2<\/strong>, si vous ne l'avez pas encore fait, cr\u00e9ons un pool ThinLVM sur tous nos n\u0153uds de stockage :<\/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>Toutes les actions suivantes peuvent \u00eatre effectu\u00e9es directement sur le contr\u00f4leur :<\/p>\n<p><\/p>\n<p>Ajoutons nos n\u0153uds :<\/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>Cr\u00e9ons des pools de stockage :<\/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>V\u00e9rifions maintenant les pools cr\u00e9\u00e9s :<\/p>\n<p><\/p>\n<pre><code class=\"bash\">linstor storage-pool list<\/code><\/pre>\n<p><\/p>\n<p>Si tout a \u00e9t\u00e9 fait correctement, nous devrions voir quelque chose comme :<\/p>\n<p><\/p>\n<pre>+-------------------------------------------------------------------------------------------------------+\n| StockagePool | N\u0153ud  | Pilote   | NomDuPool        | Capacit\u00e9Libre | Capacit\u00e9Totale | SupporteLesSnapshots |\n|-------------------------------------------------------------------------------------------------------|\n| donn\u00e9es      | n\u0153ud1 | LVM_THIN | drbdpool\/thinpool |       64 GiB |        64 GiB | vrai              |\n| donn\u00e9es      | n\u0153ud2 | LVM_THIN | drbdpool\/thinpool |       64 GiB |        64 GiB | vrai              |\n| donn\u00e9es      | n\u0153ud3 | LVM_THIN | drbdpool\/thinpool |       64 GiB |        64 GiB | vrai              |\n+-------------------------------------------------------------------------------------------------------+<\/pre>\n<p><\/p>\n<p><strong>Ressources DRBD<\/strong><\/p>\n<p><\/p>\n<p>Essayons maintenant de cr\u00e9er notre nouvelle ressource DRBD :<\/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>V\u00e9rifions les ressources cr\u00e9\u00e9es :<\/p>\n<p><\/p>\n<pre><code class=\"bash\">linstor resource list <\/code><\/pre>\n<p><\/p>\n<pre>+------------------------------------------------------------------------------------------------------+\n| N\u0153ud  | Ressource | StockagePool | Num\u00e9roVolume | MinorNr | NomDuDispositif  | Allou\u00e9   | EnUtilisation  |    \u00c9tat |\n|------------------------------------------------------------------------------------------------------|\n| n\u0153ud1 | myres    | donn\u00e9es      | 0        | 1084    | \/dev\/drbd1084 | 52 KiB   | Non utilis\u00e9 | \u00c0 jour |\n| n\u0153ud2 | myres    | donn\u00e9es      | 0        | 1084    | \/dev\/drbd1084 | 52 KiB   | Non utilis\u00e9 | \u00c0 jour |\n+------------------------------------------------------------------------------------------------------+<\/pre>\n<p><\/p>\n<p>Excellent ! \u2014 nous voyons que la ressource a \u00e9t\u00e9 cr\u00e9\u00e9e sur les deux premiers n\u0153uds, nous pouvons \u00e9galement essayer de cr\u00e9er une ressource sans disque sur le troisi\u00e8me : <\/p>\n<p><\/p>\n<pre><code class=\"bash\">linstor resource create --diskless n\u0153ud3 myres<\/code><\/pre>\n<p><\/p>\n<p>Sur les n\u0153uds, vous trouverez toujours cet appareil comme <code>\/dev\/drbd1084<\/code> ou <code>\/dev\/drbd\/by-res\/myres\/0<\/code><\/p>\n<p><\/p>\n<p>C'est ainsi que fonctionne Linstor, vous pouvez obtenir plus d'informations \u00e0 partir de <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.linbit.com\/docs\/users-guide-9.0\/\">la documentation officielle<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Je vais maintenant parler de l'int\u00e9gration avec OpenNebula<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-opennebula\">Configuration d'OpenNebula<\/h2>\n<p><\/p>\n<p>Je ne vais pas entrer dans les d\u00e9tails sur le processus de configuration d'OpenNebula, car toutes les \u00e9tapes sont d\u00e9crites en d\u00e9tail dans <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.opennebula.org\/stable\/deployment\/opennebula_installation\/index.html\">la documentation officielle<\/a><\/noindex>, que je vous recommande de consulter, je vais juste parler de l'int\u00e9gration d'OpenNebula avec Linstor.<\/p>\n<p><\/p>\n<h5 id=\"linstor_un\">linstor_un<\/h5>\n<p><\/p>\n<p>Pour r\u00e9soudre ce probl\u00e8me, j'ai \u00e9crit mon propre pilote \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/OpenNebula\/addon-linstor_un\">linstor_un<\/a><\/noindex>, actuellement il est disponible sous forme de plugin et doit \u00eatre install\u00e9 s\u00e9par\u00e9ment.<\/p>\n<p><\/p>\n<p>Toute l'installation se fait sur les n\u0153uds frontend d'OpenNebula et ne n\u00e9cessite aucune action suppl\u00e9mentaire sur les n\u0153uds compute.<\/p>\n<p><\/p>\n<p>Tout d'abord, nous devons nous assurer que nous avons <strong>jq<\/strong> et <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>Commande <code>linstor node list<\/code> devrait afficher la liste des n\u0153uds. Tous les n\u0153uds compute d'OpenNebula doivent \u00eatre ajout\u00e9s au cluster Linstor.<\/p>\n<p><\/p>\n<p>T\u00e9l\u00e9chargeons et installons le plugin :<\/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>Maintenant, nous devons l'ajouter \u00e0 la configuration OpenNebula, pour cela, nous suivons les \u00e9tapes simples d\u00e9crites <strong><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/OpenNebula\/addon-linstor_un#update-onedconf\">ici<\/a><\/noindex><\/strong>.<\/p>\n<p><\/p>\n<p>Apr\u00e8s cela, nous red\u00e9marrerons OpenNebula :<\/p>\n<p><\/p>\n<pre><code class=\"bash\">systemctl restart opennebula<\/code><\/pre>\n<p><\/p>\n<p>Et nous ajouterons nos datastores, syst\u00e8me :<\/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>Et le stockage des images :<\/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>Param\u00e8tre <code>AUTO_PLACE<\/code> indique le nombre de r\u00e9pliques de donn\u00e9es qui seront cr\u00e9\u00e9es pour chaque nouvelle image dans OpenNebula.<\/li>\n<li>Param\u00e8tre <code>CLONE_MODE<\/code> indique comment les images seront clon\u00e9es lors de la cr\u00e9ation de nouvelles machines virtuelles, <code>snapshot<\/code> \u2014 un snapshot de l'image sera cr\u00e9\u00e9 et la machine virtuelle sera d\u00e9ploy\u00e9e \u00e0 partir du snapshot, <code>copy<\/code> \u2014 une copie compl\u00e8te de l'image sera faite pour chaque machine virtuelle.<\/li>\n<li>Dans <code>BRIDGE_LIST<\/code> il est recommand\u00e9 d'indiquer tous les n\u0153uds qui seront utilis\u00e9s pour effectuer les op\u00e9rations de clonage des images. <\/li>\n<\/ul>\n<p><\/p>\n<p>La liste compl\u00e8te des param\u00e8tres pris en charge est fournie dans <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/OpenNebula\/addon-linstor_un#opennebula-configuration\">README<\/a><\/noindex> .<\/p>\n<p><\/p>\n<p>\u00c0 ce stade, la configuration est termin\u00e9e, vous pouvez maintenant charger un appliance depuis le <noindex><a rel=\"nofollow\" href=\"https:\/\/marketplace.opennebula.systems\/appliance\">OpenNebula Marketplace<\/a><\/noindex> et cr\u00e9er des machines virtuelles \u00e0 partir de celle-ci.<\/p>\n<p><\/p>\n<p>Lien vers le projet :<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>Source : <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.2 - 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\/fr\/blog\/administrirovanie\/hranilishhe-linstor-i-ego-integratsiya-s-opennebula\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47Stockage LINSTOR et son int\u00e9gration avec OpenNebula | ProHoster","description":"Il n'y a pas si longtemps, les gens de LINBIT.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/hranilishhe-linstor-i-ego-integratsiya-s-opennebula","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/33523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=33523"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/33523\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/25221"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=33523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=33523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=33523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}