OpenVZ Forum


Home » International » Russian » Патчик для vzctl.
Патчик для vzctl. [message #6493] Tue, 19 September 2006 07:52 Go to next message
Umka is currently offline  Umka
Messages: 56
Registered: September 2006
Member
Патч добавляет

1) возможность коректного роутинга в случае когда исходящий трафик для сетей выделеных для VPS должен идти через шлюз отличный от default gateway у host. Для этого водится файл /etc/vz/subnets в котором должны быть описаны все сети выделенные VPS. если файла не существует - используется старое поведение.
Методика предложеная OpenVZ team в wiki страдает ошибкой или во всяком случае я не нашел способ сделать ip rule from .... в случае если выделена большая маска (к примеру /24) и запрос идет с внешнего интерфейс от хоста из этой же сети.

2) Добавляет htb шейпера для исходящего трафика VPS. В текущий момент реализовано ограничение полосы только с привязкой к интерфейсу - но ничего особенно не мешает сделать с привязкой по классам тарфика. Если кому-то это надо - замечания welcome.

3) Добавляет акаунтинг трафика VPS с учетом групп описаных в /etc/vz/subnets. Трафик логируется из крона в /var/lib/vzctl/trafstat
Реализовано через iptables, но по хорошему надо бы патчить ядро.

4) исправлена ошибка с невозможностью обмена трафиком с VPS из-за излишнего proxy arp в ситуации
VPS box (eth0:172.20.2.3/24 eth1:172.20.3.3/24) - VPS 172.20.3.25 и WS с eth0:172.20.2.2/24 eth0:1 172.20.3.2/24,
VPS box отдавал в качестве mac адреса mac от eth0 после чего все тихо умирало.

5) влит мой первый патчик для разрешения использования sysfs через опцию конфига.

Замечания welcome Smile
Re: Патчик для vzctl. [message #6666 is a reply to message #6493] Thu, 21 September 2006 06:32 Go to previous messageGo to next message
kn1ght is currently offline  kn1ght
Messages: 17
Registered: May 2006
Location: Piter
Junior Member
эй разработчики!!!
патч включать будем?
работает нормально.
Re: Патчик для vzctl. [message #6693 is a reply to message #6493] Thu, 21 September 2006 12:03 Go to previous messageGo to next message
Igor Sukhih is currently offline  Igor Sukhih
Messages: 21
Registered: May 2006
Junior Member
Та часть патча что касается роутинго выглядит вполне полезной/рабочей и думаю ее стоит включить.
По поводу шейпинга пока сказать не могу, есть сомнения, надо изучать.

Mожно разбить его на части?
routing
shaping/accounting
Re: Патчик для vzctl. [message #6700 is a reply to message #6693] Thu, 21 September 2006 13:03 Go to previous messageGo to next message
Umka is currently offline  Umka
Messages: 56
Registered: September 2006
Member
Igor Sukhih wrote on Thu, 21 September 2006 08:03

Та часть патча что касается роутинго выглядит вполне полезной/рабочей и думаю ее стоит включить.
По поводу шейпинга пока сказать не могу, есть сомнения, надо изучать.

Mожно разбить его на части?
routing
shaping/accounting


А собственно оно и так разбито. Отдельные функции внутри vps-functions и главные в add/del/stop.
Исключение составляет патч на сам vzctl который добавляет 2 опции в конфиг.

Хотя я бы был заинтересован в том что бы патч вошел со всеми функциями. Возможно потом accounting и изменится, но для stable я не вижу причины делать так. Можно правда втянуть в OpenVZ код шейперов из drivers/net/shaper.c, но тогда потеряется возможность шейпить по интерфейсу получателя.

[Updated on: Thu, 21 September 2006 13:09]

Report message to a moderator

Re: Патчик для vzctl. [message #6707 is a reply to message #6693] Thu, 21 September 2006 15:00 Go to previous messageGo to next message
kn1ght is currently offline  kn1ght
Messages: 17
Registered: May 2006
Location: Piter
Junior Member
Igor Sukhih wrote on Thu, 21 September 2006 08:03

Та часть патча что касается роутинго выглядит вполне полезной/рабочей и думаю ее стоит включить.
По поводу шейпинга пока сказать не могу, есть сомнения, надо изучать.

Mожно разбить его на части?
routing
shaping/accounting



угу, т.е. вы не рассмаотриваите вариант когда один VPS выест весь канал?

[Updated on: Thu, 21 September 2006 15:01]

Report message to a moderator

Re: Патчик для vzctl. [message #6757 is a reply to message #6700] Fri, 22 September 2006 06:54 Go to previous messageGo to next message
Igor Sukhih is currently offline  Igor Sukhih
Messages: 21
Registered: May 2006
Junior Member
[quote title=Umka wrote on Thu, 21 September 2006 09:03]
Igor Sukhih wrote on Thu, 21 September 2006 08:03

Та часть
Хотя я бы был заинтересован в том что бы патч вошел со всеми функциями. Возможно потом accounting и изменится, но для stable я не вижу причины делать так



Для этого надо внести некоторые изменения.
* Добавить глобальные параметры
TRAFFIC_SHAPING=yes|no
TRAFFIC_ACCOUNTING=yes|no
* заменить BANDWIDTH -> RATE
RATE="dev:classid:Kbits"
classid - нужен для обьединеня в группы т.е. лимит сверху в пределах группы (в вашей реализации не используется)


Re: Патчик для vzctl. [message #6760 is a reply to message #6757] Fri, 22 September 2006 07:18 Go to previous messageGo to next message
Umka is currently offline  Umka
Messages: 56
Registered: September 2006
Member
[quote title=Igor Sukhih wrote on Fri, 22 September 2006 02:54]
Umka wrote on Thu, 21 September 2006 09:03

Igor Sukhih wrote on Thu, 21 September 2006 08:03

Та часть
Хотя я бы был заинтересован в том что бы патч вошел со всеми функциями. Возможно потом accounting и изменится, но для stable я не вижу причины делать так



Для этого надо внести некоторые изменения.
* Добавить глобальные параметры
TRAFFIC_SHAPING=yes|no
TRAFFIC_ACCOUNTING=yes|no
* заменить BANDWIDTH -> RATE
RATE="dev:classid:Kbits"
classid - нужен для обьединеня в группы т.е. лимит сверху в пределах группы (в вашей реализации не используется)


Хм - смысл параметра TRAFFIC_SHAPING=yes|no ускользает от меня. Если мы не зададим BANDWIDTH в конфиге VPS - это будет равнозначно TRAFFIC_SHAPING=no. Или вы ведете речь о задании глобально лимитов в /etc/vz.conf и наследовании только в некоторые VPS ?
теперь по формату "dev:classid:Kbits" тут одно из двух излишне - или dev или classid. classid однозначно указывает на dev.
Если вы посмотрите в формат /etc/vz/subnets.example то там явно к каждому классу ставится в соотвествие dev. Оно так же используется для определения роутинга.
Как на счет того что бы формат оставить в виде "classid:[K|M]bits" вместо текущего "dev:[K|M]bits" ?

На счет TRAFFIC_ACCOUNTING=yes|no - соглашусь, в принципе это делается легко.

На счет BANDWIDTH->RATE, позволю себе поспорить. RATE чаще используется как темп запросов, а BANDWIDTH более употребительный термин для обозначения полосы пропускания канала.

[Updated on: Fri, 22 September 2006 07:23]

Report message to a moderator

Re: Патчик для vzctl. [message #6763 is a reply to message #6760] Fri, 22 September 2006 07:32 Go to previous messageGo to next message
Igor Sukhih is currently offline  Igor Sukhih
Messages: 21
Registered: May 2006
Junior Member
Umka wrote on Fri, 22 September 2006 03:18

Igor Sukhih wrote on Fri, 22 September 2006 02:54

Umka wrote on Thu, 21 September 2006 09:03

Igor Sukhih wrote on Thu, 21 September 2006 08:03

Та часть



Хм - смысл параметра TRAFFIC_SHAPING=yes|no ускользает от меня. Если мы не зададим BANDWIDTH в конфиге VPS - это будет равнозначно TRAFFIC_SHAPING=no. Или вы ведете речь о задании глобально лимитов в /etc/vz.conf и наследовании только в некоторые VPS ?



да, речь о глобальном RATE



теперь по формату "dev:classid:Kbits" тут одно из двух излишне - или dev или classid. classid однозначно указывает на dev.
Если вы посмотрите в формат /etc/vz/subnets.example то там явно к каждому классу ставится в соотвествие dev. Оно так же используется для определения роутинга.
Как на счет того что бы формат оставить в виде "classid:[K|M]bits" вместо текущего "dev:[K|M]bits" ?


может я чего-то не догоняю, но это разные классы routing/shaping

[/quote]
На счет TRAFFIC_ACCOUNTING=yes|no - соглашусь, в принципе это делается легко.

На счет BANDWIDTH->RATE, позволю себе поспорить. RATE чаще используется как темп запросов, а BANDWIDTH более употребительный термин для обозначения полосы пропускания канала.
[/quote]
А вам это принципиально?

Re: Патчик для vzctl. [message #6765 is a reply to message #6763] Fri, 22 September 2006 08:21 Go to previous messageGo to next message
Umka is currently offline  Umka
Messages: 56
Registered: September 2006
Member
Igor Sukhih wrote on Fri, 22 September 2006 [/quote


да, речь о глобальном RATE


В таком контексте не вопрос, сделаем такую возможность.

Quote:


Quote:


теперь по формату "dev:classid:Kbits" тут одно из двух излишне - или dev или classid. classid однозначно указывает на dev.
Если вы посмотрите в формат /etc/vz/subnets.example то там явно к каждому классу ставится в соотвествие dev. Оно так же используется для определения роутинга.
Как на счет того что бы формат оставить в виде "classid:[K|M]bits" вместо текущего "dev:[K|M]bits" ?


может я чего-то не догоняю, но это разные классы routing/shaping


Я слабо вижу причины введения различных классов для routing/shaping.
Мое imho, клиенту привычнее оперировать понятием использоване полосы пропускания на конкретном устройстве, а проблемы с приоретизацией трафика внутри VPS - пусть решает владелец VPS, у него весь набор средств для этого есть. он ровно так же может построить очереди на vnet. Этот же подход будет более универсальным в случае veth - достаточно использовать шейпер исходящиего потока (аля device/net/shaper.c или того что используется в FreeVPS), а внутрение классы трафика это забота пользователя VPS.
Если позиция не совпадает - давайте обсудим плюсы и минусы обоих подходов.

Quote:


Quote:


На счет BANDWIDTH->RATE, позволю себе поспорить. RATE чаще используется как темп запросов, а BANDWIDTH более употребительный термин для обозначения полосы пропускания канала.


А вам это принципиально?


Привычнее Smile
Re: Патчик для vzctl. [message #6767 is a reply to message #6765] Fri, 22 September 2006 09:09 Go to previous messageGo to next message
Igor Sukhih is currently offline  Igor Sukhih
Messages: 21
Registered: May 2006
Junior Member

[/quote]
Я слабо вижу причины введения различных классов для routing/shaping.
Мое imho, клиенту привычнее оперировать понятием использоване полосы пропускания на конкретном устройстве, а проблемы с приоретизацией трафика внутри VPS - пусть решает владелец VPS, у него весь набор средств для этого есть. он ровно так же может построить очереди на vnet. Этот же подход будет более универсальным в случае veth - достаточно использовать шейпер исходящиего потока (аля device/net/shaper.c или того что используется в FreeVPS), а внутрение классы трафика это забота пользователя VPS.
Если позиция не совпадает - давайте обсудим плюсы и минусы обоих подходов.
[/quote]
Нужно определится какие задачи мы хотим решить.

В Вашей реализации настройка роутинга связана с топологией сети
из этого можно связывать интерфейс -> shaping
т.e весь локальный трафик идет через eth0
внешний через eth1.

Но обычно есть только eth0 и хочется шейпить локальный и внешний трафик по разному
Re: Патчик для vzctl. [message #6778 is a reply to message #6767] Fri, 22 September 2006 10:49 Go to previous messageGo to next message
Umka is currently offline  Umka
Messages: 56
Registered: September 2006
Member
Igor Sukhih wrote on Fri, 22 September 2006 05:09




Я слабо вижу причины введения различных классов для routing/shaping.
[/quote]
Quote:


Мое imho, клиенту привычнее оперировать понятием использоване полосы пропускания на конкретном устройстве, а проблемы с приоретизацией трафика внутри VPS - пусть решает владелец VPS, у него весь набор средств для этого есть. он ровно так же может построить очереди на vnet. Этот же подход будет более универсальным в случае veth - достаточно использовать шейпер исходящиего потока (аля device/net/shaper.c или того что используется в FreeVPS), а внутрение классы трафика это забота пользователя VPS.
Если позиция не совпадает - давайте обсудим плюсы и минусы обоих подходов.


Нужно определится какие задачи мы хотим решить.

В Вашей реализации настройка роутинга связана с топологией сети
из этого можно связывать интерфейс -> shaping
т.e весь локальный трафик идет через eth0
внешний через eth1.

Но обычно есть только eth0 и хочется шейпить локальный и внешний трафик по разному[/quote]
Похоже вы не допоняли патч. Там сейчас часть не используется - но это не значит что ее там нету (я не успел все вытестировать)
рассмотрим внимательнее формат /etc/subnets.
grp_name dev net/prefix gw
Для роутинга используется часть
dev net/prefix gw
но subnets.awk так же устанавливает и переменную GROUP == grp_name.
В случае если у нас один интерфейс - создаем группу local куда указываем локальные адреса (ведь они будут в качестве SRC addr для локальных пакетов) и используем этот индентификатор для шейпера. Не однозначность появляется только в случае когда адреса из одной группы (одинаковый grp_name) расположены на разных интерфейсах.
Но тут вполне возможно волевое решение - группа может быть только на одном интерфейсе. да это на 1 запись в BANDWIDTH больше типа "local1:unlim local2:unlim", но снимает геморой при формировании class id для TC.
Как вы смотрите на такую реализацию?

Re: Патчик для vzctl. [message #6922 is a reply to message #6707] Wed, 27 September 2006 16:12 Go to previous messageGo to next message
dev is currently offline  dev
Messages: 1693
Registered: September 2005
Location: Moscow
Senior Member

По-моему, речь не об этом. Игорь попросил здесь логически поделеные патчики. Если честно, я с ним согласен, т.к. иначе делать review полный геммор Sad


http://static.openvz.org/userbars/openvz-developer.png
Re: Патчик для vzctl. [message #6930 is a reply to message #6493] Thu, 28 September 2006 05:28 Go to previous messageGo to next message
Umka is currently offline  Umka
Messages: 56
Registered: September 2006
Member
Там несколько частей.

часть 1. Игорь просил разделить патчи - на что ответ простой.
части которые управляют разной функциональностью - выделены в отдельные функции внутри vps-functions
а) роутинг - функции vzaddsourcerouting/vzdelsourcerouting
б) шейпер - функции vzgetbw и vzsetuptcclass/vzflushtcclass и vzaddshaper/vzdelshaper
в) акаунтинг - vzaddipaccount/vzdelippaccount/vzgetipaccount
и общая функция vzsetupnet которая разбирает переданое окружение и /etc/vz/subnets
Откровенно не вижу сложностей в review 7кб патча на vps-functions.
Тем более там даже кой где коментарии стоят.

часть 2. Касающаяся добавления возможности использовать глобальные объявления и возможность выключения шейперов для конкретно взятого VPS. Требование логичное - будет реализовано.

часть 3. Обсуждение того что щас задаются шейпера по имени интерфейса, а Игорю хотелось бы что бы задавалось по имени группы. Ответ - такая возможность заложена в формат /etc/vz/subnet, но на момент первой публикации патча была не реализована. Собственно потребуется только выделение кода ответственного за формирование fw id для роутинга в отдельную функцию (для обеспечения повторного использования кода при формировании classid) и для формирования идентификатора tc classid использовать не формат devnum:veid, а заменить veid на вычисляемый classid.

часть 4. возможность отключения шейпера для отдельных классов - делается через паравку функции vzgetbw и обработку значения unlim в case.

Все эти пункты будут реализованы на следующей неделе.


PS не совсем понятная позиция SWSoft который вырезал реализацию шейперов из шеловой обвязки vzctl которая _уже_ существует в рамках Virtuozzo.

[Updated on: Thu, 28 September 2006 05:30]

Report message to a moderator

Re: Патчик для vzctl. [message #7201 is a reply to message #6930] Fri, 06 October 2006 11:13 Go to previous messageGo to next message
Igor Sukhih is currently offline  Igor Sukhih
Messages: 21
Registered: May 2006
Junior Member
я вернусь к этому вопросу через неделю, и мы попробуем найти компромисы
Re: Патчик для vzctl. [message #7203 is a reply to message #7201] Fri, 06 October 2006 12:38 Go to previous messageGo to next message
Umka is currently offline  Umka
Messages: 56
Registered: September 2006
Member
Igor Sukhih wrote on Fri, 06 October 2006 07:13

я вернусь к этому вопросу через неделю, и мы попробуем найти компромисы

К понедельнику\вторнику будет готов расширеный вариант патча.
1) SYSFS=yes, и пожелания по отключению BWLIMIT трансфорируются в FEATURES="SYSFS NOBWLIMIT"
2) сам патч разбивается следующие куски
1. реализация FEATURES
2. реализация routing
3. реализации опций командной строки --bwset/--bwdel
4. реализация bandwidth limit в vps-function и добавление нового типа network script vps_bw-add.sh/vps_bw-del.sh
5. traffic accointing.
6. мелкая чистка skip_arpdetect трансфоруется в битовый флаг для network features. (и возможно остальные флаги)
Вроде все - ну и мелкие чистки кода по найденым плюшкам.

На этой неделе увы не успел.


[Updated on: Fri, 06 October 2006 12:38]

Report message to a moderator

Re: Патчик для vzctl. [message #7328 is a reply to message #7203] Wed, 11 October 2006 07:44 Go to previous messageGo to next message
[QT]bender is currently offline  [QT]bender
Messages: 9
Registered: September 2006
Location: Russia, Ulyanovsk
Junior Member
Umka wrote on Fri, 06 October 2006 08:38

Igor Sukhih wrote on Fri, 06 October 2006 07:13

я вернусь к этому вопросу через неделю, и мы попробуем найти компромисы

К понедельнику\вторнику будет готов расширеный вариант патча.
1) SYSFS=yes, и пожелания по отключению BWLIMIT трансфорируются в FEATURES="SYSFS NOBWLIMIT"
2) сам патч разбивается следующие куски
1. реализация FEATURES
2. реализация routing
3. реализации опций командной строки --bwset/--bwdel
4. реализация bandwidth limit в vps-function и добавление нового типа network script vps_bw-add.sh/vps_bw-del.sh
5. traffic accointing.
6. мелкая чистка skip_arpdetect трансфоруется в битовый флаг для network features. (и возможно остальные флаги)
Вроде все - ну и мелкие чистки кода по найденым плюшкам.

На этой неделе увы не успел.



Как продвигается? Думаю, есть ли смысл, колесо придумывать или дождаться пока кто-то другой придумает...


Find all you need in your mind, if you can take the time...
Re: Патчик для vzctl. [message #7335 is a reply to message #7328] Wed, 11 October 2006 09:47 Go to previous messageGo to next message
Umka is currently offline  Umka
Messages: 56
Registered: September 2006
Member
[QT

bender wrote on Wed, 11 October 2006 03:44]
Как продвигается? Думаю, есть ли смысл, колесо придумывать или дождаться пока кто-то другой придумает...

Все кроме переделки bwlimit готово - хочется писать наиболее короткими функциями что бы SWSoft смог разобраться.

[Updated on: Wed, 11 October 2006 09:58]

Report message to a moderator

Re: Патчик для vzctl. [message #7337 is a reply to message #7335] Wed, 11 October 2006 09:57 Go to previous message
dev is currently offline  dev
Messages: 1693
Registered: September 2005
Location: Moscow
Senior Member

Smile)))


http://static.openvz.org/userbars/openvz-developer.png
Previous Topic: OpenVZ RHEL4 kernel
Next Topic: Количество процессов
Goto Forum:
  


Current Time: Tue May 28 01:56:03 GMT 2024

Total time taken to generate the page: 0.00489 seconds