From 683b6ba3f17a9bbf876c66f5d4b7a9d573d8853f Mon Sep 17 00:00:00 2001 From: Prasanna Kumar Kalever Date: Fri, 20 Jan 2017 12:13:37 +0530 Subject: gluster-block: listen on unix and inet from now We basically have 2 RPC connections, 1. Between gluster block CLI and local gluster-blockd This connection is basically UNIX/local netid ,listening on /var/run/gluster-blockd.socket file. The CLI always Send/Receive the commands to/from the local gluster-blockd via local rpc. 2. Between gluster-blockd's, i.e local (to cli) gluster-blockd and the gluster-blockd's running on remote(blockhost) This is the tcp connection. The rpc requests are listening on 24006 Also from now gluster-blockd is multi threaded (As of now 2 threads) Lets consider the Create Request to understand what each thread solves Thread1 (THE CLI THREAD) * Listening on local RPC * Generate the GBID (UUID) and create the entry with name GBID in the given volume with a requested size. * And Send the Configuration requests to remote hosts, waits for the replies (HINt: after this point Read Thread2 and come back) * Return to CLI. Thread 2 (THE SERVER THREAD) * Listens on 24006 * On Receiving an event, read the structure. * Executes the required "targetcli bla bla bla" command locally * Fills the command exitcode and the output in the RPC reply structure and send reply Signed-off-by: Prasanna Kumar Kalever --- rpc/block.x | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'rpc/block.x') diff --git a/rpc/block.x b/rpc/block.x index c88fdf2..b563c9e 100644 --- a/rpc/block.x +++ b/rpc/block.x @@ -1,12 +1,35 @@ +struct blockCreate { + char volume[255]; + char volfileserver[255]; + char gbid[127]; /* uuid */ + u_quad_t size; + char block_name[255]; +}; + +struct blockCreateCli { + char volume[255]; + char volfileserver[255]; + u_quad_t size; + char block_name[255]; + string block_hosts<>; +}; -struct blockTrans { - int exit; /* exit code of the command */ - string out<>; /* stdout of the command */ +struct blockResponse { + int exit; /* exit code of the command */ + string out<>; /* json output */ + u_quad_t offset; /* dentry d_name offset */ + opaque xdata<>; /* future reserve */ }; +program GLUSTER_BLOCK_CLI { + version GLUSTER_BLOCK_CLI_VERS { + blockResponse BLOCK_CREATE_CLI(blockCreateCli) = 1; + } = 1; +} = 212153113; /* B2 L12 O15 C3 K11 C3 */ + program GLUSTER_BLOCK { version GLUSTER_BLOCK_VERS { - blockTrans BLOCK_EXEC(string) = 1; + blockResponse BLOCK_CREATE(blockCreate) = 1; } = 1; } = 21215311; /* B2 L12 O15 C3 K11 */ -- cgit