Виртуальные машины

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (60)

просмотр истории страницы
{warning}
Виртуальные машины запрещено использовать для продакшна. 
{warning}
{info}
Все рекомендации ниже даны исключительно для того, чтобы *посмотреть на возможности* Carbon Reductor во время тестового периода.
{info}
В случае, если от данной инсталляции зависит отсутствие/наличие штрафов за пропуски *обязательно* использование физического сервера.

Все рекомендации ниже даны исключительно для того, чтобы *посмотреть на возможности* Carbon Reductor во время тестового периода.


В случае, если от данной инсталляции зависит отсутствие/наличие штрафов за пропуски *обязательно* использование физического сервера.

{warning} 


h1. Общие рекомендации

Постарайтесь *Коротко*: постарайтесь всё же вместо виртуальной машины использовать физическую\!

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

1. Принять пакет на сетевой интерфейс.
2. Принять пакет в ОС.
3. Разобрать пакет
4. Проанализировать, требуется ли ответить на него
5. Сформировать ответный пакет
6. Отправить его.
Обработка зеркала трафика это задача реального времени. На неё отведен короткий промежуток времени, в течении которого Carbon Reductor должен успеть среагировать на пакет.

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

Так что лучше установить Carbon Reductor на физический хост и не рисковать\!
* Снимать зеркало трафика ближе к абонентам
* Использовать OSPF, чтобы снизить число промежуточных хостов для пакетов с редиректами
* Использовать BGP Blackhole с блокировкой на маршрутизаторе до зеркала трафика, чтобы снизить его объём.

Если вы всё таки решили положиться на вашу систему виртуализации:
h2. Без виртуализации

# При нагрузке больше 100 пользователей выделяйте Carbon Redcutor 4\+ ядра процессора, +которые никто кроме него не будет использовать+ (если кто-то использует их, то даже от 16 ядер ситуация лучше не станет - редуктор будет периодически обрабатывать пакеты медленнее, чем требуется).
# Лучше, если других виртуальных машин на сервере не будет вообще.
# Старайтесь напрямую пробрасывать сетевые карты.
# Хост система тоже должна удовлетворять системным требованиям (хост с сетевыми картами realtek и эмуляцией e1000 внутри виртуальной машины - не даст повышения производительности).
!Снимок экрана 2018-07-24 в 15.40.09.png|border=1,width=600!

h1. XEN
h2. С виртуализацией

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

h1. KVM
Есть несколько способов снизить задержки и потери пакетов вносимые системой виртуализации:

Отлично работает при использовании прямого проброса оборудования или тюнинга сетевых карт на хосте и при условии что сетевая карта или выделенные виртуальной машине с Carbon Reductor ядра процессора используются только им.
* Проброс PCI-устройств.
* Полное выделение оперативной памяти (а не по требованию).
* Эксклюзивное выделение ядер процессора.
* Выделение большего числа ядер процессора.
* Тюнинг сетевого стека хост-системы.
* Выбор аппаратного обеспечения хост-системы, соответствующего [системным требованиям|CarbonReductor:Системные требования].

*ЗАМЕЧАНИЕ*: Если не блокируется только http-трафик, а https - да, то можно попробовать сменить тип виртуальных сетевых карт, например на e1000.
Но они не избавляют от них целиком.

h1. Proxmox
!Снимок экрана 2018-07-24 в 15.40.21.png|border=1,width=600!

Не рекомендуем на каналах больше 100мбит/с.
В случае, если модули фильтрации будут ждать своей очереди выполняться на ядре процессора, а в это время он будет нагружен другими делами - это закончится запоздалой реакцией на пакет или его потерей. У вас появится пропуск в проверке ревизора, а у нас лишняя задача в хелпдеске. Лучше установить Carbon Reductor на физический сервер и не рисковать.

h1. VMWare ESXi

Хорошо зарекомендовал себя при использовании на каналах до 10гбит/сек.
h1. Рекомендации по системам виртуализации

*Совет* \- для зеркала трафика используйте тип сетевых карт VMXNET 3, а не e1000.
h2. VMWare ESXi

Для зеркала трафика используйте тип сетевых карт *vmxnet3*, а не e1000 или vmxnet.

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

Известные проблемы:
# Имели место случаи изменения порядка пакетов редиректа и RST. Точная причина не обнаружена (возможно промежуточное оборудование, возможно хост-система, при включенном tcpdump/tshark не воспроизводилась).
# По умолчанию люди часто забывают [настроить vSwitch для приёма зеркала.|reductor5:Reductor в VMWare]
# Нужно [настроить vSwitch для приёма зеркала|reductor5:Reductor в VMWare], иначе в зеркало трафика будет приходить только broadcast-трафик.

h2. KVM

h1. VirtualBox
* Поддерживает прямой проброс оборудования.
* Сетевую карту можно настроить на хосте.
* Можно эксклюзивно выделить сетевую карту и ядра процессора виртуальной машине.

Не надо, просто не надо.
*ЗАМЕЧАНИЕ*: Некоторые виды виртуальных сетевых карт приводят к проблемам с фильтрацией по данным в пакете. Если вы столкнулись с этой проблемой, попробуйте поменять тип сетевой карты на e1000.

h1. LXC и OpenVZ
h2. Proxmox

Из-за ограничений на modprobe (и ещё нескольких capabilities)  не подходят для работы с Carbon Reductor. (не позволяют загрузить модули внутри контейнера).
Не рекомендуем на каналах больше 100мбит/с.

h1. Hyper-V
h2. XEN

Ни разу не тестировалось. Если у вас успешно работает Carbon Reductor на этой платформе - пожалуйста, сообщите нам\!
Иногда имеются проблемы с передачей пакетов модулю для анализа, смещены указатели на данные.

h2. VirtualBox

Не подходит ни для реальной эксплуатации ни для тестирования качества фильтрации.

h2. LXC, OpenVZ, Docker

Из-за ограничений на взаимодействие с ядром ОС не подходят для работы с Carbon Reductor.

h2. Hyper-V

В случае работы на Windows server 2012 Standart нужны следующие действия:

1. # Установить и применить пакет обновления от Microsoft KB2885541 ([https://support.microsoft.com/ru-ru/kb/2885541])
2. Настроить зеркалирование через PowerShell (всего три команды):
---
> $ExtPortFeature=Get-VMSystemSwitchExtensionPortFeature \-FeatureName "Ethernet Switch Port SecuritySettings"
# Настроить зеркалирование через PowerShell:

{code}
> $ExtPortFeature=Get-VMSystemSwitchExtensionPortFeature -FeatureName "Ethernet Switch Port SecuritySettings"
> $ExtPortFeature.SettingData.MonitorMode = 2
> PS C:\Windows\System32\WindowsPowerShell\v1.0> Add-VMSwitchExtensionPortFeature -ExternalPort -SwitchName ALLTRAFFICMONITOR -VMSwitchExtensionFeature $ExtPortFeature
{code}

> PS C:\Windows\System32\WindowsPowerShell\v1.0> Add-VMSwitchExtensionPortFeature \-ExternalPort \-SwitchName ALLTRAFFICMONITOR \-VMSwitchExtensionFeature $ExtPortFeature

(вместо Вместо ALLTRAFFICMONITOR подставить название своего виртуального свича в Hyper-V).
---
Остальные действия через обычные настройки виртуальных машин.