You may be thinking of "gnt-instance replace-disks". But I don't think you can recreate the volume group from scratch. Rather: you add the new disks into the existing volume group, then use replace-disks to move the instance(s) off the bad disks, then you can remove the bad disks from the volume group.
If you've already zapped the existing VG then maybe you'll have to convert the instances to plain and then back to drbd.
I'm not sure you should zap the VG. I think you should remove the faulty disk from the volume group, add a new good one, and do "replace-disks" for each instance, e.g. using the --auto option:The fourth form (when using --auto) will automatically determine which disks of an instance are faulty and replace them within thesame node. The --auto option works only when an instance has only faulty disks on either the primary or secondary node; itdoesn't work when both sides have faulty disks.
The documentation in this area isn't great:In particular, it's not clear to me how you tell ganeti that the physical volume has failed (if it hasn't been kicked out by the OS) - maybe you could pvremove --force it, or just physically unplug it.
But if you delete the VG and recreate the VG, it's going to be a different VG. It *might* work (if Ganeti always references the VG by name, not by UUID). But it might not.
You do realise that this replaces all the lvm binaries with frig shell scripts don't you? In other words, you're not using LVM at all! For example, the replacement "lvcreate" command creates a zvol, not an LVM logical volume. See:
Personally I wouldn't touch that with a barge pole. Ignore everything I said about ganeti LVM physical disk replacement before, as it doesn't apply to this (because you're not using LVM).
You *are* using drbd on top of zvols though. As to how to recreate the underlying zvols I don't know, but if your zpool is in a sufficiently unbroken state that you can *list* all the zvols and recreate them with identical names and sizes, that might be sufficient. drbd itself might be sufficiently clever to realise that both the data and metadata volumes have been wiped, and just resync them automatically the next time the disks are activated.
Sure - whatever works for you. You did say originally "I have a node where the LVM volume group is dying", and "this is Debian 8 with ganeti 2.12 with DRBD, LVM and Xen", which rather strongly implied you were using LVM :-)
I do use zfs in my home cluster, but just using local zvols on SSD, which I then hourly replicate to a backup machine on HDD using syncoid.
Ah that's you who made this nice and simple extstorage provide for ZFS, well done! When you say "local zvols" do I understand correctly that you main like the plain type (non-replicated DRBD)?
You might also want to set "primarycache=metadata" as parameter on your zvols as else you end up having double-caching (ZFS on hypervisor + guest OS) without much benefits and higher context switches on your hypervisor.
The ext storage provider creates a zvol directly on the local host, and the instance directly talks to the zvol block device. So it's just a local image.The "plain" and "drbd" disk templates still exist, and still do what they normally do: create LVM, and DRBD on top of LVM, respectively.So if you want to create a zfs instance you have to name the ext storage provider directly: e.g.gnt-instance add -o snf-image+jessie -t ext --disk 0:size=10G,provider=zfs -n nuc1 jessie1.example.comYou do lose the real-time replication and live migration which DRBD gives you. On my home setup I can live without those. To move an instance, you stop it, do a final sanoid sync to the central storage server, then sync from storage server back to target.
I create all my zvols under a parent dataset ("zfs/vm"), so Iany options like that can be set there globally:root@nuc1:~# zfs get -r primarycache zfs/vm -t volumeNAME PROPERTY VALUE SOURCEzfs/vm/12700459-7dc2-454f-87f8-54eb1a8c090b.ext.disk0 primarycache metadata inherited from zfs/vmzfs/vm/28289bb1-8e27-4417-af7c-3d2f5a3a50d1.ext.disk0 primarycache metadata inherited from zfs/vmzfs/vm/e7b0fe8b-996d-44a9-950e-da5c257ab0df.ext.disk0 primarycache metadata inherited from zfs/vm
As I need live migrations I went for this "hacky" ZFS external storage provider with the downside that I can't have any real LVM anymore but for me live migrations and high availability was the priority.
As for live migration: I did have an idea how to approach this but I've not tested it.1. Create two physical servers with large spare disk or disk partition. Export this free space as nbd or iscsi volumes2. Build an NFS server VM, which uses ZFS internally and attaches to the two nbd/iscsi volumes as mirrors.3. Run VMs using sharedfile, with disk images accessed over NFSYou can live-migrate the VMs, and you can live-migrate the NFS server, whilst maintaining the full data integrity checking of ZFS. The system area of the NFS server can be traditional DRBD, so you don't need it to be able to boot from zfs-over-nbd.