Solaris ZFS vs. Linux with Hardware Raid
I’ve had to start using Xen virtualization for a current project we’re working on. I always hate switching back to Linux servers because all of our fancy tools and scripts for automation are written for Solaris since we only have a handful of Linux servers.
At any rate, I’ve got Xen all figured out and really started to dig into Linux’s LVM for the first time. There’s some similarities between LVM and ZFS, but most noticeably LVM doesn’t deal with RAID at all. You have to set up manual Linux software RAID and put a VolumeGroup on the RAID meta-device. So I set up a nice software RAID5 device, created a VolumeGroup, and off I went.
The write performance was horrendous.
So I begrudgingly went into the RAID controller BIOS and set up hardware RAID5 and put LVM on top of that. After the installation, I decided to see how fast this was compared to ZFS raid1z (which is more or less RAID5).
The machines are identical:
- Dual 6 Core Opteron
- Sun STK RAID Controller (Adaptec) — 256MB cache, write-back cache mode enabled
- 16 Gigs of memory
Here’s the results:
Linux — 21GB Write
# time dd if=/dev/zero of=/root/test bs=10240 count=2009600
2009600+0 records in
2009600+0 records out
20578304000 bytes (21 GB) copied, 146.226 seconds, 141 MB/s
real 2m26.377s
user 0m4.068s
sys 1m53.823s
Linux — 1GB Write
# time dd if=/dev/zero of=/root/test bs=10240 count=102400
102400+0 records in
102400+0 records out
1048576000 bytes (1.0 GB) copied, 2.69437 seconds, 389 MB/s
real 0m2.702s
user 0m0.108s
sys 0m2.584s
Solaris — 21GB Write
# time dd if=/dev/zero of=/zonepool/test bs=10240 count=2009600
2009600+0 records in
2009600+0 records out
20578304000 bytes (21 GB) copied, 55.3566 s, 372 MB/s
real 0m55.412s
user 0m0.913s
sys 0m27.012s
Solaris — 1GB Write
# time dd if=/dev/zero of=/zonepool/test bs=10240 count=102400
102400+0 records in
102400+0 records out
1048576000 bytes (1.0 GB) copied, 1.25254 s, 837 MB/s
real 0m1.257s
user 0m0.046s
sys 0m1.211s
837MB/s for burst writes on raidz1! ZFS is too awesome.
Here’s the controller configurations:
Linux Controller Configuration
Solaris Controller Configuration


