4 GB RAM-based NAS

  • Thread starter Thread starter Shailesh Humbad
  • Start date Start date
S

Shailesh Humbad

With inexpensive PC components, it's possible to build a 4 GB network
attached storage device that is entirely RAM-based for about $700.
Would people find a use for a box like this?

The specs:

Mini-ATX Case
4 Gigabytes of DDR SDRAM
Gigabit Ethernet
Appears as a Windows network drive.
Read/Write speed up to 125 MB/second
For temporary storage only (erases when powered off)
Runs freeware OS FreeBSD
 
Shailesh said:
With inexpensive PC components, it's possible to build a 4 GB network
attached storage device that is entirely RAM-based for about $700.
Would people find a use for a box like this?

for $900 is could have a small UPS attached.
 
Shailesh said:
With inexpensive PC components, it's possible to build a 4 GB network
attached storage device that is entirely RAM-based for about $700.
Would people find a use for a box like this?

The specs:

Mini-ATX Case
4 Gigabytes of DDR SDRAM
Gigabit Ethernet
Appears as a Windows network drive.
Read/Write speed up to 125 MB/second
For temporary storage only (erases when powered off)
Runs freeware OS FreeBSD

or how about having it store the information on disk, and just load the 4gb
into ram on startup? Wouldn't take too long. Anyhow I didn't think the
MiniITX boards.. ooooh I just noticed.. you meant Micro ATX. Anyhow I was
gonna say support 4gb of ram. You also can't be allowing for the o/s memory
footprint.
 
Well, you could just put 4GB of SDRAM on a PCI card for 500$. Even faster if
PCI-X.

If you share it, it also appears as a network drive. For a few bux more, you
can add a NiMh battery for a few hours backup.
 
Eric said:
Well, you could just put 4GB of SDRAM on a PCI card for 500$. Even faster if
PCI-X.

Where can you buy such PCI cards? I have searched in Google, but I
don't know the right keywords to search under, and I didn't find any
that are inexpensive. The cost of the card itself would have to be
around $150 to be competitive. I know how PCI-X would be faster, but
I only have seen it available on expensive server and dual processor
motherboards. I guess my idea of this was to make it as inexpensive
as possible, and severly undercut those fancy, ultra-expensive NAS and
solid-state disk vendors.

A portion of the memory would be used by the OS, but some FreeBSD
distributions are designed to have a small footprint. There is a
company out there ( http://www.ups2.com/home.htm ) that sells a
combination power supply and UPS, and even a UPS that fits into a 5
1/4" disk drive bay, for about $100.

By the way, here is the price breakdown for the 4GB NAS. It would
boot off a special CD and run from memory.

CA-TM124-2 SUPERCASE 3G 250W MICRO ATX E $33.50
MB-655MAX MSI/SIS655/DR400/SATA/8X/R&GBL $55.00
CDR-SM52X SAMSUNG CD-ROM 52X IDE BEIGE $14.50
CELE-1.7G CELERON1.7G 128K 400MHZ $48.00
pricewatch pc2100 ddr 1gb $113.00
pricewatch pc2100 ddr 1gb $113.00
pricewatch pc2100 ddr 1gb $113.00
pricewatch pc2100 ddr 1gb $113.00
Total ------ $603.00

(Sorry if the tabbing is mangled in your ng reader.)
 
Previously Shailesh Humbad said:
With inexpensive PC components, it's possible to build a 4 GB network
attached storage device that is entirely RAM-based for about $700.
Would people find a use for a box like this?
The specs:
Mini-ATX Case
4 Gigabytes of DDR SDRAM
Gigabit Ethernet
Appears as a Windows network drive.
Read/Write speed up to 125 MB/second
For temporary storage only (erases when powered off)
Runs freeware OS FreeBSD

Why would you want this? Why not put the RAM in the main
computer and have significantly faster access? Or is it not
possible to use main memory in this size directly and
efficiently on Windows (since you mention it above)?

Arno
 
Most computers can only have up to 2-4GB of system RAM. Some video,
sound, graphics, or database work might find a benefit from a
temporary drive of four gigabytes, if the system RAM can no longer be
expanded. Yeah, DDR has a maximum theoretical bandwidth of 1.6GB/sec,
far faster than 125MB/sec over Gigabit ethernet. But 125MB/sec is
still faster than most hard drives sustained transfer rates, which
range around 50MB/sec, and much faster than the random access rate of
around 10MB/sec.
 
Most computers can only have up to 2-4GB of system RAM. Some video,
sound, graphics, or database work might find a benefit from a
temporary drive of four gigabytes, if the system RAM can no longer be
expanded. Yeah, DDR has a maximum theoretical bandwidth of 1.6GB/sec,
far faster than 125MB/sec over Gigabit ethernet. But 125MB/sec is
still faster than most hard drives sustained transfer rates, which
range around 50MB/sec, and much faster than the random access rate of
around 10MB/sec.

Much faster then a harddrive. But still incredible slow compared to
the system RAM.
So if your application really needs more memory, the slowdown because
of that 125MB/s will still be so big, that this won't be an acceptable
solution.

You could accomplish the same by using a RAID array instead of a
single harddisk.

But also in that case, buying a Raid array will not solve performance
issues if your application really just needs a lot more RAM.


Now, I can see the problem.
Lots of mobo's will support 4GB, but windows pro and server only have
2GB available for your programs. With advanced server you can get 3GB
for your programs, but that is a costly license.
You could buy a mobo that supports more memory and advanced server
with the PAE option to use more ram directly. But the application also
needs to support it. All that will be an expensive option also.

Not easy to find a cheap solution to that problem.
You might want to consider something like the following:
Buy a mobo that supports more RAM. For instance Tyan bords that
support 8GB are reasonably affordable. Then install BSD or some cheap
OS that fully supports that amount. Then install something like
vmware on it and make an image with windows and your application.
Now you need to make vmware or something like it use 4GB for a
ramdrive and present that to windows as a normal disk.
Then windows can use the other 4GB for itself.

Of course tools like vmware have some overhead but if your application
really benefits from 8GB Ram, then the performance gain will be much
bigger.

It's probably difficult to make and market a solution like this, but I
think it is a more viable solution then what was suggested.

The other option would be to take the suggested NAS and find some way
to increase that 125MB/s a LOT!

But in the end I wonder how many affordable applications really
benefit from a 4GB ramdrive.

If you have a database for your work that really needs that much
memory you probably also have the money to implement a normal
solution.

Marc
 
Marc said:
Much faster then a harddrive. But still incredible slow compared to
the system RAM.
So if your application really needs more memory, the slowdown because
of that 125MB/s will still be so big, that this won't be an acceptable
solution.

You could accomplish the same by using a RAID array instead of a
single harddisk.

But also in that case, buying a Raid array will not solve performance
issues if your application really just needs a lot more RAM.


Now, I can see the problem.
Lots of mobo's will support 4GB, but windows pro and server only have
2GB available for your programs. With advanced server you can get 3GB
for your programs, but that is a costly license.

Uh, the limit is that the x86 architecture can directly address 4 gig.
Advanced Server allows some tricks to be played to handle more than that,
but it's a workaround, not direct addressing.
You could buy a mobo that supports more memory and advanced server
with the PAE option to use more ram directly. But the application also
needs to support it. All that will be an expensive option also.

Not easy to find a cheap solution to that problem.
You might want to consider something like the following:
Buy a mobo that supports more RAM. For instance Tyan bords that
support 8GB are reasonably affordable. Then install BSD or some cheap
OS that fully supports that amount. Then install something like
vmware on it and make an image with windows and your application.
Now you need to make vmware or something like it use 4GB for a
ramdrive and present that to windows as a normal disk.
Then windows can use the other 4GB for itself.

Just use GIMP on an Opteron for God's sake.
 
Most computers can only have up to 2-4GB of system RAM. Some video,
sound, graphics, or database work might find a benefit from a
temporary drive of four gigabytes, if the system RAM can no longer be
expanded. Yeah, DDR has a maximum theoretical bandwidth of 1.6GB/sec,
far faster than 125MB/sec over Gigabit ethernet. But 125MB/sec is
still faster than most hard drives sustained transfer rates, which
range around 50MB/sec, and much faster than the random access rate of
around 10MB/sec.

Your RAM card would make a nice SWAP file. Your applications run in a
virtual mameory address space, not physical memory, anyway, and
everything sould speed up, not just the appliction that was doing disk
I/O. I'm talking about real operating sytstems (NT/w2k/XP/Unix), not
Win/98.

I think spome fancy applications, like photoshop, and video editing
tools can be set up to point to several disks and spread the I/O across
them, but then only that application benifits.

I'm never seen a RAMDISK setup for nt/w2k/xp. Someone's probably
done it, I've just never seen it.
 
Much faster then a harddrive. But still incredible slow compared to
the system RAM.
So if your application really needs more memory, the slowdown because
of that 125MB/s will still be so big, that this won't be an acceptable
solution.

You could accomplish the same by using a RAID array instead of a
single harddisk.

Raid5 is not very fast writing, and slower reading. It's used for reliability
and the ability to make a file system that spans several disks.
Raid1 (mirroring) is faster reading, and no change on writing (I think)
Raid0 (striping) is faster reading and writing
 
Uh, the limit is that the x86 architecture can directly address 4 gig.
Advanced Server allows some tricks to be played to handle more than that,
but it's a workaround, not direct addressing.

Right. It used to be called "memory banking". Big packages like Oracle
can make effective use if it, but these apps, the people that need
them will be migrating to 64 bit platforms very quickly.
 
O.k., the idea has some merit. I still think genuine RAM, RAM-disk cards,
solid-state-disks and RAID-0 are are a far superior solution. Also because
you will get significant network overhead (from the TCP/IP stacks),
which you don't have in the local solutions.

With regard to throughput a 4-way RAID-0 should beat your solution
any time. If latency is an issue, typical solid state disks
should be comparable to RAM over gigabit or better. Have e.g. a look here

http://www.bitmicro.com/products_edisk.php

for what is on the market or announced. Both of the above solutions
are non-volatile and offer far better capacity than an additional 4GB.
I think a situation where you really just need 1-4GB more and
rather low throughput is unproblematic is rare.

Arno
 
The flash-based disks have high-latency (microsecond range), limited
write cycles (about 1 Million), and are very expensive. On the other
hand, they have higher capacity, ruggedness, and are non-volatile.

A 4-way RAID-0 would be a bit more expensive due to the extra cost of
the controller, it would have the same latency issue for random
operations (microsecond range), and take up more space and power. On
the other hand, it would have huge capacity, unlimited write cycles,
and be non-volatile.

I guess my idea of this 4GB RAM-based NAS was to get some high
performance, plug-n-play storage for the lowest possible cost. All
mainstream systems are going to be limited by the PCI 32-bit 33Mhz
bandwidth of 133 MB/sec (1,064 Gbits/sec), and systems with higher
bandwidth interfaces, like Opteron and Xeon, cost a lot more.

Photoshop, Paint Shop Pro, Pinnacle Movie Studio, and similar
photo/movie programs can use a fast temporary drive. But with a couple
Gigs in the system already, I don't know if an additional drive up to
4 GB is worth $600 bucks.

For what it's worth, I set up an old PC I have with FreeBSD, and
shared an 800MB RAM disk from it. It was neat, but since I only have
100Mbit ethernet, I could only get about 9 MB/sec sustained.

Shailesh
 
The flash-based disks have high-latency (microsecond range), limited
write cycles (about 1 Million), and are very expensive. On the other
hand, they have higher capacity, ruggedness, and are non-volatile.

A 4-way RAID-0 would be a bit more expensive due to the extra cost of
the controller, it would have the same latency issue for random
operations (microsecond range), and take up more space and power. On
the other hand, it would have huge capacity, unlimited write cycles,
and be non-volatile.

I guess my idea of this 4GB RAM-based NAS was to get some high
performance, plug-n-play storage for the lowest possible cost. All
mainstream systems are going to be limited by the PCI 32-bit 33Mhz
bandwidth of 133 MB/sec (1,064 Gbits/sec), and systems with higher
bandwidth interfaces, like Opteron and Xeon, cost a lot more.

Photoshop, Paint Shop Pro, Pinnacle Movie Studio, and similar
photo/movie programs can use a fast temporary drive. But with a couple
Gigs in the system already, I don't know if an additional drive up to
4 GB is worth $600 bucks.

For what it's worth, I set up an old PC I have with FreeBSD, and
shared an 800MB RAM disk from it. It was neat, but since I only have
100Mbit ethernet, I could only get about 9 MB/sec sustained.

Shailesh


It seems to me that the start of this thread said that someone
made a PCI card that could take several GB or RAM and act like
a disk drive. Can someone post a URL to such a product ?

Thanks
 
Just a correction:

Every single process can get its own 2 GB (almost, because some of that will
be occupied by EXE, DLLs, thread stacks, etc).
If you have 4 memory-hungry processes running (for example, 4 Photoshops),
each can have 2 GB and work happily on 8 GB machine.
 
Al said:
It seems to me that the start of this thread said that someone
made a PCI card that could take several GB or RAM and act like
a disk drive. Can someone post a URL to such a product ?
 
Marc de Vries wrote:

Uh, the limit is that the x86 architecture can directly address 4 gig.

[nitpicking mode on]
Actually, the limit is 32bit addressing in the CPU.
[nitpicking mode off]
Advanced Server allows some tricks to be played to handle more than that,
but it's a workaround, not direct addressing.

True. But still a lot better than a ramdrive connected at 125MB/s

Best option is of course a 64bit CPU, with a 64bit OS.
And hope that the application doesn't have 32bit limits built-in.

But I don't think the OP had a Opteron with a 64bit unix version in
mind when he wrote about his idea.
Just use GIMP on an Opteron for God's sake.

*grin*

That brings me back to my last remark.
What are you planning to do in GIMP that benefits from 8GB ram? :-)

Marc
 
Just a correction:

Every single process can get its own 2 GB (almost, because some of that will
be occupied by EXE, DLLs, thread stacks, etc).
If you have 4 memory-hungry processes running (for example, 4 Photoshops),
each can have 2 GB and work happily on 8 GB machine.

No, it doesn't work that way.

Each process gets 4GB of VIRTUAL address space. The system then
translates the virtual 32bit addresses to PHYSICAL 32bit addresses
used by the hardware.

With all IA32 processors you are limited to 4GB memory that you can
actually use with the hardware.

So your 4 photoshops might think they have 2GB each, but in reality
they will only be able to use 4GB RAM in total, because of the limits
of 32bit addressing in the CPU.

It's even worse then that because Windows reservers 2GB of that 4GB
for kernel space. (with the 3GB switch that is reduced to 1GB)

The only way to make use of that 8GB is to use hardware that has
support for more than 32bits addressing.

That support is actually available since the Pentium Pro, but support
in the chipset was not available for a long time. With that special
option called PAE you get 36 bit addressing, which means you can use
address 64GB Ram.

Of course you need support in the OS for this.
With support in the OS for PAE you could then use your 4 photoshop
processes with that 8GB.

But if you want 1 photoshop process using 8GB, then you need PAE
support in the application. This comes in the form of a simple API
called AWE.

You can also read about it in this article:
http://www.microsoft.com/whdc/hwdev/platform/server/pae/pae_os.mspx

It also covers the use of a ramdisc with PAE, but that is seen as a
poor solution.

Marc
 
Back
Top