Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


powershell:microsoft-hyper-v:check-bits-vm-disk-transfer-status-with-percentage

Проверка статуса миграции файлов виртуальных машин Hyper-V между хостами через BITS

При переносе выключённых виртуальных машин Hyper-V с большим количеством объёмных виртуальных дисков с одного хоста на другой с помощью System Center VMM мы можем наблюдать общий статус переноса в котором фигурируют цифры «в среднем по больнице».

Если возникает желание посмотреть то, в каком состоянии находится в данный момент процедура копирования отдельных файлов в BITS, можем воспользоваться PowerShell. Выполнять команду нужно на принимающем хосте.

Чтобы посмотреть все джобы VMM:

Get-BitsTransfer -AllUsers `
 | Select -Property Description, JobState, JobId, BytesTotal, BytesTransferred, `
  @{L='% done';E={"{0:N2}" -f (($_.BytesTransferred*100)/$_.BytesTotal) }} `
 | Where {$_.Description -eq 'VMM LAN Transfer Job'} | ft -AutoSize

Чтобы посмотреть только те джобы, которые всё ещё выполняются:

Get-BitsTransfer -AllUsers `
 | Select -Property Description, JobState, JobId, BytesTotal, BytesTransferred, `
  @{L='% done';E={"{0:N2}" -f (($_.BytesTransferred*100)/$_.BytesTotal) }} `
 | Where {($_.Description -eq 'VMM LAN Transfer Job') -and ($_.JobState -eq 'Transferring')} `
 | ft -AutoSize

В результате получим примерно такой вывод:


Description              JobState JobId     BytesTotal     BytesTransferred % done
-----------              -------- -----     ----------     ---------------- ------
VMM LAN Transfer Job Transferring 16e...9d8 1679269298176  12109479931      0,72  
VMM LAN Transfer Job Transferring 351...418 1691885764608  37122211823      2,19  
VMM LAN Transfer Job Transferring 2eb...811 1746109726720  19977207799      1,14 

Чтобы вывести списком информацию о всех джобах с данными о передаваемых файлах

Get-BitsTransfer -AllUsers `
 | Select -ExpandProperty FileList -Property Description, JobState, JobId, `
  @{L='% done';E={"{0:N2}" -f (($_.BytesTransferred*100)/$_.BytesTotal) }} `
 | Where {$_.Description -eq 'VMM LAN Transfer Job'} | fl

Открытым остаётся вопрос того, почему командлет Get-BitsTransfer в параметре BytesTransferred может возвращать плавающие (как в сторону увеличения, так и в сторону уменьшения) значения. Вопрос озвучен здесь: Что происходит с BytesTransferred в Get-BitsTransfer ?


Дополнительные источники информации:


Проверено на следующих конфигурациях:

Версия ОС Версия PowerShell
Windows Server 2012 R2 Datacenter (6.3.9600) Windows PowerShell 4.0

Автор первичной редакции:
Алексей Максимов
Время публикации: 07.03.2018 15:26

Обсуждение

Ваш комментарий:
 

powershell/microsoft-hyper-v/check-bits-vm-disk-transfer-status-with-percentage.txt · Последние изменения: 14.03.2018 09:17 — Алексей Максимов