Hyper-V находится в авангарде самых значительных изменений в Windows Server 2012. Новых и улучшенных функций так много, что планирование успешной реализации Hyper-V требует глубокого понимания этих технических изменений.
Многие расширенные функциональные средства поддерживают различные аспекты работы сети. Улучшения также коснулись масштабируемости, безопасности, хранения данных и миграции виртуальных машин (ВМ). В этой первой из двух статей я сосредоточусь на следующих темах: виртуализация ввода-вывода в отдельном физическом устройстве (single root I/O virtualization, SR-IOV), мониторинг сети и качество обслуживания (quality of service, QoS), объединение сетевых карт (NIC teaming), расширяемый виртуальный коммутатор (extensible virtual switch), виртуализация сети (network virtualization) и программное управление сетевой инфраструктурой (software-defined networking, SDN).
SR-IOV
SR-IOV — новая технология, которая, по сути, делает то же, что Intel Virtualization Technology (Intel VT) и AMD Virtualization (AMD-V) делают для виртуализации процессоров. Она повышает производительность, перемещая функциональность из программного обеспечения в специализированные аппаратные средства. SR-IOV имеет особое предназначение и ряд ограничений, которые нужно учитывать при планировании новых кластеров Hyper-V.
Сетевая карта, поддерживающая SR-IOV, вместе с сервером, поддерживающим SR-IOV в BIOS, предоставляет виртуальным машинам виртуальные функции (virtual functions, VF) или виртуальные копии себя. Поскольку технология SR-IOV еще довольно нова, проверяйте ее поддержку в конкретной модели сетевой карты. Некоторые карты предоставляют только четыре или восемь виртуальных функций, в то время как другие могут предлагать до 64. При создании нового внешнего виртуального коммутатора вы можете просто сделать его коммутатором SR-IOV (рис. 1). Впоследствии вы не сможете преобразовать в него обычный виртуальный коммутатор.
Рис. 1. Пока все условия соблюдены, включить SR-IOV можно флажком при создании коммутатора
SR-IOV имеет определенные ограничения. Если вы настраиваете списки управления доступом к порту (access control list, ACL), расширения или политики в виртуальном коммутаторе, SR-IOV отключается, потому что ее трафик полностью обходит коммутатор. Нельзя объединить две сетевые карты SR-IOV в хосте. Однако можно установить в хосте две физические сетевые карты SR-IOV, создать отдельные виртуальные коммутаторы и объединить две виртуальные сетевые карты внутри виртуальной машины.
Динамическая (live) миграция виртуальной машины с сетевыми картами SR-IOV работает (в отличие от vMotion в vSphere 5.1), поскольку каждая сетевая карта SR-IOV «затеняется» обычным сетевым адаптером VMBus. Поэтому, если вы выполняете миграцию виртуальной машины в хост, у которого нет сетевых карт SR-IOV или нет свободных виртуальных функций, трафик просто осуществляется с помощью обычных синтетических соединений.
Пропускная способность не обязательно является ключевым преимуществом SR-IOV в Hyper-V. VM Bus может полностью заполнить 10 Гбитное соединение, но такое количество трафика создает достаточно высокую загрузку процессора, чтобы целиком занять одно ядро. Поэтому, если низкая загрузка процессора является ключевой задачей проектирования, SR-IOV играет ключевую роль. Если задержка является важнейшим аспектом, SR-IOV обеспечивает производительность, сравнимую с физической сетевой картой.
В хосте, где ожидается много входящего трафика ВМ, динамическая очередь ВМ (Dynamic Virtual Machine Queue, dVMQ) распределяет трафик по очередям для каждой ВМ на основе хэшей MAC-адресов. Она также распределяет прерывания между ядрами процессора.
Измерения и мониторинг
Hyper-V теперь поставляется со встроенными средствами учета использования ресурсов ВМ. В первую очередь это пригодится в сценариях хостинга. Также будет полезно в частных облаках для сбора данных по методу show-back или charge-back. Измерительные функции отслеживают усредненное использование процессора и памяти, а также диска и сетевого трафика. Поскольку это доступно только посредством Windows PowerShell, вы можете реализовать более полный сбор данных и визуализацию с помощью System Center 2012 Virtual Machine Manager (VMM) SP1.
Вы также можете добавить ACL порта с передачей функции измерения виртуальному коммутатору и таким образом отделить измерение интернет-трафика (шлюз по умолчанию) от внутреннего трафика центра обработки данных. В тех случаях, когда необходимо перехватывать сетевые пакеты в виртуальной сети, вы можете задать порт мониторинга или зеркалирование порта, что позволит использовать сетевой монитор.
Управление пропускной способностью
Многие кластеры, спроектированные в последние нескольких лет, полагаются на множество 1-гигабитных сетевых карт, каждая из которых предназначена для определенного трафика — динамической миграции, взаимодействия ВМ, синхронизации кластера, управления и, возможно, iSCSI. По мере распространения 10-гигабитных сетевых карт Ethernet большинству серверов будет достаточно лишь нескольких таких сетевых карт.
Новое функциональное средство QoS позволяет задавать как минимальную пропускную способность, которая всегда будет доступна определенной службе, так и максимальную (рис. 2). Это позволяет разделять 10-гигабитное соединение для совместного использования его различными службами.
Рис. 2. Вы можете управлять как минимальной, так и максимальной пропускной способностью сетевого соединения, используемого виртуальной машиной
В отсутствие перегрузки каждая служба может использовать заданную ей максимальную пропускную способность. При интенсивном сетевом трафике каждой службе гарантируется минимальная доля. QoS на программной основе обеспечивает точную детализацию для различных типов трафика, но сопровождается некоторыми издержками на обработку.
Для обычных типов трафика, таких как динамическая миграция, Server Message Block (SMB) и iSCSI, предлагаются встроенные фильтры. Это ускоряет настройку и работу с QoS. Эти средства управления пропускной способностью будут особенно привлекательны для хостеров, поскольку теперь они смогут четко определять и применять соглашения об уровне обслуживания (service-level agreement, SLA).
Если вы используете SMB Direct (новшество Windows Server 2012) в сетевых картах с удаленным прямым доступом к памяти (Remote Direct Memory Access, RDMA), они будут обходить программную QoS. В таких случаях — или если у вас есть не-TCP трафик, которым вы хотите управлять — Windows Server также поддерживает Data Center Bridging (DCB). С DCB полоса пропускания управляется аппаратно на совместимых сетевых картах. Это позволяет задать лишь восемь классов трафика, но требует гораздо меньше издержек на обработку.
Объединение сетевых карт
Во многих серверах сегодня используется объединение сетевых карт для обеспечения отказоустойчивости и повышения пропускной способности. Каждый производитель сетевых карт предлагает собственное решение, поэтому объединению сетевых карт не хватает гибкости и простоты управления. Включение встроенного объединения сетевых карт (также известного как балансировка нагрузки для отказоустойчивости, load balancing failover) будет полезно в виртуализированных средах.
Вы можете объединять до 32 сетевых карт (от разных производителей, если возможно). Вы можете настроить каждую группу в режим Switch Independent или Switch Dependent (рис. 3). Первый режим применяется, если у вас неуправляемые коммутаторы или нет возможности изменять конфигурацию коммутатора.
Рис. 3. Объединять множество сетевых карт в Windows Server 2012 легко, только не забудьте задать наилучшую комбинацию параметров.
Это хорошо для реализации избыточности. Используйте две сетевые карты, одна из которых пребывает в режиме ожидания. Если первая сетевая карта выходит из строя, вторая берет работу на себя. Для еще большей безопасности можно подключить сетевые карты к разным коммутаторам.
Если вы хотите, чтобы обе сетевые карты были активны, можете использовать один из режимов балансировки нагрузки — Address Hash или Hyper-V Port. Первый режим хорош при большом исходящем трафике, например, в случае средств массовой информации и веб-серверов. Входящий трафик будет проходить только через одну сетевую карту. Второй режим хорош, когда в хосте несколько виртуальных машин, но каждой из них достаточно скорости одной сетевой карты.
В более сложных сценариях лучше использовать режим Switch Dependent. Вы можете установить для него статический режим или режим Link Aggregation Control Protocol (LACP). Вам понадобится привлечь сетевую группу для правильной настройки своих коммутаторов. Статический режим пригоден лишь в небольших средах, которые не часто изменяются. LACP автоматически определяет группы на коммутаторе и может обнаруживать дополнительные сетевые карты при их добавлении в группу.
Вы можете использовать виртуальные локальные сети в сочетании с группами, с несколькими групповыми интерфейсами в каждой группе, отвечающей определенному заданному VLAN ID. Вы даже можете создать группу всего из одной сетевой карты, но с несколькими групповыми интерфейсами для разделения трафика на основе VLAN.
Если в хосте несколько виртуальных машин, которые должны взаимодействовать с разными VLAN, используйте для настройки доступа коммутатор Hyper-V и виртуальные сетевых карты. Не используйте сетевые группы в хосте. Объединение сетевых карт внутри ВМ поддерживается, но не забудьте включить параметр AllowTeaming.
Расширяемый виртуальный коммутатор
Новый виртуальный коммутатор — огромный шаг вперед по сравнению с предыдущей версией. В него добавлены базовые средства для работы в облаке, такие как изоляция арендаторов (tenant isolation), формирование трафика, более легкое устранение неисправностей и защита от вредоносных виртуальных машин. Еще один новый аспект виртуального коммутатора в том, что сторонние производители могут добавлять свои функциональные возможности посредством прикладных интерфейсов Network Driver Interface Specification (NDIS 6.0) или Windows Filtering Platform (WFP). Обе эти среды знакомы разработчикам сетевого программного обеспечения.
Существует несколько разновидностей расширений:
- Расширение для проверки сетевых пакетов может просматривать пакеты (только чтение) по мере их поступления и позволять коммутатору выявлять изменения. Одним из примеров является sFlow от компании InMon. Для визуализации трафика вы можете использовать бесплатную версию sFlowTrend.
- Расширение для фильтрации сетевых пакетов может создавать, фильтровать и изменять пакеты в коммутаторе. Одним из примеров является Security Manager от 5nine Software. Он предоставляет систему предотвращения вторжений (Intrusion Dectection System, IDS), межсетевой экран и антивирус, не требуя наличия агента в каждой ВМ.
- Расширения для сетевой переадресации изменяют переадресацию в коммутаторе. В каждом виртуальном коммутаторе может быть установлен только один из них. Известным примером здесь служит Cisco Nexus 1000V.
Управлять расширениями сравнительно просто (рис. 4). VMM 2012 SP1 поддерживает централизованное управление расширениями и настройку коммутаторов, позволяя автоматически распределять их всем хостам.
Рис. 4. В новом виртуальном коммутаторе можно легко включить и настроить расширения сети.
Вы можете связать один коммутатор с несколькими виртуальными сетевыми картами. Вы также можете заполнить списки ACL-списки порта удаленными или локальными IPv4, IPv6 или MAC-адресами для управления трафиком и измерения сетевых данных. В хостинговых средах будет приветствоваться защита маршрутизатора (Router Guard), которая блокирует объявления маршрутизатора от виртуальной машины, а также защита DHCP (DHCP Guard), которая блокирует трафик Dynamic Host Configuration Protocol (DHCP), исходящий от ВМ, если этой ВМ не разрешено работать в качестве сервера DHCP.
IPsec является отличным способом защитить трафика данных, но его часто игнорируют из-за высокой нагрузки на процессор. Hyper-V теперь поддерживает IPsecTO (Task Offload) для виртуальных машин, работающих под управлением Windows Server 2008 R2 и Windows Server 2012. Эта функция делегирует вычисления физической сетевой карте, поддерживающей IPSecTO.
SDN
SDN представляет собой новый способ управления сетями и изоляцией ВМ в больших центрах обработки данных (ЦОД) и кластерах. В ЦОД необходима возможность управлять сетями и изоляцией, основываясь на централизованных политиках, а ручная настройка коммутаторов VLAN просто не достаточно гибкая. Одной их составляющих того, как Microsoft видит облачную операционную систему, является виртуализация сети (network virtualization, NV). По-настоящему преимущества NV и SDN проявляются, когда вы хотите переместить часть своей инфраструктуры в облако.
Вам часто приходится изменять IP-адреса своих виртуальных машин. Делать это нелегко, поскольку зачастую они во многих местах связаны с политиками безопасности и сетевых экранов. Кроме недостатка гибкости это также затрудняет перемещение виртуальных машин между провайдерами облака.
Виртуализация сети в Windows Server 2012 делает то же, что сделала виртуализация для других структурных компонентов, таких как процессор, память и диск. Каждая виртуальная машина с NV считает, что работает с сетевой инфраструктурой, которой она «владеет». На самом же деле она фактически изолируется от других виртуальных машин с помощью программного обеспечения. NV также аккуратно разрешает перемещение виртуальных машин при использовании Bring Your Own IP (BYOIP). Виртуальные машины могут сохранять свои адреса при перемещение их в общедоступное облако. Это позволяет им легко взаимодействовать с остальной инфраструктурой.
Каждая виртуальная машина имеет два IP-адреса — адреса заказчика (customer address, CA), который используется внутри ВМ, и адрес провайдера (provider address, PA), который на самом деле используется в сети. Виртуальные машины, использующие NV, могут работать совместно в одном и том же хосте с виртуальными машинами, не использующими NV. Широковещательный трафик никогда не передается «всем хостам» в сегменте. Он всегда проходит через NV, чтобы обеспечить изоляцию. Вы можете настроить так любую ВМ, поскольку NV прозрачна для основной операционной системы.
Для настройки NV предназначено два параметра — IP Rewrite и Generic Routing Encapsulation (GRE). IP Rewrite изменяет IP-адрес в каждом пакете, когда он достигает или покидает хост, на CA или PA соответственно. Это не требует никаких изменений в сетевом оборудовании и снимает нагрузку с сетевой карты. Но это также означает, что каждой ВМ необходимо два IP-адреса — PA и CA. Это усложняет управление адресами.
GRE инкапсулирует CA-пакет в PA-пакет с сопровождающим виртуальное ID виртуальной подсети. Это означает, что сетевое оборудование должно уметь применять политики к трафику каждого арендатора. Каждая ВМ в хосте может совместно использовать один и тот же PA. Это облегчает управление адресами.
К сожалению, разгрузка сетевых карт здесь не будет работать, поскольку они полагаются на правильные IP-заголовки. Решением на будущее является новый стандарт под названием Network Virtualization using Generic Routing Encapsulation (NVGRE). Он сочетает в себе выгоды GRE с преимуществом IP Rewrite, где разгрузка сетевой карты работает как нужно.
VMM и виртуализация сети
VMM 2012 SP1 добавляет два объекта для настройки NV — логический коммутатор и сеть ВМ. Последний из них представляет собой домен маршрутизации и может вмещать несколько виртуальных подсетей, если они могут взаимодействовать. Вы можете настроить каждую сеть ВМ на один из четырех типов изоляции: без изоляции, VLAN, NV или внешний.
Первый тип подходит для управления сетями, которым необходим доступ ко всем сетям. Тип VLAN подходит там, где у вас уже есть работающая модель изоляции. Он основывается на правильной настройке коммутаторов (физических и виртуальных). Каждая сеть ВМ соответствует одной VLAN.
Тип NV использует NV в Windows Server 2012. Таблицы отображения, которые отслеживают отображение CA в PA, поддерживаются VMM. Каждый хост динамически строит таблицы отображения, когда передает и получает сетевой трафик. Когда хосту необходимо взаимодействовать с неизвестным хостом, он обновляет свое отображение из VMM. Это может уменьшить размер таблиц в больших сетях.
Второй объект, который является новшеством VMM, — долгожданный логический коммутатор. Он позволяет централизованно задавать параметры vSwitch, которые автоматически реплицируются на все хосты. Есть также диспетчер расширений виртуального коммутатора (virtual switch extension manager, VSEM), который позволяет централизованно управлять расширениями виртуальных коммутаторов.
Расширения и их данные хранятся вместе с виртуальными машинами, когда вы осуществляете динамическую миграцию из хоста в хост. Вы также можете централизованно задавать и применять политики пропускной способности виртуальных машин. Виртуальные сети интегрированы с процессом подготовки ВМ, что обеспечивает по-настоящему автоматизированное решение.
Hyper-V в центре обработки данных
Учитывая все эти новые возможности проектирования сетей в Windows Server 2012 Hyper-V, становится очевидным, что вам, возможно, придется возвратиться к чертежной доске. Есть еще ряд сетевых усовершенствований, которые не специфичны для Hyper-V, но тем не менее могут повлиять на ваш проект.
Для крупных сред Windows Server 2012 теперь поддерживает Datacenter TCP (DTCP) для увеличения пропускной способности и уменьшения буферного пространства, используемого в коммутаторах (если они поддерживают Explicit Congestion Notification-RFC 3168 [ECN]). Если вы все еще распределяете IP-адреса с помощью таблиц Excel, обратите внимание на управление IP-адресами (IP address management, IPAM) в Windows Server 2012. Это средство взаимодействует с вашими Active Directory, DHCP и DNS-серверами для управления IPv4 и IPv6. VMM 2012 SP1 содержит сценарий (Ipamintegration.ps1), который экспортирует IP-адреса, назначенные посредством VMM в IPAM. Вы можете запускать его на регулярной основе.
В следующем месяце я расскажу об усовершенствованиях хранилища Hyper-V (включая возможность запускать виртуальные машины из общих файловых ресурсов), миграции ВМ и улучшении масштабируемости.