Добавление vCPU в существующую установку ОС

Диалоговое окно конфигурации виртуальной машины в ESXi 5 предупреждает меня, что, если я изменю количество виртуальных ЦП после установки гостевой ОС, небо упадет - хм - это может сделать мою виртуальную машину нестабильной.

Я знаю, что для некоторых инструкций ЦП, связанных с сериализацией потоков, потребуется префикс LOCK в многопроцессорной системе, но не в однопроцессорной системе (или, по крайней мере, не с одним ядром). ОС обычно пропускает блокировки, где они не нужны.

Если в ОС используется ядро, которое пропускает блокировки, но использует несколько процессоров, это может привести к чрезвычайной нестабильности и трудным выявлению ошибок. Но если ядро ​​было разработано для одного процессора, то что оно делает, используя более одного (что оно должно делать сознательно)? Это похоже на совершенно абсурдный дизайн ОС, который, я надеюсь, не существует на практике.

Более правдоподобным дизайном ОС будет обнаружение процессоров при загрузке и, соответственно, выбор либо однопроцессорного, либо многопроцессорного ядра. Если это не удастся, единственная разумная конструкция установит правильное ядро, но однопроцессорное ядро ​​просто никогда не будет использовать другой процессор, и поэтому в другом процессоре не будет никакого вреда, кроме того, что он вообще не используется.

Прикладное программное обеспечение может столкнуться с проблемами немного проще, потому что легко использовать несколько потоков даже в одноядерной системе, поэтому не обращая внимания на тот факт, что оно находится в многопроцессорной системе и не блокировка (или использование средств ОС) может привести к ужасные ошибки Но будет ли какое-либо серьезное программное обеспечение иметь такой плохой дизайн, чтобы проверять состояние однопользовательского / многопроцессорного только во время установки?

В чем причина предупреждения о конце света? На каких, если таковые имеются, операционных системах или приложениях следует ожидать проблем?

1 ответ

Решение

Простое добавление или удаление виртуальных ЦП после установки гостевой ОС не является проблемой для любой версии Linux или Windows, которая является достаточно недавней для поддержки поставщика. Это предупреждение относится к самым ранним временам VMware и в настоящее время в основном не имеет значения.

В первые дни Linux, однако, ядро ​​должно было быть специально скомпилировано с поддержкой SMP, и иногда ядро ​​UP не любило работать в системах SMP/NUMA или наоборот. Эти дни давно забыты.

В наши дни ядра Linux почти всегда компилируются с поддержкой SMP/NUMA по умолчанию и работают нормально даже с одним процессором. Это было верно для всех 2,6 и большинства или всех 2,4.

Windows Server ведет себя аналогично с Server 2003. Я не смог быстро найти в Интернете точную информацию о том, как вели себя 2000 и NT 4.0, хотя, похоже, я вспоминаю из далекой памяти, что они могли иметь проблемы при переключении с одного ЦП на конфигурация нескольких процессоров.

Если вы планируете P2V очень древнюю систему, теоретически возможно, что вы столкнетесь с такими проблемами.

Другие вопросы по тегам