[pve-devel] [PATCH v4 manager] add wipe_disk option when destroying ceph disk
David Limbeck
d.limbeck at proxmox.com
Wed Oct 24 11:45:44 CEST 2018
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 ({
}
}
+
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']); };
+ warn $@ if $@;
+ }
}
};
--
2.11.0
More information about the pve-devel
mailing list