Dear Guy, thanks for your answer. I came exactly to the same solution after i failed to get the build environment running. My first try was to change the "lvchange" params in the storage driver from "-aln" to "-asn" to get the volumes mounted in shared mode. But this idea was not good anyway because it can lead to data corruption if two domains mount the volume r/w. Then i disabled the autostart of the storage pools and wrote a qemu python hook to activate and deactivate the volumes on prepare and release. It is a quick fix for now but if anyone is interested...find the hook code below... Regards, Timm ----------------------------- #!/usr/bin/python3 # # Libvirt hook for qemu. # # This hook prepares and releases domain LVM volumes in shared LVM volume group # import logging from logging.handlers import SysLogHandler import subprocess import sys import xml.etree.ElementTree as etree # name of the shared volume group # if this string is part of the # domain disk source device path, # the disk will be activated shared_vg = 'vmgroup1' LOG = logging.getLogger(__file__) LOG.setLevel(logging.DEBUG) handler = SysLogHandler(address = '/dev/log') formatter = logging.Formatter('libvirt-hook: %(levelname)s: %(message)s') handler.setFormatter(formatter) LOG.addHandler(handler) def find_disks(args): root = etree.fromstring(args) disk_nodes = root.findall(".//disk[@device='disk']") disks = [] for disk_node in disk_nodes: if disk_node.attrib.get('type') == 'block': disk = disk_node.find('./source') # get device path lv_path = disk.attrib['dev'] if shared_vg in lv_path: # append path without /dev/ disks.append(lv_path[5:]) return disks def main(): if len(sys.argv) < 3: LOG.debug("Nothing to do: too few arguments") sys.exit() domain = sys.argv[1] action = sys.argv[2] if action == 'prepare': LOG.debug("Preparing {}...".format(domain)) xml = sys.stdin.read() for disk in find_disks(xml): LOG.debug("Trying to activate LV: {}...".format(disk)) try: subprocess.check_call(['lvchange','-ay', disk]) except subprocess.CalledProcessError as e: LOG.exception("Unable to activate LVM volume {} for {}".format(lv_path, domain)) LOG.error("Output: %s", e.output) LOG.debug("Successfully prepared {}...".format(domain)) elif action == 'release': LOG.debug("Releasing {}...".format(domain)) xml = sys.stdin.read() for disk in find_disks(xml): LOG.debug("Trying to deactivate LV: {}...".format(disk)) try: subprocess.check_call(['lvchange','-an', disk]) except subprocess.CalledProcessError as e: LOG.exception("Unable to deactivate LVM volume {} for {}".format(lv_path, domain)) LOG.error("Output: %s", e.output) LOG.debug("Successfully released {}...".format(domain)) if __name__ == '__main__': try: main() except Exception: LOG.exception("Unexpected exception occured") ------------------------------ Am 19.02.20 um 10:33 schrieb Guy Godfroy: > Hello Timm, > > I had exactly the same problem a few weeks ago. It pissed me off quite a > bit, but I made myself a reason. > > My workaround is not to define the volume pool anymore. The domains are > able to use any volume anyway, even when not part of any pool. > > I use custom hooks to activate and deactivate LVs. > > Hope that helps, > > Guy > > Le 14/02/2020 à 11:28, Timm Wunderlich a écrit : >> dear all, >> >> i have a problem with clustered lvm storage and the "logical" storage >> driver, perhaps someone has a suggestion. >> >> i have a clustered lvm (lvmlockd, not clvm) with 4 hosts running. >> >> when i start the storage on a host it activates all volumes in the whole >> volume group. then i cannot start the storage on other hosts because all >> volumes are already activated on one host. >> >> if i then deactivate all volumes in the started pool i can start the >> pool on other hosts. but then i have to manually activate the volume if >> i want to start the domain. >> >> it would be great if the logical pool driver would only activate the >> volume of a domain at domain start and not on pool start. >> >> does anybody have a workaround for this or any suggestions for me? do >> you think i should open an issue on it? >> >> Regards, >> Timm >> >> > > -- __________________________________________ Timm Wunderlich Systemadministrator Universität Siegen, Fakultät III Lehrstuhl für Wirtschaftsinformatik und Neue Medien Kohlbett Str. 15, 57068 Siegen Tel: +49 271-740 3382 timm.wunderlich@xxxxxxxxxxxxx www.wineme.uni-siegen.de -----BEGIN PGP PUBLIC KEY BLOCK----- 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 dJdX =5U14 -----END PGP PUBLIC KEY BLOCK-----