Raid and Volume Performance in OpenBSD 3.2
by francisco roque
This document provides a comparison of ccd, raidframe, and vinum filesystems running on OpenBSD. Only mirrors and stripes were compared. Bonnie and IOzone were used to benchmark the systems.
IOzone results are not yet complete.
Tests were performed on 2 machines, a Pentium 166 and an Athlon 2400+:
Pentium: 64mb RAM, (full dmesg)
Athlon: 512mb RAM, 2 7200rpm ATA100 20gb disks. (full dmesg)
Each drive was plugged into its own IDE channel.
Each machine was running OpenBSD 3.3-current (from 5/28 snapshot). The kernel used was a custom kernel with vinum (from TedU's patches) and raidframe enabled. All tests were run in single user mode.
Bonnie was run for 7 different filesystem types:
In each case, the partitions were kept in the same physical spot on the disks.
Disklabels: pentium wd0, pentium wd1, athlon wd0, athlon wd1 (note: fstype was changed as appropriate between '4.2BSD', 'ccd', 'RAID', 'vinum').
Bonnie Results
The following graphs show bonnie results as the percentage difference from the average of wd0 and wd1. In other words, if wd0 = 9000 kb/s, wd1 = 11000 kb/s, and ccd = 15000 kb/s, then the average is 10000 kb/s and ccd is 1.5 times faster than that average. The 1.5 is what these graphs show.
For an interpretation of Bonnie results, click here.
In all the graphs, raid0 and vinum0 are the raidframe and vinum stripes, and raid1 and vinum1 are the raidframe and vinum mirrors.

Athlon, 10mb file. larger version

Athlon, 2gb file. larger version

Pentum, 10mb file. larger version

Pentium, 200mb file. larger version
These graphs show the CPU percentage use as reported by Bonnie.

Athlon, 10mb file. larger version

Athlon, 2gb file. larger version

Pentium, 10mb file. larger version

Pentium, 200mb file. larger version
Graphs of the other filesizes and Graphs for the IOzone results will be uploaded once i have more time.
Some factors to consider when using this data as a comparison:
Between raidframe and vinum, raidframe works slightly better for small files, but vinum is heads above raidframe for large files. However, vinum also uses much more CPU than raidframe does.
If redundancy is not needed, ccd should be considered as it outperforms both vinum and raidframe. Perhaps best results can be obtained by coupling ccd with vinum?
Manpages:
ccdconfig(8),
raidctl(8),
vinum(8) (from FreeBSD).
Other howto's, docs and references:
Ted Unangst's OpenBSD Page, containing the patches for the initial vinum port to OpenBSD.
The Vinum Volume Manager
RAIDframe - Rapid Prototyping for Disk Arrays - for in depth info read the RAIDframe Manual
Bonnie - a fast filesystem benchmark utility
IOzone - an indepth filesystem benchmark tool.
The author of this document is francisco roque, who can be found at
http://www.blackant.net/
This document is copyright francisco roque 2002.
This document is released under BSD style license and may be used in whole or part for anything so long as this section remains intact.
The author takes no responsibility for damages incurred by following the steps in this document, including but not limited to the loss of data or damage to hardware. Good Luck.