I would like to ask everybody: what would you advise to use as a storage cluster, or as a distributed filesystem.
I made my own research of what I can do, but I hit a snag with my seemingly best choice, so I decided to stay away from it finally, and ask clever people what they would use.
My requirements are:
1. I would like to have one big (say, comparable to petabyte) filesystem, accessible on more than one machine, composed of disk space leftovers on a bunch of machines having 1 gigabit per second ethernet connections
2. It can be a bit slow, as filesystem one would need for backups onto it
(say, using bacula or bareos), and/or for long term storage of large datasets, portions of which can be copied over to faster storage for processing if necessary. I would be thinking in 1-2 TB of data written to it daily.
3. It would be great to have it single machine failure/reboot resilient
4. metadata machines should be redundant (or at least backup medatada host should be manually convertible into master metadata host if fatal failure to master or corruption of its data happens)
What I would like to avoid/exclude:
1. Proprietary commercial solutions, as:
a. I would like to stay on as minimal budget as possible b. I want to be able to predict that it will exist for long time, and I
have better experience with my predictions of this sort about open source projects as opposed to proprietary ones
2. Open source solutions using portions of proprietary closed source binaries/libraries (e.g., I would like to stay away from google proprietary code/binaries/libraries/modules)
3. Kernel level modifications. I really would like to have this independent of OS as much as I can, or rather available on multiple OSes
(though I do not like Java based things – just my personal experience with some of them). I have a bunch of Linux boxes and a bunch of FreeBSD boxes, and I do not want to exclude neither of them if possible. Also, the need to have custom Linux kernel specifically scares me: Linux kernels get critical updates often, and having customizations lagging behind the need of critical update is as unpleasant as rebooting the machine because of kernel update is.
I’m not too scared of a “split nature” projects: proprietary projects having open source satellite. I have mixed experience with those, using open source satellite I mean. Some of them are indeed not neglected, and even though you may be missing some features commercial counterpart has, some are really great ones: they are just missing commercial support, and maybe having a bit sparse documentation, thus making you to invest more effort into making it work, which I don’t mind: I can earn my sysadmin’s salary here. I would say I more often had good experience with those than bad one (and I have a list of early indications of potential bad outcome, so I can more or less predict my future with this kind of projects).
I really didn’t mean to write this, but I figure it probably will surface once I start getting your advices, so here it is. I did my research having my requirements in mind and came up with the solution: moosefs. It is not reviewed much, no reviews with criticism at all, and not much you can (“I
could” I should say) find howtos about customizations, performance tuning etc. It installs without a hitch. It runs well, until you start stress writing a lot to it in parallel, then it started performing exponentially badly for me. Here is where extensive attempts to find performance tuning documentation faces lack of success. What made my decision to never ever use it in a future was the following. I started migrating data back from moosefs to local UFS (that is FreeBSD box) filesystem using rsync command. What I observed was: source files after they have been touched by rsync changed their timestamps. As if instead of creation timestamp it is an access timestamp on moosefs. This renders rsync from moosefs useless, as you can not re-run failed rsync, and you obliterate some of metadata of the source (“creation” timestamp). I wrote e-mail to sourceforge moosefs mail list, mentioning all this and the fact that I am using open source moosefs. Next day they replied asking whether I use version 3.”this” or version 3.”that”, as they want to know in which of them they have a bug. Whereas latest open source version they have everywhere, including sourceforge is older version: 2.0.88. Basically, my decision was made. Sorry for venting it out here, but I
figured, it will happen some moment when I will get your advises.
Thanks a lot for all your advises!
Valeri Galtsev Sr System Administrator Department of Astronomy and Astrophysics Kavli Institute for Cosmological Physics University of Chicago Phone: 773-702-4247