public inbox for linux-bcache@vger.kernel.org
 help / color / mirror / Atom feed
* SSD usage for bcache - Read and Writeback
@ 2017-09-11 14:04 FERNANDO FREDIANI
  2017-09-14  7:58 ` Coly Li
  0 siblings, 1 reply; 18+ messages in thread
From: FERNANDO FREDIANI @ 2017-09-11 14:04 UTC (permalink / raw)
  To: linux-bcache

Hi folks

In Bcache people normally use a single SSD for both Read and Write
cache. This seems to work pretty well, at least for the load we have
been using here.

However in other environments, specially on ZFS people tend to suggest
to use dedicated SSDs for Write (ZIL) and for Read (L2ARC). Some say
that performance will be much better in this way and mainly say they
have different wearing levels.
The issue now a days is that SSDs for Write Cache (or Writeback) don't
need to have much space available (8GB normally is more than enough),
just enough for the time until data is committed to the pool (or
slower disks) so it is hard to find a suitable SSD to dedicate to this
propose only without overprovisioning that part.
On the top of that newer SSDs have changed a lot in recent times using
different types of memory technologies which tend to be much durable.

Given that I personally see that using a single SSD for both Write and
Read cache, in any scenarios doesn't impose any significant loss to
the storage, given you use new technology SSDs and that you will
hardly saturate it most of the time. Does anyone agree or disagree
with that ?

Fernando Frediani

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-11 14:04 SSD usage for bcache - Read and Writeback FERNANDO FREDIANI
@ 2017-09-14  7:58 ` Coly Li
  2017-09-14 11:43   ` Kai Krakow
  2017-09-14 13:10   ` FERNANDO FREDIANI
  0 siblings, 2 replies; 18+ messages in thread
From: Coly Li @ 2017-09-14  7:58 UTC (permalink / raw)
  To: FERNANDO FREDIANI, linux-bcache

On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:
> Hi folks
> 
> In Bcache people normally use a single SSD for both Read and Write
> cache. This seems to work pretty well, at least for the load we have
> been using here.
> 
> However in other environments, specially on ZFS people tend to suggest
> to use dedicated SSDs for Write (ZIL) and for Read (L2ARC). Some say
> that performance will be much better in this way and mainly say they
> have different wearing levels.
> The issue now a days is that SSDs for Write Cache (or Writeback) don't
> need to have much space available (8GB normally is more than enough),
> just enough for the time until data is committed to the pool (or
> slower disks) so it is hard to find a suitable SSD to dedicate to this
> propose only without overprovisioning that part.
> On the top of that newer SSDs have changed a lot in recent times using
> different types of memory technologies which tend to be much durable.
> 
> Given that I personally see that using a single SSD for both Write and
> Read cache, in any scenarios doesn't impose any significant loss to
> the storage, given you use new technology SSDs and that you will
> hardly saturate it most of the time. Does anyone agree or disagree
> with that ?

Hi Fernando,

If there is any real performance number, it will be much easier to
response this idea. What confuses me is, if user reads a data block
which is just written to SSD, what is the benefit for the separated SSDs.

Yes I agree with you that some times a single SSD as cache device is
inefficient. Multiple cache device on bcache is a not-implemented yet
feature as I know.

Thanks.

-- 
Coly Li

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14  7:58 ` Coly Li
@ 2017-09-14 11:43   ` Kai Krakow
  2017-09-14 13:10   ` FERNANDO FREDIANI
  1 sibling, 0 replies; 18+ messages in thread
From: Kai Krakow @ 2017-09-14 11:43 UTC (permalink / raw)
  To: linux-bcache

Am Thu, 14 Sep 2017 09:58:25 +0200
schrieb Coly Li <i@coly.li>:

> On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:
> > Hi folks
> > 
> > In Bcache people normally use a single SSD for both Read and Write
> > cache. This seems to work pretty well, at least for the load we have
> > been using here.
> > 
> > However in other environments, specially on ZFS people tend to
> > suggest to use dedicated SSDs for Write (ZIL) and for Read (L2ARC).
> > Some say that performance will be much better in this way and
> > mainly say they have different wearing levels.
> > The issue now a days is that SSDs for Write Cache (or Writeback)
> > don't need to have much space available (8GB normally is more than
> > enough), just enough for the time until data is committed to the
> > pool (or slower disks) so it is hard to find a suitable SSD to
> > dedicate to this propose only without overprovisioning that part.
> > On the top of that newer SSDs have changed a lot in recent times
> > using different types of memory technologies which tend to be much
> > durable.
> > 
> > Given that I personally see that using a single SSD for both Write
> > and Read cache, in any scenarios doesn't impose any significant
> > loss to the storage, given you use new technology SSDs and that you
> > will hardly saturate it most of the time. Does anyone agree or
> > disagree with that ?  
> 
> If there is any real performance number, it will be much easier to
> response this idea. What confuses me is, if user reads a data block
> which is just written to SSD, what is the benefit for the separated
> SSDs.
> 
> Yes I agree with you that some times a single SSD as cache device is
> inefficient. Multiple cache device on bcache is a not-implemented yet
> feature as I know.

Does bcache support more that one cache device in a cset? If yes, the
best idea would be if one could implement to define one as read-mostly,
and another ssd as write-mostly.

This would make a non-strict policy which allows reading from the other
device if the block is already there, or writing to the read-mostly
device to update data in cache. Thoughts?


-- 
Regards,
Kai

Replies to list-only preferred.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14  7:58 ` Coly Li
  2017-09-14 11:43   ` Kai Krakow
@ 2017-09-14 13:10   ` FERNANDO FREDIANI
  2017-09-14 14:40     ` Emmanuel Florac
  2017-09-14 14:45     ` Coly Li
  1 sibling, 2 replies; 18+ messages in thread
From: FERNANDO FREDIANI @ 2017-09-14 13:10 UTC (permalink / raw)
  To: Coly Li, linux-bcache

Hello Coly.

If the users reads a piece of data that is just writen to SSD (unlikely) 
it should first and in any condition be commited to the permanent 
storage and then read from there and cached in another area of the SSD. 
Writaback cache is very volatile and lasts only a few seconds while the 
data is not yet committed to permanent storage.

In fact multiple device suport is not implemented yet, that's why I am 
asking it and comparing with other well technology as ZFS.

Regards,
Fernando


On 14/09/2017 04:58, Coly Li wrote:
> On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:
>> Hi folks
>>
>> In Bcache people normally use a single SSD for both Read and Write
>> cache. This seems to work pretty well, at least for the load we have
>> been using here.
>>
>> However in other environments, specially on ZFS people tend to suggest
>> to use dedicated SSDs for Write (ZIL) and for Read (L2ARC). Some say
>> that performance will be much better in this way and mainly say they
>> have different wearing levels.
>> The issue now a days is that SSDs for Write Cache (or Writeback) don't
>> need to have much space available (8GB normally is more than enough),
>> just enough for the time until data is committed to the pool (or
>> slower disks) so it is hard to find a suitable SSD to dedicate to this
>> propose only without overprovisioning that part.
>> On the top of that newer SSDs have changed a lot in recent times using
>> different types of memory technologies which tend to be much durable.
>>
>> Given that I personally see that using a single SSD for both Write and
>> Read cache, in any scenarios doesn't impose any significant loss to
>> the storage, given you use new technology SSDs and that you will
>> hardly saturate it most of the time. Does anyone agree or disagree
>> with that ?
> Hi Fernando,
>
> If there is any real performance number, it will be much easier to
> response this idea. What confuses me is, if user reads a data block
> which is just written to SSD, what is the benefit for the separated SSDs.
>
> Yes I agree with you that some times a single SSD as cache device is
> inefficient. Multiple cache device on bcache is a not-implemented yet
> feature as I know.
>
> Thanks.
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14 13:10   ` FERNANDO FREDIANI
@ 2017-09-14 14:40     ` Emmanuel Florac
  2017-09-14 14:46       ` FERNANDO FREDIANI
  2017-09-14 14:45     ` Coly Li
  1 sibling, 1 reply; 18+ messages in thread
From: Emmanuel Florac @ 2017-09-14 14:40 UTC (permalink / raw)
  To: FERNANDO FREDIANI; +Cc: Coly Li, linux-bcache

[-- Attachment #1: Type: text/plain, Size: 1063 bytes --]

Le Thu, 14 Sep 2017 10:10:09 -0300
FERNANDO FREDIANI <fernando.frediani@upx.com> écrivait:

> If the users reads a piece of data that is just writen to SSD
> (unlikely) it should first and in any condition be commited to the
> permanent storage and then read from there and cached in another area
> of the SSD. Writaback cache is very volatile and lasts only a few
> seconds while the data is not yet committed to permanent storage.
> 
> In fact multiple device suport is not implemented yet, that's why I
> am asking it and comparing with other well technology as ZFS.
> 

However nothing in bcache prevents you from using for instance a RAID
of SSDs as a cache device. Actually for write caching it's mandatory
IMO. 

-- 
------------------------------------------------------------------------
Emmanuel Florac     |   Direction technique
                    |   Intellique
                    |	<eflorac@intellique.com>
                    |   +33 1 78 94 84 02
------------------------------------------------------------------------

[-- Attachment #2: Signature digitale OpenPGP --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14 13:10   ` FERNANDO FREDIANI
  2017-09-14 14:40     ` Emmanuel Florac
@ 2017-09-14 14:45     ` Coly Li
  2017-09-14 14:54       ` FERNANDO FREDIANI
  2017-09-14 15:31       ` Kai Krakow
  1 sibling, 2 replies; 18+ messages in thread
From: Coly Li @ 2017-09-14 14:45 UTC (permalink / raw)
  To: FERNANDO FREDIANI, linux-bcache

On 2017/9/14 下午3:10, FERNANDO FREDIANI wrote:
> Hello Coly.
> 
> If the users reads a piece of data that is just writen to SSD (unlikely)
> it should first and in any condition be commited to the permanent
> storage and then read from there and cached in another area of the SSD.
> Writaback cache is very volatile and lasts only a few seconds while the
> data is not yet committed to permanent storage.
> 
> In fact multiple device suport is not implemented yet, that's why I am
> asking it and comparing with other well technology as ZFS.
> 

Hi Fernando,

Do you have some performance number to compare combined and separated
configurations on ZFS ? If the performance improvement is not from
adding one more SSD device, I don't why dedicate read/write SSDs may
help for performance. In my understanding, if any of the SSD has spared
throughput capability for read or write, mixed them together on both
SSDs may have better performance number.


Coly Li


> 
> On 14/09/2017 04:58, Coly Li wrote:
>> On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:
>>> Hi folks
>>>
>>> In Bcache people normally use a single SSD for both Read and Write
>>> cache. This seems to work pretty well, at least for the load we have
>>> been using here.
>>>
>>> However in other environments, specially on ZFS people tend to suggest
>>> to use dedicated SSDs for Write (ZIL) and for Read (L2ARC). Some say
>>> that performance will be much better in this way and mainly say they
>>> have different wearing levels.
>>> The issue now a days is that SSDs for Write Cache (or Writeback) don't
>>> need to have much space available (8GB normally is more than enough),
>>> just enough for the time until data is committed to the pool (or
>>> slower disks) so it is hard to find a suitable SSD to dedicate to this
>>> propose only without overprovisioning that part.
>>> On the top of that newer SSDs have changed a lot in recent times using
>>> different types of memory technologies which tend to be much durable.
>>>
>>> Given that I personally see that using a single SSD for both Write and
>>> Read cache, in any scenarios doesn't impose any significant loss to
>>> the storage, given you use new technology SSDs and that you will
>>> hardly saturate it most of the time. Does anyone agree or disagree
>>> with that ?
>> Hi Fernando,
>>
>> If there is any real performance number, it will be much easier to
>> response this idea. What confuses me is, if user reads a data block
>> which is just written to SSD, what is the benefit for the separated SSDs.
>>
>> Yes I agree with you that some times a single SSD as cache device is
>> inefficient. Multiple cache device on bcache is a not-implemented yet
>> feature as I know.
>>
>> Thanks.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14 14:40     ` Emmanuel Florac
@ 2017-09-14 14:46       ` FERNANDO FREDIANI
  2017-09-14 15:04         ` Emmanuel Florac
  0 siblings, 1 reply; 18+ messages in thread
From: FERNANDO FREDIANI @ 2017-09-14 14:46 UTC (permalink / raw)
  To: Emmanuel Florac; +Cc: linux-bcache

Not really mandatory but optional.

From bcache documentation:

"In the event of a data IO error on the flash it will try to recover by reading
from disk or invalidating cache entries.  For unrecoverable errors (meta data
or dirty data), caching is automatically disabled; if dirty data was present
in the cache it first disables writeback caching and waits for all dirty data
to be flushed."

Fernando

On 14/09/2017 11:40, Emmanuel Florac wrote:

Le Thu, 14 Sep 2017 10:10:09 -0300
FERNANDO FREDIANI <fernando.frediani@upx.com> écrivait:

If the users reads a piece of data that is just writen to SSD
(unlikely) it should first and in any condition be commited to the
permanent storage and then read from there and cached in another area
of the SSD. Writaback cache is very volatile and lasts only a few
seconds while the data is not yet committed to permanent storage.

In fact multiple device suport is not implemented yet, that's why I
am asking it and comparing with other well technology as ZFS.

However nothing in bcache prevents you from using for instance a RAID
of SSDs as a cache device. Actually for write caching it's mandatory
IMO.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14 14:45     ` Coly Li
@ 2017-09-14 14:54       ` FERNANDO FREDIANI
  2017-09-14 15:04         ` Coly Li
  2017-09-14 15:31       ` Kai Krakow
  1 sibling, 1 reply; 18+ messages in thread
From: FERNANDO FREDIANI @ 2017-09-14 14:54 UTC (permalink / raw)
  To: Coly Li, linux-bcache

It depends on every scenario. SSDs generally have a max throughput and
a max IOPS for read and write, but when you mix them it becomes more
difficult to measure. A typical SSDs caching device used for both
tasks will have the normal writing for doing the writeback caching,
have writes coming from the permanent storage to cache content more
popular (so to populate the cache) and will have reads to serve
content already cache to the user who requested.

Another point perhaps even more important than that is how the SSD in
question will stand for wearing. Now a days SSDs are much more
durable, specially those with higher DWPD. I read recently that newer
memory technology will do well compared to previous ones.

Fernando

On 14/09/2017 11:45, Coly Li wrote:

On 2017/9/14 下午3:10, FERNANDO FREDIANI wrote:

Hello Coly.

If the users reads a piece of data that is just writen to SSD (unlikely)
it should first and in any condition be commited to the permanent
storage and then read from there and cached in another area of the SSD.
Writaback cache is very volatile and lasts only a few seconds while the
data is not yet committed to permanent storage.

In fact multiple device suport is not implemented yet, that's why I am
asking it and comparing with other well technology as ZFS.

Hi Fernando,

Do you have some performance number to compare combined and separated
configurations on ZFS ? If the performance improvement is not from
adding one more SSD device, I don't why dedicate read/write SSDs may
help for performance. In my understanding, if any of the SSD has spared
throughput capability for read or write, mixed them together on both
SSDs may have better performance number.


Coly Li


On 14/09/2017 04:58, Coly Li wrote:

On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:

Hi folks

In Bcache people normally use a single SSD for both Read and Write
cache. This seems to work pretty well, at least for the load we have
been using here.

However in other environments, specially on ZFS people tend to suggest
to use dedicated SSDs for Write (ZIL) and for Read (L2ARC). Some say
that performance will be much better in this way and mainly say they
have different wearing levels.
The issue now a days is that SSDs for Write Cache (or Writeback) don't
need to have much space available (8GB normally is more than enough),
just enough for the time until data is committed to the pool (or
slower disks) so it is hard to find a suitable SSD to dedicate to this
propose only without overprovisioning that part.
On the top of that newer SSDs have changed a lot in recent times using
different types of memory technologies which tend to be much durable.

Given that I personally see that using a single SSD for both Write and
Read cache, in any scenarios doesn't impose any significant loss to
the storage, given you use new technology SSDs and that you will
hardly saturate it most of the time. Does anyone agree or disagree
with that ?

Hi Fernando,

If there is any real performance number, it will be much easier to
response this idea. What confuses me is, if user reads a data block
which is just written to SSD, what is the benefit for the separated SSDs.

Yes I agree with you that some times a single SSD as cache device is
inefficient. Multiple cache device on bcache is a not-implemented yet
feature as I know.

Thanks.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14 14:46       ` FERNANDO FREDIANI
@ 2017-09-14 15:04         ` Emmanuel Florac
  2017-09-14 15:11           ` FERNANDO FREDIANI
  0 siblings, 1 reply; 18+ messages in thread
From: Emmanuel Florac @ 2017-09-14 15:04 UTC (permalink / raw)
  To: FERNANDO FREDIANI; +Cc: linux-bcache

[-- Attachment #1: Type: text/plain, Size: 1401 bytes --]

Le Thu, 14 Sep 2017 11:46:11 -0300
FERNANDO FREDIANI <fernando.frediani@upx.com> écrivait:

> Not really mandatory but optional.
> 
> From bcache documentation:
> 
> "In the event of a data IO error on the flash it will try to recover
> by reading from disk or invalidating cache entries.  For
> unrecoverable errors (meta data or dirty data), caching is
> automatically disabled; if dirty data was present in the cache it
> first disables writeback caching and waits for all dirty data to be
> flushed."

If the cache is dirty and has failed, your data is lost or corrupted
all the same. The way a SSD fails is usually one second it works, the
next second it's as dead as a rock. If you're using it as a write
cache, whatever amount of data is dirty is lost. If it's 8 GB, you've
lost your last 8 GB of writes, often very important filesystem metadata
and/or database journal, i.e. your data is completely hosed.

Don't use SSDs as write cache without RAID-1 (or use very expensive,
redundant NVMe SSDs only), unless your data isn't very important.

-- 
------------------------------------------------------------------------
Emmanuel Florac     |   Direction technique
                    |   Intellique
                    |	<eflorac@intellique.com>
                    |   +33 1 78 94 84 02
------------------------------------------------------------------------

[-- Attachment #2: Signature digitale OpenPGP --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14 14:54       ` FERNANDO FREDIANI
@ 2017-09-14 15:04         ` Coly Li
  2017-09-14 15:14           ` FERNANDO FREDIANI
  0 siblings, 1 reply; 18+ messages in thread
From: Coly Li @ 2017-09-14 15:04 UTC (permalink / raw)
  To: FERNANDO FREDIANI, linux-bcache

On 2017/9/14 下午4:54, FERNANDO FREDIANI wrote:
> It depends on every scenario. SSDs generally have a max throughput and
> a max IOPS for read and write, but when you mix them it becomes more
> difficult to measure. A typical SSDs caching device used for both
> tasks will have the normal writing for doing the writeback caching,
> have writes coming from the permanent storage to cache content more
> popular (so to populate the cache) and will have reads to serve
> content already cache to the user who requested.
> 
> Another point perhaps even more important than that is how the SSD in
> question will stand for wearing. Now a days SSDs are much more
> durable, specially those with higher DWPD. I read recently that newer
> memory technology will do well compared to previous ones.


Hi Fernando,

It will be great if you may provide some performance numbers on ZFS (I
assume it should be ZFS since you mentioned it). I can understand the
concept, but real performance number should be more attractive for this
discussion :-)

Thanks in advance.

Coly Li

> 
> On 14/09/2017 11:45, Coly Li wrote:
> 
> On 2017/9/14 下午3:10, FERNANDO FREDIANI wrote:
> 
> Hello Coly.
> 
> If the users reads a piece of data that is just writen to SSD (unlikely)
> it should first and in any condition be commited to the permanent
> storage and then read from there and cached in another area of the SSD.
> Writaback cache is very volatile and lasts only a few seconds while the
> data is not yet committed to permanent storage.
> 
> In fact multiple device suport is not implemented yet, that's why I am
> asking it and comparing with other well technology as ZFS.
> 
> Hi Fernando,
> 
> Do you have some performance number to compare combined and separated
> configurations on ZFS ? If the performance improvement is not from
> adding one more SSD device, I don't why dedicate read/write SSDs may
> help for performance. In my understanding, if any of the SSD has spared
> throughput capability for read or write, mixed them together on both
> SSDs may have better performance number.
> 
> 
> Coly Li
> 
> 
> On 14/09/2017 04:58, Coly Li wrote:
> 
> On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:
> 
> Hi folks
> 
> In Bcache people normally use a single SSD for both Read and Write
> cache. This seems to work pretty well, at least for the load we have
> been using here.
> 
> However in other environments, specially on ZFS people tend to suggest
> to use dedicated SSDs for Write (ZIL) and for Read (L2ARC). Some say
> that performance will be much better in this way and mainly say they
> have different wearing levels.
> The issue now a days is that SSDs for Write Cache (or Writeback) don't
> need to have much space available (8GB normally is more than enough),
> just enough for the time until data is committed to the pool (or
> slower disks) so it is hard to find a suitable SSD to dedicate to this
> propose only without overprovisioning that part.
> On the top of that newer SSDs have changed a lot in recent times using
> different types of memory technologies which tend to be much durable.
> 
> Given that I personally see that using a single SSD for both Write and
> Read cache, in any scenarios doesn't impose any significant loss to
> the storage, given you use new technology SSDs and that you will
> hardly saturate it most of the time. Does anyone agree or disagree
> with that ?
> 
> Hi Fernando,
> 
> If there is any real performance number, it will be much easier to
> response this idea. What confuses me is, if user reads a data block
> which is just written to SSD, what is the benefit for the separated SSDs.
> 
> Yes I agree with you that some times a single SSD as cache device is
> inefficient. Multiple cache device on bcache is a not-implemented yet
> feature as I know.
> 
> Thanks.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


-- 
Coly Li

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14 15:04         ` Emmanuel Florac
@ 2017-09-14 15:11           ` FERNANDO FREDIANI
  0 siblings, 0 replies; 18+ messages in thread
From: FERNANDO FREDIANI @ 2017-09-14 15:11 UTC (permalink / raw)
  To: Emmanuel Florac; +Cc: linux-bcache

There is something that ZFS does well and is very clever way to treat
this: when new data is written is is written to both the flash device
AND to the RAM Memory. Then when it's the time to flush it to the
permanent storage it reads that data from the RAM e not from the flash
(why read from a slower device if you have a fast one available). So
in this scenario if the flash devices fails you don't loose any data
as it still exists in memory.

The only possibility is when you have a power cut AND the flash device
fails at the same time which is very unlikely.

Therefore in my view there is only 1 justification to use a RAID-1 for
writeback: if you don't want to loose write performance if the flash
device fails until you are able to replace it.

Fernando


On 14/09/2017 12:04, Emmanuel Florac wrote:

Le Thu, 14 Sep 2017 11:46:11 -0300
FERNANDO FREDIANI <fernando.frediani@upx.com> écrivait:

Not really mandatory but optional.

From bcache documentation:

"In the event of a data IO error on the flash it will try to recover
by reading from disk or invalidating cache entries.  For
unrecoverable errors (meta data or dirty data), caching is
automatically disabled; if dirty data was present in the cache it
first disables writeback caching and waits for all dirty data to be
flushed."

If the cache is dirty and has failed, your data is lost or corrupted
all the same. The way a SSD fails is usually one second it works, the
next second it's as dead as a rock. If you're using it as a write
cache, whatever amount of data is dirty is lost. If it's 8 GB, you've
lost your last 8 GB of writes, often very important filesystem metadata
and/or database journal, i.e. your data is completely hosed.

Don't use SSDs as write cache without RAID-1 (or use very expensive,
redundant NVMe SSDs only), unless your data isn't very important.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14 15:04         ` Coly Li
@ 2017-09-14 15:14           ` FERNANDO FREDIANI
  2017-09-26 19:28             ` FERNANDO FREDIANI
  0 siblings, 1 reply; 18+ messages in thread
From: FERNANDO FREDIANI @ 2017-09-14 15:14 UTC (permalink / raw)
  To: Coly Li, linux-bcache

Hello Coly

I didn't start this thread to provide numbers but to ask people view
on the concept and compare how flash technology works compared to how
it used to be a few years ago and I used ZFS case as an example
because people used to recommend to have separate devices until
sometime ago. My aim is to understand why this is not the
recommendation for bcache, if it already took in consideration newer
technology or if has anything else different on the way it deals with
write and read cache.

Regards,
Fernando


On 14/09/2017 12:04, Coly Li wrote:

On 2017/9/14 下午4:54, FERNANDO FREDIANI wrote:

It depends on every scenario. SSDs generally have a max throughput and
a max IOPS for read and write, but when you mix them it becomes more
difficult to measure. A typical SSDs caching device used for both
tasks will have the normal writing for doing the writeback caching,
have writes coming from the permanent storage to cache content more
popular (so to populate the cache) and will have reads to serve
content already cache to the user who requested.

Another point perhaps even more important than that is how the SSD in
question will stand for wearing. Now a days SSDs are much more
durable, specially those with higher DWPD. I read recently that newer
memory technology will do well compared to previous ones.

Hi Fernando,

It will be great if you may provide some performance numbers on ZFS (I
assume it should be ZFS since you mentioned it). I can understand the
concept, but real performance number should be more attractive for this
discussion :-)

Thanks in advance.

Coly Li

On 14/09/2017 11:45, Coly Li wrote:

On 2017/9/14 下午3:10, FERNANDO FREDIANI wrote:

Hello Coly.

If the users reads a piece of data that is just writen to SSD (unlikely)
it should first and in any condition be commited to the permanent
storage and then read from there and cached in another area of the SSD.
Writaback cache is very volatile and lasts only a few seconds while the
data is not yet committed to permanent storage.

In fact multiple device suport is not implemented yet, that's why I am
asking it and comparing with other well technology as ZFS.

Hi Fernando,

Do you have some performance number to compare combined and separated
configurations on ZFS ? If the performance improvement is not from
adding one more SSD device, I don't why dedicate read/write SSDs may
help for performance. In my understanding, if any of the SSD has spared
throughput capability for read or write, mixed them together on both
SSDs may have better performance number.


Coly Li


On 14/09/2017 04:58, Coly Li wrote:

On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:

Hi folks

In Bcache people normally use a single SSD for both Read and Write
cache. This seems to work pretty well, at least for the load we have
been using here.

However in other environments, specially on ZFS people tend to suggest
to use dedicated SSDs for Write (ZIL) and for Read (L2ARC). Some say
that performance will be much better in this way and mainly say they
have different wearing levels.
The issue now a days is that SSDs for Write Cache (or Writeback) don't
need to have much space available (8GB normally is more than enough),
just enough for the time until data is committed to the pool (or
slower disks) so it is hard to find a suitable SSD to dedicate to this
propose only without overprovisioning that part.
On the top of that newer SSDs have changed a lot in recent times using
different types of memory technologies which tend to be much durable.

Given that I personally see that using a single SSD for both Write and
Read cache, in any scenarios doesn't impose any significant loss to
the storage, given you use new technology SSDs and that you will
hardly saturate it most of the time. Does anyone agree or disagree
with that ?

Hi Fernando,

If there is any real performance number, it will be much easier to
response this idea. What confuses me is, if user reads a data block
which is just written to SSD, what is the benefit for the separated SSDs.

Yes I agree with you that some times a single SSD as cache device is
inefficient. Multiple cache device on bcache is a not-implemented yet
feature as I know.

Thanks.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14 14:45     ` Coly Li
  2017-09-14 14:54       ` FERNANDO FREDIANI
@ 2017-09-14 15:31       ` Kai Krakow
  2017-09-14 15:49         ` Coly Li
  1 sibling, 1 reply; 18+ messages in thread
From: Kai Krakow @ 2017-09-14 15:31 UTC (permalink / raw)
  To: linux-bcache

Am Thu, 14 Sep 2017 16:45:25 +0200
schrieb Coly Li <i@coly.li>:

> On 2017/9/14 下午3:10, FERNANDO FREDIANI wrote:
> > Hello Coly.
> > 
> > If the users reads a piece of data that is just writen to SSD
> > (unlikely) it should first and in any condition be commited to the
> > permanent storage and then read from there and cached in another
> > area of the SSD. Writaback cache is very volatile and lasts only a
> > few seconds while the data is not yet committed to permanent
> > storage.
> > 
> > In fact multiple device suport is not implemented yet, that's why I
> > am asking it and comparing with other well technology as ZFS.
> >   
> 
> Hi Fernando,
> 
> Do you have some performance number to compare combined and separated
> configurations on ZFS ? If the performance improvement is not from
> adding one more SSD device, I don't why dedicate read/write SSDs may
> help for performance. In my understanding, if any of the SSD has
> spared throughput capability for read or write, mixed them together
> on both SSDs may have better performance number.

I could imagine that one way want to use a fast, more expensive disk as
read cache, while using a smaller SLC SSD as write cache for better
longevity and reliability. Because: When you write cache SSD breaks,
things go really bad. If you read cache breaks: No problem, it just
slows down.

So, in conclusion: The recommendation may not be because of
performance... Better performance may just be a (small) side effect.


> > 
> > On 14/09/2017 04:58, Coly Li wrote:  
> >> On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:  
>  [...]  
> >> Hi Fernando,
> >>
> >> If there is any real performance number, it will be much easier to
> >> response this idea. What confuses me is, if user reads a data block
> >> which is just written to SSD, what is the benefit for the
> >> separated SSDs.
> >>
> >> Yes I agree with you that some times a single SSD as cache device
> >> is inefficient. Multiple cache device on bcache is a
> >> not-implemented yet feature as I know.
> >>
> >> Thanks.  
> 



-- 
Regards,
Kai

Replies to list-only preferred.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14 15:31       ` Kai Krakow
@ 2017-09-14 15:49         ` Coly Li
  0 siblings, 0 replies; 18+ messages in thread
From: Coly Li @ 2017-09-14 15:49 UTC (permalink / raw)
  To: Kai Krakow, linux-bcache

On 2017/9/14 下午5:31, Kai Krakow wrote:
> Am Thu, 14 Sep 2017 16:45:25 +0200
> schrieb Coly Li <i@coly.li>:
> 
>> On 2017/9/14 下午3:10, FERNANDO FREDIANI wrote:
>>> Hello Coly.
>>>
>>> If the users reads a piece of data that is just writen to SSD
>>> (unlikely) it should first and in any condition be commited to the
>>> permanent storage and then read from there and cached in another
>>> area of the SSD. Writaback cache is very volatile and lasts only a
>>> few seconds while the data is not yet committed to permanent
>>> storage.
>>>
>>> In fact multiple device suport is not implemented yet, that's why I
>>> am asking it and comparing with other well technology as ZFS.
>>>   
>>
>> Hi Fernando,
>>
>> Do you have some performance number to compare combined and separated
>> configurations on ZFS ? If the performance improvement is not from
>> adding one more SSD device, I don't why dedicate read/write SSDs may
>> help for performance. In my understanding, if any of the SSD has
>> spared throughput capability for read or write, mixed them together
>> on both SSDs may have better performance number.
> 
> I could imagine that one way want to use a fast, more expensive disk as
> read cache, while using a smaller SLC SSD as write cache for better
> longevity and reliability. Because: When you write cache SSD breaks,
> things go really bad. If you read cache breaks: No problem, it just
> slows down.
> 
> So, in conclusion: The recommendation may not be because of
> performance... Better performance may just be a (small) side effect.
> 
> 

Hi Kai,

It makes sense, and more flexible then bcache on top of raid1 IMHO.
Thanks for the hint :-)

Coly Li


>>>
>>> On 14/09/2017 04:58, Coly Li wrote:  
>>>> On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:  
>>  [...]  
>>>> Hi Fernando,
>>>>
>>>> If there is any real performance number, it will be much easier to
>>>> response this idea. What confuses me is, if user reads a data block
>>>> which is just written to SSD, what is the benefit for the
>>>> separated SSDs.
>>>>
>>>> Yes I agree with you that some times a single SSD as cache device
>>>> is inefficient. Multiple cache device on bcache is a
>>>> not-implemented yet feature as I know.
>>>>
>>>> Thanks.  

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-14 15:14           ` FERNANDO FREDIANI
@ 2017-09-26 19:28             ` FERNANDO FREDIANI
  2017-09-26 19:51               ` Michael Lyle
  2017-09-26 20:27               ` Kai Krakow
  0 siblings, 2 replies; 18+ messages in thread
From: FERNANDO FREDIANI @ 2017-09-26 19:28 UTC (permalink / raw)
  To: linux-bcache

Hello

Has anyone had any consideration about the usage of a single SSD for 
both read and write and how that impacts the overall performance and 
drive's endurance ?

I am interested to find out more in order to adjust the necessary stuff 
and monitor it accordingly.

Fernando


On 14/09/2017 12:14, FERNANDO FREDIANI wrote:
> Hello Coly
>
> I didn't start this thread to provide numbers but to ask people view
> on the concept and compare how flash technology works compared to how
> it used to be a few years ago and I used ZFS case as an example
> because people used to recommend to have separate devices until
> sometime ago. My aim is to understand why this is not the
> recommendation for bcache, if it already took in consideration newer
> technology or if has anything else different on the way it deals with
> write and read cache.
>
> Regards,
> Fernando
>
>
> On 14/09/2017 12:04, Coly Li wrote:
>
> On 2017/9/14 下午4:54, FERNANDO FREDIANI wrote:
>
> It depends on every scenario. SSDs generally have a max throughput and
> a max IOPS for read and write, but when you mix them it becomes more
> difficult to measure. A typical SSDs caching device used for both
> tasks will have the normal writing for doing the writeback caching,
> have writes coming from the permanent storage to cache content more
> popular (so to populate the cache) and will have reads to serve
> content already cache to the user who requested.
>
> Another point perhaps even more important than that is how the SSD in
> question will stand for wearing. Now a days SSDs are much more
> durable, specially those with higher DWPD. I read recently that newer
> memory technology will do well compared to previous ones.
>
> Hi Fernando,
>
> It will be great if you may provide some performance numbers on ZFS (I
> assume it should be ZFS since you mentioned it). I can understand the
> concept, but real performance number should be more attractive for this
> discussion :-)
>
> Thanks in advance.
>
> Coly Li
>
> On 14/09/2017 11:45, Coly Li wrote:
>
> On 2017/9/14 下午3:10, FERNANDO FREDIANI wrote:
>
> Hello Coly.
>
> If the users reads a piece of data that is just writen to SSD (unlikely)
> it should first and in any condition be commited to the permanent
> storage and then read from there and cached in another area of the SSD.
> Writaback cache is very volatile and lasts only a few seconds while the
> data is not yet committed to permanent storage.
>
> In fact multiple device suport is not implemented yet, that's why I am
> asking it and comparing with other well technology as ZFS.
>
> Hi Fernando,
>
> Do you have some performance number to compare combined and separated
> configurations on ZFS ? If the performance improvement is not from
> adding one more SSD device, I don't why dedicate read/write SSDs may
> help for performance. In my understanding, if any of the SSD has spared
> throughput capability for read or write, mixed them together on both
> SSDs may have better performance number.
>
>
> Coly Li
>
>
> On 14/09/2017 04:58, Coly Li wrote:
>
> On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:
>
> Hi folks
>
> In Bcache people normally use a single SSD for both Read and Write
> cache. This seems to work pretty well, at least for the load we have
> been using here.
>
> However in other environments, specially on ZFS people tend to suggest
> to use dedicated SSDs for Write (ZIL) and for Read (L2ARC). Some say
> that performance will be much better in this way and mainly say they
> have different wearing levels.
> The issue now a days is that SSDs for Write Cache (or Writeback) don't
> need to have much space available (8GB normally is more than enough),
> just enough for the time until data is committed to the pool (or
> slower disks) so it is hard to find a suitable SSD to dedicate to this
> propose only without overprovisioning that part.
> On the top of that newer SSDs have changed a lot in recent times using
> different types of memory technologies which tend to be much durable.
>
> Given that I personally see that using a single SSD for both Write and
> Read cache, in any scenarios doesn't impose any significant loss to
> the storage, given you use new technology SSDs and that you will
> hardly saturate it most of the time. Does anyone agree or disagree
> with that ?
>
> Hi Fernando,
>
> If there is any real performance number, it will be much easier to
> response this idea. What confuses me is, if user reads a data block
> which is just written to SSD, what is the benefit for the separated SSDs.
>
> Yes I agree with you that some times a single SSD as cache device is
> inefficient. Multiple cache device on bcache is a not-implemented yet
> feature as I know.
>
> Thanks.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-26 19:28             ` FERNANDO FREDIANI
@ 2017-09-26 19:51               ` Michael Lyle
  2017-09-26 20:02                 ` FERNANDO FREDIANI
  2017-09-26 20:27               ` Kai Krakow
  1 sibling, 1 reply; 18+ messages in thread
From: Michael Lyle @ 2017-09-26 19:51 UTC (permalink / raw)
  To: FERNANDO FREDIANI; +Cc: linux-bcache

Fernando--

I don't think it really matters.  Before, when capacities of SSD were
really small and endurance was a big concern it made sense to have a
separate write cache made out of SLC flash-- now, being able to
wear-level over an entire large MLC device is where the longevity
comes from.  So I understand why ZFS made the tradeoffs they did (also
the read path / write path functionality were added at different times
by different people)-- but I don't think you'd make the same choices
in implementation today.

As Coly points out, there's a small benefit to having different
redundancy policies-- you don't need RAID-1 for read cache because
it's not too big of a deal if you lose it.  But handling this
properly-- having multiple cache devices and ensuring that not-dirty
data has only one copy and dirty data has multiple copies-- is fairly
complicated for various reasons.  And having separate devices IMO is
not a good idea today-- it's both complicated to deploy and means that
you concentrate most of the writes to one disk (e.g. you don't
wear-level over all of the disk capacity).

Mike

On Tue, Sep 26, 2017 at 12:28 PM, FERNANDO FREDIANI
<fernando.frediani@upx.com> wrote:
> Hello
>
> Has anyone had any consideration about the usage of a single SSD for both
> read and write and how that impacts the overall performance and drive's
> endurance ?
>
> I am interested to find out more in order to adjust the necessary stuff and
> monitor it accordingly.
>
> Fernando
>
>
>
> On 14/09/2017 12:14, FERNANDO FREDIANI wrote:
>>
>> Hello Coly
>>
>> I didn't start this thread to provide numbers but to ask people view
>> on the concept and compare how flash technology works compared to how
>> it used to be a few years ago and I used ZFS case as an example
>> because people used to recommend to have separate devices until
>> sometime ago. My aim is to understand why this is not the
>> recommendation for bcache, if it already took in consideration newer
>> technology or if has anything else different on the way it deals with
>> write and read cache.
>>
>> Regards,
>> Fernando
>>
>>
>> On 14/09/2017 12:04, Coly Li wrote:
>>
>> On 2017/9/14 下午4:54, FERNANDO FREDIANI wrote:
>>
>> It depends on every scenario. SSDs generally have a max throughput and
>> a max IOPS for read and write, but when you mix them it becomes more
>> difficult to measure. A typical SSDs caching device used for both
>> tasks will have the normal writing for doing the writeback caching,
>> have writes coming from the permanent storage to cache content more
>> popular (so to populate the cache) and will have reads to serve
>> content already cache to the user who requested.
>>
>> Another point perhaps even more important than that is how the SSD in
>> question will stand for wearing. Now a days SSDs are much more
>> durable, specially those with higher DWPD. I read recently that newer
>> memory technology will do well compared to previous ones.
>>
>> Hi Fernando,
>>
>> It will be great if you may provide some performance numbers on ZFS (I
>> assume it should be ZFS since you mentioned it). I can understand the
>> concept, but real performance number should be more attractive for this
>> discussion :-)
>>
>> Thanks in advance.
>>
>> Coly Li
>>
>> On 14/09/2017 11:45, Coly Li wrote:
>>
>> On 2017/9/14 下午3:10, FERNANDO FREDIANI wrote:
>>
>> Hello Coly.
>>
>> If the users reads a piece of data that is just writen to SSD (unlikely)
>> it should first and in any condition be commited to the permanent
>> storage and then read from there and cached in another area of the SSD.
>> Writaback cache is very volatile and lasts only a few seconds while the
>> data is not yet committed to permanent storage.
>>
>> In fact multiple device suport is not implemented yet, that's why I am
>> asking it and comparing with other well technology as ZFS.
>>
>> Hi Fernando,
>>
>> Do you have some performance number to compare combined and separated
>> configurations on ZFS ? If the performance improvement is not from
>> adding one more SSD device, I don't why dedicate read/write SSDs may
>> help for performance. In my understanding, if any of the SSD has spared
>> throughput capability for read or write, mixed them together on both
>> SSDs may have better performance number.
>>
>>
>> Coly Li
>>
>>
>> On 14/09/2017 04:58, Coly Li wrote:
>>
>> On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:
>>
>> Hi folks
>>
>> In Bcache people normally use a single SSD for both Read and Write
>> cache. This seems to work pretty well, at least for the load we have
>> been using here.
>>
>> However in other environments, specially on ZFS people tend to suggest
>> to use dedicated SSDs for Write (ZIL) and for Read (L2ARC). Some say
>> that performance will be much better in this way and mainly say they
>> have different wearing levels.
>> The issue now a days is that SSDs for Write Cache (or Writeback) don't
>> need to have much space available (8GB normally is more than enough),
>> just enough for the time until data is committed to the pool (or
>> slower disks) so it is hard to find a suitable SSD to dedicate to this
>> propose only without overprovisioning that part.
>> On the top of that newer SSDs have changed a lot in recent times using
>> different types of memory technologies which tend to be much durable.
>>
>> Given that I personally see that using a single SSD for both Write and
>> Read cache, in any scenarios doesn't impose any significant loss to
>> the storage, given you use new technology SSDs and that you will
>> hardly saturate it most of the time. Does anyone agree or disagree
>> with that ?
>>
>> Hi Fernando,
>>
>> If there is any real performance number, it will be much easier to
>> response this idea. What confuses me is, if user reads a data block
>> which is just written to SSD, what is the benefit for the separated SSDs.
>>
>> Yes I agree with you that some times a single SSD as cache device is
>> inefficient. Multiple cache device on bcache is a not-implemented yet
>> feature as I know.
>>
>> Thanks.
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-26 19:51               ` Michael Lyle
@ 2017-09-26 20:02                 ` FERNANDO FREDIANI
  0 siblings, 0 replies; 18+ messages in thread
From: FERNANDO FREDIANI @ 2017-09-26 20:02 UTC (permalink / raw)
  To: Michael Lyle; +Cc: linux-bcache

Hello Michael.

Yeah, it does make sense your point of view. Also agree RAID-1 is 
unnecessary.

Fernando


On 26/09/2017 16:51, Michael Lyle wrote:
> Fernando--
>
> I don't think it really matters.  Before, when capacities of SSD were
> really small and endurance was a big concern it made sense to have a
> separate write cache made out of SLC flash-- now, being able to
> wear-level over an entire large MLC device is where the longevity
> comes from.  So I understand why ZFS made the tradeoffs they did (also
> the read path / write path functionality were added at different times
> by different people)-- but I don't think you'd make the same choices
> in implementation today.
>
> As Coly points out, there's a small benefit to having different
> redundancy policies-- you don't need RAID-1 for read cache because
> it's not too big of a deal if you lose it.  But handling this
> properly-- having multiple cache devices and ensuring that not-dirty
> data has only one copy and dirty data has multiple copies-- is fairly
> complicated for various reasons.  And having separate devices IMO is
> not a good idea today-- it's both complicated to deploy and means that
> you concentrate most of the writes to one disk (e.g. you don't
> wear-level over all of the disk capacity).
>
> Mike
>
> On Tue, Sep 26, 2017 at 12:28 PM, FERNANDO FREDIANI
> <fernando.frediani@upx.com> wrote:
>> Hello
>>
>> Has anyone had any consideration about the usage of a single SSD for both
>> read and write and how that impacts the overall performance and drive's
>> endurance ?
>>
>> I am interested to find out more in order to adjust the necessary stuff and
>> monitor it accordingly.
>>
>> Fernando
>>
>>
>>
>> On 14/09/2017 12:14, FERNANDO FREDIANI wrote:
>>> Hello Coly
>>>
>>> I didn't start this thread to provide numbers but to ask people view
>>> on the concept and compare how flash technology works compared to how
>>> it used to be a few years ago and I used ZFS case as an example
>>> because people used to recommend to have separate devices until
>>> sometime ago. My aim is to understand why this is not the
>>> recommendation for bcache, if it already took in consideration newer
>>> technology or if has anything else different on the way it deals with
>>> write and read cache.
>>>
>>> Regards,
>>> Fernando
>>>
>>>
>>> On 14/09/2017 12:04, Coly Li wrote:
>>>
>>> On 2017/9/14 下午4:54, FERNANDO FREDIANI wrote:
>>>
>>> It depends on every scenario. SSDs generally have a max throughput and
>>> a max IOPS for read and write, but when you mix them it becomes more
>>> difficult to measure. A typical SSDs caching device used for both
>>> tasks will have the normal writing for doing the writeback caching,
>>> have writes coming from the permanent storage to cache content more
>>> popular (so to populate the cache) and will have reads to serve
>>> content already cache to the user who requested.
>>>
>>> Another point perhaps even more important than that is how the SSD in
>>> question will stand for wearing. Now a days SSDs are much more
>>> durable, specially those with higher DWPD. I read recently that newer
>>> memory technology will do well compared to previous ones.
>>>
>>> Hi Fernando,
>>>
>>> It will be great if you may provide some performance numbers on ZFS (I
>>> assume it should be ZFS since you mentioned it). I can understand the
>>> concept, but real performance number should be more attractive for this
>>> discussion :-)
>>>
>>> Thanks in advance.
>>>
>>> Coly Li
>>>
>>> On 14/09/2017 11:45, Coly Li wrote:
>>>
>>> On 2017/9/14 下午3:10, FERNANDO FREDIANI wrote:
>>>
>>> Hello Coly.
>>>
>>> If the users reads a piece of data that is just writen to SSD (unlikely)
>>> it should first and in any condition be commited to the permanent
>>> storage and then read from there and cached in another area of the SSD.
>>> Writaback cache is very volatile and lasts only a few seconds while the
>>> data is not yet committed to permanent storage.
>>>
>>> In fact multiple device suport is not implemented yet, that's why I am
>>> asking it and comparing with other well technology as ZFS.
>>>
>>> Hi Fernando,
>>>
>>> Do you have some performance number to compare combined and separated
>>> configurations on ZFS ? If the performance improvement is not from
>>> adding one more SSD device, I don't why dedicate read/write SSDs may
>>> help for performance. In my understanding, if any of the SSD has spared
>>> throughput capability for read or write, mixed them together on both
>>> SSDs may have better performance number.
>>>
>>>
>>> Coly Li
>>>
>>>
>>> On 14/09/2017 04:58, Coly Li wrote:
>>>
>>> On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:
>>>
>>> Hi folks
>>>
>>> In Bcache people normally use a single SSD for both Read and Write
>>> cache. This seems to work pretty well, at least for the load we have
>>> been using here.
>>>
>>> However in other environments, specially on ZFS people tend to suggest
>>> to use dedicated SSDs for Write (ZIL) and for Read (L2ARC). Some say
>>> that performance will be much better in this way and mainly say they
>>> have different wearing levels.
>>> The issue now a days is that SSDs for Write Cache (or Writeback) don't
>>> need to have much space available (8GB normally is more than enough),
>>> just enough for the time until data is committed to the pool (or
>>> slower disks) so it is hard to find a suitable SSD to dedicate to this
>>> propose only without overprovisioning that part.
>>> On the top of that newer SSDs have changed a lot in recent times using
>>> different types of memory technologies which tend to be much durable.
>>>
>>> Given that I personally see that using a single SSD for both Write and
>>> Read cache, in any scenarios doesn't impose any significant loss to
>>> the storage, given you use new technology SSDs and that you will
>>> hardly saturate it most of the time. Does anyone agree or disagree
>>> with that ?
>>>
>>> Hi Fernando,
>>>
>>> If there is any real performance number, it will be much easier to
>>> response this idea. What confuses me is, if user reads a data block
>>> which is just written to SSD, what is the benefit for the separated SSDs.
>>>
>>> Yes I agree with you that some times a single SSD as cache device is
>>> inefficient. Multiple cache device on bcache is a not-implemented yet
>>> feature as I know.
>>>
>>> Thanks.
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: SSD usage for bcache - Read and Writeback
  2017-09-26 19:28             ` FERNANDO FREDIANI
  2017-09-26 19:51               ` Michael Lyle
@ 2017-09-26 20:27               ` Kai Krakow
  1 sibling, 0 replies; 18+ messages in thread
From: Kai Krakow @ 2017-09-26 20:27 UTC (permalink / raw)
  To: linux-bcache

Am Tue, 26 Sep 2017 16:28:14 -0300
schrieb FERNANDO FREDIANI <fernando.frediani@upx.com>:

> Hello
> 
> Has anyone had any consideration about the usage of a single SSD for 
> both read and write and how that impacts the overall performance and 
> drive's endurance ?

Well, there's no option in bcache so you won't find out what the
difference would be.

But from my personal experience: Don't use a very cheap SSD, and don't
use a very small SSD.

With writeback caching, I brought my old 128G Crucial MX100 SSD to 99%
lifetime used (according to smartctl) within only one year of usage. I'm
sure it would last much longer as manufacturers tend to be very careful
with these numbers, but I'm also not very keen on trying only to find
out one day that my trusted data was eaten by a sudden SSD death.

After tuning filesystem behavior (no atime etc), I replaced it with a
512G SSD and only used 400G of it for bcache. Lifetime decrease is much
slower now, possibly working at least 4-5 more years (1 year in usage
now).

BTW: If you are going to use an SSD explicitly for caching, this means
you are trading SSD lifetime for increased HDD speed by intention. This
is a well-known side-effect and you should do your planning accordingly.

For me, I calculated that buying a medium-prized SSD every few years to
improve storage performance of a multi-TB HDD array is much cheaper
than getting a multi-TB SSD array or playing funny file
location/partition sizing/file system management games. I just throw
one SSD at it every few years, and the rest of the storage stays the
same: No (or very little) downtimes, no backup/restore, and almost as
fast as native SSD system perceived performance. A small price for a
huge improvement. I can still use the old SSD as replacement drives in
friends or parents laptop for better system performance there as long
as such systems are only used for simple tasks anyway, like checking
mail and browsing the web: This doesn't generate much writes and still
makes those old device snappy systems again. It's a good retirement
plan for your (ab)used caching SSDs.


> I am interested to find out more in order to adjust the necessary
> stuff and monitor it accordingly.

Use smartctl to monitor it: There's either a lifetime counter in
percent, or there's a wear-leveling counter. Both can be used together
with powered-on hours to estimate the time left before you should
consider replacing the SSD.

Once you get near the end of the estimated lifetime, watch the other
smartctl indicators closely if you want to use the SSD longer than
estimated lifetime. As stated above, manufacturers a careful when
estimating wear-leveling, so there's a good chance it would last
longer. Of course, you have working and tested backups in that case
but you have them anyways I'm sure... ;-)

Also, leave a good portion of your SSD untouched when its size is a
power of two (or nearby), e.g. 120/128G, 240/256G, 500/512G. The rule
of thumb is 15-20%. I'm using 400G of a 512G SSD, the rest is trimmed,
free space (except for EFI-ESP). Other manufacturers use "odd" sizes
like 80G, 160G etc. These already include hidden space for
wear-leveling - no need to leave 15-20% free.

Some people would say that you don't need to overprovision modern SSDs.
That is probably true for normal direct filesystem usage. But if you're
using bcache which is a huge blob of continuous data to the SSD
firmware: No chance to do proper wear-leveling as in a file system
which shuffles files around from time to time and runs discards on free
space. Bcache doesn't really do that, it is more like a log-fs only
doing garbage collection when it runs out of space. While bcache
supports discard, it never keeps free discarded space in the cache. It
only sends discards to allow the drive to shuffle around data in that
very moment for wear-leveling. You get better performance and
wear-leveling from bcache if you leave trimmed free space in the SSD.
At least this is my personal experience (very unscientific, tho... I
tried both modes for some time, and the system /feels/ snappier and
smartctl numbers /seem/ to wear slower with only 400G allocated)


> On 14/09/2017 12:14, FERNANDO FREDIANI wrote:
> > Hello Coly
> >
> > I didn't start this thread to provide numbers but to ask people view
> > on the concept and compare how flash technology works compared to
> > how it used to be a few years ago and I used ZFS case as an example
> > because people used to recommend to have separate devices until
> > sometime ago. My aim is to understand why this is not the
> > recommendation for bcache, if it already took in consideration newer
> > technology or if has anything else different on the way it deals
> > with write and read cache.
> >
> > Regards,
> > Fernando
> >
> >
> > On 14/09/2017 12:04, Coly Li wrote:
> >
> > On 2017/9/14 下午4:54, FERNANDO FREDIANI wrote:
> >
> > It depends on every scenario. SSDs generally have a max throughput
> > and a max IOPS for read and write, but when you mix them it becomes
> > more difficult to measure. A typical SSDs caching device used for
> > both tasks will have the normal writing for doing the writeback
> > caching, have writes coming from the permanent storage to cache
> > content more popular (so to populate the cache) and will have reads
> > to serve content already cache to the user who requested.
> >
> > Another point perhaps even more important than that is how the SSD
> > in question will stand for wearing. Now a days SSDs are much more
> > durable, specially those with higher DWPD. I read recently that
> > newer memory technology will do well compared to previous ones.
> >
> > Hi Fernando,
> >
> > It will be great if you may provide some performance numbers on ZFS
> > (I assume it should be ZFS since you mentioned it). I can
> > understand the concept, but real performance number should be more
> > attractive for this discussion :-)
> >
> > Thanks in advance.
> >
> > Coly Li
> >
> > On 14/09/2017 11:45, Coly Li wrote:
> >
> > On 2017/9/14 下午3:10, FERNANDO FREDIANI wrote:
> >
> > Hello Coly.
> >
> > If the users reads a piece of data that is just writen to SSD
> > (unlikely) it should first and in any condition be commited to the
> > permanent storage and then read from there and cached in another
> > area of the SSD. Writaback cache is very volatile and lasts only a
> > few seconds while the data is not yet committed to permanent
> > storage.
> >
> > In fact multiple device suport is not implemented yet, that's why I
> > am asking it and comparing with other well technology as ZFS.
> >
> > Hi Fernando,
> >
> > Do you have some performance number to compare combined and
> > separated configurations on ZFS ? If the performance improvement is
> > not from adding one more SSD device, I don't why dedicate
> > read/write SSDs may help for performance. In my understanding, if
> > any of the SSD has spared throughput capability for read or write,
> > mixed them together on both SSDs may have better performance number.
> >
> >
> > Coly Li
> >
> >
> > On 14/09/2017 04:58, Coly Li wrote:
> >
> > On 2017/9/11 下午4:04, FERNANDO FREDIANI wrote:
> >
> > Hi folks
> >
> > In Bcache people normally use a single SSD for both Read and Write
> > cache. This seems to work pretty well, at least for the load we have
> > been using here.
> >
> > However in other environments, specially on ZFS people tend to
> > suggest to use dedicated SSDs for Write (ZIL) and for Read (L2ARC).
> > Some say that performance will be much better in this way and
> > mainly say they have different wearing levels.
> > The issue now a days is that SSDs for Write Cache (or Writeback)
> > don't need to have much space available (8GB normally is more than
> > enough), just enough for the time until data is committed to the
> > pool (or slower disks) so it is hard to find a suitable SSD to
> > dedicate to this propose only without overprovisioning that part.
> > On the top of that newer SSDs have changed a lot in recent times
> > using different types of memory technologies which tend to be much
> > durable.
> >
> > Given that I personally see that using a single SSD for both Write
> > and Read cache, in any scenarios doesn't impose any significant
> > loss to the storage, given you use new technology SSDs and that you
> > will hardly saturate it most of the time. Does anyone agree or
> > disagree with that ?
> >
> > Hi Fernando,
> >
> > If there is any real performance number, it will be much easier to
> > response this idea. What confuses me is, if user reads a data block
> > which is just written to SSD, what is the benefit for the separated
> > SSDs.
> >
> > Yes I agree with you that some times a single SSD as cache device is
> > inefficient. Multiple cache device on bcache is a not-implemented
> > yet feature as I know.
> >
> > Thanks.
> > --
> > To unsubscribe from this list: send the line "unsubscribe
> > linux-bcache" in the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html  
> 



-- 
Regards,
Kai

Replies to list-only preferred.

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2017-09-26 20:27 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-11 14:04 SSD usage for bcache - Read and Writeback FERNANDO FREDIANI
2017-09-14  7:58 ` Coly Li
2017-09-14 11:43   ` Kai Krakow
2017-09-14 13:10   ` FERNANDO FREDIANI
2017-09-14 14:40     ` Emmanuel Florac
2017-09-14 14:46       ` FERNANDO FREDIANI
2017-09-14 15:04         ` Emmanuel Florac
2017-09-14 15:11           ` FERNANDO FREDIANI
2017-09-14 14:45     ` Coly Li
2017-09-14 14:54       ` FERNANDO FREDIANI
2017-09-14 15:04         ` Coly Li
2017-09-14 15:14           ` FERNANDO FREDIANI
2017-09-26 19:28             ` FERNANDO FREDIANI
2017-09-26 19:51               ` Michael Lyle
2017-09-26 20:02                 ` FERNANDO FREDIANI
2017-09-26 20:27               ` Kai Krakow
2017-09-14 15:31       ` Kai Krakow
2017-09-14 15:49         ` Coly Li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox