Приветствую,
Я пытаюсь автоматизировать тестирование поддержки драйверов в библиотеке образов ОС, используемых для автоматического развертывания в среде центра обработки данных.
В большинстве случаев я вижу, что люди стандартизируют несколько ОС и несколько моделей серверного оборудования, что делает тестирование и проверку того, что все образы ОС содержат драйверы, которые поддерживаются на всем оборудовании, достаточно управляемыми.
К сожалению, я не могу этого сделать. У меня есть несколько десятков ОС (Linux / Windows / Solaris, x86 / x64 / SPARC, версии за 3 года), которые действительно должны быть протестированы на типичном серверном оборудовании от Dell, HP, IBM и Sun за 3 года. Это много работы и много физических систем.
Я бы предпочел получить информацию об устройстве PCI от различных контроллеров хранилища (и, возможно, сетевых адаптеров) и использовать что-нибудь для имитации устройств в виртуальной машине. Затем я мог применить / установить образы ОС на виртуальные машины и посмотреть, не вызывает ли проблема код ядра, который сопоставляет обнаруженные устройства PCI с доступными драйверами. Требуется некоторая имитация реальных функций устройства, поскольку ОС начнет пытаться использовать устройство после загрузки драйвера, но похоже, что люди, занимающиеся разработкой драйверов или оборудования, могут иметь аналогичную потребность в таком инструменте.
Кто-нибудь знает, существует ли такое? Или есть совершенно другой способ решения моей проблемы?
Спасибо!
Чтобы смоделировать различные устройства PCI, о которых вы говорите, вам нужно, чтобы кто-то написал виртуальные версии этих устройств PCI.
Поскольку не существует «стандарта» для написания виртуального аппаратного устройства (хотя, как я думаю, было бы здорово, если бы оно было), которое могло бы работать с разными гипервизорами, я не уверен, как вы поступите с этим. (Черт возьми, я даже не уверен, что ты жестяная банка добавлять модули виртуальных устройств в любой из основных гипервизоров.)
Усилия по моделированию сложного устройства, такого как RAID-контроллер, были бы довольно серьезными. По сути, это была бы повторная реализация аппаратного и программного обеспечения физического устройства в программном обеспечении. (Хотя было бы неплохо иметь в чистом помещении реализацию аппаратного устройства в программном обеспечении для проверочного тестирования драйверов в виртуальной среде ... Хммм. Кто-нибудь имеет сделать это для какого-то устройства в производстве в какой-то момент ...)
Это отличная идея, но я не думаю, что существует что-либо, чтобы делать то, что вы хотите, и если бы это было так, то это было бы на основе устройства для устройства.