VMWare и Windows идентификация дисков

Текст: 

По вопросу как привязать диск в конфигурации виртуальной машины к букве диска в ОС Windows написано много и запутано. Имеется два класса решений: красивые но работающие только на ВМ с одним SCSI контроллером и универсальные - многострочные скрипты, которым нужны права и сетевые доступы и к гостевой ОС и к vcenter.

Попробуем прояснить ситуацию и создадим тестовую ВМ scsitest, с четырьмя SCSI контроллерами на борту. Посмотрим как это выглядит в powercli:

$vms=get-vm scsitest
$ctrl=$vms|Get-ScsiController $ctrl|%{ $_.name+';'+$_.type+';'+$_.extensiondata.slotinfo.PciSlotNumber+';'+$_.key }

вывод получим такой:

SCSI controller 0;VirtualLsiLogicSAS;160;1000
SCSI controller 1;ParaVirtual;224;1001
SCSI controller 2;ParaVirtual;256;1002
SCSI controller 3;ParaVirtual;1184;1003

PCI slot number 160,224,256,1184 - мы попытаемся привязать к Storage Controller в гостевой ОС, а Key 1000,1001,1002,1003 - пригодится нам для привязки дисков к контроллеру в конфигурации ВМ.

$disk=$vms|Get-HardDisk$disk|%{ $_.name+';'+$_.capacitygb+';'+$_.extensiondata.controllerkey }

вывод:

Hard disk 1;40;1000
Hard disk 2;10;1001
Hard disk 3;11;1001
Hard disk 4;20;1002
Hard disk 5;21;1002
Hard disk 6;30;1003
Hard disk 7;31;1003

! Размеры дисков 10,11,20,21,30,31 ГБ для контроля сделаны по SCSI bus:target, то есть 10 ГБ - SCSI 1:0, 11 ГБ - SCSI 1:1 и т.д.

Со стороны VMWare получается следующая картина (склеено вручную, чтобы не портить наглядность сложным скриптом):


SCSI controller 0;VirtualLsiLogicSAS;160;1000
Hard disk 1;40;1000

SCSI controller 1;ParaVirtual;224;1001
Hard disk 2;10;1001
Hard disk 3;11;1001

SCSI controller 2;ParaVirtual;256;1002
Hard disk 4;20;1002
Hard disk 5;21;1002

SCSI controller 3;ParaVirtual;1184;1003
Hard disk 6;30;1003
Hard disk 7;31;1003


Посмотрим как это выглядит в Windows, единственный удобный способ через Disk Management (можно конечно данные вытянуть с реестра, но опять таки наглядность сильно пострадает)

в поле Location указаны как раз те самые PCI slot number полученные в VMWare, пройдемся  вручную по всем дискам:


Disk 0 Location 160 TargetID 0 - 40GB - C:
Disk 1 Location 161 TargetID 0 - 30GB - E:
Disk 2 Location 161 TargetID 1 - 31GB - F:
Disk 3 Location 224 TargetID 0 - 10GB - G:
Disk 4 Location 224 TargetID 1 - 11GB - H:
Disk 5 Location 256 TargetID 0 - 20GB - I:
Disk 6 Location 256 TargetID 1 - 21GB - J:


Все красиво кроме Location 161 которое в VMWare выглядит как PCI slot number 1184 (1184-161=1023) - похоже VMWare и MS не договорились как интерпретировать DWORD данные, запомним этот ньюанс, идентифицировать диски он не помешает. Внутри Location мы можем полагаться на Target ID - в конфигурации ВМ и гостевой ОС они совпадают.

Сведем все воедино:


SCSI controller 0;VirtualLsiLogicSAS;160;1000
Hard disk 1;40;1000 - Disk 0 Location 160 TargetID 0 - 40GB - C:

SCSI controller 1;ParaVirtual;224;1001
Hard disk 2;10;1001 - Disk 3 Location 224 TargetID 0 - 10GB - G:
Hard disk 3;11;1001 - Disk 4 Location 224 TargetID 1 - 11GB - H:

SCSI controller 2;ParaVirtual;256;1002
Hard disk 4;20;1002 - Disk 5 Location 256 TargetID 0 - 20GB - I:
Hard disk 5;21;1002 - Disk 6 Location 256 TargetID 1 - 21GB - J:

SCSI controller 3;ParaVirtual;1184;1003
Hard disk 6;30;1003 - Disk 1 Location 161 TargetID 0 - 30GB - E:
Hard disk 7;31;1003 - Disk 2 Location 161 TargetID 1 - 31GB - F:


Как видим по размерам дисков - все совпало.

Имея такую картинку перед глазами нет сложности понять какой физический диск ВМ соответствует букве диска в гостевой ОС.

Вот тут наиболее удачная, на мой взгляд, попытка написать скрипт автоматизирующий вышеприведенные операции, как написал автор "I searched long time to solve this problem, but I couldn’t find an easy solution for this."

Комментарии

Добавить комментарий.

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.