Назад | Перейти на главную страницу

Добавление виртуальных ЦП в существующую установку ОС

Диалог конфигурации виртуальной машины в 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 очень древний Однако теоретически вы можете столкнуться с такими проблемами.