FreeBSD software RAID0: gvinum vs. gstripe

Posted by: admin  :  Category: FreeBSD, HA

Back some time I announced reviewing FreeBSD’s geom software RAID implementations.

Todays article compares geom stripe (gstripe) along with geom gvinum (gvinum) for disk striping (RAID0).

All testing was done on the same hardware as before to get results comparable to previous tests.

Benchmarks were taken using stripe sizes of 64k, 128k and 256k and measured using dd, bonnie++ and rawio as before.

As for the technology gstripe follows the same approach than gmirror which I look at previously.

# rawio benchmark results

rawio was choosen to measure I/O speed during concurrent access. rawio was set to run all tests (random read, seq read, random write, seq write) with eight processes on the /dev/stripe/* and /dev/gvinum/* devices.

Results for the single disk are provided as well to compare performance not only between the different frameworks but also against the native disk performance.

Click the images to see the actual result values and a chart.

529

532

# dd benchmark results

dd was choosen to measure raw block access to /dev/mirror/* and /dev/gvinum/* devices. dd was set to run sequential read and write tests using block sizes from 16k to 1024k.

Click the images to see the actual result values and a chart.

523

520

# bonnie++ benchmark results

finally, bonnie++ was used get pure file system performance.

Click the images to see the actual result values and a chart.

517

513

# conclusion

Looking at raw disk access I must conclude that none of the frameworks beats single disk performance in overall when it comes to blockwise input/output with dd.
gvinum generally performs better than gstripe except when using 256k stripe sizes.

Now since ‘dd’ is very synthetic by it’s nature, rawio is much better to see how the devices would perform under a more “real-life” situation.
Although rawio benchmark results may look low, these numbers where achieved by running 8 processes at once. They’ll reflect best what could be expected in a true multi-user environment with concurrent access.
As from the results there is no absolute winner, as depending on the stripe sizes either of both implementations out-performs the other.

Finally for bonnie++ we see some interesting results. Performance is almost identical for all implementations.
One notable exception was seen with gvinum (64k stripe size) which clearly outperformed its competitors..
One must keep in mind that the first six tests performed by bonnie++ (rand delete/read/create, seq delete/read/create) are limited by I/O performance of both the system bus and the device itself. The hardware I used for testing was capable of about 160 – 170 I/Os per second. I admit that results could be different if the tests are re-run on decent hardware with a higher I/O throughput. It’s possible that modern hardware reveals an I/O barrier for abstracted devices which cannot be seen from my tests.

Personally I prefer using gstripe over gvinum because of it’s more simplistic configuration approach. In terms of performance, gvinum seems to offer superiour performance when it comes to disk striping.

The next article will discuss gvinum and gstripe for RAID10.

FreeBSD’s loader fails with wrong harddisk geometry in BIOS

Posted by: admin  :  Category: FreeBSD

I’s been a while since I last saw issues with FreeBSD’s loader(8).

The error I came along today read like this:

can't load kernel

Read more…

FreeBSD software RAID1: gvinum vs. gmirror

Posted by: admin  :  Category: FreeBSD

Back in January I introduced an upcoming series about FreeBSD software RAID implementations and how they compare to each other.
I know it’s been some time since, but I was kept busy on some other stuff which prevented me in polishing up the results. My appologies for the delay.

Now, in this article I’m going to talk about FreeBSD’s gvinum and gmirror for disk mirroring (aka RAID1).
The benchmark results shown below will illustrate the difference between these two implementations. To get a better idea of their real meaning, I’m providing you with the single disk results as well.
Read more…

Using FreeBSD kernel from bootonly CD for last resort recovery

Posted by: admin  :  Category: FreeBSD

You accidentally deleted your production kernel?
Both your new and backup kernel are trash?

No worries. You could always use a FreeBSD setup or bootonly CD to load a fallback kernel from there.
Read more…

Compiling pxelinux and memdisk on FreeBSD

Posted by: admin  :  Category: FreeBSD

Building pxelinux and memdisk on FreeBSD is not as straight forward as on Linux. A fair amount of additional handwork is involved.

But don’t worry, all steps required to master this task are outlined below.
Read more…

Convert FreeBSD ISO image for PXE bootstrap

Posted by: admin  :  Category: FreeBSD

Usually ISO’s of most Linux distros use isolinux as boot loader, so these may be served up easily for pxe bootstrap through pxelinux/memdisk.

For FreeBSD this does not hold true, so the vanilla ISO’s must be converted before they can be bootstrapped.
Read more…

FreeBSD software RAID comparison: Introduction

Posted by: admin  :  Category: FreeBSD

FreeBSD comes with support for multiple software RAID implementations to date.

  • ata, which is not really a RAID toolkit but the ata device driver itself.Nevertheless it provides sort of RAID functionality by also interfacing to popular low-end RAID controllers, sometimes also referred to as Fake-RAID controller (highpoint, promise and alike).
    It has support for enabling RAID on non-RAID capable ata controllers, too.ata is IMHO the worst RAID solution out there, and as such should be avoided at any cost. Please read as I’m writing: I’m not telling you the ata driver is bad, but I think it shouldn’t tamper with RAID.
    RAID should never be implemented by means of a device driver which does some scary magic inside. A real RAID controller (hardware RAID) or a volume manager (software RAID) should be used instead.
  • ccd, the concatenated disk driver, used to be a standalone framework in previous FreeBSD versions. It has been integrated with geom (geom_ccd) in FreeBSD 5 and IMHO seems only to exist for historical and backward compatibility reasons by today.
  • vinum was also a standalone RAID framework in previous FreeBSD versions. It too was merged into geom (geom_vinum) in FreeBSD 5.
  • geom, which is basically an I/O abstraction layer which serves as stackable framework to multiple subsystems like vinum volume manager (which does jbod, raid 0, raid 1, raid 5 and combinations thereof), mirror (which does raid1), stripe (raid0), and many others.geom provides both functionality and reliability in a proper implementation. I think it might outrun big players like Veritas Volume Manager one day.

So what I’m going to do is a performance comparison (benchmark) of the different geom classes providing RAID1 (mirroring), RAID0 (striping) and RAID10 functionality.
Read more…

Debian GNU/kFreeBSD inside native FreeBSD jail

Posted by: admin  :  Category: Debian GNU/Linux, FreeBSD, jails

It has been some time now since development on Debian GNU/kFreeBSD started, which aims at bringing together the FreeBSD kernel with a GNU userland.

There exists a similar implementation called Gentoo GNU/kFreeBSD, although I had no time yet to review it.
Read more…

Convert Single Disk to GEOM Mirror

Posted by: admin  :  Category: FreeBSD, HA

This article should have been published already last month, unfortunately the draft was left forgotten for a while in my mailbox.

As some may remember I published two articles on how to setup GEOM disk mirroring on alpha and sparc earlier this year. These articles were originally based upon Ralf Engelschalls disk mirroring howto.

I had installed GEOM disk mirrors on various occasions since then, though I always felt that converting to a GEOM mirror like that involved too much work.

So I went on to find a better and faster way to achieve the task and I found one.
Read more…

FreeBSD Boot Loader Hangs On Startup

Posted by: admin  :  Category: FreeBSD

Symptoms

The FreeBSD boot loader seems to hang at startup. The system will not respond and not boot.
Either nothing or one of the following may be printed on the system console:

|

or

boot: -D

Read more…