Hello all.

Like many others, I've come close to making a home NAS server based on 
ZFS and OpenSolaris. While this is not an enterprise solution with high IOPS 
expectation, but rather a low-power system for storing everything I have,
I plan on cramming in some 6-10 5400RPM "Green" drives with low wattage 
and high capacity, and possibly an SSD or two (or one-two spinning disks) 
for Read/Write caching/logging.

However, having all the drives spinning (with little actual usage for >99% 
of the data at any given time) will get inefficient for power bills. An apparent
solution is to use very few active devices, and idle or spin down the other 
disks
until their data is actually accessed - and minimize the frequency of such 
requests by efficient caching, while transparently maintaining the ease of
use of a single ZFS pool. This was all recognized, considered and discussed 
before me, but I have yet to find any definite answers on my questions below :)

I've read a number of blogs and threads on ZFS support for spinning down
unused disks, and for deferring metadata updates to a few always-active
devices. Some threads also discuss hacks to spin up drives of a ZFS pool
in parallel, to reduce latency when accessing their data initially after a
spin-down. There were also hack suggestions to keep only a few devices
requiring active power for writes, i.e. adding a mirror to a pool when its
free space is about to end, so new writes go only to a couple of new disks -
effectively making the pool a growing concat device and losing benefits
of parallel read/writes over all disks at once.

There were many answers and ideas to digest, but some questions I have 
remaining are:

1) What is the real situation now? Are such solutions still some home-made
hacks or commercial-only solutions, or did they integrate into commonly and 
freely available OpenSolaris source code and binaries?

2) Can the same SSD (single or a mirrored couple) be used for read and write
logging, i.e. L2ARC and ZIL? Is that going to be efficient anyhow? Should their
size be preallocated (i.e. as partitions on SSD), or can both L2ARC and ZIL use 
all of the free space on a shared SSD?

3) For a real-life situation, say, I'm going to watch a movie off this home NAS
over CIFS or via local XWindows session, and the movie's file size is small
enough to fit in ARC (RAM) or L2ARC (SSD). Can I set up the system in such
a manner (and using freely available software) that the idle drives of the pool
spin up, read the whole movie's file into a cache, and spin down - and for the 2
hours that the movie goes, these drives don't rotate at all, and only the cache
devices, RAM and CPU consume power?

On a counter situation, is it possible to upload a few files to such a pool so 
that they fit into the single (mirrored) active non-volatile write-cache 
device, 
and the larger drive sets won't spin up at all until the write cache becomes 
full 
and needs to spill over to disks?

Would such scenarios require special hacks and scripts, or do they already
work as I envisioned above - out of the box?

What is a typical overhead noted by home-NAS ZFS enthusiasts?
I.e. for a 4Gb movie to be prefetched and watched from cache, how large 
should the cache device be?

4) For a cheap and not blazing-fast home-user solution, the expensive SSDs
(for L2ARC and/or ZIL roles, with spun-down large disks waiting for occasional
rare requests) can consume half the monetary budget for the server. Can SSDs
be replaced by commodity USB/CF flash devices, or by dedicated spinning rust -
with a single/mirrored spindle consuming power instead of the whole dozen?

5) Some threads mentioned hierarchical storage management, such as 
SAMFS/QFS, as a means to keep recently-requested/written data on some
active devices and later destage it to rarely-spun drives emulating a tape
array, and represent the whole lot as a single POSIX filesystem. 

Is any of SAMFS/QFS (or similar solution) available for free? 

Is it needed in my case, or current ZFS implementation with HDDs+L2ARC+ZIL
covers this aspect of HSM already?

If not, can a ZFS pool with multiple datasets be created inside a HSM volume, 
so that I have the flexibility of ZFS and offline-storage capabilities of HSM?

--

Thanks for any replies, including statements that my ideas are insane or my
views are outdated ;) But constructive ones are more appreciated ;)
//Jim
-- 
This message posted from opensolaris.org
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to