zfs on gmirror slice

Miroslav Lachman 000.fbsd at quip.cz
Wed Sep 2 08:25:30 UTC 2009

Mark Stapper wrote:
> Miroslav Lachman wrote:


>>Yes, I am using it this way:
>>root at cage ~/# gmirror status
>>       Name    Status  Components
>>mirror/gms1  COMPLETE  ad4s1
>>                       ad6s1
>>root at cage ~/# zpool status
>>  pool: tank
>> state: ONLINE
>> scrub: none requested
>>        NAME        STATE     READ WRITE CKSUM
>>        tank        ONLINE       0     0     0
>>          mirror    ONLINE       0     0     0
>>            ad4s2   ONLINE       0     0     0
>>            ad6s2   ONLINE       0     0     0
>>errors: No known data errors
>>root at cage ~/# zpool list
>>NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
>>tank                    444G    353G   91.2G    79%  ONLINE     -
>>gmirror gms1 is for system files, ports etc. zpool (444GB) is for jails
>>Miroslav Lachman
> Hello,
> I'm quite surprised by your setup, as you are using two mechanisms to
> accomplish the exact same thing: data replication.
> If you want two slices of toast do you use a toaster for one, and an
> oven for the other?
> My advice to you: either use zfs or gmirror to realize redundancy.
> Of course, zfs provides far more flexibility then UFS. However, as
> mentioned, booting from ZFS isn't something sysinstall can setup for you.
> Besides, updating a zfs filesystem which you are running from is next to
> impossible. And since ZFS is still under heavy development, you will
> want to update your zfs version every now and then.
> So, i would recommend setting up gmirror to mirror your whole disks,
> install the base system(boot and "world") on a small UFS slice, and use
> the rest of the disc as zfs slice.

The reason is simple - the machine was installed one year ago, when ZFS 
was more experimental and sometimes with unexpected results and kernel 
panics. It was safer to use UFS for base. And the reason for using 
gmirror for base (small slice) and not for whole drive is 
re-synchronization after panic. Sync of 500GB drives in gmirror takes 
about 2 hours or more if system is under load. Sync of ZFS mirror takes 
seconds - only few files are synchronized, not whole mirror.
ZFS mirror is better to avoid "silent data corruption" on mirrored drives.
And because the setup with gmirror of one slice and ZFS mirror for 
second slice works without problem, I see no reason to do any changes on 
this machine.

> If you feel comfortable enough running your entire system on zfs, you
> could use a mirrored zpool to boot from. Takes a little more efford, but
> is more uniform.
> Updating zfs will be a pain though. You would have to boot from another
> filesystem to be able to update your root filesystem.
> If you'll be reinstalling your system, you might want to check out
> FreeBSD 8 because zfs boot support is better.
> Hope it helps.
> Greetz,
> Mark

I am able to install and run system from ZFS only, but I have no such 
strong feeling to do it. I am using 2GB USB flashdisk with UFS to boot 
and run a system, then 4x 1TB drives in RAIDZ used as storage pool on 
backup server.
And again - ZFS is still experimental and this setup is better for me in 
case when I need to do some recovery or ZFS upgrade. All can be done 
remotelly without a need to boot some LiveCD etc.

It is my € 0.02, YMMV.

Miroslav Lachman

More information about the freebsd-stable mailing list