Experience of centralized workflow with NFS-mounted storage?
David Ingamells
david.ingamells at mapscape.eu
Thu Nov 20 12:47:24 GMT 2008
Mikael Karlsson wrote:
> We're setting up a Bazaar environment with a centralized workflow and we
> wonder if someone have experience of having a Bazaar server with a
> mounted NFS-storage where the branch data is stored?
>
> Clients will checkout data over SSH from the server to clients like this
>
> Branch data <=== NFS ===> Bazaar server <=== SSH ===> Developer
>
> We could be talking about several hundred users checking out and
> committing data and several gigabytes of branch data simultaneously.
>
> The actual question is how file locking will work when using NFS? I know
> it doesnt work with cvs but it work with subversion.
>
> I've tried to find information in the old mailing list archive but not
> found anything that gives me answers.
>
> The obvious reason to store everything on the SAN are for availability
> and security reasons and also to be able to make a quick recover if one
> server fails since there will be a backup server in standby in case of
> failure.
>
> I would be pleased if the developers of Bazaar could give me a
> recommendation if this is a good idea or not.
> Also if someone have experience of this, good or bad.
>
>
> Regards
>
> Mikael
>
>
Mikael,
I am a user who did set up what you propose and had some problems with it.
When we set up our repositories they were stored on an NFS disk just as
you described.
This was with about bzr 1.3 if I remember right. Our machines are all
Ubuntu Gutsy.
I did not observe any problems with file locking, however your mileage
may vary as file locking in NFS is a tricky issue; not all
implementations support it robustly. I believe that the bzr team have
done the very best they can in this regard, but any problems will lie on
the nfs side which is out of their control.
We experienced severe performance problems (e.g. multi-hour-long bzr
branch executions) and these were significantly relieved by moving the
repositories to a local disk on the bazaar server, and also asking users
where possible to put their branches on disks local to their own desktop
machines. You can see my mails about benchmarks in the bazaar mail
archive. These problems resulted many times in bzr failures from timeouts.
We are therefore not using nfs to serve the repositories now and
performance is very acceptable, not blindingly fast but now good enough
to not annoy anyone.
However things have moved on since I did the above and I have not
changed our setup in the meantime
* The bzr team have done some great work and some serious
performance problems with bzr have been resolved. It is very
likely that these changes would have helped our problems.
* I suspect that there is something wrong in the setup of our NFS
file server/network but our IT staff have not been able to
identify it yet. If you have several hundred developers already
accessing the SAN without problems then your network must already
be well tuned.
Some hints of things to watch out for:
* If your developers are using home directories also mounted by NFS
from the SAN then you have 2 streams of traffic involving the SAN
when a developer does a branch:
Branch data/SAN <== NFS ==> Bazaar server <== SSH ==> Developer <== NFS ==> SAN
* lightweight checkouts and stacked branches require much less
network traffic than a full branch.
* Access via file:// will nearly always be faster than bzr+ssh://
* If many developers are doing things concurrently with bzr+ssh://
to the bazaar server then this server will be very heavily loaded
and you may be better off going straight to the SAN. Putting the
bazaar server in the loop adds 2 network hops and very little
benefit that I can see. The repositories can still be protected by
file access rights.
David.
More information about the bazaar
mailing list