Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Gea, and anyone else who would care to answer:
I'm building a ZFS server, trying to make it as fast, quiet and cool as possible. I'm experimenting with 8 Crucial m500 960GB SSDs that I borrowed temporarily from work.
My main question regards TRIM support for these drives. Correct me if I'm wrong, but I don't believe any of the Illumos/Solaris OSs have TRIM support. My main question is, should I be concerned about this? In other words, will performance substantially drop off over time? My usage pattern will be primarily read-heavy, which I think would help. Although, the plan is to periodically dump older stuff off the SSD pool onto a much larger HDD pool, so I suppose the space on the SSD array will get habitually reused.
FreeBSD 10.0 (and possibly 9.2) does offer TRIM support for SSDs in a ZFS pool. My first experiment was (and is) with that, and so far so good. But I've always used Illumos in the past and I wonder if that is an option in this case.
By the way, doing a simple local dd if=/dev/zero test to the array as described in this post is yielding over 2GB/sec, which I was pretty impressed with. The NIC is an Intel 10GbE (x540-T1), BTW, but I have not tested throughput over the network yet (working on configuring Samba at this point).
Semi-unrelated but open for comments: What is the general consensus regarding running those 8 SSDs in a single-parity (RAIDZ1) config? My thoughts were that they are relatively small drives, reading is not hard on SSDs, and SSDs have a high MTBF so the risk of RAIDZ1 seemed low, and therefore I opted to get an additional 960GB of usable space vs the additional protection of RAIDZ2. Does that seem like a good choice in this case? I wouldn't do it with 4TB HDDs, but for 1TB SSDs it seemed reasonable to me.
Thanks to all.
Seems like either my question got overlooked or nobody has anything to add. In any case, since posting I've become somewhat more educated about write consistency in SSDs, even in the absence of TRIM. It seems that doing a decent amount of overprovisioning should help dramatically with keeping write performance consistent. This allows me to run on an Illumos OS (OmniOS) which was what I really wanted (instead of FreeBSD, which now has TRIM for ZFS, which I thought I needed).
I have ordered eight Samsung 840 1TB drives. Samsung has a utility that allows the user to set the overprovisioning amount. I plan to set to around 20%. I hate to give up all that space but what good are SSDs if their performance falls off a cliff?
The point of the updated post is simply to see if anyone has any comments about making a RAIDZ1 pool of eight Samsung 840 1TB drives overprovisioned down to 800GB each. Specifically:
- Has anyone used these drives for ZFS pools?
- Does my choice of RAIDZ1 in this case seem foolish or reasonable?
- Any comments on the write consistency / overprovisioning issue?
Thanks.
Gea,
Replication progress percentage works during the initial seed, however incremental replications just say "running % n.a." for hours with no way to monitor progress. I am running v0.9d2 nightly on all of my boxes, just wondering if you had a quick fix to see percentage?
This wasn't an issue on-site, however now we are replicating over (relatively) slow WAN at 2 MB/s and its becoming an issue.
I have the replication jobs scheduled to run nightly, but am unsure how napp-it auto service will handle the scheduled replication job if it is still running during the next scheduled time. I would hate to have to re-seed my 6TB pool!
Thanks again for all your help!
1. not me
2. regarding performance and I/O, raid z1 is ok
I prefer Raid-Z2 as the failure rate of SSDs is similar to disks. The rebuild time is very fast if you have a spare. But in such a case, you can use Z2 as well (more expensive)
3. If the OS does not support Trim on Raid, you can use either modern SSDs with advanced build in logic, you can overprovision or do not fill the SSD up to the end.
Hey _Gea, I deleted some snaps yesterday because I am doing a lot of moving of VMs and they were taking up a ton of space. In the GUI they do not display, but if I do 'zfs list -r -t snapshot' I see the 3 snaps I deleted.
A) is it safe to just delete these from a shell?
B) any reason why these would not show in the UI?
Gea,
somehow my replication is already screwed up its first week offsite. The job failed (and didn't alert me via email) with error:
info: 554: incremental zfs receive error after 5 s cannot receive incremental stream: most recent snapshot of pool01-das01/datastore08 does not match incremental source
src snaps: pool01-esx/datastore08@1391145061_repli_zfs_omni-san05_nr_13 -> pool01-esx/datastore08@1391145061_repli_zfs_omni-san05_nr_14
dest: pool01-das01/datastore08 with last snap pool01-esx/datastore08@1391145061_repli_zfs_omni-san05_nr_13
Maybe you have autosnaps with delzero snaps=yes on the source filesystem -you should not activate this option-
I made sure that delzero was never checked on any of the SANs and could not find a reason for this to fail. I really cant afford to re-seed 3TB over WAN at this point. Is this job salvageable by deleting the mismatched snap pair? I am free to delete snapshots on the source machine as long as they are not replication snaps right?
- There is no problem if you delete snaps manually at CLI (beside replication snaps)
- The same command 'zfs list -r -t snapshot' I is used by napp-it, so the result should be the same.
Interestingly enough the system and the UI are different. I can upload some screenshots if it would make a difference. It's nothing major, but it could cause someone to run lower on space if they encounter the same thing.
Don't remember the exact command sequence, but the gist is: use format command then using the fdisk subcommand create a solaris2 using 100% of the disk. save using option 6 and then do the 'partition' subcommand to create a slice zero using say 90% of the top-level partition. Then 'zpool add tank cXtYdZs0.
If you start an incremental replication, you create a new source snap snap ex nr_14 and transfer the difference between _13 and _14 to the destination system. This requires that on source and target the nr_13 must be identical as the source is resetted to this snap prior transfer. If and only if the transfer is successful, you have a new snap nr_14 on the target system.
If zfs receive detects, that the common base snap nr_13 is not identical, it cannot proceed and cancels with your error. In such a case you must either redo an initial replication or if you have a snap nr_12 on both sides, you can delete the snap_13 and retry the incremental replication.
A unwanted snap modification can happen if a snap next to the replication snap is deleted ex a zero snap so you must be careful when deleting snaps. If you need a snap history with replications, you can use the keep/hold mechanism for replication jobs to keep target snaps.
Regarding OmniOS I have met some bizarre issue I can't wrap my head around, anyone seen anything like this and/ or resolved it? I'm stumped and I don't know what to do, post here
http://hardforum.com/showthread.php?t=1805151
Regards,
GreatOcean
I also have seen this twice last year.
Seems produced by client problems that force a smbd service restart and not server problems (beside the reaction could be smarter).
see https://www.illumos.org/issues/3646
If you plan to browse Maverick's shares from Windows machine,you will end installing Samba at the Mac OS .Thanks. I'll give it a go.
Meanwhile, another question. The easiest way for me to set up, and what I have done in the past, is to use COMSTAR iSCSI connected to a Mac Pro with 10GbE. Works great.
But, now that I'm redoing everything (again), I'm wondering how would be best to share my storage. Questions:
1. Are there inherent weaknesses to using iSCSI as it regards data integrity? I know there are issues regarding ZFS snapshots, etc, and that there may be performance differences, but I wonder if the data integrity suffers at all. Anyone?
2. If using CIFS/SMB, there are two choices: built-in CIFS and add-on Samba 4.1.x. CIFS would certainly be easier. What I'm concerned about is performance. AFAIK, CIFS does not support SMB v2 or higher. I understand that v2 is a dramatic speed increase over v1. Presumably to get v2, I'd have to use Samba. I am using OS X Mavericks, which defaults to v2.
2a. Does anyone have experience or an opinion on speed of CIFS vs Samba 4.1.x using SMB v2?
2b. If the speed is much better using Samba, any other complications or downsides to be aware of using that instead of CIFS?
Thanks again.
If you start an incremental replication, you create a new source snap snap ex nr_14 and transfer the difference between _13 and _14 to the destination system. This requires that on source and target the nr_13 must be identical as the source is resetted to this snap prior transfer. If and only if the transfer is successful, you have a new snap nr_14 on the target system.
If zfs receive detects, that the common base snap nr_13 is not identical, it cannot proceed and cancels with your error. In such a case you must either redo an initial replication or if you have a snap nr_12 on both sides, you can delete the snap_13 and retry the incremental replication.
A unwanted snap modification can happen if a snap next to the replication snap is deleted ex a zero snap so you must be careful when deleting snaps. If you need a snap history with replications, you can use the keep/hold mechanism for replication jobs to keep target snaps.
Couldn't you compare the 2 incrementals' sizes?ZFS send/receive does not offer progress informations. For the initial transfer I compare the size of the source filesystem vs the target one. For incremental transfers there is no similar workaround.
Couldn't you compare the 2 incrementals' sizes?
Thanks gea, I was under the impression i could delete any snaps that weren't replication snaps on the source filesystem. Are you saying that i cant delete ANY snaps on the source filesystem as it might screw up replication?
I thought the source had both snaps at the start.i think the issue here is that the destination snap is only created AFTER all the data has been successfully transferred.
So my question is, without having multiple ZFS volumes, is there any way to send only certain directories within a volume?
Hoping someone has any ideas for me, yesterday my storage pool was online and suddenly cut out on me. Decided to let it go for the night thinking maybe it just needed to clear up a cache. today i logged into napp-it and see that the entire pool is marked as unavailable. I can see the drives blink on like system start and thats the end of it. i have an M1015 in IT mode, with an intel RVS..... sas expander that has worked great for a couple years now. Solaris express 11 (i would convert but i had upgraded ZFS pools )
No, not with zfs send that replicates filesystems.
You may use rsync that can sync files and folders
btw.
What you mean with volumes?
- a ZFS pool like Nexenta
- a ZFS filesystem
- a ZFS zvol
Aah, so that's a napp-it thing, not an OmniOS thing. Good to know.teejay, did you install napp-it? if so, it put gnu command in a different place that gets searched first. i got bit by this too...
What the HELL?
OmniOS decided to mimic a Solaris OS, but uses GNU commands instead of their Solaris counterparts? Seriously. What. The. Hell.
getfacl/setfacl don't work on ZFS. But they're included! No, for ZFS, you're supposed to use "ls -v" and "chmod" to get and set ACLs. So why the HELL did they decide to replace those commands with ones that don't have that functionality? Thank god they're still there in /bin, or I would have thrown the whole OS out the window and gone back to Solaris 11.1.
Jesus, and people wonder why Open-Source Solaris isn't taking off. It's crap like this that's killing it.
See that "recursive" box? When checked, it does NOT alter the permissions of folders and files underneath that level for some reason. This is driving me freaking bonkers. I've never had this much issue with an SMB share! It doesn't appear that any change I make affects anything but the top level of folders, and with hundreds of thousands of files, there's no freaking way I'm going to change them all by hand!
What am I doing wrong?
Is there a downside to rsync? Is data integrity just as good?
Thanks!