Распределение ресурсов в Hyper-V (часть 1)

Опубликовано: 23 Апреля, 2023

  • Распределение ресурсов в Hyper-V (часть 1)
  • Распределение ресурсов в Hyper-V (часть 4)

Когда впервые появились виртуальные машины, основная идея их использования была довольно простой. Многие серверы, такие как DHCP-серверы и DNS-серверы, даже близко не используют весь потенциал оборудования. На самом деле часто на постоянной основе фактически используется менее десяти процентов вычислительной мощности сервера. Недостаточное использование ресурсов усугублялось тем, что процессоры с годами становились все более мощными. Виртуализация позволяет компаниям экономить деньги на стоимости оборудования за счет более эффективного использования доступных ресурсов сервера, позволяя нескольким виртуальным машинам использовать ресурсы, которые в противном случае были бы потрачены впустую. При правильной реализации это отличная альтернатива трате больших денег на несколько физических серверов.

Конечно, настоящий трюк заключается в настройке операционной системы хоста и гостевых операционных систем для эффективного использования ресурсов. В конце концов, вы хотите получить максимальную отдачу от вашего оборудования, но в то же время вы не хотите оказаться в ситуации, когда ресурсы сервера слишком разбросаны, а производительность начинает страдать. В этой статье я попытаюсь провести вас через этот довольно тонкий баланс.

Прежде чем я начну

Прежде чем я начну, я хочу объяснить, что методы распределения ресурсов значительно различаются в зависимости от того, какое программное обеспечение для виртуализации вы используете. Методы, которые я собираюсь обсудить, предназначены для использования с Microsoft Hyper-V. Если вы используете VMware, Virtual Server или Virtual PC от Microsoft, то основные концепции, которые я буду обсуждать, по большей части останутся актуальными, но вам придется внести некоторые коррективы, чтобы учесть потребности продукта виртуализации. что вы используете.

Конфигурация операционной системы хоста

Я хочу начать с разговора об основной операционной системе. Все гостевые операционные системы зависят от операционной системы хоста, поэтому важно правильно настроить операционную систему хоста.

Первое, что вам нужно знать об операционной системе хоста, это то, что вы должны использовать 64-разрядную версию Windows Server 2008, чтобы использовать Hyper-V. Ваши гостевые операционные системы смогут работать как с 64-разрядными, так и с 32-разрядными операционными системами, но 64-разрядность является абсолютным требованием для основной операционной системы.

Еще одно требование, о котором вам необходимо знать, заключается в том, что ваше оборудование должно поддерживать виртуализацию на аппаратном уровне. В предыдущих продуктах Microsoft для виртуализации виртуальные машины работали поверх основной операционной системы, и любые обращения к оборудованию проходили через основную операционную систему. Однако этот подход оказался очень неэффективным. При использовании Hyper-V гостевые операционные системы взаимодействуют напрямую с оборудованием сервера. Это приводит к гораздо более высокой производительности, чем то, что было возможно ранее, но это также означает, что вы не сможете запускать Hyper-V, если ваш сервер не поддерживает виртуализацию на аппаратном уровне.

Виртуализация на аппаратном уровне доступна как на платформах Intel, так и на платформах AMD. Если вы используете процессор Intel, он должен поддерживать Intel VT (технология виртуализации Intel). Вы можете прочитать больше о Intel VT. Поддержка виртуализации AMD называется AMD-V, о которой вы можете прочитать здесь.

Хорошо, я говорил о некоторых абсолютных требованиях к операционной системе хоста, но давайте поговорим о ресурсах, которые потребуются операционной системе хоста.

Когда дело доходит до виртуализации, одним из самых важных ресурсов, которым вам придется управлять, является память. Я рекомендую выделить 2 ГБ оперативной памяти для операционной системы хоста. Имейте в виду, что вам не нужно выполнять какую-либо специальную процедуру для выделения памяти для основной операционной системы, но вы должны указать, сколько памяти вы выделяете гостевым операционным системам. Ваша память должна быть распределена таким образом, чтобы при суммировании объемов памяти, используемых всеми гостевыми операционными системами, работающими одновременно, разница между общим объемом используемой памяти составляла не менее 2 ГБ. вашими виртуальными машинами и общим объемом памяти, установленной на сервере.

Очевидно, что вам может понадобиться больше или меньше памяти в зависимости от конфигурации Windows Server 2008. Это поднимает еще один хороший момент. Единственная работа вашей основной операционной системы — размещение гостевых операционных систем. Поэтому Hyper-V должна быть единственной установленной ролью сервера. Если вам нужно запустить дополнительные роли, то эти роли должны быть установлены в гостевой операционной системе. Ваша основная операционная система должна иметь возможность обслуживать гостевые операционные системы с максимальной эффективностью, и она не может этого сделать, если установлены дополнительные роли.

Одна вещь, о которой я хочу быстро упомянуть, прежде чем двигаться дальше, заключается в том, что, хотя это считается плохой практикой, операционная система хоста может размещать дополнительные серверные роли. Однако я наткнулся на несколько сообщений в Интернете, в которых говорилось, что установка роли Hyper-V на контроллере домена фактически уничтожила Windows. Я никогда не пробовал это сам, поэтому я не могу точно сказать, что произойдет, если вы попытаетесь установить Hyper-V на контроллере домена. Тем не менее, достаточно людей написали в блогах об этой проблеме, и я подумал, что должен хотя бы рассказать о ней вам.

Сетевые карты

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

Hyper-V разработан таким образом, что вы можете установить на свой сервер несколько сетевых карт, а затем назначить разные сетевые карты каждому экземпляру виртуального сервера. В идеальной ситуации у вас должна быть сетевая карта для основной операционной системы и выделенная сетевая карта для каждой гостевой операционной системы. Хотя это не всегда возможно.

Например, у меня есть сервер, на котором я размещаю несколько виртуальных машин. Хотя это довольно высокопроизводительный сервер, он имеет только три слота расширения. Два из этих слотов расширения заполнены RAID-контроллерами, так что остался только один слот расширения, который я мог бы использовать для сетевой карты. К счастью, сервер также имеет встроенную сетевую карту, что дает мне в общей сложности два гигабитных соединения, что соответствует моим потребностям. Я просто назначил каждой виртуальной машине использование того или иного сетевого адаптера в зависимости от объема сетевого трафика, который, как я ожидал, будет генерировать виртуальная машина.

Имейте в виду, что распределение сетевого трафика, связанного с виртуальными машинами, по доступным сетевым адаптерам не всегда означает назначение половины виртуальных машин одному сетевому адаптеру, а половины виртуальных машин — другому. Некоторые виртуальные машины будут отправлять или получать намного больше трафика, чем другие, и это важно учитывать при назначении сетевых карт виртуальной машине. Хорошей новостью является то, что Hyper-V достаточно гибок, и вы можете перераспределить использование сетевых карт позже, если это необходимо. Однако переключение сетевых карт требует выключения виртуальной машины.

Вывод

В этой статье я начал обсуждение распределения ресурсов для виртуальных машин. В следующей части этой серии статей я расскажу об использовании памяти и ЦП.

  • Распределение ресурсов в Hyper-V (часть 1)
  • Распределение ресурсов в Hyper-V (часть 4)