kadalu / moana

Moana is a frontend for the Kadalu Storage / GlusterFS. Moana provides tools for setting up and managing the Kadalu Storage / Gluster pools.
GNU General Public License v3.0
18 stars 7 forks source link

Fix volgen to handle distribute groups correctly for volume type = "Distribute" #275

Closed vatsa287 closed 1 year ago

vatsa287 commented 1 year ago

When a volume is created or expanded(WIP), the volgen creates a client volfile with multiple distributed groups even for a pure distribute volume as in ,

volume vol1-distribute
    type cluster/distribute
    subvolumes vol1-distribute-0 vol1-distribute-1
end-volume

For,

root@kadalu-dev:/src/mgr# ./bin/kadalu volume create dev/vol1 kadalu-dev:/mnt/disk1 kadalu-dev:/mnt/disk2
Volume vol1 created
ID: 7e33fdb3-da50-4cd5-9a36-16c08a7d0448

Whereas this should have been single distribute group with 2 storage units not the other way.

Fix in volgen to create correct volfiles for volume.type = "Distribute"

Ref. volfile generated in above issue case,

root@kadalu-dev:/src/mgr# cat /var/lib/kadalu/volfiles/vol1.vol 
volume vol1-distribute-1-client-1
    type protocol/client
    option remote-subvolume /mnt/disk2
    option remote-host kadalu-dev
    option remote-port 49253
end-volume

volume vol1-distribute-1
    type cluster/distribute
    subvolumes vol1-distribute-1-client-1
end-volume

volume vol1-distribute-0-client-0
    type protocol/client
    option remote-subvolume /mnt/disk1
    option remote-host kadalu-dev
    option remote-port 49252
end-volume

volume vol1-distribute-0
    type cluster/distribute
    subvolumes vol1-distribute-0-client-0
end-volume

volume vol1-distribute
    type cluster/distribute
    subvolumes vol1-distribute-0 vol1-distribute-1
end-volume

volume vol1-utime
    type features/utime
    subvolumes vol1-distribute
end-volume

volume vol1-write-behind
    type performance/write-behind
    subvolumes vol1-utime
end-volume

volume vol1
    type debug/io-stats
    subvolumes vol1-write-behind
end-volume

volume meta-autoload
    type meta
    subvolumes vol1
end-volume