I looked at CODA for a cluster back in 2004 and decided I'd never use it.
It's far more complex than any other filesystem I've worked with. It's the only one that
requires a special "log" partition, a special "metadata" partition, and
requires you to enter hex addresses for the starting locations of certain data blocks.
Consider this paragraph from the CODA manual that tells you how big the
RVM partition should be:
As a rule of thumb, you will need about 3-5% of the total file data space for
recoverable storage. We currently use 4% as a good value under most
circumstances. In our systems the data segment is 90Meg for approximately 3.2
gigabytes of disk space. By making it smaller, you can reduce server startup
time. However, if you run out of space on the RVM Data partition, you will be
forced to reinitialize the system, a costly penalty. So, plan accordingly.
Okay, so... I've never used CODA before, and I'm not sure what my filesystem will
look like. There is no way their ancient example numbers for "3.2 gigabytes"
scales up to today's filesystems that are closer to 3.2 terabytes. How am I supposed to
know what initial values to choose? If I guess wrong, it'll only destroy the entire
filesystem. I can understand inode size... but I can't understand this.
And configuring the RVM (metadata) looks like this (again from the manual
-- those hex values are supposed to be magically chosen and entered by the
user):
$ rdsinit /dev/hdc1 /dev/sdb1
Enter the length of the device /dev/sdb1: 119070700
Going to initialize data file to zero, could take awhile.
done.
rvm_initialize succeeded.
starting address of rvm: 0x50000000
heap len: 0x1000000
static len: 0x100000
nlists: 80
chunksize: 32
rds_zap_heap completed successfully.
rvm_terminate succeeded.
[Note: Use of the decimal value for the length of the device and the use of hex
values for the address and lengths of the next three values.]
I absolutely love that little note... use decimal value for the first
value, and hex for everything else. Don't forget! :) And the manual says that
they use 0x50000000 (or was it 0x500000000? can't remember) for Intel-based
architectures running Linux or FreeBSD... but nothing about other platforms.
The tools, documentation, and skilled technicians necessary in an emergency
just don't seem to be there for CODA.
In short, managing CODA seems to be about on par with managing a big
database. Too complex, too many options, and you need an in-house expert to
keep the thing running.
/A big item on our wishlist is the ability to both have multiple hosts writing
to the distributed filesystem/
NFS or Samba. Cross-platform, any error message you come across is
guaranteed to show up in a Google search, and any version of Linux comes with
either of these ready to go.
(There are others, like SSHFS and WebDAV, but they don't support the
concept of UIDs and GIDs.)
/*and* have read-only backup copies on standby hosts (which could then be
converted to active in the event of catastrophe)/
How will this filesystem be used? Is this for a company file server, or
for some real-time shared storage for a public server cluster?
Note that hot mirrors (like CODA or RAID) are only part of the solution.
They won't protect you if you accidentally delete the wrong file, or if you get
rooted by a script kiddie.
I use rsnapshot (which does rsync incrementals like Apple's Time Machine)
run once every hour, to an offsite backup server. My backups are always online
in a read-only fashion, ready for use at any time. If my primary server melts,
then I've lost (at most) an hour of work. Plus, I have incrementals -- I can
instantly see any of my files as they existed 3 hours, 4 days, or 5 months ago.
Using SSH keys it's all encrypted and fully automatic. And if there's a
disaster, I'm not dealing with any magic partition sizes or other such nonsense
-- it's just files on a disk.
--Derek
On 04/05/2011 04:27 PM, Glenn Stone wrote:
$NEWCOMPANY is having major issues with OCFS, and I'm looking into
alternatives for replacing it. A big item on our wishlist is the ability to
both have multiple hosts writing to the distributed filesystem, *and* have
read-only backup copies on standby hosts (which could then be converted to
active in the event of catastrophe). Coda seems to fit this bill, from what
I've been able to google up. I'm not, however, able to determine if this
thing is still in an R&D phase, or ready for prime time; it seems to maybe
kinda slowly still be being worked on? (Latest RPM's are dated 1/26/2010).
Exploring alternatives,
Glenn
Listen: I'm a politician, which means I'm a cheat and a liar, and when I'm
not kissing babies I'm stealing their lollipops. But it also means I keep my
options open. -- Jeffery Pelt, "Red October"