On 26.03.2020 20:50, Daniel P. Berrangé wrote: > On Fri, Feb 28, 2020 at 10:09:41AM +0300, Nikolay Shirokovskiy wrote: >> On 27.02.2020 16:48, Daniel P. Berrangé wrote: >>> On Thu, Feb 27, 2020 at 03:57:04PM +0300, Nikolay Shirokovskiy wrote: >>>> Hi, everyone. >>>> >>>> I'm working on supporting domain renaming when it has snapshots which is not >>>> supported now. And it strikes me things will be much simplier to manage on >>>> renaming if we use uuid in filenames instead of domain names. >>>> > > > >>>> 4. No issues with long domain names and filename length limit >>>> >>>> If the above conversion makes sense I guess the good time to apply it is >>>> on domain start (and rename to support renaming with snapshots). >>> >>> The above has not considered the benefit that using the VM name >>> has. Essentially the UUID is good for machines, the VM name is >>> good for humans. Seeing the guest XML files, or VM log files >>> using a filename based on UUID instead of name is a *really* >>> unappealing idea to me. >> >> I agree. But we can also keep symlinks with domain names for configs/logs etc >> This can be done as a separate tool as I suggested in the letter or maintain >> symlinks always. The idea is failing in this symlinking won't affect daemon >> functionality as symlinks are for humans) > > I've just realized that there is potential overlap between what we're > discussing in this thread, and in the thread about localhost migration: > > https://www.redhat.com/archives/libvir-list/2020-February/msg00061.html > > In the localhost migration case, we need to be able to startup a new > guest with the same name as an existing guest. The way we can achieve > that is by thinking of localhost migration as being a pair of domain > rename operations. > > ie, consider guest "foo" we want to localhost-migrate > > - Start target guest "foo-incoming" > - Run live migration from "foo" -> "foo-incoming" > - Migration completes, CPUs stop > - Rename "foo" to "foo-outgoing" > - Rename "foo-incoming" to "foo" > - Tidy up migration state > - Destroy source guest "foo-outgoing" I think local migration does not fit really nicely in this scheme: - one can not treat outgoing and incoming VMs as just regular VMs as one can not put them into same list as they have same UUID - it is not just mere rename. In example reflected in [1] the path given by mgmt is not subjected to rename operation. The switch has to be done by local migration specific code. [1] https://www.redhat.com/archives/libvir-list/2020-February/msg01026.html > > > In both this thread and the localhost migration thread, we seem to have > come towards a view that symlinks are the only viable way to deal with > the naming problem for resources on disk that are based on VM name. > > IOW, it would be desirable if whatever solution we take for symlink mgmt > will solve the localhost migration and domain rename problems at the same > time. Agree, symlinks approach itself seems to work well in both cases. We can use naming scheme like UUID-gen for "stable" paths to fit both rename and local migration cases. Gen here is for generation, like 1 for domain after first local migration, 2 after second and so on. I already has a pending patch series [2] to remove some limitation on renaming. Can I treat this letter as some agreement that it is useful to move current paths naming towards "uuid based real path" + "name based symlinks" approach? [2] https://www.redhat.com/archives/libvir-list/2020-March/msg00018.html Nikolay