[pve-devel] applied: [PATCH v4 manager] add wipe_disk option when destroying ceph disk

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Oct 24 13:29:51 CEST 2018


On 10/24/18 11:45 AM, David Limbeck wrote:
> this allows the disk to be reused as ceph disk by zeroing the first 200M
> of the destroyed disk. disks are iterated separately from partitions to
> prevent duplicate wipes.
> 
> Signed-off-by: David Limbeck <d.limbeck at proxmox.com>
> ---
> since v3:
>     $disks_to_wipe is captured in $remove_partition instead of being
>     passed 
> 
>  PVE/API2/Ceph.pm | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/PVE/API2/Ceph.pm b/PVE/API2/Ceph.pm
> index 69489a70..ac277fdf 100644
> --- a/PVE/API2/Ceph.pm
> +++ b/PVE/API2/Ceph.pm
> @@ -397,6 +397,7 @@ __PACKAGE__->register_method ({
>  	    # try to unmount from standard mount point
>  	    my $mountpoint = "/var/lib/ceph/osd/ceph-$osdid";
>  
> +	    my $disks_to_wipe = {};
>  	    my $remove_partition = sub {
>  		my ($part) = @_;
>  
> @@ -407,6 +408,8 @@ __PACKAGE__->register_method ({
>  		print "remove partition $part (disk '${devpath}', partnum $partnum)\n";
>  		eval { run_command(['/sbin/sgdisk', '-d', $partnum, "${devpath}"]); };
>  		warn $@ if $@;
> +
> +		$disks_to_wipe->{$devpath} = 1;
>  	    };
>  
>  	    my $partitions_to_remove = [];
> @@ -434,6 +437,7 @@ __PACKAGE__->register_method ({
>  		}
>  	    }
>  
> +

applied, I followed up with removing above unnecessarily added newline...

>  	    print "Unmount OSD $osdsection from  $mountpoint\n";
>  	    eval { run_command(['/bin/umount', $mountpoint]); };
>  	    if (my $err = $@) {
> @@ -443,6 +447,11 @@ __PACKAGE__->register_method ({
>  		foreach my $part (@$partitions_to_remove) {
>  		    $remove_partition->($part);
>  		}
> +		foreach my $devpath (keys %$disks_to_wipe) {
> +		    print "wipe disk: $devpath\n";
> +		    eval { run_command(['/bin/dd', 'if=/dev/zero', "of=${devpath}", 'bs=1M', 'count=200', 'conv=fdatasync']); };

... and pulling the all but the "of=..." part out in a @wipe_cmd array.
Thanks!

> +		    warn $@ if $@;
> +		}
>  	    }
>  	};
>  
> 





More information about the pve-devel mailing list