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

Несколько серверов Rsync одновременно в одном NAS

Сценарий:

1 NAS в нашем главном офисе (Synology Cubestation CS407)
20 удаленных серверов в различных физических розничных магазинах (по 1 серверу на магазин)

Сеть между штаб-квартирой и магазинами находится в MPLS / VPN.

Я создал беспарольный доступ с каждого сервера магазина к нашему NAS.

Я создал сценарий bash, который выполняет резервное копирование определенного набора папок размером от 2,5 до 14 гигабайт данных в зависимости от магазина.

Сценарий bash запускается на отдельных серверах хранилища и использует Rsync для копирования папок на NAS.

rsync -azv --delete-after --stats /u/archive/ root@nas01:/volume1/bak/$HOSTNAME/u/archive$(date +%u)/

Вопрос:

Могу ли я безопасно выполнять этот сценарий одновременно на нескольких серверах каждую ночь, например, в 2 часа ночи. Может ли Rsync на NAS обрабатывать входящие данные / соединения с нескольких серверов одновременно?

Обновить:

Итак, я запустил сценарий резервного копирования вчера вечером в 2 часа ночи, запустив его только в самом старом / самом большом хранилище (store1), в котором имеется около 9,5 ГБ данных, для которых создается резервная копия. Этот свежий / полный Rsync занял 1 час 6 минут.

Магазин, в котором я провел тестовые прогоны вчера (store8), также был скопирован одновременно в store1. Store8 имеет 2,4 ГБ данных и занял 29 минут.

Мои тесты с store8 вчера, свежий / полный Rsync, заняли 9 минут. И 3 минуты для немедленного последовательного Rsync, что означает почти полное отсутствие изменений файлов.

И, как уже было предложено, я планирую чередовать / планировать Rsync, чтобы выровнять нагрузку.

Дополнительная информация:
Что зарезервировано:
3 каталога, сценарий bash запускает 3 команды Rsync
- Dir 1: заархивированные данные / данные о продажах, без обновления данных, 1 папка с ~ 30 файлами, добавляемыми в день.
- Dir 2: каталог основных данных, настройки POS-системы, текущие данные о продажах.
- Dir 3: каталог базы данных PostgreSql. Запланируйте также запустить pg_dump непосредственно перед Rsync.

Как данные разделяются:
- Dir 1: это увеличивающийся каталог, в пределах от 8,3 ГБ (store1, 15 лет) до 70M (store17, 3 месяца).
- Dir 2: от 0,5G до 1G, в среднем 90K файлов и 4000 директорий
- Dir 3: от 0,1 до 0,4 ГБ, файлы базы данных, в среднем 450 файлов и 13 каталогов

Полоса пропускания:
HQ: оптоволокно 100/100 Мбит.
Магазин: ADSL, в зависимости от используемого медного кабеля, от 1 до 2 Мбит загрузки.

NAS:
Synology Cubestation CS407 (DSM 3.1)
4x STM3250310AS, Maxtor DiamondMax 21
- SATA 3,0 Гбит / с
- Емкость 250 ГБ
- 7200 об / мин
- 8 МБ кэш-памяти
- Средняя задержка 4,16 мс
Настроен в RAID 5
Общая емкость 684 ГБ
Используется 130 ГБ (19%)

После выполнения процедуры я, скорее всего, заменю устаревший NAS и диски.

Вы можете запустить этот сценарий, но это зависит от того, что вы ищете в безопасности.

-azv означает архивировать, сжимать, подробный

--delete-after означает, что вы удаляете все, что получает rsync с исходного сервера после того, как достигает конечного сервера.

20 серверов на 1 сервер ... это выполнимо.

Предположим следующее:

  • 20 x 2,5 ГБ = 50 ГБ (общий объем данных, который должен быть rsync'd каждый сеанс rsync)
  • 10 Мбит = 1,25 МБ / с (пропускная способность, доступная на сайте NAS для трафика из Интернета)
  • (4) диски SATA 7200 об / мин в RAID1 = 190 МБ / с или RAID5 = 200 МБ / с (количество дисков, их скорость и их пропускная способность)

Ограничивающим фактором будет пропускная способность вашей сети.

  • 50 ГБ = 51200 МБ
  • 51200 МБ / 1,25 МБ / с = 40960 с = 682 мин = 11 часов

При этом не учитывается, может ли ваш NAS обрабатывать производительность, необходимую для нескольких потоков одновременно, и есть ли у вас какие-либо другие процессы. По моему опыту, я видел 10 ГБ rsync, которые занимали вечность, потому что существуют сотни тысяч файлов; чем больше у вас файлов, тем больше времени потребуется. Чем больше одновременных процессов rsync вы запускаете одновременно, тем более распределяется ваша обработка, что может задержать выполнение rsync; Если то, что ваше резервное копирование, зависит от времени, вы должны быть осторожны с тем, как быстро вы завершите процесс rsync.

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

Примечание: если выделенная вами пропускная способность позволяет принимать входящие потоки 20 Мбит, то вы удвоите время rsync, но все равно получите огромное снижение производительности на вашем NAS.

Да, потому что вы размещаете файлы на NAS по разным путям, это безопасно. Да, rsync поддерживает несколько подключений. так что все будет хорошо.

Добавление к другим ответам (все они имеют действительные точки - пропускная способность здесь тоже важна!). Быстрый поиск в Интернете показал, что упомянутый вами NAS, похоже, оснащен процессором Marvell 5281 с тактовой частотой 500 МГц и 128 МБ оперативной памяти.

Хотя технически rsync может обрабатывать несколько подключений, я бы посоветовал вам не пытаться запускать все задания одновременно, а вместо этого оставлять промежуток между заданиями, достаточный для завершения каждого задания до начала следующего, поэтому что в идеале никакие задания не выполняются одновременно. Это оборудование не выглядит достаточно мощным, чтобы поддерживать 20 одновременных подключений.

Конечно, вам нужно будет рассчитать это смещение на основе доступной пропускной способности в этом месте и общей производительности записи вашего NAS.