Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Feb 2008 10:51:19 +0000
From:      Andrew B <lightmoogle@hotmail.com>
To:        <freebsd-geom@freebsd.org>
Subject:   Geli sector size > 8192 completely breaks.
Message-ID:  <BAY121-W12DA3D3CD325ACA0A0A8C9B2310@phx.gbl>

next in thread | raw e-mail | index | archive | help

I've been trying to get GELI working in a number of ways, and it seems when=
ever I change the sector size to 16384 or higher, I can't run newfs on the =
resultant encrypted volume.

Using dd with sector size 16384 gives me the greatest performance for the s=
ector size I'm willing to have. It's very close to the maximum transfer rat=
e of my drive. Nevertheless, using a sector size of 16K makes it so I can't=
 run newfs:
# geli init -s 16384 /dev/ad4; geli attach /dev/ad4
Enter passphrase:
# newfs /dev/ad4.eli=20
# newfs /dev/stripe/raids.eli=20
/dev/stripe/raids.eli: 715404.8MB (1465149120 sectors) block size 16384, fr=
agment size 16384
        using 797 cylinder groups of 898.39MB, 57497 blks, 14400 inodes.
newfs: can't read old UFS1 superblock: read error from block device: Invali=
d argument

As you can see, it's detecting the sector size of the device in the block a=
nd fragment size. I'm not sure why the error occurs, and it occurs _only_ o=
n sector sizes larger than 8192 (I've only tried powers of 2).

In testing, I've created a stripe across multiple 16384 geli devices with 1=
6384 sector size, same issue; I've also done it with a geom_RAID5 device on=
 top.. same issue still. Interestingly, I'm not able to _seek_ with the 16k=
 sector size.
# dd if=3D/dev/stripe/raids.eli of=3D/dev/null  bs=3D1m seek=3D16384M
dd: /dev/null: Inappropriate ioctl for device

I can "skip" as that reads in the data and merely discards it, or I can sta=
rt from zero and read. The ioctl error also applies with the 8192, 4096 and=
 probably other sector sizes.

I'm a bit confused, then.. it seems like without setting it higher that 819=
2, I lose a bit of performance. Setting it higher, however, causes newfs to=
 fail. dd continues to work like a champ, however. Is this proper behavior =
for geli? (I.e. man page is lacking an upper bound on sector size.) Or alte=
rnatively, is there a bug in geli somewhere? or is something else going on =
and I'm just too tired at the moment to comprehend it?

6.2-RELEASE-p10 FreeBSD 6.2-RELEASE-p10 #1: i386

I do get _fairly_ good transfer -- the parent device yields 50.3MB/s, while=
 the GELI device yields 46MB/s with a 16384 sector size, or 43MB/s with an =
8192 sector size. This is with a 1.5GHz via C7 and the padlock module compi=
led in. During those tests, dd showed 2% CPU; top showed .5% user, 26% syst=
em, 4% interrupt, on average. Not bad, I'd say, for a 12watt processor :-)

-DrkShadow
lightmoogle@hotmail.com
_________________________________________________________________
Connect and share in new ways with Windows Live.
http://www.windowslive.com/share.html?ocid=3DTXT_TAGHM_Wave2_sharelife_0120=
08=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BAY121-W12DA3D3CD325ACA0A0A8C9B2310>