Skip to contentSkip to conversation

rbd: thick-provision image support

PATCH In review KAMEI Hitoshi 3 participants 5 messages Mar 19, 2018 – Mar 22, 2018

lore
Share & tools
lore
#0 lore raw

cover rbd: thick-provision image support

This patch series adds the thick-provision image support to /drivers/block/rbd.c relating to https://github.com/ceph/ceph/pull/18317.
The rbd will not issue the discard operation to thick-provision images, if applied.

The rbd should not discard any allocated blocks of thick-provision image to ensure writing data to rbd images. So this patch prevents from discarding allocated blocks on thick-provision image.

This patch series creates sysfs file to manipulate thick-provision status. If users write "1" to /sys/bus/rbd/devices/<dev-id>/thick, then the image is changed to thick-provision image. And if users write "0" to it, then the image is changed to thin-provision image. I will add the code changing status for the rbd map command.

Hitoshi Kamei (2):
rbd: RBD_DEV_FLAG_THICK rbd_dev_flags bit
rbd: add 'thick' sysfs rbd device attribute

 Documentation/ABI/testing/sysfs-bus-rbd |  6 ++++++
 drivers/block/rbd.c                     | 37 +++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)
Signature · 1 line
2.15.1
#1 lore raw
Quoted 10 lines · KAMEI Hitoshi

This patch series adds the thick-provision image support to /drivers/block/rbd.c relating to https://github.com/ceph/ceph/pull/18317.
The rbd will not issue the discard operation to thick-provision images, if applied.

The rbd should not discard any allocated blocks of thick-provision image to ensure writing data to rbd images. So this patch prevents from discarding allocated blocks on thick-provision image.

Quoted 5 lines

This patch series creates sysfs file to manipulate thick-provision status. If users write "1" to /sys/bus/rbd/devices/<dev-id>/thick, then the image is changed to thick-provision image. And if users write "0" to it, then the image is changed to thin-provision image. I will add the code changing status for the rbd map command.

Hi Hitoshi,

I think it should be a map time option -- e.g. rbd map -o thick. I don't see any reason for allowing tweaking this setting on a mapped image.

I looked through https://github.com/ceph/ceph/pull/18317 and I don't see an equivalent functionality there. rbd_discard_on_zeroed_write_same set to false makes the actual zeroes go on the wire, but I don't see anything for ignoring discard requests. Can you point me at that?

Thanks,

Ilya

#2 lore raw

There isn't currently an option to disable discards in librbd. However, given that's the intent of this change, why not name the option along the lines of "discard_disbled"?

Quoted 36 lines · Ilya Dryomov
Quoted 10 lines · KAMEI Hitoshi

This patch series adds the thick-provision image support to /drivers/block/rbd.c relating to https://github.com/ceph/ceph/pull/18317.
The rbd will not issue the discard operation to thick-provision images, if applied.

The rbd should not discard any allocated blocks of thick-provision image to ensure writing data to rbd images. So this patch prevents from discarding allocated blocks on thick-provision image.

Quoted 5 lines

This patch series creates sysfs file to manipulate thick-provision status. If users write "1" to /sys/bus/rbd/devices/<dev-id>/thick, then the image is changed to thick-provision image. And if users write "0" to it, then the image is changed to thin-provision image. I will add the code changing status for the rbd map command.

Hi Hitoshi,

I think it should be a map time option -- e.g. rbd map -o thick. I don't see any reason for allowing tweaking this setting on a mapped image.

I looked through https://github.com/ceph/ceph/pull/18317 and I don't see an equivalent functionality there. rbd_discard_on_zeroed_write_same set to false makes the actual zeroes go on the wire, but I don't see anything for ignoring discard requests. Can you point me at that?

Thanks,

Ilya
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 1 line
Jason
#4 lore raw
In reply to Ilya Dryomov

Hi Ilya,

Quoted 2 lines

I think it should be a map time option -- e.g. rbd map -o thick. I don't see any reason for allowing tweaking this setting on a mapped image.

I will add such option to rbd map command. The modified rbd command with the option writes "1" to sysfs file to disable discard operation at run-time. And, when user programs issue discard request to an image with the option, the patched kernel rbd driver ignores the discard request.

Current kernel rbd driver always discards allocated blocks on an image when user programs issue discard operation. For example, when an rbd image is formatted by mkfs.xfs, the mkfs.xfs issues discard request and the kernel rbd driver discards allocated blocks. However, the kernel rbd driver should keep all blocks of thick/fully provisioned image. This patch allows the kernel rbd driver to ignore discard request for thick/fully provisioned image.

Quoted 4 lines

I looked through https://github.com/ceph/ceph/pull/18317 and I don't see an equivalent functionality there. rbd_discard_on_zeroed_write_same set to false makes the actual zeroes go on the wire, but I don't see anything for ignoring discard requests. Can you point me at that?

As Jason said, there is not currently an option in librbd. And the rbd command also does not have any options for this patch. I will add the option to rbd map command in the next step.

And, the reason why the previous email refers to the URL is that this patch series is related to the thick/fully provisioned image described above.

Regards,

Signature · 1 line
Hitoshi Kamei
#3 lore raw
In reply to Jason Dillaman

Hi Jason,

Quoted 2 lines

However, given that's the intent of this change, why not name the option along the lines of "discard_disbled"?

Thank you for your comments.
I would like to change the name of sysfs file to "discard_disabled". Also, I will add an option named discard_disabled to the rdb map command.

Regards,

Signature · 1 line
Hitoshi Kamei