Народ, помогите мне, пожалуйста, правильно поставить задачу, прежде чем я полезу с ней по спецкомьюнити.
Синхронизируем большой массив данных. Весь массив порядка полутерабайта, но синхронизация дифференциальная, в месяц трафика порядка 30 гигабайт.
В массиве очень много мелких файлов. Ежедневно при построении индекса отсматривается около 3,5 млн. файлов, при этом синхронизируется 5-6 тысяч.
Синхронизируем из Америки в Питер и обратно. С американской стороны данные представляют собой очень разветвленную структуру NIS-карт и линков на десятки NFS-серверов в сети.
В Питере на машине запускается rsync-демон, который и осуществляет синхронизацию.
Проблема в следующем.
При построении индекса он шерстит те самые 3,5 млн файлов, которые расположены в Штатах, каждый раз лезя к каждому из этих файлов. В итоге времени на построение индекса уходит туева хуча времени. Дефакто - около 70% времени всего процесса синхронизации в целом.
Американские данные даны мне как неизменяемая данность. Я ничего не могу с ними сделать - ни поменять структуру, ни получить рута, ничего. Большого дискового пространства или мощностей у меня там тоже нет, но небольшие - есть. Есть пара серверов, на которых я могу получить немного места и имею рута.
Если бы можно было составлять индекс локально в Америке, а потом передавать питерскому демону - это облегчило бы ситуацию в разы. Актуальность "раз в сутки" достаточна. Как научить так работать rsync - непонятно, кажется, без хака этого вообще не сделать.
Какие есть варианты решения? Может быть, я не вижу чего-то очевидного?
Насколько понятно задан вопрос?
Куда, кроме ru_root, имеет смысл этот вопрос задавать?
Спасибо заранее.
Синхронизируем большой массив данных. Весь массив порядка полутерабайта, но синхронизация дифференциальная, в месяц трафика порядка 30 гигабайт.
В массиве очень много мелких файлов. Ежедневно при построении индекса отсматривается около 3,5 млн. файлов, при этом синхронизируется 5-6 тысяч.
Синхронизируем из Америки в Питер и обратно. С американской стороны данные представляют собой очень разветвленную структуру NIS-карт и линков на десятки NFS-серверов в сети.
В Питере на машине запускается rsync-демон, который и осуществляет синхронизацию.
Проблема в следующем.
При построении индекса он шерстит те самые 3,5 млн файлов, которые расположены в Штатах, каждый раз лезя к каждому из этих файлов. В итоге времени на построение индекса уходит туева хуча времени. Дефакто - около 70% времени всего процесса синхронизации в целом.
Американские данные даны мне как неизменяемая данность. Я ничего не могу с ними сделать - ни поменять структуру, ни получить рута, ничего. Большого дискового пространства или мощностей у меня там тоже нет, но небольшие - есть. Есть пара серверов, на которых я могу получить немного места и имею рута.
Если бы можно было составлять индекс локально в Америке, а потом передавать питерскому демону - это облегчило бы ситуацию в разы. Актуальность "раз в сутки" достаточна. Как научить так работать rsync - непонятно, кажется, без хака этого вообще не сделать.
Какие есть варианты решения? Может быть, я не вижу чего-то очевидного?
Насколько понятно задан вопрос?
Куда, кроме ru_root, имеет смысл этот вопрос задавать?
Спасибо заранее.