Coda File System

Re: CODA and production use

From: <>
Date: Wed, 26 Sep 2007 08:59:49 +0200
On Tue, Sep 25, 2007 at 12:56:31PM +0200, Pierre LEBRECH wrote:
> Hello,
> I'm planning to (I would like to) put a CODA FS in production use in an LVS environment.

Hi Pierre,

I suppose LVS stands for Linux Virtual Server (at least Google search
on "lvs" places it at the top :)

> Is that really a foolish idea or is it possible?

It depends. One scenario which is hardly compatible with Coda
is parallel writes to the same objects. Coda is very good at read-sharing,
but quite inappropriate for write-sharing, unless the users are very
well prepaired to deal with file conflicts.

> Well, as you have seen in the list, I have little problems with "cfs mkmount", or sometimes with ls or pwd (for unknown
> reasons). That's why I'm a bit nervous to put it in production use. See below as well.

"cfs mkmount" problem seems to be fixed/addressed in the CVS version.

> There is one thing I would like to see :
> * the increase of the speed during the synchronization between coda clients

The rest of your letter suggests that you are concerned about the delay
between an update on a client and another client being aware of the update.

This depends in the first hand on the reintegration settings on the modifying
client. The default is "begin reintegration 5 seconds after the file is closed"
The time for the file to actually be reintegrated (then other clients get
notification callbacks) depends on the file size and connectivity.

> can't see it. I umount it with "umount -l /coda" and I run "venus -init". OK, this time it is OK. But, the
> synchronization of my previous file is not done yet. Perhaps there's something wrong with node1 as well.
> So, I'm trying to restart venus on node1. OK. Oh, big oops! The modification I've done on my little file was lost. So
> now, this little file is the same on my 2 client nodes, but I've lost the updated version of this file on node1! Why?

Was the file actually closed by the application? (assume yes)
Did you initialize venus at the restart? (assume no)

With the assumptions above I can not tell, something else which
I am not aware of.

> Now I'm updating once more my little test textfile on node1. And I'm looking at it on node2. 50 seconds later I can see
> it, at last!! Note : the ls command took many many seconds to put me back on the prompt.

This looks like timeouts. The servers were probably trying to inform the
no more active instances of your (restarted) clients about the changes,
and the dead instances quite naturally did not answer. Then the server
waits until it is sure they are unavailable.

> Now the 2 client nodes are well synchronized, at last.

Most probably you would see your next small change to propagate
in about 5 seconds. On the other side, if it is crucial for your
purposes that the files are instantly synchronized, then Coda may be not
a right solution for you.

> As you can see. I can't put all this before understanding what's going wrong.

Coda is quite sophisticated under the hood so it takes time to become
acquainted with the possible implications.

> How can I be sure of my setup which was done by a colleague of mine who has left the office now?

It depends in the first hand on the skills of your colleague and on how much
you trust him/her :)

As a Coda server setup does not imply any crucial decisions (cache size must
be less than the available disk space and DNS must be working, otherwise
it should work "no matter what"), it should be ok to let even less experienced
sysadmins/users to install the clients.

(Conflict resolution is a different matter and needs certain skills and
experience, so the users have to be specially trained in that respect.)

Server setup must be done carefully and needs quite a lot of understanding,
if you are going to deploy more than a very small realm. The "realm size"
is a combination of "number of servers", "number or volumes",
"number of files/directories", "number of users".
(Note that in contrast to most other file systems the client computers are
not a part of a realm. It is the user accounts who are.
The "default-realm" setting which is still possible on a computer
does not in any way establish a relation between the computer and the realm,
it just provides a possibly handy default for users doing clog.
It is like a "home page url" for a web browser, nothing more).

To conclude, you might want to use Coda for some time to gain
experience before letting other people depend on your realm.

Received on 2007-09-26 03:49:53