Thread (116 messages) 116 messages, 18 authors, 2011-03-25

Re: high throughput storage server?

flat view

From: Stan Hoeppner <hidden>
Date: 2011-02-21 21:51:17

Mattias Wadenstein put forth on 2/21/2011 4:25 AM:
On Fri, 18 Feb 2011, Stan Hoeppner wrote:
quoted
Mattias Wadenstein put forth on 2/18/2011 7:49 AM:
quoted
Here you would either maintain a large list of nfs mounts for the read
load, or start looking at a distributed filesystem. Sticking them all
into one big fileserver is easier on the administration part, but
quickly gets really expensive when you look to put multiple 10GE
interfaces on it.
This really depends on one's definition of "really expensive".  Taking
the total cost of such a system/infrastructure into account, these two
Intel dual port 10 GbE NICs seem rather cheap at $650-$750 USD:

http://www.newegg.com/Product/Product.aspx?Item=N82E16833106037
http://www.newegg.com/Product/Product.aspx?Item=N82E16833106075

20 Gb/s (40 both ways) raw/peak throughput at this price seems like a
bargain to me (plus the switch module cost obviously, if required,
usually not for RJ-45 or CX4, thus my motivation for mentioning these).

The storage infrastructure on the back end required to keep these pipes
full will be the "really expensive" piece.
Exactly my point, a storage server that can sustain 20-200MB/s is rather
cheap, but one that can sustain 2GB/s is really expensive. Possibly to
the point where 10-100 smaller file servers are much cheaper. The worst
case here is very small random reads, and then you're screwed cost-wise
whatever you choose, if you want to get the 2GB/s number.
"Screwed" may be a bit harsh, but I agree that one big fast storage
server will usually cost more than many smaller ones with equal
aggregate performance.  But looking at this from a TCO standpoint, the
administrative burden is higher for the many small case, and file layout
can be problematic, specifically in the case where all analysis nodes
need to share a file or group of files.  This can create bottlenecks at
individual storage servers.  Thus, acquisition cost must be weighed
against operational costs.  If any of the data is persistent, backing up
a single server is straight forward.  Backing up multiple servers, and
restoring them if necessary, is more complicated.
quoted
RAID 5/6 need not apply due the abysmal RMW partial stripe write
penalty, unless of course you're doing almost no writes.  But in that
case, how did the data get there in the first place? :)
Actually, that's probably the common case for data analysis load. Lots
of random reads, but only occasional sequential writes when you add a
new file/fileset. So raid 5/6 performance-wise works out pretty much as
a stripe of n-[12] disks.
RAID5/6 have decent single streaming read performance, but sub optimal
random read, less than sub optimal streaming write, and abysmal random
write performance.  They exhibit poor random read performance with high
client counts when compared to RAID0 or RAID10.  Additionally, with an
analysis "cluster" designed for overall high utilization (no idle
nodes), one node will be uploading data sets while others are doing
analysis.  Thus you end up with a mixed simultaneous random read and
streaming write workload on the server.  RAID10 will give many times the
throughput in this case compared to RAID5/6, which will bog down rapidly
under such a workload.

-- 
Stan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help