I create an empty 150G volume them copy it to a second pool:

# rbd -p pool0 create --size 153750 steve150

# /usr/bin/time rbd cp pool0/steve150 pool1/steve150
Image copy: 100% complete...done.
303.44user 233.40system 1:52:10elapsed 7%CPU (0avgtext+0avgdata 248832maxresident)k

Notice there is no data in the steve150 volume.

I then repeat with a 100G volume that is full, filled using dd:

# /usr/bin/time rbd cp pool0/steve100 pool1/steve100
Image copy: 100% complete...done.
338.81user 573.55system 2:13:05elapsed 11%CPU (0avgtext+0avgdata 201712maxresident)k

I see threads hitting files in the mon data quite a bit and 35% IOwait for the whole time the copy is running.

I then repeat the above measurements using a tmpfs/ramdisk for the mon data. The improvement in time is about 10%, which indicates my spinning disks are responsible for 10% of the copy latency. Replacing the spinning disks with SSDs would likely improve the copy performance.

What I don't understand is what is taking so long with the first copy, the empty volume? If I am correct that there are a small number of objects associated with this volume, I wonder what is happening during the copy process?

-Steve
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to