{toc}
h1. {color:#ff0000}Виртуальные машины запрещено использовать для продакшна. Это было ошибкой.{color}
Все рекомендации ниже даны исключительно для того, чтобы посмотреть на возможности Carbon Reductor во время тестового периода.
В случае, если от данной инсталляции зависит отсутствие/наличие штрафов за пропуски обязательно использование физического сервера.
h1. Общие рекомендации
Постарайтесь всё же вместо виртуальной машины использовать физическую\!
Виртуальная машина, это всегда какая-никакая, а прослойка между ресурсами процессора и выполняемыми задачами. Обработка зеркала трафика это практически задача реального времени, на которую отведен очень короткий промежуток времени, в течении которого Carbon Reductor должен успеть:
1. Принять пакет в сетёвку.
2. Принять пакет в ОС.
3. Разобрать пакет
4. Проанализировать, требуется ли ответить на него
5. Сформировать ответный пакет
6. Отправить его.
и пакет ещё должен вылететь в сеть и пролететь до абонента. В случае, если модули фильтрации будут ждать своей очереди крутиться на процессоре, а в это время он будет нагружен другими делами (например проверять, стоит ли сбросить кэши виртуальных дисков на физический диск или вообще сейчас ядро процессора используется другой виртуальной машиной) - ничего хорошего из этого не выйдет: у вас появится пропуск в проверке ревизора, а у нас лишняя задача в хелпдеске.
Так что лучше установить Carbon Reductor на физический хост и не рисковать\!
Если вы всё таки решили положиться на вашу систему виртуализации:
# При нагрузке больше 100 пользователей выделяйте Carbon Redcutor 4\+ ядра процессора, +которые никто кроме него не будет использовать+ (если кто-то использует их, то даже от 16 ядер ситуация лучше не станет - редуктор будет периодически обрабатывать пакеты медленнее, чем требуется).
# Лучше, если других виртуальных машин на сервере не будет вообще (хотя, в таком случае, зачем вообще виртуализация?:-) )
# Старайтесь напрямую пробрасывать сетевые карты.
# Хост система тоже должна удовлетворять системным требованиям (хост с realtek-сетевками и эмуляцией e1000 внутри виртуалки - не даст повышения производительности).
h1. XEN
Иногда ок, иногда имеются проблемы с передачей пакетов модулю xt_reductor для анализа.
h1. KVM
отлично работает при использовании прямого проброса оборудования или тюнинга сетевых карт на хосте и при условии что сетевая карта или выделенные виртуальной машине с Carbon Reductor ядра процессора используются только им.
*ЗАМЕЧАНИЕ*: Если не блокируется только http-трафик, а https - да, то можно попробовать сменить тип виртуальных сетевых карт, например на e1000.
h1. Proxmox
Не рекомендуем на каналах больше 100мбит/с.
h1. VMWare ESXi
Хорошо зарекомендовал себя при использовании на каналах до 10гбит/сек.
*Совет* \- для зеркала трафика используйте тип сетевых карт VMXNET 3, а не e1000.
Эти сетевые карты поддерживают [распределение прерываний по нескольким ядрам процессора, что позволяет снизить нагрузку|reductor5:Потери на сетевых картах и как с ними бороться].
Известные проблемы:
# Имели место случаи изменения порядка пакетов редиректа и RST. Точная причина не обнаружена (возможно промежуточное оборудование, возможно хост-система, при включенном tcpdump/tshark не воспроизводилась).
# По умолчанию люди часто забывают [настроить vSwitch для приёма зеркала.|reductor5:Reductor в VMWare]
h1. VirtualBox
Не надо, просто не надо. Это не для продакшна.
h1. LXC и OpenVZ
Из-за ограничений на modprobe (и ещё нескольких capabilities) не подходят для работы с Carbon Reductor. (не позволяют загрузить модули внутри контейнера).
h1. 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)
---
Остальные действия через обычные настройки виртуальных машин.
h1. {color:#ff0000}Виртуальные машины запрещено использовать для продакшна. Это было ошибкой.{color}
Все рекомендации ниже даны исключительно для того, чтобы посмотреть на возможности Carbon Reductor во время тестового периода.
В случае, если от данной инсталляции зависит отсутствие/наличие штрафов за пропуски обязательно использование физического сервера.
h1. Общие рекомендации
Постарайтесь всё же вместо виртуальной машины использовать физическую\!
Виртуальная машина, это всегда какая-никакая, а прослойка между ресурсами процессора и выполняемыми задачами. Обработка зеркала трафика это практически задача реального времени, на которую отведен очень короткий промежуток времени, в течении которого Carbon Reductor должен успеть:
1. Принять пакет в сетёвку.
2. Принять пакет в ОС.
3. Разобрать пакет
4. Проанализировать, требуется ли ответить на него
5. Сформировать ответный пакет
6. Отправить его.
и пакет ещё должен вылететь в сеть и пролететь до абонента. В случае, если модули фильтрации будут ждать своей очереди крутиться на процессоре, а в это время он будет нагружен другими делами (например проверять, стоит ли сбросить кэши виртуальных дисков на физический диск или вообще сейчас ядро процессора используется другой виртуальной машиной) - ничего хорошего из этого не выйдет: у вас появится пропуск в проверке ревизора, а у нас лишняя задача в хелпдеске.
Так что лучше установить Carbon Reductor на физический хост и не рисковать\!
Если вы всё таки решили положиться на вашу систему виртуализации:
# При нагрузке больше 100 пользователей выделяйте Carbon Redcutor 4\+ ядра процессора, +которые никто кроме него не будет использовать+ (если кто-то использует их, то даже от 16 ядер ситуация лучше не станет - редуктор будет периодически обрабатывать пакеты медленнее, чем требуется).
# Лучше, если других виртуальных машин на сервере не будет вообще (хотя, в таком случае, зачем вообще виртуализация?:-) )
# Старайтесь напрямую пробрасывать сетевые карты.
# Хост система тоже должна удовлетворять системным требованиям (хост с realtek-сетевками и эмуляцией e1000 внутри виртуалки - не даст повышения производительности).
h1. XEN
Иногда ок, иногда имеются проблемы с передачей пакетов модулю xt_reductor для анализа.
h1. KVM
отлично работает при использовании прямого проброса оборудования или тюнинга сетевых карт на хосте и при условии что сетевая карта или выделенные виртуальной машине с Carbon Reductor ядра процессора используются только им.
*ЗАМЕЧАНИЕ*: Если не блокируется только http-трафик, а https - да, то можно попробовать сменить тип виртуальных сетевых карт, например на e1000.
h1. Proxmox
Не рекомендуем на каналах больше 100мбит/с.
h1. VMWare ESXi
Хорошо зарекомендовал себя при использовании на каналах до 10гбит/сек.
*Совет* \- для зеркала трафика используйте тип сетевых карт VMXNET 3, а не e1000.
Эти сетевые карты поддерживают [распределение прерываний по нескольким ядрам процессора, что позволяет снизить нагрузку|reductor5:Потери на сетевых картах и как с ними бороться].
Известные проблемы:
# Имели место случаи изменения порядка пакетов редиректа и RST. Точная причина не обнаружена (возможно промежуточное оборудование, возможно хост-система, при включенном tcpdump/tshark не воспроизводилась).
# По умолчанию люди часто забывают [настроить vSwitch для приёма зеркала.|reductor5:Reductor в VMWare]
h1. VirtualBox
Не надо, просто не надо. Это не для продакшна.
h1. LXC и OpenVZ
Из-за ограничений на modprobe (и ещё нескольких capabilities) не подходят для работы с Carbon Reductor. (не позволяют загрузить модули внутри контейнера).
h1. 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)
---
Остальные действия через обычные настройки виртуальных машин.