[Openstack] Wiping of old cinder volumes

John Griffith john.griffith at solidfire.com
Fri Nov 1 23:46:47 UTC 2013


On Fri, Nov 1, 2013 at 4:20 PM, David Hill <david.hill at ubisoft.com> wrote:
> 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
>
>
>
>
> _______________________________________________
> Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> Post to     : openstack at lists.openstack.org
> Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>
Hi Dave,

To be honest, this has been an ongoing battle.  The idea of throttling
or spreading the dd's is a good one, but the problem I had here was
then the delete operation can take *even longer* than it does already.
 That makes some people rather unhappy, but I think we need to take
another look at the approach, I ran into similar issues today that
drove me crazy deleting a large number of volumes, so I completely
understand/agree with what you're saying.  It may actually be best to
go ahead and bight the bullet on the very long delete and lower the
priority as you suggest.

The other alternatives to consider are:
1. do you need secure delete, this can be disabled if the answer is no
2. what platform are you on and could you use thin provisioned LVM
        LVM does some things internally here to help us with the
security concerns around data leakage across tenants/volumes

Thanks,
John




More information about the Openstack mailing list