redtigra: (Default)
[personal profile] redtigra
Народ, помогите мне, пожалуйста, правильно поставить задачу, прежде чем я полезу с ней по спецкомьюнити.

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

В массиве очень много мелких файлов. Ежедневно при построении индекса отсматривается около 3,5 млн. файлов, при этом синхронизируется 5-6 тысяч.

Синхронизируем из Америки в Питер и обратно. С американской стороны данные представляют собой очень разветвленную структуру NIS-карт и линков на десятки NFS-серверов в сети.

В Питере на машине запускается rsync-демон, который и осуществляет синхронизацию.

Проблема в следующем.
При построении индекса он шерстит те самые 3,5 млн файлов, которые расположены в Штатах, каждый раз лезя к каждому из этих файлов. В итоге времени на построение индекса уходит туева хуча времени. Дефакто - около 70% времени всего процесса синхронизации в целом.

Американские данные даны мне как неизменяемая данность. Я ничего не могу с ними сделать - ни поменять структуру, ни получить рута, ничего. Большого дискового пространства или мощностей у меня там тоже нет, но небольшие - есть. Есть пара серверов, на которых я могу получить немного места и имею рута.

Если бы можно было составлять индекс локально в Америке, а потом передавать питерскому демону - это облегчило бы ситуацию в разы. Актуальность "раз в сутки" достаточна. Как научить так работать rsync - непонятно, кажется, без хака этого вообще не сделать.

Какие есть варианты решения? Может быть, я не вижу чего-то очевидного?

Насколько понятно задан вопрос?

Куда, кроме ru_root, имеет смысл этот вопрос задавать?

Спасибо заранее.

March 2022

S M T W T F S
  12345
678910 1112
1314 15 16171819
202122 23242526
27 28293031  

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 13th, 2026 11:47 am
Powered by Dreamwidth Studios