Диалог конфигурации виртуальной машины в ESXi 5 предупреждает меня, что, если я изменю количество виртуальных ЦП после установки гостевой ОС, небо упадет - кхм - это «может сделать мою виртуальную машину нестабильной».
Я знаю, что определенные инструкции ЦП, участвующие в сериализации потоков, потребуют префикса LOCK в многопроцессорной системе, но не в однопроцессорной системе (или, по крайней мере, не с одним ядром). ОС обычно пропускает БЛОКИРОВКИ там, где они не нужны.
Если ОС использует ядро, которое пропускает БЛОКИРОВКИ, но использует несколько процессоров, это может привести к крайней нестабильности и трудностям для локализации ошибок. Но если ядро было разработано для одного процессора, то что оно делает, используя более одного процессора (что оно должно делать сознательно)? Это кажется совершенно абсурдным дизайном ОС, которого, я надеюсь, не существует на практике.
Более правдоподобным дизайном ОС было бы обнаружение процессоров при загрузке и выбор соответственно однопроцессорного или многопроцессорного ядра. Если это не удастся, единственная другая разумная схема - это установка правильного ядра, но однопроцессорное ядро просто никогда не будет использовать другой процессор, и, следовательно, не будет никакого вреда для другого процессора, кроме того, что он вообще не будет использоваться.
Прикладное программное обеспечение может столкнуться с проблемами немного проще, потому что с ним легко использовать несколько потоков даже в одноядерной системе, поэтому игнорирование того факта, что оно работает в многопроцессорной системе, а не БЛОКИРОВКА (или использование средств ОС) может вызвать жуткие ошибки. Но будет ли какое-нибудь серьезное программное обеспечение иметь настолько плохой дизайн, чтобы проверять статус одно- и многопроцессорного процессора только во время установки?
В чем причина предупреждения о Судном дне? В каких операционных системах или приложениях, если таковые имеются, мне следует ожидать проблем?
Простое добавление или удаление виртуальных ЦП после установки гостевой ОС не является проблемой ни в одной из версий Linux или Windows, достаточно свежих, чтобы их продавцы могли поддерживать. Это предупреждение относится к самым ранним дням существования VMware и сейчас практически не имеет значения.
Однако на заре Linux ядро нужно было специально компилировать с поддержкой SMP, и иногда ядра UP не любили работать в системах SMP / NUMA и наоборот. Те дни в основном давно забыты.
В наши дни ядра Linux почти всегда по умолчанию компилируются с поддержкой SMP / NUMA и отлично работают даже с одним процессором. Это верно для всех версий 2.6 и большей части или всех версий 2.4.
Windows вела себя аналогичным образом с Server 2003. Мне не удалось быстро найти в Интернете исчерпывающую информацию о том, как себя вели 2000 и NT 4.0, хотя я, кажется, припоминаю из удаленной памяти, что у них могли быть проблемы при переключении с одного процессора на конфигурация с несколькими процессорами.
Если вы планируете P2V очень древний Однако теоретически вы можете столкнуться с такими проблемами.