[Gluster-devel] Why integrate both client and server into a single executable?

Kirby Zhou kirbyzhou at sohu-rd.com
Mon Feb 2 16:07:41 UTC 2009


I'm sorry, I had taken a mistake here. You are right, we can distinguish between client/server by the symbolic linked filename. But the program itself do not distinguish its role at least until 1.3.12. It means that somebody careless would set up a server daemon by the client process name. It should be a problem.
I do not know the actual situation of 2.0rc1, because of the 'NO_CONTENT_TYPE' problem I have noticed in some prior mails.
About point 2, I will check my APT system later, why the fuse-lib depends on kmod-fuse. 
About point 3, actually the size of stick is just 128M (because it's on board). So maybe it is a problem only for me, let's skip it.

-----Original Message-----
From: gluster-devel-bounces+kirbyzhou=sohu-rd.com at nongnu.org [mailto:gluster-devel-bounces+kirbyzhou=sohu-rd.com at nongnu.org] On Behalf Of Gordan Bobic
Sent: Monday, February 02, 2009 10:53 PM
To: gluster-devel at nongnu.org
Subject: Re: [Gluster-devel] Why integrate both client and server into a single executable?

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


_______________________________________________
Gluster-devel mailing list
Gluster-devel at nongnu.org
http://lists.nongnu.org/mailman/listinfo/gluster-devel







More information about the Gluster-devel mailing list