Распределенный, децентрализованный обмен данными и резервное копирование

1643
CAFxX

Рассмотрим следующий сценарий: у вас есть команда из нескольких человек, разбросанных по всему миру, которая должна работать с одними и теми же данными. У каждого члена команды есть копия необходимых ему данных. Когда кто-то вносит изменения в некоторые данные, ему необходимо синхронизировать эти данные с другими участниками, которые работают с теми же данными. Кроме того, некоторые данные, которыми располагают члены команды, являются «частными», в том смысле, что они полезны только для одного члена (и, следовательно, существует только одна его копия), но в будущем они могут быть полезны для других участников, и поэтому резервная копия будет полезна.

Учитывая эту ситуацию, я ищу способ иметь децентрализованный общий ресурс (т. Е. Какой-то диск для хранения, будь то локальный или через сеть), чтобы все пользователи, имеющие права доступа, могли читать / писать. (Сейчас речь идет о 3-4 пользователях, но в ближайшем будущем они могут вырасти)

«Децентрализованная» часть означает, что у нас нет сервера, который может работать с традиционным общим ресурсом, поэтому он должен работать прямо на наших компьютерах (и они часто отключаются). Это означает, что каждый локальный общий ресурс должен работать, даже если в данный момент нет другого доступного узла.

Нам это нужно по нескольким причинам, но в основном потому, что:

  1. у нас есть много данных, над которыми мы работаем (чтение / изменение / запись) ежедневно, и мы хотели бы синхронизировать их
  2. у нас есть много данных (как общих для нескольких пользователей, так и частных), которые мы хотели бы иметь резервную копию, возможно удаленно
  3. у нас нет достаточно быстрых соединений, чтобы просто извлекать / проталкивать все с / на сервер или другой узел каждый раз, когда нам нужно / модифицировать его (прозрачное локальное кэширование, дифференциальное сжатие)

Большинство из нас работают на машинах с Windows, поэтому было бы предпочтительнее совместимое с Windows решение. Есть идеи?

5
Исправлено и уточнено несколько пунктов CAFxX 13 лет назад 0
Просто из любопытства, потому что твоя задача интересна: что это за данные и что это за работа? Torben Gundtofte-Bruun 13 лет назад 0
Мы работаем в основном над веб-разработками и мультимедийными проектами. Подавляющее большинство данных состоит из видео, фотографий и файлов проекта (например, AI / PSD / AEP / PRPROJ). CAFxX 13 лет назад 0

4 ответа на вопрос

2
Wells

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

Локальное распределенное хранилище - непрерывная синхронизация файлов

Насколько я понимаю, у вас есть несколько человек, каждый из которых работает на своем локальном жестком диске, содержащем ТБ данных . Но вы хотите, чтобы он работал КАК ЕСЛИ есть только один жесткий диск, который всегда одинаков для всех и является локальным . Если один человек добавляет или изменяет файл, все пользователи имеют этот новый файл или изменяют (почти) немедленно на своих локальных жестких дисках.

ПО ViceVersa - $ 49,95

Я полагаю, что программное обеспечение ViceVersa от TGRMN Software сделает это за вас: http://www.tgrmn.com/web/file_synchronization.htm При цене 59,95 долл. США на пользователя (49,95 долл. США для 2-5 пользователей) оно, безусловно, доступно. Это ограничено MS Windows. (У меня нет никакого финансового интереса к TGRMN, но сильный интерес к синхронизации через Интернет и резервному копированию.)

Это действительно децентрализовано. Вы настраиваете свою глобальную сеть, предположительно VPN. (Но посмотрите более простой вариант с PogoPlug ниже.) На каждом ПК вы устанавливаете, какие каталоги вы хотите двунаправленно синхронизировать. Я полагаю, что вы хотите настроить его так, чтобы новый файл перезаписывал его старые, неизмененные аналоги. ViceVersa достаточно умен, чтобы в случае изменения файла в Source и Target конфликт разрешался вручную.

Конфликты файлов с синхронизацией

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

Мне любопытно об этой ситуации. Предположим, у вас есть папка Docs на каждом из трех компьютеров в вашей глобальной сети: A, B и C. У вас установлена ​​непрерывная двунаправленная синхронизация между Docs на A и Docs на B. Такая же синхронизация установлена ​​между B и C. И то же самое для C и A.

Теперь вы добавляете файл в Docs на A. Предположим, он сначала синхронизируется с B, а чуть позже, из-за более медленного соединения с C. Таким образом, теперь B пытается синхронизировать файл с C, но, скажем, C уже получил файл и о синхронизации с B. Очень важно, чтобы B и C каждый распознал, что у них есть один и тот же файл, и НЕ нужно синхронизировать его.

Вы можете избежать любой потенциальной проблемы, возникающей из-за этих трехсторонних соединений, используя PogoPlug или другое устройство в качестве концентратора.

Использование ViceVersa с PogoPlug или NAS в качестве концентратора

Вот вариант, который может быть интересен, если вы хотите избежать сложностей настройки VPN и настройки синхронизации между каждой парой компьютеров. Вы можете сделать большой USB-накопитель, и даже несколько USB-накопителей, подключенных к PogoPlug, будут отображаться в виде букв дисков на всех ваших ПК. (У Amazon хорошая цена, около 80 долларов, на PogoPlug.)

Смотрите: www.pogoplug.com

Настройте ViceVersa на каждом ПК так, чтобы он синхронизировался с диском P: USB-накопителем на PogoPlug. Диск просто действует как посредник. Вы можете сделать то же самое с устройством NAS, но PogoPlug удивительно прост в настройке и подключении. Любой из ваших пользователей может разместить PogoPlug, подключив его к порту своего кабельного модема или коммутатора. Вам не нужно иметь включенный и работающий ПК, чтобы PogoPlug был доступен. Он не подключается к ПК, а напрямую к Интернету.

У Асперы хорошее изображение, показывающее эту конфигурацию, но вместо большого сервера в центре, представьте себе PogoPlug за 79 долларов и несколько USB-накопителей по ТБ в центре:

www.asperastaging.info/images/connect_deployment_thb.png

Потенциальные альтернативы

Я столкнулся с несколькими потенциальными альтернативами, но не такими многообещающими, простыми и доступными, как ViceVersa и PogoPlug.

FileReplicationPro Ужасный сайт, хотя бы в FireFox $ 495,00

www.filereplicationpro.com/_cart/products.cfm

Aspera

www.asperastaging.info/en/products/client_software_2/aspera_connect_8

Peer Software

www.peersoftware.com/purchase/registration.aspx

Кстати, это мой первый пост на Super User. Я надеюсь, что другие найдут это полезным и достойным голосования несмотря на его длину!

1
dStulle

Другая возможность, когда у вас огромный объем данных или вы не хотите помещать свои данные на сторонние серверы, - это создать свой собственный Dropbox:

http://fak3r.com/2009/09/14/howto-build-your-own-open-source-dropbox-clone/

0
RedGrittyBrick

Для этого я использую устройство NAS.

NAS

Лучшими (и самыми дорогими) являются Synology или QNAP, но есть много поставщиков. Существуют устройства NAS в широком диапазоне цен и мощностей. Многие из них поддерживают несколько дисков как минимум с RAID-0 или RAID-1 и могут выполнять резервное копирование на другие NAS или файловые серверы.

Лично я предпочитаю NAS, которое работает без необходимости устанавливать специальное клиентское программное обеспечение на ПК и которое поддерживает клиенты Windows, MAC и Linux.

Для нескольких компьютеров стоит подумать о чем-то вроде Synology DS210J, но это не рекомендация продукта - есть много хороших марок и много хороших продуктов.

облако

Другой возможностью является аренда онлайн облачного хранилища на базе интернета. Например, Amazon S3, Google Storage, Mozy, DriveHQ, I2drive ...

Локальное распределенное хранилище

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


Surfnet имеет интересный обзор

BitTorrent

Посмотрите Википедию на BitTorrent и эту статью о том, как поделиться большими файлами с друзьями (в частном порядке).

Мы не можем использовать NAS, потому что мы не находимся в той же локальной сети, и, как я уже сказал в этом вопросе, между нами не такие быстрые связи. Мы не можем использовать облачные сервисы, потому что мы говорим о ТБ данных, и это будет чрезвычайно дорого. Локальное распределенное хранилище - это путь (я не упомянул об этом по названию в вопросе, но именно об этом я и говорил). CAFxX 13 лет назад 0
Смотри правку выше, BitTorrent RedGrittyBrick 13 лет назад 0
BitTorrent не подходит, потому что нам нужно * работать * (т.е. читать / изменять / записывать) данные, а изменения должны быть реплицированы как можно скорее для всех: ручной процесс установки торрента для каждого и каждого Файл, который мы изменяем, неосуществим. Обзор, который вы связали о распределенных системах хранения, может пригодиться, но я боюсь, что я уже просмотрел википедию для всех из них, и у всех них есть некоторый недостаток, который делает их непригодными: в большинстве случаев это наличие центрального сервера (или другого SPF). ), т.е. они распределены, но не децентрализованы. CAFxX 13 лет назад 0
0
dStulle

Самый простой способ сделать это - использовать Dropbox . Он автоматически синхронизирует общие папки и создает резервные копии.

К сожалению, это невозможно, потому что (как я прокомментировал предыдущий ответ RedGrittyBrick) мы говорим о туберкулезе. И это будет 200 $ / месяц / ТБ (при условии, что вы действительно можете получить план, подобный этому, максимальный размер составляет 0,1 ТБ) CAFxX 13 лет назад 0