mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-05-02 13:14:11 +00:00
bwlimit: add parameter for QemuMigrate::phase2
used for online local disks via qemu_drive_mirror Add TODO comment for offline disks, as clone_disk calls `qemu-img convert`, which does not have a bandwidth limit parameter. Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
This commit is contained in:
parent
15a37695b6
commit
d189e5901b
@ -661,6 +661,8 @@ sub phase2 {
|
|||||||
|
|
||||||
my $start = time();
|
my $start = time();
|
||||||
|
|
||||||
|
my $opt_bwlimit = $self->{opts}->{bwlimit};
|
||||||
|
|
||||||
if (defined($self->{online_local_volumes})) {
|
if (defined($self->{online_local_volumes})) {
|
||||||
$self->{storage_migration} = 1;
|
$self->{storage_migration} = 1;
|
||||||
$self->{storage_migration_jobs} = {};
|
$self->{storage_migration_jobs} = {};
|
||||||
@ -669,9 +671,14 @@ sub phase2 {
|
|||||||
die "The number of local disks does not match between the source and the destination.\n"
|
die "The number of local disks does not match between the source and the destination.\n"
|
||||||
if (scalar(keys %{$self->{target_drive}}) != scalar @{$self->{online_local_volumes}});
|
if (scalar(keys %{$self->{target_drive}}) != scalar @{$self->{online_local_volumes}});
|
||||||
foreach my $drive (keys %{$self->{target_drive}}){
|
foreach my $drive (keys %{$self->{target_drive}}){
|
||||||
my $nbd_uri = $self->{target_drive}->{$drive}->{nbd_uri};
|
my $target = $self->{target_drive}->{$drive};
|
||||||
|
my $nbd_uri = $target->{nbd_uri};
|
||||||
|
my $source_sid = PVE::Storage::Plugin::parse_volume_id($conf->{$drive});
|
||||||
|
my $target_sid = PVE::Storage::Plugin::parse_volume_id($target->{volid});
|
||||||
|
my $bwlimit = PVE::Storage::get_bandwidth_limit('migrate', [$source_sid, $target_sid], $opt_bwlimit);
|
||||||
|
|
||||||
$self->log('info', "$drive: start migration to $nbd_uri");
|
$self->log('info', "$drive: start migration to $nbd_uri");
|
||||||
PVE::QemuServer::qemu_drive_mirror($vmid, $drive, $nbd_uri, $vmid, undef, $self->{storage_migration_jobs}, 1);
|
PVE::QemuServer::qemu_drive_mirror($vmid, $drive, $nbd_uri, $vmid, undef, $self->{storage_migration_jobs}, 1, undef, $bwlimit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6940,6 +6940,7 @@ sub clone_disk {
|
|||||||
|
|
||||||
my $sparseinit = PVE::Storage::volume_has_feature($storecfg, 'sparseinit', $newvolid);
|
my $sparseinit = PVE::Storage::volume_has_feature($storecfg, 'sparseinit', $newvolid);
|
||||||
if (!$running || $snapname) {
|
if (!$running || $snapname) {
|
||||||
|
# TODO: handle bwlimits
|
||||||
qemu_img_convert($drive->{file}, $newvolid, $size, $snapname, $sparseinit);
|
qemu_img_convert($drive->{file}, $newvolid, $size, $snapname, $sparseinit);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user