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

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

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

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

Выделение памяти

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

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

Я провел много времени, работая с Hyper-V, и экспериментировал с множеством различных конфигураций памяти. Моя собственная рекомендация по выделению памяти для виртуальных машин — начать с определения того, сколько виртуальных машин вы хотите запускать одновременно. После этого спланируйте системные требования для этих виртуальных машин так же, как если бы они были физическими машинами. Наконец, добавьте всю необходимую память вместе, а затем добавьте 2 ГБ для основной операционной системы. Некоторым людям нравится выделять немного больше памяти для операционной системы хоста, но я обнаружил, что в этом нет необходимости, если в операционной системе хоста нет никаких приложений, кроме Hyper-V.

Недавно я виртуализировал некоторые из своих производственных серверов, используя физическую машину с 8 ГБ ОЗУ. Я вычел 2 ГБ сверху для основной операционной системы, в результате чего у меня осталось 6 ГБ для игры. Я разделил оставшуюся память равномерно на три куска по 2 ГБ, которые я использовал для трех отдельных виртуальных машин.

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

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

Распределение ресурсов диска

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

Я склонен думать, что ответ на этот вопрос зависит от того, сколько денег вы хотите потратить. С точки зрения производительности идеальным решением было бы использование независимого массива хранения для каждого виртуального жесткого диска. Другим оптимальным решением было бы хранить ваши виртуальные жесткие диски в SAN.

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

Итак, что делать, если у вас нет огромного бюджета и в вашем распоряжении нет SAN? Hyper-V на самом деле не ограничивает вас в том, где вы можете разместить виртуальные жесткие диски. С точки зрения программного обеспечения для Hyper-V не имеет значения, размещаете ли вы файлы виртуального жесткого диска на системном томе сервера или размещаете каждый виртуальный жесткий диск на выделенном RAID-массиве. Конечно, если вы поместите все свои виртуальные жесткие диски на системный том, производительность сервера сильно пострадает.

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

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

Если я знаю, что виртуальный сервер будет более емким, я начну с того же физического оборудования, что и при создании большого массива RAID 10. Вместо создания одного большого массива я выделяю отдельные диски в несколько меньших массивов. Таким образом я могу гарантировать, что ни один виртуальный жесткий диск не использует всю доступную пропускную способность диска. Этот метод также помогает мне избежать затрат, связанных с покупкой отдельных выделенных массивов для каждой виртуальной машины.

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

Вывод

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

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