Distributed rsync
От: Anton Batenev Россия https://github.com/abbat
Дата: 20.03.15 21:42
Оценка:
Hello!

Хочется немного странного. Предположим есть большое хранилище мелких файлов и некоторое количество хранилищ небольшого объема. Хочется с большого хранилища сделать резервную копию на маленькие равномерно размазав файлы по ним. При этом желательно более-менее штатными средствами типа того же rsync (на принимающей стороне). Есть что-нибудь подобное в природе?
avalon/1.0.442
Re: Distributed rsync
От: dimgel Россия https://github.com/dimgel
Дата: 20.03.15 21:55
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Хочется немного странного. Предположим есть большое хранилище мелких файлов и некоторое количество хранилищ небольшого объема. Хочется с большого хранилища сделать резервную копию на маленькие равномерно размазав файлы по ним. При этом желательно более-менее штатными средствами типа того же rsync (на принимающей стороне). Есть что-нибудь подобное в природе?


А какая структура (каталогов) большого хранилища и по какому принципу (функция файл -> целевое хранилище) надо размазывать?
Re: Distributed rsync
От: dimgel Россия https://github.com/dimgel
Дата: 20.03.15 22:06
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Хочется немного странного. Предположим есть большое хранилище мелких файлов и некоторое количество хранилищ небольшого объема. Хочется с большого хранилища сделать резервную копию на маленькие равномерно размазав файлы по ним. При этом желательно более-менее штатными средствами типа того же rsync (на принимающей стороне). Есть что-нибудь подобное в природе?


В общем, в отсутствие дополнительных условий я бы сделал что-то такое (полу-баш, полу-псеводокод):

TARGET_REPOS=`cat target_repos`
TRI=0
for f in `find $SOURCE_REPO -type f`; do
    TR=${TARGET_REPOS[$TRI]}
    scp $f $TR/...
    let "TRI = (($TRI + 1) % ${#TARGET_REPOS[*]})"
done
Re: Distributed rsync
От: wildwind Россия  
Дата: 21.03.15 08:51
Оценка: +1
Здравствуйте, Anton Batenev, Вы писали:

AB>равномерно размазав файлы по ним.

Это ты хочешь, чтобы задача о рюкзаке на лету решалась? Это ты много хочешь.

Посмотри на Ceph.
Re: Distributed rsync
От: BulatZiganshin  
Дата: 21.03.15 19:53
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Хочется немного странного. Предположим есть большое хранилище мелких файлов и некоторое количество хранилищ небольшого объема. Хочется с большого хранилища сделать резервную копию на маленькие равномерно размазав файлы по ним. При этом желательно более-менее штатными средствами типа того же rsync (на принимающей стороне). Есть что-нибудь подобное в природе?


многотомный rar не устроит?
Люди, я люблю вас! Будьте бдительны!!!
Re[2]: Distributed rsync
От: Anton Batenev Россия https://github.com/abbat
Дата: 22.03.15 12:31
Оценка:
Здравствуйте, wildwind, Вы писали:

w> AB>равномерно размазав файлы по ним.

w> Это ты хочешь, чтобы задача о рюкзаке на лету решалась? Это ты много хочешь.

Не, особой оптимальности в размещении не требуется. Мне достаточно будет или разделить по количеству файлов более-менее равномерно (т.к. файлы более-менее однородны), или просто не пытаться писать в уже заполненную ноду (т.е. ноды можно заполнять последовательно пока есть место).

w> Посмотри на Ceph.


Вот этих сложностей очень хочется избежать. Хочется что-то очень тупое и простое, которое может спокойно переживать отказы сети (не синхронизировалось сегодня — ну пусть синхронизируется завтра), оборудования (упала нода — пофиг, поднимем с нуля и еще раз зальем файлы).
avalon/1.0.442
Re[2]: Distributed rsync
От: Anton Batenev Россия https://github.com/abbat
Дата: 22.03.15 12:31
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ> многотомный rar не устроит?


Не думаю — файлов много, они постоянно видоизменяются, архив пересоздавать будет очень долго.
avalon/1.0.442
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.