mediahound
Dabbler
- Joined
- Mar 11, 2013
- Messages
- 15
As good as ZFS is i'm a little frustrated with some of it's limitations.
Not file system limitations, more like RAM limitations to start. :P Having the ability to store a zetabyte sized file if I require an exabyte of RAM (that 1:1000 ratio) seems to be the first real bottleneck. It sounds like much over 32TB is unknown territory, and much over 16 physical drives in a system seems to also be pretty rare and require some seriously specialized knowledge to make work at all. Surely there must be a way to get a group of 2 or more computers all operate a single zpool of storage visible to the outside, while coordinating in such a way that maybe the RAM requirement ends up just being "per hardware machine" for instance..? I wouldn't mind having 96gigs of RAM for a 100TB array but there aren't many motherboards allowing that yet, and stretching things any further borders on impossible even if you can budget for the physical drives to store the data. I don't think this 'concern about limitation' is frivolous either since each new CPU revision only seems to double the allowed RAM anymore yet hard drives have done more than double, and the enterprise class needs of potential future ZFS users will also likely encounter these limits as well I would assume.
There are separate clustering programs out there to provide fault tolerant storage for data, but by what I can tell they would all work "outside" of all the benefits of ZFS - meaning once you put it in charge of say seeing that data is present in at least 2-3 locations of a large cluster of dumb disk nodes you open the door right back to silent data corruption, failed writes, and all the rest all over again. Yet even if you had a single 'master' computer in charge of a monster zpool made up of many machines, if it maintains the 1:1000 ram to storage ratio to manage all that, it still wont work without the ability to distribute that load to the more local level of machines, whether it's some kind of top down hierarchy to coordinate this, or some kind of peer to peer hierarchy or both together.
So as of right now, are there any credible discussions going on about some kind of a clustering ability that would work around those bottlenecks? Just like "ZFS loves cheap disks" not needing RAID card, something along the line of "ZFS-cluster loves cheap computers" not demanding server class hardware, providing much better 'catstrophe protection' where physically separate servers, either on the same LAN in a different room or even far away over the internet, could coordinate to prevent silent data corruption while reducing sysadmin hassles? To where expanding the storage pool could be done as readily by hooking up another NAS box to the LAN as it could be adding drives to a single NAS? In a way the ZFS philosophy almost works better on a clustering level than on a single computer and seems like a natural extension or something which shouldn't be too hard to hook code into since it already does such a good job preventing data loss on the more local level.
In part i'm wondering what kind of strategies could be used to maintain an "always in ZFS" data chain after the data leaves the specific computer - going over the network, going onto a USB drive then back onto another machine, etc. Once the data leaves ZFS it can be corrupted, the new checksum might not match the old if corruption occurs en route and were back to the problem we've always had so it would seem one way or another, even if most of the work would be up to other projects to interface from their end, there should still be good ways for ZFS to provide data 'upstream' that computer to be used as such. (or maybe it already does - i'm not a programmer or sysadmin afterall, just thinking out loud about what my feature request is so i dont have to become either :P)
Not file system limitations, more like RAM limitations to start. :P Having the ability to store a zetabyte sized file if I require an exabyte of RAM (that 1:1000 ratio) seems to be the first real bottleneck. It sounds like much over 32TB is unknown territory, and much over 16 physical drives in a system seems to also be pretty rare and require some seriously specialized knowledge to make work at all. Surely there must be a way to get a group of 2 or more computers all operate a single zpool of storage visible to the outside, while coordinating in such a way that maybe the RAM requirement ends up just being "per hardware machine" for instance..? I wouldn't mind having 96gigs of RAM for a 100TB array but there aren't many motherboards allowing that yet, and stretching things any further borders on impossible even if you can budget for the physical drives to store the data. I don't think this 'concern about limitation' is frivolous either since each new CPU revision only seems to double the allowed RAM anymore yet hard drives have done more than double, and the enterprise class needs of potential future ZFS users will also likely encounter these limits as well I would assume.
There are separate clustering programs out there to provide fault tolerant storage for data, but by what I can tell they would all work "outside" of all the benefits of ZFS - meaning once you put it in charge of say seeing that data is present in at least 2-3 locations of a large cluster of dumb disk nodes you open the door right back to silent data corruption, failed writes, and all the rest all over again. Yet even if you had a single 'master' computer in charge of a monster zpool made up of many machines, if it maintains the 1:1000 ram to storage ratio to manage all that, it still wont work without the ability to distribute that load to the more local level of machines, whether it's some kind of top down hierarchy to coordinate this, or some kind of peer to peer hierarchy or both together.
So as of right now, are there any credible discussions going on about some kind of a clustering ability that would work around those bottlenecks? Just like "ZFS loves cheap disks" not needing RAID card, something along the line of "ZFS-cluster loves cheap computers" not demanding server class hardware, providing much better 'catstrophe protection' where physically separate servers, either on the same LAN in a different room or even far away over the internet, could coordinate to prevent silent data corruption while reducing sysadmin hassles? To where expanding the storage pool could be done as readily by hooking up another NAS box to the LAN as it could be adding drives to a single NAS? In a way the ZFS philosophy almost works better on a clustering level than on a single computer and seems like a natural extension or something which shouldn't be too hard to hook code into since it already does such a good job preventing data loss on the more local level.
In part i'm wondering what kind of strategies could be used to maintain an "always in ZFS" data chain after the data leaves the specific computer - going over the network, going onto a USB drive then back onto another machine, etc. Once the data leaves ZFS it can be corrupted, the new checksum might not match the old if corruption occurs en route and were back to the problem we've always had so it would seem one way or another, even if most of the work would be up to other projects to interface from their end, there should still be good ways for ZFS to provide data 'upstream' that computer to be used as such. (or maybe it already does - i'm not a programmer or sysadmin afterall, just thinking out loud about what my feature request is so i dont have to become either :P)