[Gluster-devel] Why integrate both client and server into a single executable?
Gordan Bobic
gordan at bobich.net
Mon Feb 2 14:53:27 UTC 2009
On Mon, 2 Feb 2009 22:04:15 +0800, Kirby Zhou <kirbyzhou at sohu-rd.com>
wrote:
> Why integrate both client and server into a single executable?
Presumably because most of the code is shared between the two?
(e.g. socket code, config parsing code, logging, etc.)
> I think it brings a lot of trouble to server operators.
>
> For example:
>
> 1. If client and server runs together on the same node, I don't know
> which process should be kill if some bug occurs.
Since there is only one process, there is only one process to kill/restart.
I'm not sure what you mean by "I don't know which process".
Note that you can still run it as a 2-process sytem, if you really want to.
# killall glusterfs
will kill the client.
# killall glusterfsd
will kill the server.
You could bolt this down more tightly by wrapping them and saving the PID
of the process into a file, traditionally in /var/run/.
> 2. FUSE is not necessary in the server side, but I can not avoid
> install FUSE on the server side. It increases the security venture of the
> server side.
Hmm, you may have a point there, but you only need the fuse-libs, not the
fuse kernel module. I'm not convinced that the fuse libraries are a
significant security risk.
> 3. It increase the file size of the final binary. I want to boot up
> the gluster server node from a small USB finger, the size of binary is
> important.
I'm not sure the size of the binary is all that significant when you factor
in the size of the kernel, initrd and a minimal root. Can you provide some
actual sizing figures on this? The smallest/cheapest USB memory stick I can
find right now is 1GB and they sell for about $5 / £3.5. Is an extra few
KB of a binary disk footprint really going to make that much difference? Or
are you thinking about putting this into something _really_ small like an
ARM based appliance?
Gordan
More information about the Gluster-devel
mailing list