Skip to content
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

Feature: Possibility for rename resources, snapshots and storage pools #44

Open
kvaps opened this issue Dec 26, 2018 · 7 comments
Open
Labels
enhancement New feature or request

Comments

@kvaps
Copy link

kvaps commented Dec 26, 2018

According #17 I've used two different storage pools and call auto-placing command two times, for place data on two different racks.

But few time ago there was released linstor CSI plugin which allows to set AUX properties: ReplicasOnSame and ReplicasOnDifferent, what made my setup not so optimal as just using AUX properties.

I need to rename my current storage pools for allow using same pool name but with differnet aux properties.

@kvaps kvaps changed the title Feature: Posibility for rename storage pools Feature: Possibility for rename storage pools Dec 26, 2018
@ghernadi
Copy link
Contributor

ghernadi commented Jan 7, 2019

Currently Linstor does not support any kind of renaming action.

If you really have to do this, you have two options:

  • NOT RECOMMENDED: you do it manually by editing the database (NOT recommended, as you have to be very careful to update all references to the changed name)
  • a bit "more" recommended: delete your current database (or perform "lostNode" commands for the affected nodes) and recreate using migration everything with the new storage pool names.

Note: we do have internal discussions if and how we could provide renaming actions. That means this situation might be easier to resolve in (far) future.

@kvaps kvaps changed the title Feature: Possibility for rename storage pools Feature: Possibility for rename resources, snapshots and storage pools May 23, 2019
@rp- rp- added the enhancement New feature or request label Aug 9, 2019
@kvaps
Copy link
Author

kvaps commented Apr 24, 2020

Just mention that resource-groups also needs this feature

@raltnoeder
Copy link
Member

Renaming resources is virtually impossible, first due to internal constraints in LINSTOR (it would have to keep both resource names until the resource was successfully renamed everywhere, but the data structures and the database constraints do not allow holding incomplete or invalid values), and what's even more important is that LINSTOR is managing external resources, like LVM, ZFS, DRBD, etc., and neither the operating system nor DRBD or any of the other components around it are properly designed to support on-the-fly renaming of devices.

@volkerjaenisch
Copy link

@raltnoeder
So this looks like a piece of not well designed software to me. Renaming of resources is not a brand new feature, but an really old issue. In DB terms no one would use the name of a resource to reference it. You would use a kind of primary key to share the resource it with other entities. So that you can easily rename the resource.
In my case I do not use LVM and ZFS. So in the end it comes down to linstore and drbd which are both from the same company.
And at least these two bits of software could be improved for renaming resources.
Cheers,
Volker

@raltnoeder
Copy link
Member

raltnoeder commented May 20, 2021

I designed the software (LINSTOR), and the main priority when the project was started in 2016 was better reliability and maintainability, because the typical use case for DRBD is for higher availability. Availability is a function of the time it takes to resolve an outage, or to perform maintenance on a system. Complexity is the natural enemy of administrators as well as software developers, and that includes data that is full of surrogate keys consisting of meaningless numbers and letters.
DRBD did not have the ability to rename resources back then, and this functionality was only added very recently, and even now is not without corner-cases and limitations (and also limited to the local node, it can't rename across the entire cluster in a transaction). For example, resources are associated with various paths in the Linux filesystem, e.g. in /dev, but also in /sys, and those paths can not be changed while any process is accessing them.
If you think that's not well-designed, then yes, maybe it isn't, but the reason for that is not the way data is stored in the database (that would just be a simple update statement either way), but the fact that the entire environment around LINSTOR isn't well-designed. We are trying to build a cluster-wide transaction-safe storage automation system on top of an operating system and user environment that does not even provide node-local transaction-safety and is full of corner-cases, potential failure modes, undocumented failure modes, race conditions and similar problems. Linstor contains tens of thousands of lines of code just to deal with reacting to and correcting those problems. And this is the main reason why we can't just add a feature that makes a cluster-wide change in a day and 50 lines of code.

@volkerjaenisch
Copy link

volkerjaenisch commented May 20, 2021 via email

@raltnoeder
Copy link
Member

The strong coupling between resource names in LINSTOR, DRBD and the backing volumes exists for maintainability. Most administrators are already overwhelmed with using the system as it is, and it seems that most people don't read the manual. Now imagine an administrator trying to fix 900 resources on a system where he or she has to deal with at least 3 different names for the different layers of the storage system - LINSTOR, DRBD, backing storage - trying to figure out which DRBD resource belongs to which LINSTOR resource and why it doesn't attach to the backing storage that has yet another name. Whenever that happens, it's simply a downtime multiplier.
There also did not seem to be a reason to rename resources as a part of daily business - after all, DRBD did not have the ability to rename resources at runtime for more than 15 years, and apparently, noone was missing that feature. In the few cases where a major change to infrastructure would suggest renaming a resource to reflect the change, a manual intervention would have seemed sufficient. If lots of resources need to be renamed all the time as a part of daily business, that's quite certainly the result of bad planning.

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

No branches or pull requests

5 participants