Назад | Перейти на главную страницу

Ограничение пропускной способности / соединения на стороне сервера rsync

В приложении VOIP у меня до 3000 клиентов rsync аудиофайлы с этого сервера linux ежедневно, сервер размещается в центре обработки данных (вход / выход 10 Мбит / с), сервер работает как SIP-сервер VOIP, работающий под управлением FreeSWITCH (должна быть обеспечена низкая задержка пинга).

Поэтому я хотел бы иметь контроль над rsync на стороне сервера, который контролирует:

  1. Ограничьте общую исходящую пропускную способность.
  2. Ограничьте общее количество подключений. (Отклоняйте клиентов при максимальном количестве подключений и позвольте им повторить попытку через определенное время.)
  3. ДОПОЛНИТЕЛЬНО: список / удаление отдельных подключений.

Обычно я бы использовал ssh + rsync + pem_keys с некоторыми дополнительными параметрами, но вышеперечисленные требования не выполняются с помощью простых командных строк. Может ли кто-нибудь указать мне направление. или показать какие-нибудь скрипты / инструменты? Я бы также, вероятно, интегрировал их и выпустил на github. Спасибо!

Если бы я был в вашей ситуации, я бы продолжал использовать стандартные инструменты просто потому, что вы всегда можете поддерживать их в актуальном состоянии и получать все новейшие исправления / функции без необходимости исправлять их своим собственным кодом.

В результате я бы добился того, чего вы хотели, с помощью этого:

  1. Использовать tc для формирования трафика - OpenVZ есть довольно хорошая статья об этом.
  2. Использовать iptables - Cyberciti на помощь для этого. Ты бы reject новые соединения превышают порог, поэтому вам нужно будет обернуть rsync на стороне клиента, чтобы гарантировать, что он повторяет попытку в случае быстрой неудачи.
  3. Вероятно, самый простой способ добиться этого - поместить все ваши файлы в одну группу, а группу пользователей - в эту группу. Затем предоставьте каждому клиенту своего пользователя для подключения. Отсюда должно быть относительно просто убить PID подключенных клиентов (я уверен, что есть и другие способы однозначной идентификации пользователей, это всего лишь предложение).