Your nodes should have separate drives for node image. The installer will expect empty block device for gluster setup. I would do a separate array for OS and storage.
Most of your node specific questions I think can be cleared up if you think of the storage as being networked storage. Even though the nodes are acting as storage they are gluster clients mounting the shares. If you create a vm the storage doesn’t go to one specific node. Since the data is mounted over network you can run vms from any node.
[snip]
b) Storage Location
In this 3 node cluster, creating a VM on node01 will the data for node01
always end up in the local node01 server?
Actually there is this parameter that one can set for the volumes:
cluster.choose-local
implemented starting with 3.12
I think default is off and not tried toggling in a composite environment.
Gianluca