Почему в гостевой операционной системе на Hyper-V наблюдается медленная скорость записи на диск?

Добрый день. <br/> <br/> У меня есть Free Hyper-V Server 2019, который используется на "старом" сервере для виртуальных машин. Я установил Free Hyper-V Server 2019 на "новом" сервере и успешно перенес несколько виртуалок через репликацию, все функционирует без проблем. <br/> <br/> Однако, я решил протестировать скорость дисков внутри гостевых ОС на новом сервере, где установлен PCIe 4.0 x4 SSD, тогда как на старом сервере используется SATA SSD. Я обнаружил, что у обеих гостевых ОС (Win 10 PRO x64 22H2 и Win 7 Pro x64), которые подключены через IDE Controler, скорость чтения составляет 7000 Mb/s, тогда как скорость записи ограничена 300 Mb/s. <br/> <br/> Это вызывает у меня подозрение, что Hyper-V может работать некорректно с железом нового сервера. <br/> <br/> Я решил создать новую виртуальную машину на новом сервере с нуля, также выбрав первое поколение и подключив диск через IDE Controler. На этой машине с нуля установил Win 10 PRO x64 22H2 и провел тесты. Результаты показали скорость чтения 6000 Mb/s и записи 6800 Mb/s. <br/> <br/> Таким образом, похоже, что Hyper-V может обеспечить полную скорость SSD в гостевых ОС. Настройки виртуальных машин для медленной записи и новой виртуальной машины совпадают: обе используют первое поколение и подключение через IDE Controler. Единственное различие заключается в том, что медленные варианты были реплицированы, а новая установка была выполнена с нуля. <br/> <br/> Все выгрузки устройств внутри гостевых ОС идентичны, и настройки дисков на гипервизоре тоже. Можете подсказать, в чем может быть проблема?
  • 10 октября 2024 г. 9:05
Ответы на вопрос 3
Здравствуйте!

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

1. **Тип контроллера диска**: Вы упомянули, что используете IDE контроллер для обеих виртуальных машин. Однако для достижения наилучшей производительности рекомендуется использовать SCSI контроллер, так как он поддерживает параллельную работу с несколькими дисками и обеспечивает лучшие показатели производительности, особенно для операций записи. Если это возможно, попробуйте переключить контрольный диск на SCSI контроллер.

2. **Драйверы и поддержка**: Убедитесь, что в гостевых операционных системах установлены все необходимые драйверы, особенно интеграционные компоненты Hyper-V (если это применимо). Они помогут оптимизировать работу гостевых систем и обеспечить более высокую производительность.

3. **Настройки Hyper-V**: Проверьте настройки виртуальной машины, такие как выделение CPU и RAM. В некоторых случаях недостаточная выделенная память или процессор могут ограничивать производительность диска.

4. **Кэширование диска**: Проверьте настройки кэширования для виртуальных дисков в Hyper-V. Иногда включение записи кэша может существенно повысить производительность, особенно для операций записи.

5. **Состояние диска хоста**: Убедитесь, что хост-система не находится под чрезмерной нагрузкой или что диск не фрагментирован. Проблемы с производительностью могут быть также связаны с занятостью диска или другими процессами на хосте.

6. **Ограничения по количеству виртуальных машин**: Если старые виртуальные машины были реплицированы, возможно, на них выставлены какие-либо ограничители по производительности или IOPS. Проверьте, нет ли ограничений на консистентность I/O.

7. **Логи и мониторинг**: Если у вас есть возможность, отслеживайте логи и метрики работы дисковой подсистемы. Это может помочь определить, есть ли узкие места в производительности.

8. **Анализ конфигурации**: Проверьте, не установлены ли какие-либо настройки или политики в виртуальных машинах, которые могут ограничивать производительность, например, настройки энергосбережения.

Попробуйте выполнить указанные шаги, и это должно помочь вам выяснить причину медленной записи на диск в контексте реплицированных виртуальных машин. Если проблема не будет решена, возможно, стоит рассмотреть возможность создания нового виртуального диска в среде нового сервера и перемещения данных туда.
update : 
Дело в репликации. Удаляешь репликацию у машины - сразу скорость записи приходит в норму. Даже не надо перезагружать гостевую ОС.
Включаешь репликацию - скорость записи тут же падает до 300 Mb/s.

Почему?

Upd2:
чистая установка Windows Server 2022 Standart с обновлениями на сентябрь 2024, ставим роль Hyper-V, реплицируем для теста одну машину, далее делаю плановую отработку отказа, запускаю машину на новом сервере , проверяю скорость - баг воспроизводится.
При выключенной репликации скорость записи на диск 6000 Mb/s , как только настраиваю и включаю репликацию - тут же падение до 300 Mb/s.

Прогуглил , нашел упоминание о таком , но нигде нет решения.
На основном сервере все изменения VHD соответствующей ВМ пишутся в лог репликации (Hyper-V Replica Log, HRL), HRL-файл лежит рядом с VHD. Каждому VHD соответствует свой HRL, каждая операция записи внутри ВМ соответствует записи на VHD и записи в HRL. Дальше каждые 5 минут HRL-файл отправляется на сервер-реплику и пишет изменения в конечный VHD. 
Из нюансов, которые могут влиять:
1. Размещение дисков ВМ на системном диске (а он форматируется с размером кластера 4К), а у вас этот диск одновременно используют ОС, ВМ и HRL. Кому система отдаст предпочтение? посмотрите на значения RND4K на графиках DiskMark.
2. Перенос ВМ на отдельный диск, отформатированный с размером кластера 64К, должен дать прирост производительности
3. ВМ Generation 1 и IDE-контроллер - в случае с Windows 7/8/8.1 с этим ничего не сделать, в остальных случаях - переезд на Generation 2, а IDE-контроллер - дело вкуса/привычки (у меня имеющиеся Hyper-V VM работают со SCSI).
We recommend that you only use IDE disks for OS disks. OS disks have performance limitations based on the maximum I/O size for their devices.

4. Собственно, ваш SSD. Какой (customer/enterprise), с какой прошивкой и т.д.
5. Журнал "Здоровье" - Hyper-V storage I/O performance
6...

P.S. Я бы начал с выноса ВМ с системного диска на другой, а уже потом - прочие упражнения...
Похожие вопросы