My wife is in the market for large, cheap drives with decent performance to store sequencing data, so I ordered and tested a 2 TB Western Digital Red NAS (WD20EFRX—no link because wdc.com is broken at the moment). The Red series seems to be a halfway point between the WD Green and WD Black series: like the Green series, they have 4096-byte sectors and IntelliPower (i.e. variable rpm), but they are designed for 24×7 operation and seem to have far more consistent performance—although not quite on par with the Black series.
The big news is that this is the first Advanced Format disk I’ve seen that correctly reports its physical sector size:
protocol ATA/ATAPI-9 SATA 3.x device model WDC WD20EFRX-68AX9N0 firmware revision 80.00A80 serial number WD-WMC301592199 WWN 50014ee6adf1fbaf cylinders 16383 heads 16 sectors/track 63 sector size logical 512, physical 4096, offset 0 LBA supported 268435455 sectors LBA48 supported 3907029168 sectors PIO supported PIO4 DMA supported WDMA2 UDMA6
As shown below, random-access performance is decent, but not mind-blowing—with the important caveat that I tested it on a machine that only has SATA I. I will update the numbers if and when I get the chance to test it on a machine with a SATA II or SATA III controller.
count size offset step msec tps kBps 32768 4096 0 16384 10222 3205 12822 32768 4096 512 16384 33900 966 3866 32768 4096 1024 16384 35417 925 3700 32768 4096 2048 16384 36207 905 3620 16384 8192 0 32768 8298 1974 15794 16384 8192 512 32768 31238 524 4195 16384 8192 1024 32768 31666 517 4139 16384 8192 2048 32768 31547 519 4154 16384 8192 4096 32768 8037 2038 16307 8192 16384 0 65536 6471 1265 20252 8192 16384 512 65536 27815 294 4712 8192 16384 1024 65536 27201 301 4818 8192 16384 2048 65536 27607 296 4747 8192 16384 4096 65536 6722 1218 19497 8192 16384 8192 65536 6396 1280 20489 4096 32768 0 131072 5199 787 25210 4096 32768 512 131072 22564 181 5808 4096 32768 1024 131072 23349 175 5613 4096 32768 2048 131072 20816 196 6296 4096 32768 4096 131072 5540 739 23655 4096 32768 8192 131072 5307 771 24693 4096 32768 16384 131072 5303 772 24716
Sequential performance is also pretty decent:
# dd if=/dev/zero of=/dev/ada2 bs=1m count=1024 1024+0 records in 1024+0 records out 1073741824 bytes transferred in 8.881374 secs (120898164 bytes/sec)
Does this mean that you don’t have to do any “4k stuff” when you use these with ZFS, as per Ivan’s guide?
http://ivoras.net/blog/tree/2011-01-01.freebsd-on-4k-sector-drives.html
Thanks
That’s a good question with a complex answer.
When a disk reports different logical and physical sector sizes, as this one does, the
ada
driver reports the logical sector size assectorsize
and the physical sector size asstripesize
(otherwise,stripesize
is 0). Furthermore, the driver has a list of disks which misreport their physical sector sizes, and will reportstripesize
as 4096 instead of 0 for disks on that list. There is also a tunable (kern.cam.ada.X.quirks=1
) in case you come across a misbehaving disk that isn’t on the list.The question, then, is whether and how ZFS uses that information. Unfortunately, I don’t think it does—it relies unconditionally on
sectorsize
:(from
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
)This should be easy to fix, though. I’m sure Pawel will be happy to review your patch ;)