<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[XOSTOR hyperconvergence preview]]></title><description><![CDATA[<h1>XOSTOR - Tech preview</h1>
<h2><img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title=":warning:" alt="⚠" /> Installation script is compatible with XCP-ng 8.2 and 8.3 <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title=":warning:" alt="⚠" /></h2>
<h2><img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title=":warning:" alt="⚠" /> UPDATE to sm-2.30.7-1.3.0.linstor.7 <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title=":warning:" alt="⚠" /></h2>
<p dir="auto"><strong>Please read this: <a href="https://xcp-ng.org/forum/topic/5361/xostor-hyperconvergence-preview/224?_=1679390249707">https://xcp-ng.org/forum/topic/5361/xostor-hyperconvergence-preview/224?_=1679390249707</a></strong></p>
<h2><img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title=":warning:" alt="⚠" /> UPDATE from an older version (before sm-2.30.7-1.3.0.linstor.3) <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title=":warning:" alt="⚠" /></h2>
<p dir="auto"><strong>Please read this: <a href="https://xcp-ng.org/forum/topic/5361/xostor-hyperconvergence-preview/177?_=1667938000897">https://xcp-ng.org/forum/topic/5361/xostor-hyperconvergence-preview/177?_=1667938000897</a></strong></p>
<p dir="auto"><br />
XOSTOR is a "disaggregated hyperconvergence storage solution". In plain English: you can assemble local storage of multiple hosts into one "fake" shared storage.</p>
<p dir="auto">The key to get fast hyperconvergence is to try a different approach. We used GlusterFS for XOSAN, and it wasn't really fast for small random blocks (due to the nature of the global filesystem). But in XOSTOR, there's a catch: unlike traditional hyperconvergence, it won't create a global clustered and shared filesystem. This time, when you'll create a VM disk, it will create a "resource", that will be replicated "n" times on multiple hosts (eg twice or 3 times).</p>
<p dir="auto">So in the end, the number of resources depends on the VM disk numbers (and snapshots).</p>
<p dir="auto">The technology we use is not invented from scratch, we are using LINSTOR from LINBIT, based itself on DRBD. See <a href="https://linbit.com/linstor/" target="_blank" rel="noopener noreferrer nofollow ugc">https://linbit.com/linstor/</a></p>
<p dir="auto">For you, it will be (ideally) transparent.</p>
<h3>Ultimate goals</h3>
<p dir="auto">Our first goal here is to validate the technology at scale. If it works as we expect, then we'll add a complete automated solution and UI on top of it, and sell pro support for people who want to get a "turnkey" supported solution (a la XOA).</p>
<p dir="auto">The manual/shell script installation as described here is meant to stay fully open/accessible with community support <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto">Now I'm letting <a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/ronan-a" aria-label="Profile: ronan-a">@<bdi>ronan-a</bdi></a> writing the rest of this message <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /> Thanks a lot for your hard work <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /></p>
<p dir="auto"><img src="/forum/assets/uploads/files/1639993514355-how-it-works-isometric-deck-5integrations-versionv2-1024x554.png" alt="How-it-works-Isometric-Deck-5Integrations-VersionV2-1024x554.png" class=" img-fluid img-markdown" /></p>
<hr />
<h2><img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title=":warning:" alt="⚠" />  Important <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title=":warning:" alt="⚠" /></h2>
<p dir="auto">Despite we are doing intensive testing with this technology in the last 2 years (!), it was really HARD to integrate it easily into SMAPIv1 (legacy storage stack of XCP-ng). Especially when you have to test all potential cases.</p>
<p dir="auto">The goal of this tech preview is to scale our testing to a LOT of users.</p>
<p dir="auto">Right now, this version should be installed on pools with 3 or 4 hosts. We plan to release another test release in one month to remove this limitation. Also, in order to ensure data integrity, it is more than recommended to use at least 3 hosts.</p>
<h2>How to install XOSTOR on your pool?</h2>
<h3>1. Download installation script</h3>
<p dir="auto">First, you must ensure you have at least one free disk or more on each host of your pool.<br />
Then you can download the installation script using this command:</p>
<pre><code>wget https://gist.githubusercontent.com/Wescoeur/7bb568c0e09e796710b0ea966882fcac/raw/052b3dfff9c06b1765e51d8de72c90f2f90f475b/gistfile1.txt -O install &amp;&amp; chmod +x install
</code></pre>
<h3>2. Install</h3>
<p dir="auto">Then, on each host you must execute the script with the disks to use, for example with one partition:</p>
<pre><code>./install --disks /dev/sdb
</code></pre>
<p dir="auto">If you have many disks you can use them, BUT for optimal use, the sum of all disks should be the same on each host:</p>
<pre><code>./install --disks /dev/nvme0n1 /dev/nvme0n2 /dev/nvme0n3
</code></pre>
<p dir="auto">By default, <code>thick provisioning</code> is used, you can use <code>thin</code> instead:</p>
<pre><code>./install --disks /dev/sdb --thin
</code></pre>
<p dir="auto">Note: You can use the <code>--force</code> flag if you already have a VG group or PV on your hosts to override:</p>
<pre><code>./install --disks /dev/sdb --thin --force
</code></pre>
<h3>3. Verify config</h3>
<h4>With thin option</h4>
<p dir="auto"><code>lsblk</code> must return on each host an output similar to:</p>
<pre><code>&gt; lsblk
NAME                                                                              MAJ:MIN  RM   SIZE RO TYPE  MOUNTPOINT
...
sdb                                                                                 8:16    0   1.8T  0 disk
└─36848f690df82210028c2364008358dd7                                               253:0     0   1.8T  0 mpath
  ├─linstor_group-thin_device_tmeta                                               253:1     0   120M  0 lvm
  │ └─linstor_group-thin_device-tpool                                             253:3     0   1.8T  0 lvm
  └─linstor_group-thin_device_tdata                                               253:2     0   1.8T  0 lvm
    └─linstor_group-thin_device-tpool                                             253:3     0   1.8T  0 lvm
...
</code></pre>
<h4>With thick option</h4>
<p dir="auto">No LVM volume is created, only a new group must be present now using <code>vgs</code> command.</p>
<pre><code>&gt; vgs
  VG                                                 #PV #LV #SN Attr   VSize   VFree  
  ...
  linstor_group                                        1   0   0 wz--n- 931.51g 931.51g
</code></pre>
<p dir="auto">And you must have linstor versions of sm and xha:</p>
<pre><code>&gt; rpm -qa | grep -E "^(sm|xha)-.*linstor.*"
sm-2.30.4-1.1.0.linstor.8.xcpng8.2.x86_64
xha-10.1.0-2.2.0.linstor.1.xcpng8.2.x86_64
</code></pre>
<h3>4. Finally you can create the SR:</h3>
<p dir="auto">If you use thick provisioning:</p>
<pre><code>xe sr-create type=linstor name-label=&lt;SR_NAME&gt; host-uuid=&lt;MASTER_UUID&gt; device-config:group-name=linstor_group device-config:redundancy=&lt;REDUNDANCY&gt; shared=true device-config:provisioning=thick
</code></pre>
<p dir="auto">Otherwise with thin provisioning:</p>
<pre><code>xe sr-create type=linstor name-label=&lt;SR_NAME&gt; host-uuid=&lt;MASTER_UUID&gt; device-config:group-name=linstor_group/thin_device device-config:redundancy=&lt;REDUNDANCY&gt; shared=true device-config:provisioning=thin
</code></pre>
<p dir="auto">So for example if you have 4 hosts, a thin config and you want a replication of 3 for each disk:</p>
<pre><code>xe sr-create type=linstor name-label=XOSTOR host-uuid=bc3cd3af-3f09-48cf-ae55-515ba21930f5 device-config:group-name=linstor_group/thin_device device-config:redundancy=3 shared=true device-config:provisioning=thin

</code></pre>
<h3>5. Verification</h3>
<p dir="auto">After that you must have a XOSTOR SR visible in XOA with all PBDs attached.</p>
<h3>6. Update</h3>
<p dir="auto">If you want to update your LINSTOR and other packages, you can execute on each host the install script like this:</p>
<pre><code>./install --update-only
</code></pre>
<h2>F.A.Q.</h2>
<h3>How the SR capacity is calculated? <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f914.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--thinking_face" style="height:23px;width:auto;vertical-align:middle" title=":thinking_face:" alt="🤔" /></h3>
<p dir="auto">If you can't create a VDI greater than the displayed size in the XO SR view, don't worry:</p>
<ul>
<li>There are two important things to remember: the maximum size of a VDI that can be created is not necessarily equal to the capacity of the SR. The SR capacity in the XOSTOR context is the maximum size that can be used to store all VDI data.</li>
<li>Exception: if the replication count is equal to the number of hosts, the SR capacity is equal to the max VDI size, i.e. the capacity of the smallest disk in the pool.</li>
</ul>
<p dir="auto">We use this formula to compute the SR capacity:</p>
<pre><code>sr_capacity = smallest_host_disk_capacity * host_count / replication_count
</code></pre>
<p dir="auto">For example if you have a pool of 3 hosts with a replication count of 2 and a disk of 200 GiB on each host, the capacity of the SR is equal to 300 GiB using the formula. Notes:</p>
<ul>
<li>You can't create a VDI greater than 200 GiB because the replication is not block based but volume based.</li>
<li>If you create a volume of 200 GiB (400 of the 600 GiB are physically used) and the remaining disk can't be used because it becomes impossible to replicate on two different disks.</li>
<li>If you create 3 volumes of 100 GiB: the SR becomes fully filled. In this case you have 300 GiB of unique data and a replication of 300 GiB.</li>
</ul>
<h3>How to destroy properly the SR after a SR.forget call?</h3>
<p dir="auto">If you used a command like <code>SR.forget</code>, the SR is not actually removed properly. To do that you can execute these commands:</p>
<pre><code># Create new UUID for the SR to reintroduce it.
uuidgen

# Reintroduce the SR.
xe sr-introduce uuid=&lt;UUID_of_uuidgen&gt; type=linstor shared=true name-label="XOSTOR" content-type=user

# Get host list to recreate PBD
xe host-list
...

# For each host, you must execute a `xe pbd-create` call.
# Don't forget to use the correct SR/host UUIDs, and device-config parameters.
xe pbd-create host-uuid=&lt;host_uuid&gt;  sr-uuid=uuid_of_uuidgen&gt; device-config:provisioning=thick device-config:redundancy=&lt;redundancy&gt; device-config:group-name=&lt;group_name&gt;

# After this point you can now destroy the SR properly using xe or XOA.
</code></pre>
<h3>Node: auto-eviction and how to restore?</h3>
<p dir="auto">If a node is no longer active for 60 minutes by default, it's automatically evicted. This behavior can be changed.<br />
There is an advantage using auto evict, if there are enough nodes in your cluster, LINSTOR will create new replicas of your disks.</p>
<p dir="auto">See: <a href="https://linbit.com/blog/linstors-auto-evict/" target="_blank" rel="noopener noreferrer nofollow ugc">https://linbit.com/blog/linstors-auto-evict/</a></p>
<p dir="auto">Now if you want to re-add your node, it's not automatic. You can used a linstor command to remove it: <code>linstor node lost</code>. Then you can recreate it. Also if there is no disk issue, and it was a network problem, whatever, just run one command <code>linstor node restore</code>.</p>
<h3>How to use a specific network storage?</h3>
<p dir="auto">You can run few specific LINSTOR commands to configure new NICs to use. By default the XAPI management interface is used.</p>
<p dir="auto">For more info: <a href="https://linbit.com/drbd-user-guide/linstor-guide-1_0-en/#s-managing_network_interface_cards" target="_blank" rel="noopener noreferrer nofollow ugc">https://linbit.com/drbd-user-guide/linstor-guide-1_0-en/#s-managing_network_interface_cards</a></p>
<p dir="auto">In case of failure with the preferred NIC, the default interface is used.</p>
<h3>How to replace drives?</h3>
<p dir="auto">Take a look at the official documentation: <a href="https://kb.linbit.com/how-do-i-replace-a-failed-d" target="_blank" rel="noopener noreferrer nofollow ugc">https://kb.linbit.com/how-do-i-replace-a-failed-d</a></p>
<h2>XAPI plugin: <code>linstor-manager</code></h2>
<p dir="auto">It's possible to perform low-level tasks using the <code>linstor-manager</code> plugin.</p>
<p dir="auto">It can be executed using the following command:</p>
<pre><code>xe host-call-plugin host-uuid=&lt;HOST_UUID&gt; plugin=linstor-manager fn=&lt;FUNCTION&gt; args:&lt;ARG_NAME_1&gt;=&lt;VALUE_1&gt; args:&lt;ARG_NAME_2&gt;=&lt;VALUE_2&gt; ...
</code></pre>
<p dir="auto">Many functions are not documented here and are reserved for internal use by the smapi driver (LinstorSR).</p>
<p dir="auto">For each command, <code>HOST_UUID</code> is a host of your pool, master or not.</p>
<h3>Add a new host to an existing LINSTOR SR</h3>
<pre><code>xe host-call-plugin host-uuid=&lt;HOST_UUID&gt; plugin=linstor-manager fn=addHost args:groupName=&lt;THIN_OR_THICK_POOL_NAME&gt;
</code></pre>
<p dir="auto">This command creates a new PBD on the SR and new node in the LINSTOR database. Also it starts what's is necessary for the driver.<br />
After running this command, it's up to you to set up a new storage pool in the LINSTOR database with the same name used by the other nodes.<br />
So again use pvcreate/vgcreate and then a basic "linstor storage-pool create"</p>
<h3>Remove a new host from an existing LINSTOR SR</h3>
<pre><code>xe host-call-plugin host-uuid=&lt;HOST_UUID&gt; plugin=linstor-manager fn=removeHost args:groupName=&lt;THIN_OR_THICK_POOL_NAME&gt;
</code></pre>
<h3>Check if the linstor controller is currently running on a specific host</h3>
<pre><code>xe host-call-plugin host-uuid=&lt;HOST_UUID&gt; plugin=linstor-manager fn=hasControllerRunning
</code></pre>
<p dir="auto"><strong>Example:</strong></p>
<pre><code>xe host-call-plugin host-uuid=ddcd3461-7052-4f5e-932c-e1ed75c192d6 plugin=linstor-manager fn=hasControllerRunning
False
</code></pre>
<h3>Check if a DRBD volume is currently used by a process on a specific host</h3>
<pre><code>xe host-call-plugin host-uuid=&lt;HOST_UUID&gt; plugin=linstor-manager fn=getDrbdOpeners args:resourceName=&lt;RES_NAME&gt; args:volume=0
</code></pre>
<p dir="auto"><strong>Example:</strong></p>
<pre><code>xe host-call-plugin host-uuid=ddcd3461-7052-4f5e-932c-e1ed75c192d6 plugin=linstor-manager fn=getDrbdOpeners args:resourceName=xcp-volume-a10809db-bb40-43bd-9dee-22d70d781c45 args:volume=0
{}
</code></pre>
<h3>List DRBD volumes</h3>
<pre><code>xe host-call-plugin host-uuid=&lt;HOST_UUID&gt; plugin=linstor-manager fn=listDrbdVolumes args:groupName=&lt;THIN_OR_THICK_POOL_NAME&gt;
</code></pre>
<p dir="auto"><strong>Example:</strong></p>
<pre><code>xe host-call-plugin host-uuid=ddcd3461-7052-4f5e-932c-e1ed75c192d6 plugin=linstor-manager fn=listDrbdVolumes args:groupName=linstor_group/thin_device
{"linstor_group": [1000, 1005, 1001, 1007, 1006]}
</code></pre>
<h3>Force destruction of DRBD volumes</h3>
<p dir="auto"><strong>Warning: In principle, the volumes created by the smapi driver (LinstorSR) must be destroyed using the XAPI or XOA. Only use these functions if you know what you are doing. Otherwise, forget them.</strong></p>
<pre><code># To destroy one volume:
xe host-call-plugin host-uuid=&lt;HOST_UUID&gt; plugin=linstor-manager fn=destroyDrbdVolume args:minor=&lt;MINOR&gt;

# To destroy all volumes:
xe host-call-plugin host-uuid=&lt;HOST_UUID&gt; plugin=linstor-manager fn=destroyDrbdVolumes args:groupName=&lt;THIN_OR_THICK_POOL_NAME&gt;
</code></pre>
]]></description><link>https://xcp-ng.org/forum/topic/5361/xostor-hyperconvergence-preview</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 07:48:03 GMT</lastBuildDate><atom:link href="https://xcp-ng.org/forum/topic/5361.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 20 Dec 2021 09:39:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Wed, 14 Jan 2026 10:31:45 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/ronan-a" aria-label="Profile: ronan-a">@<bdi>ronan-a</bdi></a> we need to have CBT to use 3rd party backup &amp; replication solution such as Veeam.</p>
<p dir="auto">On the other hand, XOSTOR with VHD disk might be ok using Xen Orchestra backup &amp; replication features but it needs more testing on our end to make sure it works good enough.<br />
One big question is about the snapshot chain. Coming from VMware world where keeping snapshots may impact I/O performances, we're not very comfortable with it.</p>
<p dir="auto">Also, we need to find solution for low-RPO replication. On our VMware infrastructure we use Zerto DR for this but XOA being more like Veeam using snapshots, low-RPO will be tough to achieve (unless making snapshots doesn't affect performances at all ?).</p>
]]></description><link>https://xcp-ng.org/forum/post/101538</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/101538</guid><dc:creator><![CDATA[snk33]]></dc:creator><pubDate>Wed, 14 Jan 2026 10:31:45 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Tue, 13 Jan 2026 23:24:02 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/snk33" aria-label="Profile: snk33">@<bdi>snk33</bdi></a> In fact we have limitations with CBT and XOSTOR. And this won't be resolved until we get back into SMAPIv3.</p>
<blockquote>
<p dir="auto">Not being able to use CBT on XOSTOR is a big issue for backup/replication.</p>
</blockquote>
<p dir="auto">Using it is more likely to cause problems than improve your situation. What bothers you about not using CBT here?</p>
]]></description><link>https://xcp-ng.org/forum/post/101532</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/101532</guid><dc:creator><![CDATA[ronan-a]]></dc:creator><pubDate>Tue, 13 Jan 2026 23:24:02 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Tue, 06 Jan 2026 14:57:37 GMT]]></title><description><![CDATA[<p dir="auto">Any update from someone ? Not having the ability to enable CBT on XOSTOR is really complicated to make replication / DR scenarios.</p>
<p dir="auto">At least to know if this is work in progress or not. If it's not we'll need to pause our PoC and post-pone production schedule waiting for significant update.</p>
]]></description><link>https://xcp-ng.org/forum/post/101300</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/101300</guid><dc:creator><![CDATA[snk33]]></dc:creator><pubDate>Tue, 06 Jan 2026 14:57:37 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Sat, 27 Dec 2025 20:30:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/ronan-a" aria-label="Profile: ronan-a">@<bdi>ronan-a</bdi></a> said in <a href="/forum/post/94436">XOSTOR hyperconvergence preview</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/peter_webbird" aria-label="Profile: peter_webbird">@<bdi>peter_webbird</bdi></a> We've already had feedback on CBT and LINSTOR/DRBD, we don't necessarily recommend enabling it. We have a blocking dev card regarding a bug with LVM lvchange command that may fail on CBT volumes used by a XOSTOR SR. We also have other issues related to migration with CBT.</p>
</blockquote>
<p dir="auto">Is the problem still occurring on latest XCP-ng / XOSTOR version ? Not being able to use CBT on XOSTOR is a big issue for backup/replication.</p>
]]></description><link>https://xcp-ng.org/forum/post/101080</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/101080</guid><dc:creator><![CDATA[snk33]]></dc:creator><pubDate>Sat, 27 Dec 2025 20:30:23 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Tue, 18 Nov 2025 19:56:41 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/ronan-a" aria-label="Profile: ronan-a">@<bdi>ronan-a</bdi></a> ,</p>
<p dir="auto">but how recover from this situation ?</p>
<p dir="auto">Thanks !</p>
]]></description><link>https://xcp-ng.org/forum/post/99756</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/99756</guid><dc:creator><![CDATA[henri9813]]></dc:creator><pubDate>Tue, 18 Nov 2025 19:56:41 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Mon, 10 Nov 2025 09:55:48 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/henri9813" aria-label="Profile: henri9813">@<bdi>henri9813</bdi></a> said in <a href="/forum/post/99398">XOSTOR hyperconvergence preview</a>:</p>
<blockquote>
<p dir="auto">of course, i checked, my SR was not full</p>
</blockquote>
<p dir="auto">The visual representation of used space is for informational purposes only; it's an approximation that takes into account replication, disks in use, etc. For more information: <a href="https://docs.xcp-ng.org/xostor/#how-a-linstor-sr-capacity-is-calculated" target="_blank" rel="noopener noreferrer nofollow ugc">https://docs.xcp-ng.org/xostor/#how-a-linstor-sr-capacity-is-calculated</a></p>
<p dir="auto">We plan to display a complete view of each physical disk space on each host someday to provide a more detailed overview. In any case, if you use "lvs"/"vgs" on each machine, you should indeed see the actual disk space used.</p>
]]></description><link>https://xcp-ng.org/forum/post/99428</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/99428</guid><dc:creator><![CDATA[ronan-a]]></dc:creator><pubDate>Mon, 10 Nov 2025 09:55:48 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Sun, 09 Nov 2025 14:02:26 GMT]]></title><description><![CDATA[<p dir="auto">Hello,</p>
<p dir="auto">I got my whole xostor destroyed, i don't know how precisely.</p>
<p dir="auto">I found some errors in sattelite</p>
<pre><code>Error context:
        An error occurred while processing resource 'Node: 'host', Rsc: 'xcp-volume-e011c043-8751-45e6-be06-4ce9f8807cad''
ErrorContext:
  Details:     Command 'lvcreate --config 'devices { filter=['"'"'a|/dev/md127|'"'"','"'"'a|/dev/md126p3|'"'"','"'"'r|.*|'"'"'] }' --virtualsize 52543488k linstor_primary --thinpool thin_device --name xcp-volume-e011c043-8751-45e6-be06-4ce9f8807cad_00000' returned with exitcode 5. 

Standard out: 


Error message: 
  WARNING: Remaining free space in metadata of thin pool linstor_primary/thin_device is too low (98.06% &gt;= 96.30%). Resize is recommended.
  Cannot create new thin volume, free space in thin pool linstor_primary/thin_device reached threshold.
</code></pre>
<p dir="auto">of course, i checked, my SR was not full<br />
<img src="/forum/assets/uploads/files/1762696853953-aa2774a4-c2d4-4dd1-be52-3c6e418c9083-image-resized.png" alt="aa2774a4-c2d4-4dd1-be52-3c6e418c9083-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">And the controller crashed, and i couldn't make it works.</p>
<p dir="auto">Here is the error i got</p>
<pre><code>==========

Category:                           RuntimeException
Class name:                         IllegalStateException
Class canonical name:               java.lang.IllegalStateException
Generated at:                       Method 'newIllegalStateException', Source file 'DataUtils.java', Line #870

Error message:                      Reading from nio:/var/lib/linstor/linstordb.mv.db failed; file length 2293760 read length 384 at 2445540 [1.4.197/1]
</code></pre>
<p dir="auto">So i deduce the database was fucked-up, i tried to open the file as explained in the documentation, but the linstor schema was "not found" in the file, event if using <code>cat</code> i see data about it.</p>
<p dir="auto">for now, i leave xostor and i'm back to localstorage until we know what to do when this issue occured with a "solution path".</p>
]]></description><link>https://xcp-ng.org/forum/post/99398</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/99398</guid><dc:creator><![CDATA[henri9813]]></dc:creator><pubDate>Sun, 09 Nov 2025 14:02:26 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Wed, 15 Oct 2025 22:54:17 GMT]]></title><description><![CDATA[<p dir="auto">I have amazing news!</p>
<p dir="auto">After the upgrade to xcp-ng 8.3, I retested velero backup, and it all just works <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f601.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--grin" style="height:23px;width:auto;vertical-align:middle" title=":grin:" alt="😁" /></p>
<p dir="auto">Completed Backup</p>
<pre><code>jonathon@jonathon-framework:~$ velero --kubeconfig k8s_configs/production.yaml backup describe grafana-test
Name:         grafana-test
Namespace:    velero
Labels:       objectset.rio.cattle.io/hash=c2b5f500ab5d9b8ffe14f2c70bf3742291df565c
              velero.io/storage-location=default
Annotations:  objectset.rio.cattle.io/applied=H4sIAAAAAAAA/4SSQW/bPgzFvwvPtv9OajeJj/8N22HdBqxFL0MPlEQlWmTRkOhgQ5HvPsixE2yH7iji8ffIJ74CDu6ZYnIcoIMTeYpcOf7vtIICji4Y6OB/1MdxgAJ6EjQoCN0rYAgsKI5Dyk9WP0hLIqmi40qjiKfMcRlAq7pBY+py26qmbEi15a5p78vtaqe0oqbVVsO5AI+K/Ju4A6YDdKDXqrVtXaNqzU5traVVY9d6Uyt7t2nW693K2Pa+naABe4IO9hEtBiyFksClmgbUdN06a9NAOtvr5B4DDunA8uR64lGgg7u6rxMUYMji6OWZ/dhTeuIPaQ6os+gTFUA/tR8NmXd+TELxUfNA5hslHqOmBN13OF16ZwvNQShIqpZClYQj7qk6blPlGF5uzC/L3P+kvok7MB9z0OcCXPiLPLHmuLLWCfVfB4rTZ9/iaA5zHovNZz7R++k6JI50q89BXcuXYR5YT0DolkChABEPHWzW9cK+rPQx8jgsH/KQj+QT/frzXCdduc/Ca9u1Y7aaFvMu5Ang5Xz+HQAA//8X7Fu+/QIAAA
              objectset.rio.cattle.io/id=e104add0-85b4-4eb5-9456-819bcbe45cfc
              velero.io/resource-timeout=10m0s
              velero.io/source-cluster-k8s-gitversion=v1.33.4+rke2r1
              velero.io/source-cluster-k8s-major-version=1
              velero.io/source-cluster-k8s-minor-version=33

Phase:  Completed


Namespaces:
  Included:  grafana
  Excluded:  &lt;none&gt;

Resources:
  Included cluster-scoped:    &lt;none&gt;
  Excluded cluster-scoped:    volumesnapshotcontents.snapshot.storage.k8s.io
  Included namespace-scoped:  *
  Excluded namespace-scoped:  volumesnapshots.snapshot.storage.k8s.io

Label selector:  &lt;none&gt;

Or label selector:  &lt;none&gt;

Storage Location:  default

Velero-Native Snapshot PVs:  true
Snapshot Move Data:          true
Data Mover:                  velero

TTL:  720h0m0s

CSISnapshotTimeout:    30m0s
ItemOperationTimeout:  4h0m0s

Hooks:  &lt;none&gt;

Backup Format Version:  1.1.0

Started:    2025-10-15 15:29:52 -0700 PDT
Completed:  2025-10-15 15:31:25 -0700 PDT

Expiration:  2025-11-14 14:29:52 -0800 PST

Total items to be backed up:  35
Items backed up:              35

Backup Item Operations:  1 of 1 completed successfully, 0 failed (specify --details for more information)
Backup Volumes:
  Velero-Native Snapshots: &lt;none included&gt;

  CSI Snapshots:
    grafana/central-grafana:
      Data Movement: included, specify --details for more information

  Pod Volume Backups: &lt;none included&gt;

HooksAttempted:  0
HooksFailed:     0
</code></pre>
<p dir="auto">Completed Restore</p>
<pre><code>jonathon@jonathon-framework:~$ velero --kubeconfig k8s_configs/production.yaml restore describe restore-grafana-test --details
Name:         restore-grafana-test
Namespace:    velero
Labels:       objectset.rio.cattle.io/hash=252addb3ed156c52d9fa9b8c045b47a55d66c0af
Annotations:  objectset.rio.cattle.io/applied=H4sIAAAAAAAA/3yRTW7zIBBA7zJrO5/j35gzfE2rtsomymIM45jGBgTjbKLcvaKJm6qL7kDwnt7ABdDpHfmgrQEBZxrJ25W2/85rSOCkjQIBrxTYeoIEJmJUyAjiAmiMZWRtTYhb232Q5EC88tquJDKPFEU6GlpUG5UVZdpUdZ6WZZ+niOtNWtR1SypvqC8buCYwYkfjn7oBwwAC8ipHpbqC1LqqZZWrtse228isrLqywapSdS0z7KPU4EQgwN+mSI8eezSYMgWG22lwKOl7/MgERzJmdChPs9veDL9IGfSbQRcGy+96IjszCCiyCRLQRo6zIrVd5AHEfuHhkIBmmp4d+a/3e9Dl8LPoCZ3T5hg7FvQRcR8nxt6XL7sAgv1MCZztOE+01P23cvmnPYzaxNtwuF4/AwAA//8k6OwC/QEAAA
              objectset.rio.cattle.io/id=9ad8d034-7562-44f2-aa18-3669ed27ef47

Phase:                       Completed
Total items to be restored:  33
Items restored:              33

Started:    2025-10-15 15:35:26 -0700 PDT
Completed:  2025-10-15 15:36:34 -0700 PDT

Warnings:
  Velero:     &lt;none&gt;
  Cluster:    &lt;none&gt;
  Namespaces:
    grafana-restore:  could not restore, ConfigMap:elasticsearch-es-transport-ca-internal already exists. Warning: the in-cluster version is different than the backed-up version
                      could not restore, ConfigMap:kube-root-ca.crt already exists. Warning: the in-cluster version is different than the backed-up version

Backup:  grafana-test

Namespaces:
  Included:  grafana
  Excluded:  &lt;none&gt;

Resources:
  Included:        *
  Excluded:        nodes, events, events.events.k8s.io, backups.velero.io, restores.velero.io, resticrepositories.velero.io, csinodes.storage.k8s.io, volumeattachments.storage.k8s.io, backuprepositories.velero.io
  Cluster-scoped:  auto

Namespace mappings:  grafana=grafana-restore

Label selector:  &lt;none&gt;

Or label selector:  &lt;none&gt;

Restore PVs:  true

CSI Snapshot Restores:
  grafana-restore/central-grafana:
    Data Movement:
      Operation ID: dd-ffa56e1c-9fd0-44b4-a8bb-8163f40a49e9.330b82fc-ca6a-423217ee5
      Data Mover: velero
      Uploader Type: kopia

Existing Resource Policy:   &lt;none&gt;
ItemOperationTimeout:       4h0m0s

Preserve Service NodePorts:  auto

Restore Item Operations:
  Operation for persistentvolumeclaims grafana-restore/central-grafana:
    Restore Item Action Plugin:  velero.io/csi-pvc-restorer
    Operation ID:                dd-ffa56e1c-9fd0-44b4-a8bb-8163f40a49e9.330b82fc-ca6a-423217ee5
    Phase:                       Completed
    Progress:                    856284762 of 856284762 complete (Bytes)
    Progress description:        Completed
    Created:                     2025-10-15 15:35:28 -0700 PDT
    Started:                     2025-10-15 15:36:06 -0700 PDT
    Updated:                     2025-10-15 15:36:26 -0700 PDT

HooksAttempted:   0
HooksFailed:      0

Resource List:
  apps/v1/Deployment:
    - grafana-restore/central-grafana(created)
    - grafana-restore/grafana-debug(created)
  apps/v1/ReplicaSet:
    - grafana-restore/central-grafana-5448b9f65(created)
    - grafana-restore/central-grafana-56887c6cb6(created)
    - grafana-restore/central-grafana-56ddd4f497(created)
    - grafana-restore/central-grafana-5f4757844b(created)
    - grafana-restore/central-grafana-5f69f86c85(created)
    - grafana-restore/central-grafana-64545dcdc(created)
    - grafana-restore/central-grafana-69c66c54d9(created)
    - grafana-restore/central-grafana-6c8d6f65b8(created)
    - grafana-restore/central-grafana-7b479f79ff(created)
    - grafana-restore/central-grafana-bc7d96cdd(created)
    - grafana-restore/central-grafana-cb88bd49c(created)
    - grafana-restore/grafana-debug-556845ff7b(created)
    - grafana-restore/grafana-debug-6fb594cb5f(created)
    - grafana-restore/grafana-debug-8f66bfbf6(created)
  discovery.k8s.io/v1/EndpointSlice:
    - grafana-restore/central-grafana-hkgd5(created)
  networking.k8s.io/v1/Ingress:
    - grafana-restore/central-grafana(created)
  rbac.authorization.k8s.io/v1/Role:
    - grafana-restore/central-grafana(created)
  rbac.authorization.k8s.io/v1/RoleBinding:
    - grafana-restore/central-grafana(created)
  v1/ConfigMap:
    - grafana-restore/central-grafana(created)
    - grafana-restore/elasticsearch-es-transport-ca-internal(failed)
    - grafana-restore/kube-root-ca.crt(failed)
  v1/Endpoints:
    - grafana-restore/central-grafana(created)
  v1/PersistentVolume:
    - pvc-e3f6578f-08b2-4e79-85f0-76bbf8985b55(skipped)
  v1/PersistentVolumeClaim:
    - grafana-restore/central-grafana(created)
  v1/Pod:
    - grafana-restore/central-grafana-cb88bd49c-fc5br(created)
  v1/Secret:
    - grafana-restore/fpinfra-net-cf-cert(created)
    - grafana-restore/grafana(created)
  v1/Service:
    - grafana-restore/central-grafana(created)
  v1/ServiceAccount:
    - grafana-restore/central-grafana(created)
    - grafana-restore/default(skipped)
  velero.io/v2alpha1/DataUpload:
    - velero/grafana-test-nw7zj(skipped)
</code></pre>
<p dir="auto">Image of working restore pod, with correct data in PV<br />
<img src="/forum/assets/uploads/files/1760568537496-34d87db1-19ae-4348-8d4e-6599375d7634-image.png" alt="34d87db1-19ae-4348-8d4e-6599375d7634-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Velero installed from helm: <a href="https://vmware-tanzu.github.io/helm-charts" target="_blank" rel="noopener noreferrer nofollow ugc">https://vmware-tanzu.github.io/helm-charts</a><br />
Version: velero:11.1.0<br />
Values</p>
<pre><code>---
image:
  repository: velero/velero
  tag: v1.17.0

# Whether to deploy the restic daemonset.
deployNodeAgent: true

initContainers:
   - name: velero-plugin-for-aws
     image: velero/velero-plugin-for-aws:latest
     imagePullPolicy: IfNotPresent
     volumeMounts:
       - mountPath: /target
         name: plugins

configuration:
  defaultItemOperationTimeout: 2h
  features: EnableCSI
  defaultSnapshotMoveData: true

  backupStorageLocation:
    - name: default
      provider: aws
      bucket: velero
      config:
        region: us-east-1
        s3ForcePathStyle: true
        s3Url: https://s3.location

  # Destination VSL points to LINSTOR snapshot class
  volumeSnapshotLocation:
    - name: linstor
      provider: velero.io/csi
      config:
        snapshotClass: linstor-vsc

credentials:
  useSecret: true
  existingSecret: velero-user


metrics:
  enabled: true

  serviceMonitor:
    enabled: true

  prometheusRule:
    enabled: true
    # Additional labels to add to deployed PrometheusRule
    additionalLabels: {}
    # PrometheusRule namespace. Defaults to Velero namespace.
    # namespace: ""
    # Rules to be deployed
    spec:
      - alert: VeleroBackupPartialFailures
        annotations:
          message: Velero backup {{ $labels.schedule }} has {{ $value | humanizePercentage }} partialy failed backups.
        expr: |-
          velero_backup_partial_failure_total{schedule!=""} / velero_backup_attempt_total{schedule!=""} &gt; 0.25
        for: 15m
        labels:
          severity: warning
      - alert: VeleroBackupFailures
        annotations:
          message: Velero backup {{ $labels.schedule }} has {{ $value | humanizePercentage }} failed backups.
        expr: |-
          velero_backup_failure_total{schedule!=""} / velero_backup_attempt_total{schedule!=""} &gt; 0.25
        for: 15m
        labels:
          severity: warning
</code></pre>
<p dir="auto">Also create the following.</p>
<pre><code>apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
  name: linstor-vsc
  labels:
    velero.io/csi-volumesnapshot-class: "true"
driver: linstor.csi.linbit.com
deletionPolicy: Delete
</code></pre>
<p dir="auto">We are using Piraeus operator to use xostor in k8s<br />
<a href="https://github.com/piraeusdatastore/piraeus-operator.git" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/piraeusdatastore/piraeus-operator.git</a><br />
Version: v2.9.1<br />
Values:</p>
<pre><code>---
operator: 
  resources:
    requests:
      cpu: 250m
      memory: 500Mi
    limits:
      memory: 1Gi
installCRDs: true
imageConfigOverride:
- base: quay.io/piraeusdatastore
  components:
    linstor-satellite:
      image: piraeus-server
      tag: v1.29.0
tls:
  certManagerIssuerRef:
    name: step-issuer
    kind: StepClusterIssuer
    group: certmanager.step.sm
</code></pre>
<p dir="auto">Then we just connect to the xostor cluster like external linstor controller.</p>
]]></description><link>https://xcp-ng.org/forum/post/98517</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/98517</guid><dc:creator><![CDATA[Jonathon]]></dc:creator><pubDate>Wed, 15 Oct 2025 22:54:17 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Wed, 02 Jul 2025 08:31:54 GMT]]></title><description><![CDATA[<p dir="auto">Hello,</p>
<p dir="auto">I plan to install my XOSTOR cluster on a pool of 7 nodes with 3 replicas, but not all nodes at once because disks are in use.<br />
consider:</p>
<ul>
<li>node1</li>
<li>node2</li>
<li>node ...</li>
<li>node 5</li>
<li>node 6</li>
<li>node 7.</li>
</ul>
<p dir="auto">with 2 disks on each</p>
<ul>
<li>sda: 128GB for the OS</li>
<li>sdb: 1TB for local sr ( for now <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--smile" style="height:23px;width:auto;vertical-align:middle" title=":D" alt="😄" /> )</li>
</ul>
<p dir="auto">I emptied node 6 &amp; 7.</p>
<p dir="auto">so, here is what i plan to do:</p>
<ul>
<li>On ALL NODES: setup linstor packages</li>
</ul>
<p dir="auto">Run the install script on node 6 &amp; 7 to add their disks<br />
so:</p>
<pre><code>node6# install.sh --disks /dev/sdb
node7# install.sh --disks /dev/sdb
</code></pre>
<p dir="auto">Then, configure the SR and the linstor plugin manager as the following</p>
<pre><code>xe sr-create \ 
    type=linstor name-label=pool-01 \
    host-uuid=XXXX \
    device-config:group-name=linstor_group/thin_device device-config:redundancy=3 shared=true device-config:provisioning=thin
</code></pre>
<p dir="auto">Normally, i should have a linstor cluster running of 2 nodes ( 2 satellite and one controller randomly placed )  with only 2 disks and then, only 2/3 working replicas.</p>
<p dir="auto">The cluster <strong>SHOULD</strong> be usable ( i'm right on this point ? )</p>
<p dir="auto">The next step, would be to move VM from node 5 on it to evacuate node 5. and then add it to the cluster by the following</p>
<pre><code>node5# install.sh --disks /dev/sdb
node5# xe host-call-plugin \
  host-uuid=node5-uuid \
  plugin=linstor-manager \
  fn=addHost args:groupName=linstor_group/thin_device
</code></pre>
<p dir="auto">That should deploy satelite on node 5 and add the disk.</p>
<p dir="auto">I normally should have 3/3 working replicas and can start to deploy others nodes progressively.</p>
<p dir="auto">I'm right on the process ?</p>
<p dir="auto">aS mentionned in the discord, i will post my feedbacks and results from my setup once i finalized it. ( maybe thought a blog post somewhere ).</p>
<p dir="auto">Thanks to provide xostor in opensource, it's clearly the missing piece for this virtualization stack in opensource ( vs proxmox )</p>
]]></description><link>https://xcp-ng.org/forum/post/94730</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/94730</guid><dc:creator><![CDATA[henri9813]]></dc:creator><pubDate>Wed, 02 Jul 2025 08:31:54 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Tue, 01 Jul 2025 15:02:07 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/dthenot" aria-label="Profile: dthenot">@<bdi>dthenot</bdi></a> said in <a href="/forum/post/94685">XOSTOR hyperconvergence preview</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/jeffberntsen" aria-label="Profile: JeffBerntsen">@<bdi>JeffBerntsen</bdi></a> That's why I meant, the way to install written in the first post still work in 8.3, the script still work as expected also, it basically only create the VG/LV needed on hosts before you create the SR.</p>
</blockquote>
<p dir="auto">Got it.  Thanks!</p>
]]></description><link>https://xcp-ng.org/forum/post/94689</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/94689</guid><dc:creator><![CDATA[JeffBerntsen]]></dc:creator><pubDate>Tue, 01 Jul 2025 15:02:07 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Tue, 01 Jul 2025 14:52:44 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/jeffberntsen" aria-label="Profile: JeffBerntsen">@<bdi>JeffBerntsen</bdi></a> That's why I meant, the way to install written in the first post still work in 8.3, the script still work as expected also, it basically only create the VG/LV needed on hosts before you create the SR.</p>
]]></description><link>https://xcp-ng.org/forum/post/94685</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/94685</guid><dc:creator><![CDATA[dthenot]]></dc:creator><pubDate>Tue, 01 Jul 2025 14:52:44 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Mon, 30 Jun 2025 19:43:44 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/dthenot" aria-label="Profile: dthenot">@<bdi>dthenot</bdi></a> said in <a href="/forum/post/94541">XOSTOR hyperconvergence preview</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/gb.123" aria-label="Profile: gb.123">@<bdi>gb.123</bdi></a> Hello,<br />
The instruction in the first post are still the way to go <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
</blockquote>
<p dir="auto">I'm curious about that as well but the first post says that the installation script is only compatible with 8.2 and doesn't mention 8.3.  Is that still the case or is the installation script now compatible with 8.3 as well?  If not, is there an installation script that is compatible with 8.3?</p>
<p dir="auto">I know that using XO is the recommended method for installation but I'm interested in an installation script as I would like to try to integrate XOSTOR installation into an XCP-ng installation script I already have which runs via PXE boot.</p>
]]></description><link>https://xcp-ng.org/forum/post/94600</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/94600</guid><dc:creator><![CDATA[JeffBerntsen]]></dc:creator><pubDate>Mon, 30 Jun 2025 19:43:44 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Mon, 30 Jun 2025 09:43:28 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/gb.123" aria-label="Profile: gb.123">@<bdi>gb.123</bdi></a> Hello,<br />
The instruction in the first post are still the way to go <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>https://xcp-ng.org/forum/post/94541</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/94541</guid><dc:creator><![CDATA[dthenot]]></dc:creator><pubDate>Mon, 30 Jun 2025 09:43:28 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Sun, 29 Jun 2025 20:15:38 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/ronan-a" aria-label="Profile: ronan-a">@<bdi>ronan-a</bdi></a> <a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/dthenot" aria-label="Profile: dthenot">@<bdi>dthenot</bdi></a> <a class="plugin-mentions-group plugin-mentions-a" href="/forum/groups/team-storage" aria-label="Profile: Team-Storage">@<bdi>Team-Storage</bdi></a></p>
<p dir="auto">Guys, Can you please clarify which method to use for installing XOSTOR in XCP-ng 8.3 ?</p>
<p dir="auto">Simple :</p>
<pre><code>yum install xcp-ng-linstor
yum install xcp-ng-release-linstor
./install --disks /dev/nvme0n1 --thin
</code></pre>
<p dir="auto">Or the script in the first post ?<br />
Or Some other script ?</p>
]]></description><link>https://xcp-ng.org/forum/post/94534</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/94534</guid><dc:creator><![CDATA[gb.123]]></dc:creator><pubDate>Sun, 29 Jun 2025 20:15:38 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Thu, 26 Jun 2025 12:34:06 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/peter_webbird" aria-label="Profile: peter_webbird">@<bdi>peter_webbird</bdi></a> We've already had feedback on CBT and LINSTOR/DRBD, we don't necessarily recommend enabling it. We have a blocking dev card regarding a bug with LVM lvchange command that may fail on CBT volumes used by a XOSTOR SR. We also have other issues related to migration with CBT.</p>
]]></description><link>https://xcp-ng.org/forum/post/94436</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/94436</guid><dc:creator><![CDATA[ronan-a]]></dc:creator><pubDate>Thu, 26 Jun 2025 12:34:06 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Thu, 26 Jun 2025 06:02:58 GMT]]></title><description><![CDATA[<p dir="auto">Ping <a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/ronan-a" aria-label="Profile: ronan-a">@<bdi>ronan-a</bdi></a> or <a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/dthenot" aria-label="Profile: dthenot">@<bdi>dthenot</bdi></a></p>
]]></description><link>https://xcp-ng.org/forum/post/94412</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/94412</guid><dc:creator><![CDATA[olivierlambert]]></dc:creator><pubDate>Thu, 26 Jun 2025 06:02:58 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Thu, 26 Jun 2025 00:41:25 GMT]]></title><description><![CDATA[<p dir="auto">Is CBT meant to be supported on XOSTOR?</p>
<p dir="auto">I've been experimenting with XOSTOR recently, but upon testing a delta-backup, noticed this warning...<br />
<img src="/forum/assets/uploads/files/1750897658828-screenshot-2025-06-26-102656.png" alt="couldn't enable CBT" class=" img-fluid img-markdown" /></p>
<p dir="auto">The error message behind this is <code>SR_OPERATION_NOT_SUPPORTED</code> when calling <code>Async.VDI.enable_cbt</code>.</p>
<p dir="auto">Running <code>xe sr-param-list uuid={uuid}</code> shows the following:</p>
<pre><code>[~]# xe sr-param-list uuid={...}
    uuid ( RO) : {...}
    name-label ( RW): CD6
    name-description ( RW): Array of Kioxia CD6 U.2 drives, one in each Host.
    host ( RO): &lt;shared&gt;
    allowed-operations (SRO): unplug; plug; PBD.create; update; PBD.destroy; VDI.resize; VDI.clone; scan; VDI.snapshot; VDI.mirror; VDI.create; VDI.destroy
    {...etc}
    type ( RO): linstor
    content-type ( RO): user
    shared ( RW): true
    introduced-by ( RO): &lt;not in database&gt;
    is-tools-sr ( RO): false
    other-config (MRW): auto-scan: true
    sm-config (MRO):
    {...etc}
</code></pre>
<p dir="auto">Compared to another SR, the following allowed-operations are missing:</p>
<pre><code>VDI.enable_cbt;
VDI.list_changed_blocks;
VDI.disable_cbt;
VDI.data_destroy;
VDI.set_on_boot
</code></pre>
<p dir="auto">Is this the expected behaviour? Note that this is using XCP-ng 8.2 (I've yet to test out 8.3).</p>
]]></description><link>https://xcp-ng.org/forum/post/94407</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/94407</guid><dc:creator><![CDATA[peter_webbird]]></dc:creator><pubDate>Thu, 26 Jun 2025 00:41:25 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Thu, 19 Jun 2025 15:42:48 GMT]]></title><description><![CDATA[<p dir="auto">Ping <a class="plugin-mentions-group plugin-mentions-a" href="/forum/groups/team-storage" aria-label="Profile: Team-Storage">@<bdi>Team-Storage</bdi></a></p>
]]></description><link>https://xcp-ng.org/forum/post/94098</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/94098</guid><dc:creator><![CDATA[olivierlambert]]></dc:creator><pubDate>Thu, 19 Jun 2025 15:42:48 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Thu, 19 Jun 2025 15:24:05 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/olivierlambert" aria-label="Profile: olivierlambert">@<bdi>olivierlambert</bdi></a></p>
<p dir="auto">Since XOSTOR is now supported on XCP-ng 8.3 LTS, should we use the same script or some other method is required ?<br />
Can you remove the heading which states the script is only compatible with 8.2 ?</p>
]]></description><link>https://xcp-ng.org/forum/post/94097</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/94097</guid><dc:creator><![CDATA[gb.123]]></dc:creator><pubDate>Thu, 19 Jun 2025 15:24:05 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Mon, 18 Nov 2024 16:32:20 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/danp" aria-label="Profile: Danp">@<bdi>Danp</bdi></a> Success this this - thanks for the assist. <img src="https://xcp-ng.org/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=bbd7a2dd886" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /> Executed with great success:</p>
<pre><code class="language-bash">yum install xcp-ng-linstor
yum install xcp-ng-release-linstor
./install --disks /dev/nvme0n1 --thin
</code></pre>
]]></description><link>https://xcp-ng.org/forum/post/85956</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/85956</guid><dc:creator><![CDATA[BlueToast]]></dc:creator><pubDate>Mon, 18 Nov 2024 16:32:20 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Mon, 18 Nov 2024 13:05:06 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/forum/user/bluetoast" aria-label="Profile: BlueToast">@<bdi>BlueToast</bdi></a> This should be fixed now. Please retry the XOSTOR installation.</p>
]]></description><link>https://xcp-ng.org/forum/post/85943</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/85943</guid><dc:creator><![CDATA[Danp]]></dc:creator><pubDate>Mon, 18 Nov 2024 13:05:06 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Sun, 17 Nov 2024 23:03:32 GMT]]></title><description><![CDATA[<p dir="auto">Last week I stood up two XCP-ng hosts with LINSTOR without issue.</p>
<p dir="auto">This week I am standing up a third XCP-ng host and encounter a show stopping error when I try to install LINSTOR:</p>
<blockquote>
<p dir="auto">Error: Package: xcp-ng-linstor-1.1-3.xcpng8.2.noarch (xcp-ng-linstor)<br />
Requires: sm-linstor<br />
...<br />
Failed to install LINSTOR package: xcp-ng-linstor.</p>
</blockquote>
<p dir="auto">This third host is 100% identical in hardware to the first two hosts. Fresh from-scratch new install of XCP-ng. Here is an output of commands and their results on the third host:</p>
<pre><code class="language-bash">[21:35 bol-xcp3 ~]# wget https://gist.githubusercontent.com/Wescoeur/7bb568c0e09e796710b0ea966882fcac/raw/052b3dfff9c06b1765e51d8de72c90f2f90f475b/gistfile1.txt -O install &amp;&amp; chmod +x install
--2024-11-16 21:35:08--  https://gist.githubusercontent.com/Wescoeur/7bb568c0e09e796710b0ea966882fcac/raw/052b3dfff9c06b1765e51d8de72c90f2f90f475b/gistfile1.txt
Resolving gist.githubusercontent.com (gist.githubusercontent.com)... 185.199.111.133, 185.199.110.133, 185.199.109.133, ...
Connecting to gist.githubusercontent.com (gist.githubusercontent.com)|185.199.111.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3596 (3.5K) [text/plain]
Saving to: ‘install’

100%[=============================================================================&gt;] 3,596       --.-K/s   in 0s      

2024-11-16 21:35:08 (22.4 MB/s) - ‘install’ saved [3596/3596]

[21:35 bol-xcp3 ~]# ./install --disks /dev/nvme0n1 --thin
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Excluding mirror: updates.xcp-ng.org
 * xcp-ng-base: mirrors.xcp-ng.org
Excluding mirror: updates.xcp-ng.org
 * xcp-ng-updates: mirrors.xcp-ng.org
Resolving Dependencies
--&gt; Running transaction check
---&gt; Package xcp-ng-release-linstor.noarch 0:1.3-1.xcpng8.2 will be installed
--&gt; Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================
 Package                             Arch                Version                     Repository                   Size
=======================================================================================================================
Installing:
 xcp-ng-release-linstor              noarch              1.3-1.xcpng8.2              xcp-ng-updates              4.0 k

Transaction Summary
=======================================================================================================================
Install  1 Package

Total download size: 4.0 k
Installed size: 477  
Downloading packages:
xcp-ng-release-linstor-1.3-1.xcpng8.2.noarch.rpm                                                | 4.0 kB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : xcp-ng-release-linstor-1.3-1.xcpng8.2.noarch                                                        1/1 
  Verifying  : xcp-ng-release-linstor-1.3-1.xcpng8.2.noarch                                                        1/1 

Installed:
  xcp-ng-release-linstor.noarch 0:1.3-1.xcpng8.2                                                                       

Complete!
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Excluding mirror: updates.xcp-ng.org
 * xcp-ng-base: mirrors.xcp-ng.org
Excluding mirror: updates.xcp-ng.org
 * xcp-ng-updates: mirrors.xcp-ng.org
Resolving Dependencies
--&gt; Running transaction check
---&gt; Package xcp-ng-linstor.noarch 0:1.1-3.xcpng8.2 will be installed
--&gt; Processing Dependency: sm-linstor for package: xcp-ng-linstor-1.1-3.xcpng8.2.noarch
--&gt; Finished Dependency Resolution
Error: Package: xcp-ng-linstor-1.1-3.xcpng8.2.noarch (xcp-ng-linstor)
           Requires: sm-linstor
           Available: sm-2.30.8-2.1.0.linstor.4.xcpng8.2.x86_64 (xcp-ng-linstor)
               sm-linstor
           Available: sm-2.30.8-2.1.0.linstor.5.xcpng8.2.x86_64 (xcp-ng-linstor)
               sm-linstor
           Available: sm-2.30.8-2.1.0.linstor.6.xcpng8.2.x86_64 (xcp-ng-linstor)
               sm-linstor
           Available: sm-2.30.8-2.3.0.linstor.1.xcpng8.2.x86_64 (xcp-ng-linstor)
               sm-linstor
           Available: sm-2.30.8-2.3.0.linstor.2.xcpng8.2.x86_64 (xcp-ng-linstor)
               sm-linstor
           Available: sm-2.30.8-7.1.0.linstor.2.xcpng8.2.x86_64 (xcp-ng-linstor)
               sm-linstor
           Available: sm-2.30.8-10.1.0.linstor.1.xcpng8.2.x86_64 (xcp-ng-linstor)
               sm-linstor
           Available: sm-2.30.8-10.1.0.linstor.2.xcpng8.2.x86_64 (xcp-ng-linstor)
               sm-linstor
           Available: sm-2.30.8-10.1.0.linstor.3.xcpng8.2.x86_64 (xcp-ng-linstor)
               sm-linstor
           Available: sm-2.30.8-12.1.0.linstor.2.xcpng8.2.x86_64 (xcp-ng-linstor)
               sm-linstor
           Available: sm-2.30.8-12.1.0.linstor.3.xcpng8.2.x86_64 (xcp-ng-linstor)
               sm-linstor
           Available: sm-2.30.8-12.1.0.linstor.4.xcpng8.2.x86_64 (xcp-ng-linstor)
               sm-linstor
           Installed: sm-2.30.8-13.1.xcpng8.2.x86_64 (@xcp-ng-updates)
               Not found
           Available: sm-2.29.1-1.2.xcpng8.2.x86_64 (xcp-ng-base)
               Not found
           Available: sm-2.30.4-1.1.xcpng8.2.x86_64 (xcp-ng-updates)
               Not found
           Available: sm-2.30.4-1.1.0.linstor.8.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.6-1.1.xcpng8.2.x86_64 (xcp-ng-updates)
               Not found
           Available: sm-2.30.6-1.1.0.linstor.1.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.6-1.2.0.linstor.1.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.7-1.1.0.linstor.1.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.7-1.2.0.linstor.1.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.7-1.3.xcpng8.2.x86_64 (xcp-ng-updates)
               Not found
           Available: sm-2.30.7-1.3.0.linstor.1.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.7-1.3.0.linstor.2.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.7-1.3.0.linstor.3.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.7-1.3.0.linstor.7.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.7-1.3.0.linstor.8.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.8-2.1.xcpng8.2.x86_64 (xcp-ng-updates)
               Not found
           Available: sm-2.30.8-2.1.0.linstor.1.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.8-2.1.0.linstor.2.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.8-2.1.0.linstor.3.xcpng8.2.x86_64 (xcp-ng-linstor)
               Not found
           Available: sm-2.30.8-2.3.xcpng8.2.x86_64 (xcp-ng-updates)
               Not found
           Available: sm-2.30.8-7.1.xcpng8.2.x86_64 (xcp-ng-updates)
               Not found
           Available: sm-2.30.8-10.1.xcpng8.2.x86_64 (xcp-ng-updates)
               Not found
           Available: sm-2.30.8-12.1.xcpng8.2.x86_64 (xcp-ng-updates)
               Not found
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
Failed to install LINSTOR package: xcp-ng-linstor.
</code></pre>
<p dir="auto">It seems the sm* package(s) are missing ? I don't know what to do.</p>
<p dir="auto"><strong>Edit 2024-11-17 1702 CST:</strong> <code>yum install xcp-ng-release-linstor</code> indicates <code>xcp-ng-release-linstor</code> is already installed and latest version.</p>
<pre><code class="language-bash">[16:14 bol-xcp3 ~]# yum install xcp-ng-release-linstor
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Excluding mirror: updates.xcp-ng.org
 * xcp-ng-base: mirrors.xcp-ng.org
Excluding mirror: updates.xcp-ng.org
 * xcp-ng-updates: mirrors.xcp-ng.org
Package xcp-ng-release-linstor-1.3-1.xcpng8.2.noarch already installed and latest version
Nothing to do
</code></pre>
]]></description><link>https://xcp-ng.org/forum/post/85925</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/85925</guid><dc:creator><![CDATA[BlueToast]]></dc:creator><pubDate>Sun, 17 Nov 2024 23:03:32 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Fri, 01 Nov 2024 21:22:21 GMT]]></title><description><![CDATA[<p dir="auto">OK we have debugged and improved this process, so including it here if it helps anyone else.</p>
<p dir="auto">How to migrate resources between XOSTOR (linstor) clusters. This also works with piraeus-operator, which we use for k8s.</p>
<h1>Manually moving listor resource with thin_send_recv</h1>
<h2>Migration of data</h2>
<h5>Commands</h5>
<pre><code class="language-bash"># PV: pvc-6408a214-6def-44c4-8d9a-bebb67be5510
# S: pgdata-snapshot
# s: 10741612544B

#get size
lvs --noheadings --units B -o lv_size linstor_group/pvc-6408a214-6def-44c4-8d9a-bebb67be5510_00000

#prep
lvcreate -V 10741612544B --thinpool linstor_group/thin_device -n pvc-6408a214-6def-44c4-8d9a-bebb67be5510_00000 linstor_group

#create snapshot
linstor --controller original-xostor-server s create pvc-6408a214-6def-44c4-8d9a-bebb67be5510  pgdata-snapshot

#send
thin_send linstor_group/pvc-6408a214-6def-44c4-8d9a-bebb67be5510_00000_pgdata-snapshot 2&gt;/dev/null | ssh root@new-xostor-server-01 thin_recv linstor_group/pvc-6408a214-6def-44c4-8d9a-bebb67be5510_00000 2&gt;/dev/null
</code></pre>
<h5>Walk-through</h5>
<p dir="auto">Prep migration</p>
<pre><code class="language-bash">[13:29 original-xostor-server ~]# lvs --noheadings --units B -o lv_size linstor_group/pvc-12aca72c-d94a-4c09-8102-0a6646906f8d_00000
  26851934208B


[13:53 new-xostor-server-01 ~]# lvcreate -V 26851934208B --thinpool linstor_group/thin_device -n pvc-12aca72c-d94a-4c09-8102-0a6646906f8d_00000 linstor_group
  Logical volume "pvc-12aca72c-d94a-4c09-8102-0a6646906f8d_00000" created.

</code></pre>
<p dir="auto">Create snapshot</p>
<pre><code class="language-bash">15:35:03] jonathon@jonathon-framework:~$ linstor --controller original-xostor-server s create pvc-12aca72c-d94a-4c09-8102-0a6646906f8d s_test
SUCCESS:
Description:
    New snapshot 's_test' of resource 'pvc-12aca72c-d94a-4c09-8102-0a6646906f8d' registered.
Details:
    Snapshot 's_test' of resource 'pvc-12aca72c-d94a-4c09-8102-0a6646906f8d' UUID is: 3a07d2fd-6dc3-4994-b13f-8c3a2bb206b8
SUCCESS:
    Suspended IO of '[pvc-12aca72c-d94a-4c09-8102-0a6646906f8d]' on 'ovbh-vprod-k8s04-worker02' for snapshot
SUCCESS:
    Suspended IO of '[pvc-12aca72c-d94a-4c09-8102-0a6646906f8d]' on 'original-xostor-server' for snapshot
SUCCESS:
    Took snapshot of '[pvc-12aca72c-d94a-4c09-8102-0a6646906f8d]' on 'ovbh-vprod-k8s04-worker02'
SUCCESS:
    Took snapshot of '[pvc-12aca72c-d94a-4c09-8102-0a6646906f8d]' on 'original-xostor-server'
SUCCESS:
    Resumed IO of '[pvc-12aca72c-d94a-4c09-8102-0a6646906f8d]' on 'ovbh-vprod-k8s04-worker02' after snapshot
SUCCESS:
    Resumed IO of '[pvc-12aca72c-d94a-4c09-8102-0a6646906f8d]' on 'original-xostor-server' after snapshot
</code></pre>
<p dir="auto">Migration</p>
<p dir="auto"><code>[13:53 original-xostor-server ~]# thin_send /dev/linstor_group/pvc-12aca72c-d94a-4c09-8102-0a6646906f8d_00000_s_test 2&gt;/dev/null | ssh root@new-xostor-server-01 thin_recv linstor_group/pvc-12aca72c-d94a-4c09-8102-0a6646906f8d_00000 2&gt;/dev/null</code></p>
<p dir="auto">Need to yeet errors on both ends of command or it will fail.</p>
<p dir="auto">This is the same setup process for replica-1 or replica-3. For replica-3 can target new-xostor-server-01 each time, for replica-1 be sure to spread them out right.</p>
<h2>Replica-3 Setup</h2>
<h5>Explanation</h5>
<p dir="auto"><code>thin_send</code> to new-xostor-server-01, will need to run commands to force sync of data to replicas.</p>
<h5>Commands</h5>
<pre><code class="language-bash"># PV: pvc-96cbebbe-f827-4a47-ae95-38b078e0d584
# snapshot: snipeit-snapshot
# size: 21483225088B

#get size
lvs --noheadings --units B -o lv_size linstor_group/pvc-96cbebbe-f827-4a47-ae95-38b078e0d584_00000

#prep
lvcreate -V 21483225088B --thinpool linstor_group/thin_device -n pvc-96cbebbe-f827-4a47-ae95-38b078e0d584_00000 linstor_group

#create snapshot
linstor --controller original-xostor-server s create pvc-96cbebbe-f827-4a47-ae95-38b078e0d584 snipeit-snapshot
linstor --controller original-xostor-server s l | grep -e 'snipeit-snapshot'

#send
thin_send linstor_group/pvc-96cbebbe-f827-4a47-ae95-38b078e0d584_00000_snipeit-snapshot 2&gt;/dev/null | ssh root@new-xostor-server-01 thin_recv linstor_group/pvc-96cbebbe-f827-4a47-ae95-38b078e0d584_00000 2&gt;/dev/null

#linstor setup
linstor --controller new-xostor-server-01 resource-definition create pvc-96cbebbe-f827-4a47-ae95-38b078e0d584 --resource-group sc-74e1434b-b435-587e-9dea-fa067deec898
linstor --controller new-xostor-server-01 volume-definition create pvc-96cbebbe-f827-4a47-ae95-38b078e0d584 21483225088B --storage-pool xcp-sr-linstor_group_thin_device

linstor --controller new-xostor-server-01 resource create --storage-pool xcp-sr-linstor_group_thin_device --providers LVM_THIN new-xostor-server-01 pvc-96cbebbe-f827-4a47-ae95-38b078e0d584
linstor --controller new-xostor-server-01 resource create --auto-place +1 pvc-96cbebbe-f827-4a47-ae95-38b078e0d584

#Run the following on the node with the data. This is the prefered command
drbdadm invalidate-remote pvc-96cbebbe-f827-4a47-ae95-38b078e0d584
#Run the following on the node without the data. This is just for reference
drbdadm invalidate pvc-96cbebbe-f827-4a47-ae95-38b078e0d584

linstor --controller new-xostor-server-01 r l | grep -e 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584'
</code></pre>
<pre><code class="language-yaml">---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pvc-96cbebbe-f827-4a47-ae95-38b078e0d584
  annotations:
    pv.kubernetes.io/provisioned-by: linstor.csi.linbit.com
  finalizers:
    - external-provisioner.volume.kubernetes.io/finalizer
    - kubernetes.io/pv-protection
    - external-attacher/linstor-csi-linbit-com
spec:
  accessModes:
    - ReadWriteOnce
  capacity:
    storage: 20Gi # Ensure this matches the actual size of the LINSTOR volume
  persistentVolumeReclaimPolicy: Retain
  storageClassName: linstor-replica-three # Adjust to the storage class you want to use
  volumeMode: Filesystem
  csi:
    driver: linstor.csi.linbit.com
    fsType: ext4
    volumeHandle: pvc-96cbebbe-f827-4a47-ae95-38b078e0d584
    volumeAttributes:
      linstor.csi.linbit.com/mount-options: ''
      linstor.csi.linbit.com/post-mount-xfs-opts: ''
      linstor.csi.linbit.com/uses-volume-context: 'true'
      linstor.csi.linbit.com/remote-access-policy: 'true'
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: 'yes'
    pv.kubernetes.io/bound-by-controller: 'yes'
    volume.beta.kubernetes.io/storage-provisioner: linstor.csi.linbit.com
    volume.kubernetes.io/storage-provisioner: linstor.csi.linbit.com
  finalizers:
    - kubernetes.io/pvc-protection
  name: pp-snipeit-pvc
  namespace: snipe-it
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  storageClassName: linstor-replica-three
  volumeMode: Filesystem
  volumeName: pvc-96cbebbe-f827-4a47-ae95-38b078e0d584
</code></pre>
<h5>Walk-through</h5>
<pre><code class="language-bash">jonathon@jonathon-framework:~$ linstor --controller new-xostor-server-01 resource-definition create pvc-96cbebbe-f827-4a47-ae95-38b078e0d584 --resource-group sc-74e1434b-b435-587e-9dea-fa067deec898
SUCCESS:
Description:
    New resource definition 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' created.
Details:
    Resource definition 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' UUID is: 772692e2-3fca-4069-92e9-2bef22c68a6f
jonathon@jonathon-framework:~$ linstor --controller new-xostor-server-01 volume-definition create pvc-96cbebbe-f827-4a47-ae95-38b078e0d584 21483225088B --storage-pool xcp-sr-linstor_group_thin_device
SUCCESS:
    Successfully set property key(s): StorPoolName
SUCCESS:
    New volume definition with number '0' of resource definition 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' created.
jonathon@jonathon-framework:~$ linstor --controller new-xostor-server-01 resource create --storage-pool xcp-sr-linstor_group_thin_device --providers LVM_THIN new-xostor-server-01 pvc-96cbebbe-f827-4a47-ae95-38b078e0d584
SUCCESS:
    Successfully set property key(s): StorPoolName
INFO:
    Updated pvc-96cbebbe-f827-4a47-ae95-38b078e0d584 DRBD auto verify algorithm to 'crct10dif-pclmul'
SUCCESS:
Description:
    New resource 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' on node 'new-xostor-server-01' registered.
Details:
    Resource 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' on node 'new-xostor-server-01' UUID is: 3072aaae-4a34-453e-bdc6-facb47809b3d
SUCCESS:
Description:
    Volume with number '0' on resource 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' on node 'new-xostor-server-01' successfully registered
Details:
    Volume UUID is: 52b11ef6-ec50-42fb-8710-1d3f8c15c657
SUCCESS:
    Created resource 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' on 'new-xostor-server-01'
jonathon@jonathon-framework:~$ linstor --controller new-xostor-server-01 resource create --auto-place +1 pvc-96cbebbe-f827-4a47-ae95-38b078e0d584
SUCCESS:
    Successfully set property key(s): StorPoolName
SUCCESS:
    Successfully set property key(s): StorPoolName
SUCCESS:
Description:
    Resource 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' successfully autoplaced on 2 nodes
Details:
    Used nodes (storage pool name): 'new-xostor-server-02 (xcp-sr-linstor_group_thin_device)', 'new-xostor-server-03 (xcp-sr-linstor_group_thin_device)'
INFO:
    Resource-definition property 'DrbdOptions/Resource/quorum' updated from 'off' to 'majority' by auto-quorum
INFO:
    Resource-definition property 'DrbdOptions/Resource/on-no-quorum' updated from 'off' to 'suspend-io' by auto-quorum
SUCCESS:
    Added peer(s) 'new-xostor-server-02', 'new-xostor-server-03' to resource 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' on 'new-xostor-server-01'
SUCCESS:
    Created resource 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' on 'new-xostor-server-02'
SUCCESS:
    Created resource 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' on 'new-xostor-server-03'
SUCCESS:
Description:
    Resource 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' on 'new-xostor-server-03' ready
Details:
    Auto-placing resource: pvc-96cbebbe-f827-4a47-ae95-38b078e0d584
SUCCESS:
Description:
    Resource 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584' on 'new-xostor-server-02' ready
Details:
    Auto-placing resource: pvc-96cbebbe-f827-4a47-ae95-38b078e0d584

</code></pre>
<p dir="auto">At this point</p>
<pre><code class="language-bash">jonathon@jonathon-framework:~$ linstor --controller new-xostor-server-01 v l | grep -e 'pvc-96cbebbe-f827-4a47-ae95-38b078e0d584'
| new-xostor-server-01                         | pvc-96cbebbe-f827-4a47-ae95-38b078e0d584        | xcp-sr-linstor_group_thin_device |     0 |    1032 | /dev/drbd1032 |   9.20 GiB | Unused | UpToDate |
| new-xostor-server-02                         | pvc-96cbebbe-f827-4a47-ae95-38b078e0d584        | xcp-sr-linstor_group_thin_device |     0 |    1032 | /dev/drbd1032 | 112.73 MiB | Unused | UpToDate |
| new-xostor-server-03                         | pvc-96cbebbe-f827-4a47-ae95-38b078e0d584        | xcp-sr-linstor_group_thin_device |     0 |    1032 | /dev/drbd1032 | 112.73 MiB | Unused | UpToDate |

</code></pre>
<p dir="auto">To force the sync, run the following command on the node with the data</p>
<p dir="auto"><code>drbdadm invalidate-remote pvc-96cbebbe-f827-4a47-ae95-38b078e0d584</code></p>
<p dir="auto">This will kick it to get the data re-synced.</p>
<pre><code class="language-bash">[14:51 new-xostor-server-01 ~]# drbdadm invalidate-remote pvc-96cbebbe-f827-4a47-ae95-38b078e0d584
[14:51 new-xostor-server-01 ~]# drbdadm status pvc-96cbebbe-f827-4a47-ae95-38b078e0d584
pvc-96cbebbe-f827-4a47-ae95-38b078e0d584 role:Secondary
  disk:UpToDate
  new-xostor-server-02 role:Secondary
    replication:SyncSource peer-disk:Inconsistent done:1.14
  new-xostor-server-03 role:Secondary
    replication:SyncSource peer-disk:Inconsistent done:1.18

[14:51 new-xostor-server-01 ~]# drbdadm status pvc-96cbebbe-f827-4a47-ae95-38b078e0d584
pvc-96cbebbe-f827-4a47-ae95-38b078e0d584 role:Secondary
  disk:UpToDate
  new-xostor-server-02 role:Secondary
    peer-disk:UpToDate
  new-xostor-server-03 role:Secondary
    peer-disk:UpToDate
</code></pre>
<p dir="auto">See: <a href="https://github.com/LINBIT/linstor-server/issues/389" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/LINBIT/linstor-server/issues/389</a></p>
<h2>Replica-1setup</h2>
<pre><code class="language-bash"># PV: pvc-6408a214-6def-44c4-8d9a-bebb67be5510
# S: pgdata-snapshot
# s: 10741612544B

#get size
lvs --noheadings --units B -o lv_size linstor_group/pvc-6408a214-6def-44c4-8d9a-bebb67be5510_00000

#prep
lvcreate -V 10741612544B --thinpool linstor_group/thin_device -n pvc-6408a214-6def-44c4-8d9a-bebb67be5510_00000 linstor_group

#create snapshot
linstor --controller original-xostor-server s create pvc-6408a214-6def-44c4-8d9a-bebb67be5510  pgdata-snapshot

#send
thin_send linstor_group/pvc-6408a214-6def-44c4-8d9a-bebb67be5510_00000_pgdata-snapshot 2&gt;/dev/null | ssh root@new-xostor-server-01 thin_recv linstor_group/pvc-6408a214-6def-44c4-8d9a-bebb67be5510_00000 2&gt;/dev/null

# 1
linstor --controller new-xostor-server-01 resource-definition create pvc-6408a214-6def-44c4-8d9a-bebb67be5510  --resource-group sc-b066e430-6206-5588-a490-cc91ecef53d6
linstor --controller new-xostor-server-01 volume-definition create pvc-6408a214-6def-44c4-8d9a-bebb67be5510  10741612544B --storage-pool xcp-sr-linstor_group_thin_device
linstor --controller new-xostor-server-01 resource create new-xostor-server-01 pvc-6408a214-6def-44c4-8d9a-bebb67be5510 

</code></pre>
<pre><code class="language-yaml">---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pvc-6408a214-6def-44c4-8d9a-bebb67be5510
  annotations:
    pv.kubernetes.io/provisioned-by: linstor.csi.linbit.com
  finalizers:
    - external-provisioner.volume.kubernetes.io/finalizer
    - kubernetes.io/pv-protection
    - external-attacher/linstor-csi-linbit-com
spec:
  accessModes:
    - ReadWriteOnce
  capacity:
    storage: 10Gi # Ensure this matches the actual size of the LINSTOR volume
  persistentVolumeReclaimPolicy: Retain
  storageClassName: linstor-replica-one-local # Adjust to the storage class you want to use
  volumeMode: Filesystem
  csi:
    driver: linstor.csi.linbit.com
    fsType: ext4
    volumeHandle: pvc-6408a214-6def-44c4-8d9a-bebb67be5510
    volumeAttributes:
      linstor.csi.linbit.com/mount-options: ''
      linstor.csi.linbit.com/post-mount-xfs-opts: ''
      linstor.csi.linbit.com/uses-volume-context: 'true'
      linstor.csi.linbit.com/remote-access-policy: |
        - fromSame:
            - xcp-ng/node
  nodeAffinity:
    required:
      nodeSelectorTerms:
        - matchExpressions:
            - key: xcp-ng/node
              operator: In
              values:
                - new-xostor-server-01
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: 'yes'
    pv.kubernetes.io/bound-by-controller: 'yes'
    volume.beta.kubernetes.io/storage-provisioner: linstor.csi.linbit.com
    volume.kubernetes.io/selected-node: ovbh-vtest-k8s01-worker01
    volume.kubernetes.io/storage-provisioner: linstor.csi.linbit.com
  finalizers:
    - kubernetes.io/pvc-protection
  name: acid-merch-2
  namespace: default
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: linstor-replica-one-local
  volumeMode: Filesystem
  volumeName: pvc-6408a214-6def-44c4-8d9a-bebb67be5510
</code></pre>
<div class="row github-embeds-container">

<div class="col-md-6">
<div class="github-embed card">
<div class="card-body">

<div class="meta">
<img class="author-picture not-responsive" src="https://avatars.githubusercontent.com/u/3714094?v=4" title="0sorkon" />
<a href="https://github.com/0sorkon"><span class="username">0sorkon</span></a> created this issue <span class="timeago" title="2024-02-15T09:24:59Z"></span> in <a href="//github.com/LINBIT/linstor-server">LINBIT/linstor-server</a>
</div>
<h3>
<span class="badge open float-end">open</span>
<a href="https://github.com/LINBIT/linstor-server/issues/389">Incorrect replica size after resource-definition auto-place</a>
<span class="number">#389</span>
</h3>



</div>
</div>
</div>

</div>]]></description><link>https://xcp-ng.org/forum/post/85280</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/85280</guid><dc:creator><![CDATA[Jonathon]]></dc:creator><pubDate>Fri, 01 Nov 2024 21:22:21 GMT</pubDate></item><item><title><![CDATA[Reply to XOSTOR hyperconvergence preview on Tue, 29 Oct 2024 12:08:49 GMT]]></title><description><![CDATA[<p dir="auto">The typical hypervisor node was provisioned with at least 4 network ports, but most had 8 to allow trunking/resilience for every connection:</p>
<p dir="auto">Management + live migration (Isolated)<br />
World (Trunk)<br />
iSCSI-A<br />
iSCSI-B</p>
<p dir="auto">The DotHills were 4 ports per controller, and the two controllers were configured as:</p>
<p dir="auto">Management<br />
iSCSI-A<br />
iSCSI-B<br />
Spare</p>
<p dir="auto">The iSCSI-A and iSCSI-B were simple web-managed procurves with 24 ports each.</p>
<p dir="auto">We had this scaled to 12 hypervisor nodes in 3 pools, all running off the same underlying dothill (dual redundant controller) hardware.  We had provisioned some local SSD storage in each hypervisor for any nodes that were struggling for IOPs but ultimately never needed that.</p>
]]></description><link>https://xcp-ng.org/forum/post/85018</link><guid isPermaLink="true">https://xcp-ng.org/forum/post/85018</guid><dc:creator><![CDATA[Mark C]]></dc:creator><pubDate>Tue, 29 Oct 2024 12:08:49 GMT</pubDate></item></channel></rss>