On May 31, 2007, at 12:15 AM, Nathan Huisman wrote:

===== PROBLEM

To create a disk storage system that will act as an archive point for
user data (Non-recoverable data), and also act as a back end storage
unit for virtual machines at a block level.

<snip>

Here are some tips from me. I notice you mention iSCSI a lot so I'll stick to that...

Q1: The best way to mirror in real time is to do it from the consumers of the storage, ie, your iSCSI clients. Implement two storage servers (say, two x4100s with attached disk) and put their disk into zpools. The two servers do not have to know about each other. Configure ZFS file systems identically on both and export them to the client that'll use it. Use the software mirroring feature on the client to mirror these iSCSI shares (eg: dynamic disks on Windows, LVM on Linux, SVM on Solaris).

What this gives you are two storage servers (ZFS-backed, serving out iSCSI shares) and the client(s) take a share from each and mirror them... if one of the ZFS servers were to go kaput, the other is still there actively taking in and serving data. From the client's perspective, it'll just look like one side of the mirror went down and after you get the downed ZFS server back up, you would initiate normal mirror reattachment procedure on the client(s).

This will also allow you to patch your ZFS servers without downtime incurred on your clients.

The disk storage on your two ZFS+iSCSI servers could be anything. Given your budget and space needs, I would suggest looking at the Apple Xserve RAID with 750GB drives. You're a .edu, so the price of these things will likely please you (I just snapped up two of them at my .edu for a really insane price).

Q2: The client will just see the iSCSI share as a raw block device. Put your ext3/xfs/jfs on it as you please... to ZFS on the it is just data. That's the only way you can use iSCSI, really.... it's block level, remember. On ZFS, the iSCSI backing store is one large sparse file.

Q3: See the zpool man page, specifically the 'zpool replace ...' command.

Q4: Since (or if) you're doing iSCSI, ZFS snapshots will be of no value to you since ZFS can't see into those iSCSI backing store files. I'll assume that you have a backup system in place for your existing infrastructure (Networker, NetBackup or what have you) so back up the stuff from the *clients* and not the ZFS servers. Just space the backup schedule out if you have multiple clients so that the ZFS+iSCSI servers aren't overloaded with all its clients reading data suddenly with backup time rolls around.

Q5: Sure, nothing would stop you from doing that sort of config, but it's something that would make Rube Goldberg smile. Keep out any unneeded complexity and condense the solution.

Excuse my ASCII art skills, but consider this:

[JBOD/ARRAY]---(fc)--->[ZFS/iSCSI server 1]---(iscsi share)----- [Client ] [mirroring the] [JBOD/ARRAY]---(fc)--->[ZFS/iSCSI server 2]---(iscsi share)----- [ two shares ]

Kill one of the JBODs or arrays, OR the ZFS+iSCSI servers, and your clients are still in good shape as long as their software mirroring facility behaves.

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

Reply via email to