- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
нужно с одного сервера раскидывать (синхронизировать) данные на 4 других сервера с помощью rsync (много мелких файлов).
как лучше запускать, чтоб на главном сервере это потребляло меньше ресурсов?
1) с главного сервера делать 4 запуска и лить на остальные сервера.
2) со всех серверов запускать rsync который будет коннектиться к главному.
в домашних тестовых запусках разницы по нагрузке как-то на глаз не заметил.
Ничего гигантского в плане производительности вы не получите, максимальный выигрыш, это ресурсы которые будут задействованы под каждый из потоков синхронизации, в случае запуска на одном сервере 4 таких процессов естественно на нем будет больше затрачено ресурсов нежели в ситуации когда каждый из серверов обратиться к нему, но на столько ли существенный прирост вы получите?
Из личного опыта могу сказать, что работаю с rsync на объемах в 10+ TRB, полет нормальный. В некоторых случаях правда для rsync внутренние линки. Есть схемы между прочим обоих направлений и при 5 заданиях с одного сервера и при 5 заданиях с разных серверов на один, пожалуй лишь удобство или "настроение при настройке" :) На производительность не думаю что влияет особо. :)
Romka_Kharkov, вот и я не заметил разницы тестово гоняя 500к файлов по 100 мб локалке )
но безопаснее с главного коннеститься на второстепенные, чем на куче серверов класть ключи от главного сервера.
Только тогда если поломают главный сервер - все второстепенные окажутся под угрозой.
Если второстепенные совсем второстепенны - тогда с осовного на второстепенный запускать rsync.
В противном случае может быть имеет смысл для каждого второстепенного сделать свой ключ и повесить на пользователя лимитированного по rsync-only.
А то если поломают, например, backup сервер который делает rsync забор данных со всяких финансовых, суперсекретныхпроектных серверов будет не очень ... :) Даже если на backup сервере они пакуются и прогоняются через GPG.
Я думаю важно также определиться когда синхронизировать файлы. Я не в курсе специфики вашего проекта, но я полагаю что имеет смысл запускать синхронизацию на разные машины в разное время. Как вариант, написать простой скрипт, который будет ставить флаг "синхронизация с машиной XYZ in progress", следовательно sync на другие машины будет ждать. Если все запускать одновременно, может и сеть просесть.
foxi, поднимите rsync сервер на главной машине, а ведомые сервера авторизуйте там по IP. Проблема с безопасностью решится.
Если сильно переживаете за производительность фс, можете попробовать запустить сервер rsync-а с каким-нибудь ionice. Будет медленнее, но может прокатить.
Еще одна мысль. Если есть возможность разделить жесткие диски и использовать для rsync отдельный сторедж, риски снижения производительности так же снизятся. Иными словами, на физическом хранилище с rsync (где данные синхронизируются) не размещать базы данных, статику, которая должна отдаваться веб сервером и т.п.
Romka_Kharkov, вот и я не заметил разницы тестово гоняя 500к файлов по 100 мб локалке )
но безопаснее с главного коннеститься на второстепенные, чем на куче серверов класть ключи от главного сервера.
Капитан очевидность сегодня явно на отдыхе, вы спросили вообще-то о ресурсах
как лучше запускать, чтоб на главном сервере это потребляло меньше ресурсов?
я вам ответил.
А что касается безопасности, советую ознакомиться с настройками файла rsyncd.conf.
Многое, если не все, зависит от смысла этих данных. В случае компрометации сервера хоть так хоть так есть угроза...
Насчет ключей не совсем вас понял, вы еще ключи (rsa/dsa?) туда прикрутили как-то? Вы случайно rsync не запускаете от рута через ssh pipe :D ?
Потому как в том же rsyncd.conf , можно настроить "шару" таким образом, что она будет например read only, А так же можно жестко ограничить пользователей и IP адреса доступные в этой шаре. Покажите как вы используете rsync и что в конфигах есть.. интереСа ради :D Если сервера стоят рядом !!! рекомендую сразу делать 1G internal uplink
Насчет ключей не совсем вас понял, вы еще ключи (rsa/dsa?) туда прикрутили как-то? Вы случайно rsync не запускаете от рута через ssh pipe :D ?
Потому как в том же rsyncd.conf , можно настроить "шару" таким образом, что она будет например read only, А так же можно жестко ограничить пользователей и IP адреса доступные в этой шаре. Покажите как вы используете rsync и что в конфигах есть.. интереСа ради :D Если сервера стоят рядом !!! рекомендую сразу делать 1G internal uplink
использую так:
rsync -avz --delete -e 'ssh -p 22' user@host:/home/user/files/ /home/localuser/dolder/
ну или чуток не так, если с локального заливать на остальные.
а конфиг я вообще не трогал и не заглядывал в него 😂
Хм, а я авторизацией самого Rsync пользуюсь, user/pass/ip + rsyncd ..
Если нужно снизить нагрузку на основной сервер, можно попробовать использовать --bwlimit