ZFS on top of GELI

Rafał Jackiewicz freebsd at o2.pl
Tue Jan 12 20:28:13 UTC 2010


>Thanks, could you do the same, but using 2 .eli vdevs mirrorred
>together in a zfs mirror?
>
>- Sincerely,
>Dan Naumov

Hi,

Proc: Intell Atom 330 (2x1.6Ghz) - 1 package(s) x 2 core(s) x 2 HTT threads
Chipset: Intel 82945G
Sys: 8.0-RELEASE FreeBSD 8.0-RELEASE #0
empty file: /boot/loader.conf
Hdd: 
   ad4: 953869MB <Seagate ST31000533CS SC15> at ata2-master SATA150
   ad6: 953869MB <Seagate ST31000533CS SC15> at ata3-master SATA150
Geli:
   geli init -s 4096 -K /etc/keys/ad4s2.key /dev/ad4s2
   geli init -s 4096 -K /etc/keys/ad6s2.key /dev/ad6s2


Results:
****************************************************

*** single drive			write MB/s	read  MB/s
eli.journal.ufs2			23		14
eli.zfs				19		36


*** mirror				write MB/s	read  MB/s
mirror.eli.journal.ufs2	23		16
eli.zfs				31		40
zfs					83		79


*** degraded mirror		write MB/s 	read MB/s
mirror.eli.journal.ufs2	16		9
eli.zfs				56		40
zfs					86		71

****************************************************



***** Single drive: ******
Mount:
  data01 on /data01 (zfs, local)
  /dev/ad6s2.eli.journal on /data02 (ufs, local, gjournal)

*** (single hdd) UFS2, gjournal, eli.
srebrny# time dd if=/dev/zero of=/data02/test01 bs=1m count=2000
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 92.451346 secs (22683845 bytes/sec)
0.068u 10.386s 1:32.46 11.2%    26+1497k 63+16066io 0pf+0w
** umount / mount, and:
srebrny# time dd if=/data02/test01 of=/dev/null bs=1m
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 147.219379 secs (14245081 bytes/sec)
0.008u 4.456s 2:27.22 3.0%      23+1324k 16066+0io 0pf+0w

*** (single hdd) zfs:
srebrny# time dd if=/dev/zero of=/data01/test01 bs=1m count=2000
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 113.049629 secs (18550720 bytes/sec)
0.014u 5.480s 1:53.05 4.8%      26+1516k 0+0io 0pf+0w
** umount / mount, and:
srebrny# time dd if=/data01/test01 of=/dev/null bs=1m
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 59.012860 secs (35537203 bytes/sec)
0.000u 3.135s 0:59.01 5.3%      24+1397k 0+0io 0pf+0w


***** Mirror: *****

*** (mirror hdd) UFS2, gjournal, eli.
srebrny# gmirror list
Geom name: data02    
State: COMPLETE      
Components: 2        
Balance: round-robin 
Slice: 4096          
Flags: NONE          
GenID: 0             
SyncID: 1      
**
srebrny# time dd if=/dev/zero of=/data02/test01 bs=1m count=2000
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 89.441874 secs (23447094 bytes/sec)
0.022u 11.110s 1:29.45 12.4%    26+1515k 64+16066io 0pf+0w
**  umount / mount, and:
srebrny# time dd if=/data02/test01 of=/dev/null bs=1m
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 134.567914 secs (15584339 bytes/sec)
0.007u 4.333s 2:14.62 3.2%      26+1498k 16067+0io 0pf+0w


*** (mirror hdd, eli) zfs:
srebrny# time dd if=/dev/zero of=/data01/test01 bs=1m count=2000
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 67.255574 secs (31181832 bytes/sec)
0.029u 6.422s 1:07.25 9.5%      26+1531k 0+0io 0pf+0w
** (eli) umount / mount, and:
srebrny# time dd if=/data01/test01 of=/dev/null bs=1m
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 52.307404 secs (40092833 bytes/sec)
0.036u 3.405s 0:52.31 6.5%      27+1543k 0+0io 0pf+0w

*** (mirror hdd, no eli!) zfs:
srebrny# time dd if=/dev/zero of=/data01/test01 bs=1m count=2000
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 25.185164 secs (83269341 bytes/sec)
0.000u 5.506s 0:25.18 21.8%     26+1513k 0+0io 0pf+0w
** (no eli!) umount / mount, and:
srebrny# time dd if=/data01/test01 of=/dev/null bs=1m
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 26.457374 secs (79265312 bytes/sec)
0.000u 3.011s 0:26.45 11.3%     24+1396k 0+0io 0pf+0w

*****

*** (mirror !!!degraded!!!, single drive ad4s2) UFS2, gjournal, eli.
df -h
/dev/mirror/data02.eli.journal    857G    8.0K    788G     0%    /data02
**
srebrny# time dd if=/dev/zero of=/data02/test01 bs=1m count=2000
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 131.554958 secs (15941262 bytes/sec)
0.029u 10.057s 2:11.58 7.6%     26+1528k 64+16066io 0pf+0w
**  (mirror !!!degraded!!!, single drive ad4s2) umount / mount, and:
srebrny# time dd if=/data02/test01 of=/dev/null bs=1m
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 226.056204 secs (9277127 bytes/sec)
0.029u 4.226s 3:46.08 1.8%      26+1529k 16066+0io 0pf+0w


*** (mirror !!!degraded!!!, single drive ad4s2; eli)  zfs:
srebrny# time dd if=/dev/zero of=/data01/test011 bs=1m count=2000
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 37.548232 secs (55852217 bytes/sec)
0.007u 5.480s 0:37.55 14.5%     26+1513k 0+0io 0pf+0w
** (mirror !!!degraded!!!, single drive ad4s2; eli) umount / mount, and:
srebrny# time dd if=/data01/test011 of=/dev/null bs=1m
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 51.266119 secs (40907173 bytes/sec)
0.036u 3.238s 0:51.28 6.3%      28+1549k 0+0io 0pf+0w


*** (mirror !!!degraded!!!, single drive ad4s2; no eli!)  zfs:
srebrny# time dd if=/dev/zero of=/data01/test011 bs=1m count=2000
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 24.296032 secs (86316646 bytes/sec)
0.000u 5.463s 0:24.29 22.4%     26+1512k 0+0io 0pf+0w
** (mirror !!!degraded!!!, single drive ad4s2; no eli!) umount / mount, and:
srebrny# time dd if=/data01/test011 of=/dev/null bs=1m
2000+0 records in
2000+0 records out
2097152000 bytes transferred in 29.512372 secs (71060096 bytes/sec)
0.036u 3.275s 0:29.51 11.1%     27+1563k 0+0io 0pf+0w



Best regards,
Rafal Jackiewicz


More information about the freebsd-stable mailing list