[Openstack] Operation offload to the SAN. RE: Wiping of old cinder volumes
Qixiaozhen
qixiaozhen at huawei.com
Mon Nov 4 02:39:53 UTC 2013
Hi,all
David said: users will simply try to get rid of their volumes ALL at the same time and this is putting a lot of pressure on the SAN servicing those volumes and since the hardware isn't replying fast enough, the process then fall in D state and are waiting for IOs to complete which slows down everything.
The system must tolerate this kind of behavior. The status of process "dd" will fall in D state with the pressure of SAN.
In my opinion, we should rethink the way of wiping the data in the volumes. Filling in the device with /dev/zero with "dd" command was the most primitive method. The standard scsi command "write same" could be taken into considered.
Once the LBA was provided and the command was sent to the SAN , the storage device(SAN) could write the same-data into the LUN or volumes. The "dd" operation can be offloaded to the storage array to execute.
Thanks,
Qi
Reference:
1) http://manpages.ubuntu.com/manpages/karmic/man8/sg_write_same.8.html
2) http://storagegaga.wordpress.com/2012/01/06/why-vaai/
________________________________
Qi Xiaozhen
CLOUD OS PDU, IT Product Line, Huawei Enterprise Business Group
Mobile: +86 13609283376 Tel: +86 29-89191578
Email: qixiaozhen at huawei.com <mailto:qixiaozhen at huawei.com>
From: David Hill [mailto:david.hill at ubisoft.com]
Sent: Saturday, November 02, 2013 6:21 AM
To: openstack at lists.openstack.org
Subject: [Openstack] Wiping of old cinder volumes
Hi guys,
I was wondering there was some better way of wiping the content of an old EBS volume before actually deleting the logical volume in cinder ? Or perhaps, configure or add the possibility to configure the number of parallel "dd" processes that will be spawn at the same time...
Sometimes, users will simply try to get rid of their volumes ALL at the same time and this is putting a lot of pressure on the SAN servicing those volumes and since the hardware isn't replying fast enough, the process then fall in D state and are waiting for IOs to complete which slows down everything.
Since this process isn't (in my opinion) as critical as a EBS write or read, perhaps we should be able to throttle the speed of disk wiping or number of parallel wipings to something that wouldn't affect the other read/write that are most probably more critical.
Here is a small capture of the processes :
cinder 23782 0.7 0.2 248868 20588 ? S Oct24 94:23 /usr/bin/python /usr/bin/cinder-volume --config-file /etc/cinder/cinder.conf --logfile /var/log/cinder/volume.log
cinder 23790 0.0 0.5 382264 46864 ? S Oct24 9:16 \_ /usr/bin/python /usr/bin/cinder-volume --config-file /etc/cinder/cinder.conf --logfile /var/log/cinder/volume.log
root 32672 0.0 0.0 175364 2648 ? S 21:48 0:00 | \_ sudo cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--2e86d686--de67--4ee4--992d--72818c70d791 count=102400 bs=1M co
root 32675 0.0 0.1 173636 8672 ? S 21:48 0:00 | | \_ /usr/bin/python /usr/bin/cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--2e86d686--de67--4ee4--992d--72818c70d7
root 32681 3.2 0.0 106208 1728 ? D 21:48 0:47 | | \_ /bin/dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--2e86d686--de67--4ee4--992d--72818c70d791 count=102400 bs=1M conv=fdatasync
root 32674 0.0 0.0 175364 2656 ? S 21:48 0:00 | \_ sudo cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--d54a1c96--63ca--45cb--a597--26194d45dcdf count=102400 bs=1M co
root 32676 0.0 0.1 173636 8672 ? S 21:48 0:00 | | \_ /usr/bin/python /usr/bin/cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--d54a1c96--63ca--45cb--a597--26194d45dc
root 32683 3.2 0.0 106208 1724 ? D 21:48 0:47 | | \_ /bin/dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--d54a1c96--63ca--45cb--a597--26194d45dcdf count=102400 bs=1M conv=fdatasync
root 32693 0.0 0.0 175364 2656 ? S 21:48 0:00 | \_ sudo cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--048dae36--b225--4266--b21e--af4b66eae6cd count=102400 bs=1M co
root 32694 0.0 0.1 173632 8668 ? S 21:48 0:00 | | \_ /usr/bin/python /usr/bin/cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--048dae36--b225--4266--b21e--af4b66eae6
root 32707 3.2 0.0 106208 1728 ? D 21:48 0:46 | | \_ /bin/dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--048dae36--b225--4266--b21e--af4b66eae6cd count=102400 bs=1M conv=fdatasync
root 342 0.0 0.0 175364 2648 ? S 21:48 0:00 | \_ sudo cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--45251e8e--0c54--4e8f--9446--4e92801976ab count=102400 bs=1M co
root 343 0.0 0.1 173636 8672 ? S 21:48 0:00 | | \_ /usr/bin/python /usr/bin/cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--45251e8e--0c54--4e8f--9446--4e92801976
root 347 3.2 0.0 106208 1728 ? D 21:48 0:45 | | \_ /bin/dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--45251e8e--0c54--4e8f--9446--4e92801976ab count=102400 bs=1M conv=fdatasync
root 380 0.0 0.0 175364 2656 ? S 21:48 0:00 | \_ sudo cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--1d9dfb31--dc06--43d5--bc1f--93b6623ff8c4 count=102400 bs=1M co
root 382 0.0 0.1 173632 8668 ? S 21:48 0:00 | | \_ /usr/bin/python /usr/bin/cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--1d9dfb31--dc06--43d5--bc1f--93b6623ff8
root 388 3.2 0.0 106208 1724 ? R 21:48 0:45 | | \_ /bin/dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--1d9dfb31--dc06--43d5--bc1f--93b6623ff8c4 count=102400 bs=1M conv=fdatasync
root 381 0.0 0.0 175364 2648 ? S 21:48 0:00 | \_ sudo cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--60971d47--d3c5--44ef--9d43--d461c364d148 count=102400 bs=1M co
root 384 0.0 0.1 173636 8672 ? S 21:48 0:00 | | \_ /usr/bin/python /usr/bin/cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--60971d47--d3c5--44ef--9d43--d461c364d1
root 391 3.2 0.0 106208 1728 ? D 21:48 0:45 | | \_ /bin/dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--60971d47--d3c5--44ef--9d43--d461c364d148 count=102400 bs=1M conv=fdatasync
root 383 0.0 0.0 175364 2648 ? S 21:48 0:00 | \_ sudo cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--856080db--4f8c--4063--9c47--69acb8460e50 count=102400 bs=1M co
root 386 0.0 0.1 173632 8668 ? S 21:48 0:00 | | \_ /usr/bin/python /usr/bin/cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--856080db--4f8c--4063--9c47--69acb8460e
root 389 3.1 0.0 106208 1724 ? D 21:48 0:45 | | \_ /bin/dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--856080db--4f8c--4063--9c47--69acb8460e50 count=102400 bs=1M conv=fdatasync
root 385 0.0 0.0 175364 2652 ? S 21:48 0:00 | \_ sudo cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--f8f98d80--044f--4d4a--983f--d1186556f886 count=102400 bs=1M co
root 387 0.0 0.1 173632 8668 ? S 21:48 0:00 | | \_ /usr/bin/python /usr/bin/cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--f8f98d80--044f--4d4a--983f--d1186556f8
root 392 3.1 0.0 106208 1728 ? D 21:48 0:45 | | \_ /bin/dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--f8f98d80--044f--4d4a--983f--d1186556f886 count=102400 bs=1M conv=fdatasync
root 413 0.0 0.0 175364 2652 ? S 21:48 0:00 | \_ sudo cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--0e89696a--492b--494c--81fa--7e834b9f31f4 count=102400 bs=1M co
root 414 0.0 0.1 173636 8672 ? S 21:48 0:00 | \_ /usr/bin/python /usr/bin/cinder-rootwrap /etc/cinder/rootwrap.conf dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--0e89696a--492b--494c--81fa--7e834b9f31
root 420 3.1 0.0 106208 1728 ? D 21:48 0:45 | \_ /bin/dd if=/dev/zero of=/dev/mapper/cinder--volumes-volume--0e89696a--492b--494c--81fa--7e834b9f31f4 count=102400 bs=1M conv=fdatasync
cinder 23791 0.0 0.5 377464 41968 ? S Oct24 7:46 \_ /usr/bin/python /usr/bin/cinder-volume --config-file /etc/cinder/cinder.conf --logfile /var/log/cinder/volume.log
iostat output :
dm-23 0.00 0.00 0.00 18408.00 0.00 71.91 8.00 503.06 28.83 0.05 100.00
dm-25 0.00 0.00 0.00 20544.00 0.00 80.25 8.00 597.24 30.56 0.05 100.10
dm-29 0.00 0.00 0.00 19232.00 0.00 75.12 8.00 531.80 27.62 0.05 100.10
dm-34 0.00 0.00 0.00 20128.00 0.00 78.62 8.00 498.10 24.92 0.05 100.00
dm-39 0.00 0.00 0.00 18355.00 0.00 71.70 8.00 534.77 28.98 0.05 100.00
dm-59 0.00 0.00 0.00 18387.00 0.00 71.82 8.00 587.79 32.10 0.05 100.00
dm-96 0.00 0.00 0.00 16480.00 0.00 64.38 8.00 467.96 27.51 0.06 100.00
dm-97 0.00 0.00 0.00 17024.00 0.00 66.50 8.00 502.25 29.21 0.06 100.00
dm-98 0.00 0.00 0.00 20704.00 0.00 80.88 8.00 655.67 31.37 0.05 100.00
parent dm :
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
dm-0 142.00 74394.00 100.00 2812.00 1.00 302.41 213.38 156.74 52.84 0.34 100.00
Thank you very much ,
Dave
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20131104/40d0706e/attachment.html>
More information about the Openstack
mailing list