• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

ZFS virtual front-end?

wheelz

Weaksauce
Joined
Feb 4, 2011
Messages
100
I had an idea to make a zfs high availability system but I don't know if it would work or how bad the performance would be. I'm posing it here to get some thoughts on it.

The idea is to use a large number of cheaper boxes with hard drives as just a back end for two high availability virtual front ends. Here is the jist:

# of cheap physical servers -> iscsi targets of individual drives -> 2 clustered virtual servers (on separate hosts) -> iscsi targets of pool -> physical host running the VMs

This would make kind of a network raid across multiple physical boxes.

What do you think the feasibility is of this and what kind of performance impact would there be? Any similar ideas or better ideas?
 
I think the amount of power drawn by a setup like this would definitely justify building a single, high performance dedicated server.
 
I think the amount of power drawn by a setup like this would definitely justify building a single, high performance dedicated server.

I think that is missing the point. That would then make a single point of failure which disqualifies it as being a highly available solution.
 
The complexity increase the points of failure especially due to the fact that your backend storage is on cheap physical boxes. And this is not HA as the front-end virtual host is a single machine. I vote no.
 
The complexity increase the points of failure especially due to the fact that your backend storage is on cheap physical boxes. And this is not HA as the front-end virtual host is a single machine. I vote no.

Sorry if I did not explain correctly. The backend are cheap servers but since there are multiple servers, there is no single backend server where data would not be available. For example, if you had 5 cheap boxes with 5 drives each (individual drives are sent via iSCSI to the front-end), you could take a drive from each of them to form a raidz vdev. Do that 4 more times and now you have each of your vdev's spread across 5 physical machines. Any single machine goes down and the data is still available (like loosing a single drive). It could be a mirror if you have 2 or raidz2 if you have 6.

On the front-end, to clarify it is not a single virtual server but two clustered together (not sure if this would work?) and each vm can provide the same data.

Does that clarify?
 
I suppose cheap is a relative term, so I'm sure others will chime in with more cost efficient setups or offer better performing alternatives...

but im taking your question as a proof of concept question to see if it's technically possible and what would be the pros/cons of it?

Once I discovered ISCSI and learned that my linux boxes could do this, I wondered about sticking servers w/drives on their own switch connected to a head node to manage it. For a POC, Each node would have 2+nics with a single drive being shared via ISCSI. Have the head node raid the iscsi and see what the performance looks like. a ZFS build would be similar setup, but your head node running ZFS would still need to be decently powerful.

Not sure how you would provide a fault tolerant/load balanced front end for a storage share... Not sure what software exists for that... and I don't remember reading anything in ZFS for that...

I believe there are some file systems/software like GlusterFS that kind of does this...
Basically RAID6 across storage servers...?
The better question may be how to cluster two ZFS servers together...
 
GlusterFS does this. However it would mean running ZFS on Linux on the GlusterFS servers as the storage backend. I don't think that GlusterFS is supported on top of ZFS, but since ZFS has xattrs etc, I think it will work (I did a quick and simple "testdrive" of glusterfs a few weeks ago where one of the nodes stored the data on top of ZFS, the other node on XFS, it worked.)

Another theoretical option would probably be using NBD (network block device) and present each and every physical disk to the front-end over the network. Not sure if this could somewhat cripple ZFS data integrity mechanisms.

Just ideas.
 
Back
Top