On 23-12-15 14:05, Daniel P. Berrange wrote: > On Wed, Dec 23, 2015 at 01:50:52PM +0100, Wido den Hollander wrote: >> >> >> On 23-12-15 10:45, Daniel P. Berrange wrote: >>> On Wed, Dec 23, 2015 at 10:29:04AM +0100, Wido den Hollander wrote: >>>> This allows user to use the volume wiping functionality of the libvirt >>>> storage driver. >>>> >>>> All data from the volume will be wiped by calling rbd_discard() in chunks of the >>>> underlying object and stripe size inside Ceph. >>>> >>>> This will ensure all data is zeroed and leaves the user with a completely empty volume >>>> ready for use again. >>> >>> Based on the name 'rbd_discard' it sounds like this is going to call >>> TRIM/DISCARD on the underlying storage too ? If so, then I don't think >>> that this is an appropriate approach for this API. The virStorageVolWipe >>> API should clear the data, *without* having any effect on the storage of >>> the API - ie we don't want to discard underling storage blocks as a >>> side effect >>> >> >> Afaik it zeroes/trims all the RBD objects on the Ceph cluster, but it >> doesn't TRIM the lower SSD on it's turn. >> >> So it will send these calls to Ceph/RBD and it will zero all the data of >> that specific volume. A rather simple way to get rid of the data in a >> volume. > > That's not what I see that API impl of rbd_discard() doing. It > looks very much like it is discarding extents from the RBD volume, > at least if the discarded region is large enough. Only if the discarded > region is small, does it merely zero the data. > Let me verify this with the Ceph people. > So I really don't think this is a suitable API for use with the > virStorageVolWipe() API, whose *only* effect should be to overwrite > the data, not have any side effect on volume extent allocation > What do you suggest? use rbd_write() in a loop and overwrite the whole volume? The problem with this option is that the RBD volume will then grow to it's maximum size on the underlying storage. With rbd_discard() being called on the exact object size all those objects will be trimmed, effectively wiping the volume's data. So I figured it was OK. I just want to make the RBD storage driver as feature complete as possible :) Wido > > Regards, > Daniel > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list