Виртуализация серверов применяется ныне практически во всех центрах обработки данных. С одной стороны, это способствует снижению расходов, с другой — оптимизации ресурсов в ЦОД.Появившаяся недавно технология виртуализации SR-IOV позволяет повысить эффективность использования физических ресурсов для виртуальных машин.
В своем исследовании «Market Analysis Perspective: Worldwide Enterprise Virtualization Software, 2010 — Server Virtualization» аналитики IDC отметили, что количество виртуализированных серверов растет и, как ожидается, в 2014 году их будет уже более 18,4 млн. Кроме того, по словам участников опроса, им удалось сэкономить около 25% расходов на аппаратное обеспечение и соответствующую инфраструктуру. Ввиду такого колоссального увеличения числа виртуальных сред стремление к оптимизации процессов ввода/вывода на виртуальных серверах привело к появлению новых сетевых технологий, таких как Converged Enhanced Ethernet (CEE), Data Center Bridging (DCB), Fibre Channel over Ethernet (FСoE) и Virtual NIC. Новым стандартом является технология Single Root I/O Virtualization (SR-IOV), разработанная PCI SIG (Special Interest Group).
Гипервизоры виртуальных серверов выделяют виртуальным машинам ресурсы, имитирующие функции физических серверов, именно поэтому каждая виртуальная машина и получает возможность независимой работы на конкретном сервере. Для процессов ввода/вывода это означает, что такая виртуальная машина использует виртуальное устройство ввода/вывода, предоставляемое гипервизором. Однако этот способ недостаточно эффективен, особенно в отношении входящих запросов ввода/вывода. Для обработки поступившего запроса ввода/ вывода на многоядерных серверах гипервизору необходимо предпринять следующие шаги:
- для проверки пакета прерывается работа одного из процессорных ядер (Interrupt), чтобы определить, какой виртуальной машине нужно отправить данный пакет;
- работа ядра, обслуживающего целевую виртуальную машину, приостанавливается для выполнения запроса ввода/вывода;
- ядро, которое изначально приняло пакет, продолжает прерванную работу.
Следует отметить, что каждый шаг замедляет операцию ввода/вывода и потребляет важные ресурсы процессора.
Многоядерные серверы распределяют нагрузку между несколькими ядрами и поэтому могут обрабатывать ресурсоемкие приложения. Кроме того, многоядерные процессоры позволяют повысить степень виртуализации, то есть каждый физический сервер способен поддерживать работу большего количества виртуальных машин, прежде чем окажется перегружен.
Внедрение четырехъядерных процессоров Intel и AMD, начавшееся в 2009 году, только укрепляет эту тенденцию. В наши дни в связи с появлением нового поколения серверов, которые могут иметь до 8 ядер и поддерживать до 16 одновременных потоков, следует ожидать ее дальнейшего развития. Вместе с увеличением количества ядер возрастает и объем памяти серверов — еще один решающий аргумент в пользу виртуализации. Помимо ядер и ресурсов памяти, существует еще и третий компонент, позволяющий повысить эффективность операций ввода/вывода, чтобы обеспечить виртуальным машинам достаточную скорость передачи данных по сети. В этом помогут высокопроизводительные порты Ethernet на 10 Гбит/с, эффективная разгрузка протоколов (Offload) для сокращения числа процессорных циклов и внедрение новых технологий, в частности SR-IOV.
ЧТО ТАКОЕ SR-IOV?
SR-IOV — это стандарт PCI-SIG, разработанный для виртуальных серверов. Спецификация SR-IOV позволяет делить карту PCI Express на физические и виртуальные карты благодаря использованию концепции физических и виртуальных функций (см. Рисунок 1).
Рисунок 1. Технология SR-IOV призвана обеспечить повышение производительности при взаимодействии виртуальных машин с сетевыми ресурсами. |
Физическая функция. Каждый физический порт на адаптере имеет как минимум одну физическую функцию, при этом любую из них можно разделить на четыре — к примеру, на адаптере с двумя физическими портами можно реализовать восемь физических функций. Преимущество состоит в том, что физические функции полностью настраиваются: они связаны с гипервизором и подлежат администрированию как физические устройства.
Виртуальная функция. Виртуальные функции назначаются виртуальным машинам и ограничиваются управлением трафиком данных (потоки ввода/ вывода). Они не предусматривают воз© ITP Verlag можности администрирования физических устройств. Гипервизор предоставляет виртуальные функции различным виртуальным машинам, благодаря чему они получают устройство ввода/вывода, но при этом виртуальные машины не имеют сведений о физических параметрах адаптеров. Управлением физических устройств занимается гипервизор.
Хотя стандарт SR-IOV ориентирован на процессы ввода/вывода в сетях и устройствах хранения, до сих пор он используется только в сетях. Разработки, нацеленные на повышение производительности виртуальных серверов, фокусируются главным образом на трафике данных, поскольку на него приходится основная доля операций ввода/вывода и отводится наибольшая часть ресурсов сервера. Операции ввода/вывода в памяти порождают меньше накладных расходов (Overhead) и обычно достигают максимальной скорости, поддерживаемой соединением.
Одно из возможных решений для обеспечения более высокой производительности — организация прямого или транзитного (Passthrough) ввода/ вывода путем назначения каждой виртуальной машине единственного физического порта при одновременном обходе гипервизора. Использование этого метода повышает производительность, однако он ограничен количеством физических портов, а кроме того, приводит к появлению сложных и дорогостоящих скоплений портов, портов коммутаторов и кабелей.
К тому же при миграции активной виртуальной машины прямой ввод/ вывод невозможен. Виртуальная машина использует программный драйвер, настроенный на заданное устройство ввода/вывода. При миграции виртуальной машины нет гарантии, что целевой сервер будет оснащен аналогичным устройством ввода/вывода. Таким образом, для выполнения миграции приходится вручную осуществлять отключение, перемещение и перезапуск виртуальной машины, на что требуется много времени и сил.
При использовании технологии SR-IOV виртуальным машинам назначаются виртуальные функции. Благодаря этому реализуется поддержка прямого ввода/вывода нескольких виртуальных машин через единственный порт адаптера, один коммутируемый порт и один кабель. При необходимости виртуальной машине можно назначить несколько виртуальных функций — к примеру, по одной функции каждого физического порта двухпортового адаптера с целью обеспечения высокой доступности.
При получении запросов ввода/ вывода ядро сервера самостоятельно выполняет все пакетные операции вместе с соответствующими виртуальными функциями, назначенными отдельным виртуальным машинам. При этом не нужно прерывать работу процессорных ядер, обслуживающих другие виртуальные машины. Для обеспечения более высокой производительности запросы ввода/вывода могут переадресовываться между виртуальными функциями на одной и той же физической функции посредством внутреннего коммутатора второго уровня, то есть физический коммутатор не задействуется. Таким образом, технология SR-IOV позволяет осуществлять миграцию активных виртуальных машин без привязки к аппаратному обеспечению хост-сервера и повышает гибкость имеющегося в наличии оборудования ввода/вывода за счет распределения доступной пропускной способности. Кроме того, благодаря использованию внутреннего функционала коммутатора второго уровня повышается эффективность работы оборудования.
Перри Икхаут — менеджер по региону Центральная Европа в компании Emulex.