On Dec 31, 2009, at 1:43 AM, Andras Spitzer wrote:

Let me sum up my thoughts in this topic.

To Richard [relling] : I agree with you this topic is even more confusing if we are not careful enough to specify exactly what we are talking about. Thin provision can be done on multiple layers, and though you said you like it to be closer to the app than closer to the dumb disks (if you were referring to SAN), my opinion is that each and every scenario has it's own pros/cons. I learned long time ago not to declare a technology good/bad, there are technologies which are used properly (usually declared as good tech) and others which are not (usually declared as bad).

I hear you. But you are trapped thinking about 20th century designs and ZFS is a
21st century design.  More below...

Let me clarify my case, and why I mentioned thin devices on SAN specifically. Many people replied with the thin device support of ZFS (which is called sparse volumes if I'm correct), but what I was talking about is something else. It's thin device "awareness" on the SAN.

In this case you configure your LUN in the SAN as thin device, a virtual LUN(s) which is backed by a pool of physical disks in the SAN. From the OS it's transparent, so it is from the Volume Manager/ Filesystem point of view.

That is the basic definition of my scenarion with thin devices on SAN. High-end SAN frames like HDS USP-V (feature called "Hitachi Dynamic Provisioning"), EMC Symmetrix V-Max (feature called "Virtual provisioning") supports this (and I'm sure many others as well). As you discovered the LUN in the OS, you start to use it, like put under Volume Manager, create filesystem, copy files, but the SAN only allocates physical blocks (more precisely group of blocks called extents) as you write them, which means you'll use only as much (or a bit more rounded to the next extent) on the physical disk as you use in reality.

From this standpoint we can define two terms, thin-friendly and thin-hostile environments. Thin-friendly would be any environment where OS/VM/FS doesn't write to blocks it doesn't really use (for example during initialization it doesn't fills up the LUN with a pattern or 0s).

That's why Veritas' SmartMove is a nice feature, as when you move from fat to thin devices (from the OS both LUNs look exactly the same), it will copy the blocks only which are used by the VxFS files.

ZFS does this by design. There is no way in ZFS to not do this.
I suppose it could be touted as a "feature" :-)  Maybe we should brand
ZFS as "THINbyDESIGN(TM)"  Or perhaps we can rebrand
SMARTMOVE(TM) as TRYINGTOCATCHUPWITHZFS(TM) :-)

That is still the basics of having thin devices on SAN, and hope to have a thin-friendly environment. The next level of this is the management of the thin devices and the physical pool where thin devices allocates their extents from.

Even if you get migrated to thin device LUNs, your thin devices will become fat again, even if you fill up your filesystem once, the thin device on the SAN will remain fat, no space reclamation is happening by default. The reason is pretty simple, the SAN storage has no knowledge of the filesystem structure, as such it can't decide whether a block should be released back to the pool, or it's really not in use. Then came Veritas with this brilliant idea of building a bridge between the FS and the SAN frame (this became the Thin Reclamation API), so they can communicate which blocks are not in use indeed.

I really would like you to read this Quick Note from Veritas about this feature, it will explain way better the concept as I did : http://ftp.support.veritas.com/pub/support/products/Foundation_Suite/338546.pdf

Btw, in this concept VxVM can even detect (via ASL) whether a LUN is thin device/thin device reclamation capable or not.

Correct.  Since VxVM and VxFS are separate software, they have expanded
the interface between them.

Consider adding a mirror or replacing a drive.

Prior to SMARTMOVE, VxVM had no idea what part of the volume was data
and what was unused. So VxVM would silver the mirror by copying all of the
blocks from one side to the other. Clearly this is uncool when your SAN
storage is virtualized.

With SMARTMOVE, VxFS has a method to tell VxVM that portions of the
volume are unused. Now when you silver the mirror, VxVM knows that
some bits are unused and it won't bother to copy them.  This is a bona
fide good thing for virtualized SAN arrays.

ZFS was designed with the knowledge that the limited interface between
file systems and volume managers was a severe limitation that leads to
all sorts of complexity and angst. So a different design is needed.  ZFS
has fully integrated RAID with the file system, so there is no need, by
design, to create a new interface between these layers. In other words,
the only way to silver a disk in ZFS is to silver the data. You can't silver
unused space. There are other advantages as well.  For example, in
ZFS silvers are done in time order, which has benefits for recovery
when devices are breaking all around you.  Jeff describes this rather
nicely in his blog:
        http://blogs.sun.com/bonwick/entry/smokin_mirrors

In short. ZFS doesn't need SMARTMOVE because it doesn't have the
antiquated view of storage management that last century's designs
had. Also, ZFS users who don't use snapshots could benefit from TRIM.

Honestly I have mixed feeling about ZFS. I feel that this is obviously the future's VM/Filesystem, but then I realize in the same time the roles of the individual parts in the big picture are getting mixed up. Am I the only one with the impression that ZFS sooner or later will evolve to a SAN OS, and the zfs, zpool commands will only become some lightweight interfaces to control the SAN frame? :-) (like Solution Enabler for EMC)

I don't see that evolution. But I've always contended that storage
arrays are just specialized servers which speak a limited set of
protocols.  After all, there is no such thing as "hardware RAID,"
all RAID is done in software. So my crystal ball says that such
limited server OSes will have a hard life ahead of them.

If you ask me the pool concept always works more efficient if 1# you have more capacity in the pool 2# if you have more systems to share the pool, that's why I see the thin device pool more rational in a SAN frame.

Anyway, I'm sorry if you were already aware what I explained above, I also hope I didn't offend anyone with my views,

I have a much simpler view of VxFS and VxVM.  They are neither
open source nor free, but they are so last century :-)
 -- richard

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to