Hi!
see below...
Steve Lord wrote:
Frank Hellmann wrote:
Hi Guys!
Sorry to be a bit Off-Topic, but unfortunatly I can't test this out by
myself...
I am checking out a way to speed up data-transfers between a server
and a couple of clients. A fullblown SAN (CXFS etc) approach is
currently not in our budget, but we already have a couple of directly
attached fibre-channel diskarrays here. I will buy a FC-switch to get
the arrays easily switched over to the clients to speed up things
(instead of copying over network).
Now, my question: What will happen if I configure the FC-switch to
route a single diskarray to all machines, mount that device
read-write on the server and read-only on the clients? Will XFS allow
me to do that? How propable is non-integrity data on the clients
(considering that the server won't write to that device at that time
anymore)? What will happen if all clients strom out to get data at the
same time?
The software will not stop you from doing this, but DON'T!
;-)))) I knew you would say that...
There is a good chance what will happen here is your read-only nodes
will crash at some point, or at least decide the fs is corrupted and
needs to be shutdown. The read only nodes will have a lot of
metadata in cache, and will not know that it is stale and should be
refreshed from disk. Once they get a mix of inconsistent metadata
all bets are off. You will tend to see stale data as well, and
things which the read/write node has put into the filesystem may
not show up for a while.
So, there is no way of striktly working read-only of disk without
caching/relying on the meta-data locally.
Sharing a SAN filesystem between machines involves a lot more than
just cabling up the storage ;-).
Right. Most of it has to do with loads of money... ;-)
Shared read only on all nodes should be fine, if you want to
update content, you have to unmount all but one, make it rw,
update content, make it ro again then allow the other nodes
to remount. That mode of operation does not fly for many applications.
Actually, this is fine for our application. We aquire a lot of hires
50MB sized images that are not changed after that. The clients work on
proxy images that they generate locally of these hires images. So during
aquisition I can unmount all clients and do the r/w operations and after
that mount it on all clients as read-only.
That is still better then putting the arrays directly on the single
clients...
Finally, if two nodes both need to read the same data at the same time,
they issue scsi commands to the device, and one gets to wait for the
other to complete - but at least the second one gets to use cache on
the device.
:-)
Thanks a lot Steve. Cheers,
Frank...
Steve
--
--------------------------------------------------------------------------
Frank Hellmann Optical Art GmbH Waterloohain 7a
Digital Cinema http://www.opticalart.de 22769 Hamburg
frank@xxxxxxxxxxxxx Tel: ++49 40 5111051 Fax: ++49 40 43169199
|