Hi, Today I spent some time identifying the interactions with Glusterd from Geo-replication. Integration with Glusterd 2.0 is still unknown, but the list of things may help Glusterd folks while designing plugins infrastructure. Thanks Kaushal for explaining the current state of Glusterd. Geo-rep Create -------------- 1. Verify Slave Cluster Dependent on Glusterd: No 2. Generate SSH Keys and collect from all peer nodes to initiated node Dependent on Glusterd: Yes Existing: Geo-rep uses `gluster system:: execute` infrastructure to run in all nodes and copy from all peers. Proposed: TBD 3. Create session directory and status file in all peers Dependent on Glusterd: Yes Proposed: We can use distributed store to save the details of Session existence 4. Distribute the PUB keys to connected Slave node and then distribute to all Slave peers. Dependent on Glusterd: Yes Existing: Geo-rep uses `gluster system:: copy-file` to copy file to all peers and `gluster system:: execute` to add keys to ~/.ssh/authorized_keys file. Proposed: TBD Geo-rep Start ------------- 1. Check if Session exists Dependent on Glusterd: Yes Existing: Looks for status file in session dir Proposed: Look in Glusterd distributed store 2. Check if already started Dependent on Glusterd: No Existing: Reads monitor status file(If status is not Stopped, Created) Proposed: N/A (If we store Monitor status per node in Distributed store then we need to interact with Glusterd) 2. Start Geo-rep Monitor process in all Master nodes Dependent on Glusterd: Yes Existing: Gets the list of Unique master nodes and Spawns Monitor process Proposed: TBD Geo-rep Stop ------------ 1. Check if Session exists Dependent on Glusterd: Yes Existing: Looks for status file in session dir Proposed: Look in Glusterd distributed store 2. Check if started Dependent on Glusterd: No Existing: Reads monitor status file(If status is not Stopped, Created) Proposed: N/A (If we store Monitor status per node in Distributed store then we need to interact with Glusterd) 3. Send SIGTERM to respective Monitor process in all Master nodes Dependent on Glusterd: Yes Existing: Sends SIGTERM to all monitor process in all master nodes Proposed: TBD Geo-rep config set ------------------ 1. Check if session exists Dependent on Glusterd: Yes Existing: Looks for status file in session dir Proposed: Look in Glusterd distributed store 2. Update config file in all Master nodes Dependent on Glusterd: Yes Existing: Update config in all peers Proposed: Update config in distributed store 3. Restart Geo-rep if config change expects restart Same as Stop and Start Geo-rep config get ------------------ 1. Check if Session exists Dependent on Glusterd: Yes Existing: Looks for status file in session dir Proposed: Look in Glusterd distributed store 2. Get config values from One node by calling gsyncd Dependent on Glusterd: Yes Existing: Call gsyncd command to get config values Proposed: Read config values from Glusterd distributed store Geo-rep delete -------------- 1. Check if session exists Dependent on Glusterd: Yes Existing: Looks for status file in session dir Proposed: Look in Glusterd distributed store 2. Delete the Session directories from all Master peers Dependent on Glusterd: Yes Existing: Delete Session directory from all Master peers Proposed: Delete session details and config from distributed store Geo-rep status -------------- 1. If session details provided, check if session exists Dependent on Glusterd: Yes Existing: Looks for status file in session dir Proposed: Look in Glusterd distributed store 2. If session details not provided, get all Sessions Dependent on Glusterd: Yes Existing: Read all Volinfo and get list of session_slave Proposed: Read session list from distributed store. 3. For each session Get list of master nodes and Collect status from each node by running gsyncd command in each Master node Dependent on Glusterd: Yes Existing: Get list of master nodes from Volinfo, run gsyncd status command in each node and parse the output. Proposed: TBD Interaction with other components(APIs) --------------------------------------- Snapshot, Remove brick, Volume stop commands checks for existence of Geo-rep session. Following APIs are identified for the same. 1. Check if Geo-rep session exists 2. Check if Geo-rep session is running Please add if I missed anything. -- regards Aravinda _______________________________________________ Gluster-devel mailing list Gluster-devel@xxxxxxxxxxx http://www.gluster.org/mailman/listinfo/gluster-devel