{"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\/sv\/blog\/administrirovanie\/hranilishhe-linstor-i-ego-integratsiya-s-opennebula","title":{"rendered":"LINSTOR-lagring och dess integration med OpenNebula","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"LINSTOR-lagring och dess integration med OpenNebula\" src=\"\/wp-content\/uploads\/2019\/05\/c8b6a7c02c4e5b043be327838152f8a1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nyligen presenterade grabbarna fr\u00e5n LINBIT sin nya SDS-l\u00f6sning - Linstor. Det \u00e4r en helt fri lagring som bygger p\u00e5 bepr\u00f6vad teknik: DRBD, LVM, ZFS. Linstor kombinerar enkelhet med en v\u00e4l genomarbetad arkitektur, vilket m\u00f6jligg\u00f6r stabilitet och ganska imponerande resultat.<\/p>\n<p><\/p>\n<p>I dag skulle jag vilja ber\u00e4tta lite mer om det och visa hur enkelt det kan integreras med OpenNebula med hj\u00e4lp av linstor_un - en ny drivrutin som jag har utvecklat speciellt f\u00f6r detta \u00e4ndam\u00e5l.<\/p>\n<p><\/p>\n<p>Linstor i kombination med OpenNebula g\u00f6r det m\u00f6jligt att bygga en snabb och p\u00e5litlig molnplattform som enkelt kan implementeras p\u00e5 egen infrastruktur.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"arhitektura-linstor\">Linstors arkitektur<\/h2>\n<p><\/p>\n<p>Linstor \u00e4r varken ett filsystem eller en blocklagring i sig, Linstor \u00e4r en orkestrator som erbjuder ett abstraktionslager f\u00f6r att automatisera skapandet av volymer i LVM eller ZFS och replikera dem med hj\u00e4lp av DRBD9.<\/p>\n<p><\/p>\n<h5 id=\"lomaem-stereotipy\">Bryter stereotyper<\/h5>\n<p><\/p>\n<p>Men v\u00e4nta, DRBD? - Varf\u00f6r automatisera det och hur kan det \u00f6verhuvudtaget fungera?<\/p>\n<p><\/p>\n<p>L\u00e5t oss minnas det f\u00f6rflutna n\u00e4r DRBD8 var v\u00e4ldigt popul\u00e4rt. Dess standardanv\u00e4ndning innebar att skapa en stor blockenhet och dela upp den i m\u00e5nga sm\u00e5 bitar med hj\u00e4lp av samma LVM. En slags mdadm RAID-1 men med replikering \u00f6ver n\u00e4tverket.<\/p>\n<p><\/p>\n<p>Denna metod har sina nackdelar, och d\u00e4rf\u00f6r med inf\u00f6randet av DRBD9 \u00e4ndrades principerna f\u00f6r lagringsl\u00f6sningar, nu skapas enskilda DRBD-enheter f\u00f6r varje virtuella maskin.<\/p>\n<p><\/p>\n<p>Metoden med oberoende blockenheter m\u00f6jligg\u00f6r en b\u00e4ttre utnyttjande av utrymmet i klustret, och ger ocks\u00e5 en rad ytterligare m\u00f6jligheter. Till exempel kan f\u00f6r varje s\u00e5dan enhet definieras antalet replikat, deras placering och individuella inst\u00e4llningar. De \u00e4r enkla att skapa\/tas bort, g\u00f6ra snapshots, \u00e4ndra storlek, aktivera kryptering och mycket mer. Det \u00e4r v\u00e4rt att notera att DRBD9 ocks\u00e5 st\u00f6der quorum, vilket f\u00f6rhindrar split-brain-situationer.<\/p>\n<p><\/p>\n<h5 id=\"resursy-i-bekendy\">Resurser och backend<\/h5>\n<p><\/p>\n<p>Vid skapandet av en ny blockenhet placerar Linstor det n\u00f6dv\u00e4ndiga antalet replikat p\u00e5 olika noder i klustret. Varje s\u00e5dan replik kommer vi att kalla en DRBD-resurs.<\/p>\n<p><\/p>\n<p>Resurser finns i tv\u00e5 typer:<\/p>\n<p><\/p>\n<ul>\n<li><strong>Dataresurs<\/strong> representerar en DRBD-enhet som \u00e4r placerad p\u00e5 en nod i LVM- eller ZFS-pool.<br \/>\nF\u00f6r n\u00e4rvarande finns det st\u00f6d f\u00f6r flera backend och deras antal \u00f6kar st\u00e4ndigt. Det finns st\u00f6d f\u00f6r LVM, ThinLVM och ZFS. De tv\u00e5 sista m\u00f6jligg\u00f6r skapande och anv\u00e4ndning av snapshots.<\/li>\n<li><strong>Diskless-resurs<\/strong> representerar en DRBD-enhet som \u00e4r placerad p\u00e5 en nod utan backend, men som till\u00e5ter att behandlas som en vanlig blockenhet, alla l\u00e4s-\/skrivoperationer kommer att dirigeras till data-resurser. N\u00e4rmaste analog till diskless-resurser \u00e4r iSCSI LUN.<\/li>\n<\/ul>\n<p><\/p>\n<p>Varje DRBD-resurs kan ha upp till 8 repliker, och endast en av dem kan som standard vara aktiv\u2014 <strong>Prim\u00e4r<\/strong>, alla andra kommer att vara <strong>Sekund\u00e4r<\/strong> och deras anv\u00e4ndning kommer att vara om\u00f6jlig s\u00e5 l\u00e4nge det finns minst en Prim\u00e4r, det vill s\u00e4ga de kommer helt enkelt att replikera data mellan varandra.<\/p>\n<p><\/p>\n<p>Genom att montera DRBD-enheten i systemet blir den automatiskt <strong>Prim\u00e4r<\/strong>, vilket inneb\u00e4r att \u00e4ven en Diskless-resurs, enligt DRBD-terminologin, kan vara Prim\u00e4r.<\/p>\n<p><\/p>\n<h5 id=\"tak-zachem-nuzhen-linstor\">S\u00e5 varf\u00f6r beh\u00f6vs Linstor?<\/h5>\n<p><\/p>\n<p>Genom att lita p\u00e5 alla resursintensiva uppgifter till k\u00e4rnan, fungerar Linstor i grund och botten som en vanlig Java-applikation som enkelt m\u00f6jligg\u00f6r automatisering av skapandet av DRBD-resurser.<br \/>\nVarje resurs som skapats av det kommer att vara en oberoende DRBD-kluster som fungerar sj\u00e4lvst\u00e4ndigt, oavsett status f\u00f6r kontrollplanet och andra DRBD-resurser.<\/p>\n<p><\/p>\n<p><strong>Linstor best\u00e5r endast av tv\u00e5 komponenter:<\/strong><\/p>\n<p><\/p>\n<ul>\n<li><strong>Linstor-controller<\/strong> \u2013 Den huvudsakliga kontrollern som tillhandah\u00e5ller ett API f\u00f6r att skapa och hantera resurser. Den kommunicerar ocks\u00e5 med satelliterna, kontrollerar tillg\u00e4ngligt utrymme p\u00e5 dem, och skickar uppdrag f\u00f6r att skapa och ta bort nya resurser. K\u00f6rs i en enskild instans och anv\u00e4nder en databas som kan vara antingen intern (H2) eller extern (PostgreSQL, MySQL, MariaDB)<\/li>\n<li><strong>Linstor-satellite<\/strong> \u2013 Installeras p\u00e5 alla storage-noder och ger kontrollern information om ledigt utrymme, samt utf\u00f6r uppgifter mottagna fr\u00e5n kontrollern f\u00f6r att skapa och ta bort nya volymer och DRBD-enheter ovanp\u00e5 dem.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Linstor arbetar med f\u00f6ljande nyckelbegrepp:<\/strong><\/p>\n<p><\/p>\n<ul>\n<li><strong>Node<\/strong> \u2013 en fysisk server p\u00e5 vilken DRBD-resurser kommer att skapas och anv\u00e4ndas.<\/li>\n<li><strong>Storage Pool<\/strong> \u2013 LVM eller ZFS pool, skapad p\u00e5 en nod d\u00e4r DRBD-resurser kommer att placeras. Det \u00e4r ocks\u00e5 m\u00f6jligt att ha en diskless-pool \u2013 en pool d\u00e4r endast diskless-resurser kommer att placeras.<\/li>\n<li><strong>Resursdefinition<\/strong> \u2014 Definitionen av resursen, i grund och botten \u00e4r det en prototyp som beskriver namnet och alla dess egenskaper.<\/li>\n<li><strong>Volymdefinition<\/strong> \u2014 Definition av volym. Varje resurs kan best\u00e5 av flera volymer, varje volym m\u00e5ste ha en storlek.<\/li>\n<li><strong>Resurs<\/strong> \u2014 En skapad instans av ett blockenhet, varje resurs m\u00e5ste placeras p\u00e5 en viss nod och i n\u00e5gon lagringspool.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"ustanovka-linstor\">Installation av Linstor<\/h2>\n<p><\/p>\n<p>Jag rekommenderar att anv\u00e4nda Ubuntu som system, eftersom det finns <noindex><a rel=\"nofollow\" href=\"https:\/\/launchpad.net\/~linbit\/+archive\/ubuntu\/linbit-drbd9-stack\">ett f\u00e4rdigt 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>Eller Debian, d\u00e4r Linstor kan installeras fr\u00e5n det officiella lagret f\u00f6r 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\">Controller<\/h5>\n<p><\/p>\n<p>Det \u00e4r enkelt h\u00e4r:<\/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\">Lagringsnoder<\/h5>\n<p><\/p>\n<p>F\u00f6r n\u00e4rvarande levereras en in-tree k\u00e4rnmodul i Linux <strong>DRBD8<\/strong>, tyv\u00e4rr passar den inte f\u00f6r oss och vi beh\u00f6ver installera <strong>DRBD9<\/strong>:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">apt-get install drbd-dkms<\/code><\/pre>\n<p><\/p>\n<p>Som erfarenheten visar uppst\u00e5r de flesta komplikationerna just p\u00e5 grund av att DRBD8-modulen \u00e4r laddad i systemet, snarare \u00e4n DRBD9. Lyckligtvis \u00e4r det enkelt att kontrollera genom att k\u00f6ra:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">modprobe drbd\ncat \/proc\/drbd<\/code><\/pre>\n<p><\/p>\n<p>Om du ser <strong>version: 9<\/strong> \u2014 \u00e4r allt i ordning, om <strong>version: 8<\/strong> \u2014 betyder att n\u00e5got har g\u00e5tt fel och du m\u00e5ste vidta ytterligare \u00e5tg\u00e4rder f\u00f6r att ta reda p\u00e5 orsaken.<\/p>\n<p><\/p>\n<p>Nu ska vi installera <strong>linstor-satellite<\/strong> och <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\">Skapa en kluster<\/h2>\n<p><\/p>\n<p><strong>Lagringspooler och noder<\/strong><\/p>\n<p><\/p>\n<p>Som backend tar vi <strong>ThinLVM<\/strong>, eftersom det \u00e4r den enklaste och st\u00f6der snapshots.<br \/>\nInstallera <strong>lvm2<\/strong>, om du inte har gjort det \u00e4nnu, och l\u00e5t oss skapa en ThinLVM-pool p\u00e5 alla v\u00e5ra lagringsnoder:<\/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>Alla framtida \u00e5tg\u00e4rder kan utf\u00f6ras direkt p\u00e5 kontrollern:<\/p>\n<p><\/p>\n<p>Vi l\u00e4gger till v\u00e5ra noder:<\/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>Vi skapar lagringspooler:<\/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>Nu kontrollerar vi de skapade poolerna:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">linstor storage-pool list<\/code><\/pre>\n<p><\/p>\n<p>Om allt \u00e4r r\u00e4tt utf\u00f6rt b\u00f6r vi se n\u00e5got i stil med:<\/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-resurser<\/strong><\/p>\n<p><\/p>\n<p>Nu l\u00e5t oss f\u00f6rs\u00f6ka skapa v\u00e5r nya DRBD-resurs:<\/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>L\u00e5t oss kontrollera de skapade resurserna:<\/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>Utm\u00e4rkt! \u2014 vi ser att resursen skapades p\u00e5 de f\u00f6rsta tv\u00e5 noderna, vi kan ocks\u00e5 f\u00f6rs\u00f6ka skapa en diskl\u00f6s resurs p\u00e5 den tredje: <\/p>\n<p><\/p>\n<pre><code class=\"bash\">linstor resource create --diskless node3 myres<\/code><\/pre>\n<p><\/p>\n<p>P\u00e5 noderna kommer du alltid att hitta den h\u00e4r enheten som <code>\/dev\/drbd1084<\/code> eller <code>\/dev\/drbd\/by-res\/myres\/0<\/code><\/p>\n<p><\/p>\n<p>S\u00e5 h\u00e4r fungerar Linstor, du kan f\u00e5 mer information fr\u00e5n <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.linbit.com\/docs\/users-guide-9.0\/\">den officiella dokumentationen<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Nu ska jag ber\u00e4tta hur man integrerar det med OpenNebula<\/p>\n<p><\/p>\n<h2 id=\"nastroyka-opennebula\">Inst\u00e4llning av OpenNebula<\/h2>\n<p><\/p>\n<p>Jag kommer inte att g\u00e5 in p\u00e5 djupet om installationsprocessen f\u00f6r OpenNebula, eftersom alla steg \u00e4r detaljerat beskrivna i <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.opennebula.org\/stable\/deployment\/opennebula_installation\/index.html\">den officiella dokumentationen<\/a><\/noindex>, som jag rekommenderar att du v\u00e4nder dig till, jag kommer bara att ber\u00e4tta om integrationen av OpenNebula med Linstor.<\/p>\n<p><\/p>\n<h5 id=\"linstor_un\">linstor_un<\/h5>\n<p><\/p>\n<p>F\u00f6r att l\u00f6sa detta problem har jag skrivit en egen drivrutin \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/OpenNebula\/addon-linstor_un\">linstor_un<\/a><\/noindex>, f\u00f6r n\u00e4rvarande \u00e4r den tillg\u00e4nglig som en plugin och beh\u00f6ver installeras separat.<\/p>\n<p><\/p>\n<p>Hela installationen sker p\u00e5 frontend OpenNebula-noderna och kr\u00e4ver inga ytterligare \u00e5tg\u00e4rder p\u00e5 compute-noderna.<\/p>\n<p><\/p>\n<p>F\u00f6rst m\u00e5ste vi se till att vi har <strong>jq<\/strong> och <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> borde visa en lista \u00f6ver noder. Alla compute-noder i OpenNebula borde vara tillagda i Linstor-klustret.<\/p>\n<p><\/p>\n<p>L\u00e5t oss ladda ner och installera 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>Nu beh\u00f6ver vi l\u00e4gga till den i OpenNebula-konfigurationen, f\u00f6r detta utf\u00f6r vi de enkla stegen som beskrivs <strong><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/OpenNebula\/addon-linstor_un#update-onedconf\">h\u00e4r<\/a><\/noindex><\/strong>.<\/p>\n<p><\/p>\n<p>D\u00e4refter kommer vi att starta om OpenNebula:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">systemctl restart opennebula<\/code><\/pre>\n<p><\/p>\n<p>Och vi l\u00e4gger till v\u00e5ra datalager, systemets:<\/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>Och bildlagret:<\/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> anger antalet data-replikat som kommer att skapas f\u00f6r varje ny bild i OpenNebula.<\/li>\n<li>Parameter <code>CLONE_MODE<\/code> anger hur bilder kommer att kopieras vid skapandet av nya virtuella maskiner, <code>snapshot<\/code> \u2014 kommer att skapa en snapshot av bilden och rulla ut den virtuella maskinen fr\u00e5n snapshoten, <code>copy<\/code> \u2014 kommer att g\u00f6ra en fullst\u00e4ndig kopia av bilden f\u00f6r varje virtuell maskin.<\/li>\n<li>I <code>BRIDGE_LIST<\/code> det rekommenderas att ange alla noder som ska anv\u00e4ndas f\u00f6r att utf\u00f6ra kloningsoperationer av bilder. <\/li>\n<\/ul>\n<p><\/p>\n<p>En fullst\u00e4ndig lista \u00f6ver st\u00f6dda parametrar finns i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/OpenNebula\/addon-linstor_un#opennebula-configuration\">README<\/a><\/noindex> f\u00f6r projektet.<\/p>\n<p><\/p>\n<p>Nu \u00e4r inst\u00e4llningen klar, och nu kan vi ladda ner en appliance fr\u00e5n den officiella <noindex><a rel=\"nofollow\" href=\"https:\/\/marketplace.opennebula.systems\/appliance\">OpenNebula Marketplace<\/a><\/noindex> och skapa virtuella maskiner fr\u00e5n den.<\/p>\n<p><\/p>\n<p>L\u00e4nk till projektet:<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>K\u00e4lla: <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.4 - 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\/sv\/blog\/administrirovanie\/hranilishhe-linstor-i-ego-integratsiya-s-opennebula\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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-lagring och dess integration med OpenNebula | ProHoster","description":"F\u00f6r inte s\u00e5 l\u00e4nge sedan sl\u00e4ppte killarna fr\u00e5n LINBIT.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/hranilishhe-linstor-i-ego-integratsiya-s-opennebula","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/33523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=33523"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/33523\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/25221"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=33523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=33523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=33523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}