Слышали про такую проблему VDI Boot Storm? Вот у вас есть инсталляция системы виртуализации корпоративных ПК предприятия (например, на базе VMware View 4.x) на несколько десятков или даже сотен пользователей виртуальных ПК. В 8:00 у вас начинается рабочий день - пользователи приходят за свои рабочие места и одновременно включают свои виртуальные десктопы. В результате возникает серьезная нагрузка на систему хранения, где эти самые образы виртуальных ПК хранятся (десятки, сотни машин на сторадже).
И получается вот такой VDI Boot Storm - машины тормозят, сессии отваливаются, пользователи жалуются. Ведь при загрузке Windows 7 генерирует где-то 50-100 IOPS, а при обычной офисной работе это значение составляет 5-15 IOPS. Наглядно это выглядит так:
Что же делать с этим VDI boot storm?
Ну, во-первых, вы должны это обязательно учитывать при планировании развертывания инфраструктуры виртуальных ПК. Ваша инфраструктура хранения FC или iSCSI должна учитывать такие пиковые нагрузки, и начало рабочего дня - отличный способ это проверить. Есть также вот инструмент VDI Sizing Tool (VST) от нашего соотечественника, который позволяет мерить нагрузку для VDI-сценариев.
Во-вторых, SSD-диски. Да, дорого. Но иногда без них нельзя. Если вы используете VMware View с функциональностью View Composer для создания связанных клонов виртуальных ПК на основе базового образа - вам поможет концепция ярусного хранения данных, реализованная в продукте. На быстрые SSD-накопители можно помещать реплики пулов виртуальных ПК и Disposable-диски виртуальных машин. Сравните 150-200 IOPS у SAS-дисков с 5000 у SSD.
В-третьих, есть специализированные решения, такие как, например, NSS SAN Accelerator for VMware View. Эта штука представляет собой железку с SSD-дисками, которая ставится между хост-серверами VMware ESX / ESXi и системой хранения. Она умеет автоматически кэшировать наиболее часто используемые блоки и выравнивать нагрузку по хост-серверам.
В четвертых, есть мысль, что перед тем, как пользователь пришел на работу, его виртуальный ПК уже должен быть готов к работе и запущен. Мысль самая разумная, но почему-то нормальная настройка этого механизма в VMware View отсутствует. Вроде как даже из интерфейса View 4.5 убрали шедулинг запуска виртуальных ПК. А какого-то централизованного механизма вроде нет. Или есть? Может вы подскажете?