[pve-devel] [PATCH v3 manager 1/3] Move wipe_disks to PVE::Diskmanage
Dominik Csapak
d.csapak at proxmox.com
Wed Apr 8 10:46:05 CEST 2020
Series works, test works, could not find anything obviously wrong
Reviewed-by: Dominik Csapak <d.csapak at proxmox.com>
Tested-by: Dominik Csapak <d.csapak at proxmox.com>
On 3/11/20 2:05 PM, Dominic Jäger wrote:
> Move wipe_disks from PVE::Ceph::Tools to PVE::Diskmanage.
> Relies on the corresponding patch in pve-storage.
>
> Signed-off-by: Dominic Jäger <d.jaeger at proxmox.com>
> ---
> v2->v3: unchanged
> v1->v2: Fix syntax
>
> To test this we need an OSD that is not managed by ceph-volume:
> - Create a PVE 5 VM
> - Install Ceph Luminous
> - Create an OSD
> - Upgrade to PVE 6 but don't update Ceph to Nautilus
>
> PVE/API2/Ceph/OSD.pm | 4 ++--
> PVE/Ceph/Tools.pm | 22 ----------------------
> 2 files changed, 2 insertions(+), 24 deletions(-)
>
> diff --git a/PVE/API2/Ceph/OSD.pm b/PVE/API2/Ceph/OSD.pm
> index a514c502..fec53fbf 100644
> --- a/PVE/API2/Ceph/OSD.pm
> +++ b/PVE/API2/Ceph/OSD.pm
> @@ -462,7 +462,7 @@ __PACKAGE__->register_method ({
> push @$cmd, '--data', $devpath;
> push @$cmd, '--dmcrypt' if $param->{encrypted};
>
> - PVE::Ceph::Tools::wipe_disks($devpath);
> + PVE::Diskmanage::wipe_blockdevices([$devpath]);
>
> run_command($cmd);
> });
> @@ -551,7 +551,7 @@ __PACKAGE__->register_method ({
> my $partnum = PVE::Diskmanage::get_partnum($part);
> my $devpath = PVE::Diskmanage::get_blockdev($part);
>
> - PVE::Ceph::Tools::wipe_disks($part);
> + PVE::Diskmanage::wipe_blockdevices([$part]);
> print "remove partition $part (disk '${devpath}', partnum $partnum)\n";
> eval { run_command(['/sbin/sgdisk', '-d', $partnum, "${devpath}"]); };
> warn $@ if $@;
> diff --git a/PVE/Ceph/Tools.pm b/PVE/Ceph/Tools.pm
> index e6225b78..7d2e8469 100644
> --- a/PVE/Ceph/Tools.pm
> +++ b/PVE/Ceph/Tools.pm
> @@ -270,28 +270,6 @@ sub get_or_create_admin_keyring {
> return $pve_ckeyring_path;
> }
>
> -# wipe the first 200 MB to clear off leftovers from previous use, otherwise a
> -# create OSD fails.
> -sub wipe_disks {
> - my (@devs) = @_;
> -
> - my @wipe_cmd = qw(/bin/dd if=/dev/zero bs=1M conv=fdatasync);
> -
> - foreach my $devpath (@devs) {
> - my $devname = basename($devpath);
> - my $dev_size = PVE::Tools::file_get_contents("/sys/class/block/$devname/size");
> -
> - ($dev_size) = $dev_size =~ m|(\d+)|; # untaint $dev_size
> - die "Coulnd't get the size of the device $devname\n" if (!defined($dev_size));
> -
> - my $size = ($dev_size * 512 / 1024 / 1024);
> - my $count = ($size < 200) ? $size : 200;
> -
> - print "wipe disk/partition: $devpath\n";
> - eval { run_command([@wipe_cmd, "count=$count", "of=${devpath}"]) };
> - warn $@ if $@;
> - }
> -};
>
> # get ceph-volume managed osds
> sub ceph_volume_list {
>
More information about the pve-devel
mailing list