Виртуальные машины запрещено использовать для продакшна. Это было ошибкой.
Все рекомендации ниже даны исключительно для того, чтобы посмотреть на возможности Carbon Reductor во время тестового периода.
В случае, если от данной инсталляции зависит отсутствие/наличие штрафов за пропуски обязательно использование физического сервера.
Общие рекомендации
Постарайтесь всё же вместо виртуальной машины использовать физическую!
Виртуальная машина, это всегда какая-никакая, а прослойка между ресурсами процессора и выполняемыми задачами. Обработка зеркала трафика это практически задача реального времени, на которую отведен очень короткий промежуток времени, в течении которого Carbon Reductor должен успеть:
1. Принять пакет в сетёвку.
2. Принять пакет в ОС.
3. Разобрать пакет
4. Проанализировать, требуется ли ответить на него
5. Сформировать ответный пакет
6. Отправить его.
и пакет ещё должен вылететь в сеть и пролететь до абонента. В случае, если модули фильтрации будут ждать своей очереди крутиться на процессоре, а в это время он будет нагружен другими делами (например проверять, стоит ли сбросить кэши виртуальных дисков на физический диск или вообще сейчас ядро процессора используется другой виртуальной машиной) - ничего хорошего из этого не выйдет: у вас появится пропуск в проверке ревизора, а у нас лишняя задача в хелпдеске.
Так что лучше установить Carbon Reductor на физический хост и не рисковать!
Если вы всё таки решили положиться на вашу систему виртуализации:
- При нагрузке больше 100 пользователей выделяйте Carbon Redcutor 4+ ядра процессора, которые никто кроме него не будет использовать (если кто-то использует их, то даже от 16 ядер ситуация лучше не станет - редуктор будет периодически обрабатывать пакеты медленнее, чем требуется).
- Лучше, если других виртуальных машин на сервере не будет вообще (хотя, в таком случае, зачем вообще виртуализация? )
- Старайтесь напрямую пробрасывать сетевые карты.
- Хост система тоже должна удовлетворять системным требованиям (хост с realtek-сетевками и эмуляцией e1000 внутри виртуалки - не даст повышения производительности).
XEN
Иногда ок, иногда имеются проблемы с передачей пакетов модулю xt_reductor для анализа.
KVM
отлично работает при использовании прямого проброса оборудования или тюнинга сетевых карт на хосте и при условии что сетевая карта или выделенные виртуальной машине с Carbon Reductor ядра процессора используются только им.
ЗАМЕЧАНИЕ: Если не блокируется только http-трафик, а https - да, то можно попробовать сменить тип виртуальных сетевых карт, например на e1000.
Proxmox
Не рекомендуем на каналах больше 100мбит/с.
VMWare ESXi
Хорошо зарекомендовал себя при использовании на каналах до 10гбит/сек.
Совет - для зеркала трафика используйте тип сетевых карт VMXNET 3, а не e1000.
Эти сетевые карты поддерживают [распределение прерываний по нескольким ядрам процессора, что позволяет снизить нагрузку].
Известные проблемы:
- Имели место случаи изменения порядка пакетов редиректа и RST. Точная причина не обнаружена (возможно промежуточное оборудование, возможно хост-система, при включенном tcpdump/tshark не воспроизводилась).
- По умолчанию люди часто забывают настроить vSwitch для приёма зеркала.
VirtualBox
Не надо, просто не надо. Это не для продакшна.
LXC и OpenVZ
Из-за ограничений на modprobe (и ещё нескольких capabilities) не подходят для работы с Carbon Reductor. (не позволяют загрузить модули внутри контейнера).
Hyper-V
Ни разу не тестировалось. Если у вас успешно работает Carbon Reductor на этой платформе - пожалуйста, сообщите нам!
В случае работы на 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"
> $ExtPortFeature.SettingData.MonitorMode = 2
> PS C:\Windows\System32\WindowsPowerShell\v1.0> Add-VMSwitchExtensionPortFeature -ExternalPort -SwitchName ALLTRAFFICMONITOR -VMSwitchExtensionFeature $ExtPortFeature
(вместо ALLTRAFFICMONITOR подставить название своего виртуального свича в Hyper-V)
—
Остальные действия через обычные настройки виртуальных машин.