Skip to content

Add upgrade documentation for XOSTOR #319

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

Wescoeur
Copy link
Member

Before submitting the pull request, you must agree with the following statements by checking both boxes with a 'x'.

  • "I accept that my contribution is placed under the CC BY-SA 2.0 license [1]."
  • "My contribution complies with the Developer Certificate of Origin [2]."

[1] https://creativecommons.org/licenses/by-sa/2.0/
[2] https://docs.xcp-ng.org/project/contributing/#developer-certificate-of-origin-dco

Copy link
Member

@stormi stormi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if the linstor and satellite versions are not the same in 8.2 and 8.3 when they proceed with the upgrade? Will it work?

The document doesn't talk about live migrating the VMs. Is it because it "just works" so there's no need to focus on it?


Then finally open the ports and enable the LINSTOR services using the `<GROUP_NAME>` and `<HOST_UUID>` obtained above:
```
xe host-call-plugin host-uuid=<HOST_UUID> plugin=linstor-manager fn=addHost args:groupName=<GROUP_NAME>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it wise to wait a little after the toolstack restart, or maybe to grep the logs for the line which indicates that startup has completed?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say that waiting for the previous command to return is enough to use the plugins API.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't that the job of xapi-wait-init-complete?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At first sight it would look like a better idea to get the installer to install the extra packages with the rest of the system, rather than doing that after installation, so:

  • the rpm can be obtained from the same repo as the rest of the system
  • no need to mess with a XAPI restart

Or is there any problem with this? Making sure we have a properly-compatible linstor version?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see a problem with that. In this case, we can wait for XAPI to start, and then calling the plugin is enough.
We just need to be sure to have installed in 8.3 the same RPMs of LINSTOR controller/satellite as the hosts in 8.2.

linstor advise r # Give possible fix commands in case of problems.
```

Finally check in XOA that the PBD of the SR of this host is connected. If not, do so.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why can it be not connected?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can't plug the PBD without the LINSTOR packages (before this point it was not the case), so I guess most of the time you have to manually connect the PBD unless the XAPI tries again on its own, which to my knowledge is not the case.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this won't be necessary if the installer takes care of the packages before we reboot, right?
What will be left then?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You must be sure to execute addHost before the initial PBD plug. Otherwise, the master will not be able to plug in properly (as a reminder, each SR during the master PBD attach calls runs a scan).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You must be sure to execute addHost before the initial PBD plug

Oh, that's somewhat "persisting a linstor state", right?

@Wescoeur Wescoeur force-pushed the xostor-upgrade branch 2 times, most recently from 662ee0e to be88424 Compare February 17, 2025 22:07
@Wescoeur
Copy link
Member Author

What if the linstor and satellite versions are not the same in 8.2 and 8.3 when they proceed with the upgrade? Will it work?

If the LINSTOR packages are newer on the new XCP-ng version, it won't work. I honestly have no idea how to handle this case without waiting several months before updating the LINSTOR packages in our repos to not break the migration.

The document doesn't talk about live migrating the VMs. Is it because it "just works" so there's no need to focus on it?

No issue on this side. We can handle that like a classic upgrade.

@Nambrok
Copy link
Contributor

Nambrok commented Feb 26, 2025

To handle upgrade with different versions on 8.2 to 8.3:
Installer detect XOSTOR version and write on disk in /etc/firstboot.d/.
firstboot script use this file to identify the correct version of linstor-satellite/controller on 8.3 to install to maintain VERSION compatibility.
Installer need to write a warning about needing internet access to repo.vates.tech to fetch the linstor package of the correct version. If they are airgap, they need to follow documentation.
TODO: What do we do if install fail?

## Upgrade

If you are reading this documentation, we assume that you want to upgrade a pool on which XOSTOR is deployed, i.e. change the version of XCP-ng, for example from 8.2 to 8.3.
For updates that don't change the version numbers (bugfixes, security fixes), see [the update section](#update).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"updates that don't change the version numbers" is a strange concept, this might need rewording

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"updates that don't change the version number of XCP-ng" ?

linstor adv r
```

### 2. Information to retrieve before upgrading
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to keep this section once we have an ISO that makes the process simpler?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants