bcache vs. dm-cache

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
ddm3ve
Moderator
Moderator
Posts: 1227
Joined: 2011-07-04 10:56

bcache vs. dm-cache

Post by ddm3ve »

Moin, ich brauch mal wieder eure Schwarmintelligenz.

Mit lokalen SSD möchte ich gerne die langsamen Festplatten mit der Performance aus den SSD schneller machen.

Angefangen habe ich mit einem bcache Setup.

Ich habe 4 SATA Festplatten:

2 SSD /dev/sdc und /dev/sdd als Raid Verbund zusammen gelegt md0

2 Harddisks dies als Raidverbund md1 zusammen gelegt jeweils als Raid 1.

Code: Select all

md0 : active raid1 sdd[1] sdc[0]
      250058944 blocks super 1.0 [2/2] [UU]
      bitmap: 1/2 pages [4KB], 65536KB chunk

md1 : active raid1 sdb[1] sda[0]
      1953514432 blocks super 1.0 [2/2] [UU]
      bitmap: 1/15 pages [4KB], 65536KB chunk
Partition 3 soll gecacht werden:

Code: Select all

bcache-super-show /dev/md1p3 
sb.magic		ok
sb.first_sector		8 [match]
sb.csum			585ec133c041edc9 [match]
sb.version		1 [backing device]

dev.label		(empty)
dev.uuid		79029ea5-b54d-45ef-90bc-e28e15a0999f
dev.sectors_per_block	1
dev.sectors_per_bucket	0
dev.data.first_sector	16
dev.data.cache_mode	1 [writeback]
dev.data.cache_state	2 [dirty]

cset.uuid		53cda2af-878c-42d0-b929-f3eadca4e152

Code: Select all

bcache show
Unsupported super block version: 262146
Unsupported super block version: 576460752303423488
Unsupported super block version: 6222723607344775627
Unsupported super block version: 262146
Name		Type		State			Bname		AttachToDev
/dev/md0p1	3 (cache)	active          	N/A             N/A
/dev/md1p3	1 (data)	dirty(running)  	bcache0         /dev/md0p1
Die SSD wiederum wurden als Cache eigebunden.
Was mich sehr verwundert, dass die Schreibperformance nicht wirklich besser ist, als ohne.

Code: Select all

dd if=/dev/zero of=./test.dmp bs=512 count=10000000
10000000+0 Datensätze ein
10000000+0 Datensätze aus
5120000000 bytes (5,1 GB, 4,8 GiB) copied, 44,3855 s, 115 MB/s
der Cache status schaut aktuell auch noch nicht so wirllich überragend aus.

Code: Select all

bcache-status 
--- bcache ---
UUID                        53cda2af-878c-42d0-b929-f3eadca4e152
Block Size                  512 B
Bucket Size                 512.00 KiB
Congested?                  False
Read Congestion             2.0ms
Write Congestion            20.0ms
Total Cache Size            200 GiB
Total Cache Used            8 GiB	(4%)
Total Cache Unused          192 GiB	(96%)
Evictable Cache             196 GiB	(98%)
Replacement Policy          [lru] fifo random
Cache Mode                  writethrough [writeback] writearound none
Total Hits                  13472	(37%)
Total Misses                22450
Total Bypass Hits           3937	(%)
Total Bypass Misses         1557206
Total Bypassed              2 GiB

Vielleicht messe ich ja falsch?

Mit hdparm sieht es etwas anders aus:

Code: Select all

hdparm -Tt --direct /dev/bcache0p3

/dev/bcache0p3:
 Timing O_DIRECT cached reads:   1398 MB in  2.00 seconds = 698.74 MB/sec
 Timing O_DIRECT disk reads: 470 MB in  3.01 seconds = 156.18 MB/sec
static:~ # hdparm -Tt --direct /dev/md1

/dev/md1:
 Timing O_DIRECT cached reads:   928 MB in  2.00 seconds = 463.70 MB/sec
 Timing O_DIRECT disk reads: 404 MB in  3.01 seconds = 134.14 MB/sec
static:~ # hdparm -Tt --direct /dev/md0

/dev/md0:
 Timing O_DIRECT cached reads:   870 MB in  2.00 seconds = 434.13 MB/sec
 Timing O_DIRECT disk reads: 1132 MB in  3.00 seconds = 377.04 MB/sec
Eventuell interpretiere ich das ja falsch oder Mese falsch?
Ich habe jedenfalls nicht den Eindruck, dass der Writecache wirkt.

Und es steht die Frage im Raum, wär ein dm-cache nicht eventuell besser? LVM existiert ja ohnehin.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.