cluster mirrors were hanging when renamed. The reason turned out to be that the mirror constructor was called for the newly renamed volume before the destructor was called on the original volume. This caused two copies of the exact same instance to be loaded in the kernel at the same time. (The cluster mirror logging code was not able to handle this at the time.) Further investigation revealed the following warnings being printed from clvmd: lvm[4498]: WARNING: dev_open(/dev/sdb) called while suspended lvm[4498]: WARNING: dev_open(/dev/sdc) called while suspended lvm[4498]: WARNING: dev_open(/dev/sdd) called while suspended lvm[4498]: WARNING: dev_open(/dev/sdb) called while suspended lvm[4498]: WARNING: dev_open(/dev/sda) called while suspended lvm[4498]: WARNING: dev_open(/dev/sdc) called while suspended lvm[4498]: WARNING: dev_open(/dev/sdd) called while suspended lvm[4498]: WARNING: dev_open(/dev/sdc) called while suspended lvm[4498]: WARNING: dev_open(/dev/sda) called while suspended lvm[4498]: WARNING: dev_open(/dev/sdb) called while suspended lvm[4498]: WARNING: dev_open(/dev/sdd) called while suspended lvm[4498]: WARNING: dev_open(/dev/sdd) called while suspended lvm[4498]: WARNING: dev_open(/dev/sda) called while suspended lvm[4498]: WARNING: dev_open(/dev/sdb) called while suspended lvm[4498]: WARNING: dev_open(/dev/sdc) called while suspended I am using the very latest in CVS for both dm and LVM2. We should not be scanning while devices are suspended. I'm attaching traces for the lvrename command and clvmd (note: the last command processed in the clvmd output is the lvrename)
Created attachment 131357 [details] lvrename output
Created attachment 131358 [details] clvmd output
mirror renames (both single-host and clustered) are not yet supported as they are non-trivial. The latest code enforces this. Do you want to leave this open as a feature request for the ability to rename mirrors?
I think at some point we'll want to rename, but this bug can be closed, as I'm sure we'll have to address this issue as part of that implementation.