Почему мой Hyper-V конвертирует диск в SCSI

320
Franklin Yu

У меня есть диск SATA, и я установил на него Windows 10. После включения Hyper-V я создал несколько виртуальных машин. Однако все виртуальные машины видят диск SCSI, и я не могу понять, как его изменить. Даже родительский раздел (см. Https://en.wikipedia.org/wiki/Hyper-V#Architecture ) видит только диск SCSI; Я проверил это из диспетчера устройств, во вкладке Details, свойство Hardware Ids. Это говорит

SCSI\DiskSamsung_SSD_850_PRO_256G 

Пока мой жесткий диск должен быть доступен только в SATA. Можно ли попросить Hyper-V эмулировать интерфейс SATA?

больше фона

Я использую Arch Linux в качестве одного из гостей. Это показывает, что мне нужен драйвер для устройства wd719x; Я предполагаю, что он эмулируется Hyper-V. Оказывается, это очень старый жесткий диск от Western Digital, и установка официального драйвера может это исправить. Однако я беспокоюсь, потому что Wester Digital больше не поддерживает серию WD719x (даже драйвер был удален с веб-сайта). Это кажется очень унаследованным, в котором я не нуждаюсь, потому что я создаю новую виртуальную машину, а не запускаю какую-то виртуальную машину, созданную 10 лет назад.

0
Это имеет значение? Протокол SCSI имеет все те же функции (и, вероятно, больше), чем ATA. grawity 6 лет назад 0
Виртуальные машины не видят ваш физический диск, они видят то, что эмулирует Hyper-V, интерфейсы IDE и SCSI. Если вы не пытаетесь провести какое-то конкретное тестирование, на самом деле не имеет значения, SATA или SCSI. Родительский раздел - это ваша операционная система, поэтому он увидит реальное оборудование. Если вы можете опубликовать скриншот своего неверно идентифицированного оборудования, я хотел бы увидеть его, потому что это действительно не может произойти, иначе ваша система не загрузится (если ваш BIOS не сделает что-то вроде RAID-массива из ваших дисков). essjae 6 лет назад 0
@grawity объяснил мою озабоченность в обновленном вопросе. Franklin Yu 6 лет назад 0
@essjae SCSI эмулируется гипервизором. Я думаю, что Hyper-V замечательно видит диски SATA, но я не знаю, как это подтвердить, поскольку Hyper-V (как гипервизор типа 1) может контролировать то, что нужно выставлять. Если вам все еще нужен скриншот, какая конкретная информация интересна? Машина принадлежит моему работодателю, так что… Franklin Yu 6 лет назад 0
Вы используете виртуальную машину gen1 или gen2? Вы подключаете к виртуальной машине целый физический диск или только VHD? Обратите внимание, что wd719x - это хост-адаптер SCSI, а не диск. grawity 6 лет назад 0
@ Grawity Я прикрепляю виртуальный жесткий диск к виртуальной машине. Я предполагаю, что если бы я подключил физический диск вместо этого, виртуальная машина непосредственно увидела бы интерфейс SATA диска? (С помощью VT-d?) Franklin Yu 6 лет назад 0

1 ответ на вопрос

0
grawity

Я прикрепляю виртуальный жесткий диск к виртуальной машине

Тогда вы никоим образом не подключаете свой физический диск , и его перенос совершенно не важен. Сам гипервизор действует как контроллер диска виртуальных машин и не взаимодействует с физическим хранилищем за исключением чтения / записи файлов. (Нередко хранить виртуальные жесткие диски на внешнем файловом сервере SMBv3 ...)

Я использую Arch Linux в качестве одного из гостей. Это показывает, что мне нужен драйвер для устройства wd719x; Я предполагаю, что он эмулируется Hyper-V.

Я собираюсь предположить, что это не имеет ничего общего с аппаратным обеспечением вашей виртуальной машины, эмулированным или нет. Вы, вероятно, видите кучу предупреждений о «отсутствующей прошивке», когда mkinitcpio создает свой «резервный» образ initramfs.

Обычные initramfs адаптированы к конкретной системе, на которой они построены; вариант «отката» пропускает любое автообнаружение устройства и добавляет столько драйверов блочных устройств, сколько оно может найти (так, чтобы одни и те же initramfs могли загружаться на многих разных машинах), даже если в текущей системе ни один из них не подключен.

В действительности, если вы выбрали контроллер IDE / ATA в Hyper-V, вы получите довольно стандартный ata_piix(как видно на рисунке lspci -v).

Если вы используете виртуальную машину «Поколение 2» и / или добавляете контроллер SCSI, то через hv_storvscдрайвер вы получите собственный SCSI-контроллер на основе VMBus (механизм Microsoft аналогичен virtio ).

Даже родительский раздел видит только диск SCSI; Я проверил это из диспетчера устройств, во вкладке Details, свойство Hardware Ids. Это говорит

SCSI\DiskSamsung_SSD_850_PRO_256G 

Это кажется нормальным в режиме AHCI - хотя я не смог найти никакого официального объяснения, по крайней мере, в том, что касается драйверов сторонних производителей.

(Из того, что я мог бы выяснить: единственная альтернатива была бы IDE\, но это не очень хороший выбор - например, он предполагает наличие первичных / вторичных каналов IDE и портов master / slave, ни один из которых не существует в SATA / AHCI. Возможно, разработчики Windows обнаружили, что сопоставить SATA с SCSI проще, чем сопоставить его с IDE / PATA?

В любом случае, Windows не будет первой ОС, которая сделает это - Linux представляет устройства IDE / ATA, как если бы они были SCSI, начиная с выпуска ядра 2.6 примерно в 2004 году.)

Пока родительское устройство отображается в качестве контроллера SATA AHCI (с использованием storahci, msahci или драйвера Intel IRST), все в порядке.

Таким образом, контроллер жесткого диска, предоставляемый Hyper-V, может быть только IDE (ATA) или SCSI? Почему нет контроллера SATA? Это слишком сложно для гипервизора? Franklin Yu 6 лет назад 0
Если вы имеете в виду контроллер SATA AHCI, возможно потому, что у виртуальных машин нет реальных преимуществ, если у них уже есть SCSI и т. Д.? В VirtualBox у вас есть широкий выбор совместимости с ОС и тому подобное, но я бы сказал, что HyperV преследует противоположные цели - на уровне виртуальных машин Gen2, даже не имеющих каких-либо PCI-устройств, а только проприетарный VMBus. grawity 6 лет назад 0

Похожие вопросы