Интересно, может ли кто-нибудь порекомендовать мне какое-нибудь решение для обмена файлами между небольшим количеством Linux VPS (виртуальных частных серверов).
В основном у меня есть несколько Linux VPS для управления, и я хочу обмениваться файлами между ними. Типичные варианты использования - это совместное использование файлов данных, предварительно скомпилированных библиотек или двоичных файлов и т. Д., Поэтому частота записи очень низкая, большинство из которых просто добавляют новые файлы, а не изменяют существующие. Обычно я использую свой собственный настольный компьютер для генерации данных, создания двоичных файлов и публикации на машинах.
Требования:
Одна вещь, которую я рассмотрел, была некоторая файловая система на основе плавких предохранителей, поддерживаемая git. На github или code.google.com есть куча git-fs, но ни один из них не выглядит зрелым и надежным. Кроме того, на каждой машине по-прежнему необходимо вести список доступных машин для общения, что не является автоматическим и, следовательно, болезненным.
Другое дело - использовать какое-то программное обеспечение для обмена файлами P2P, но есть ли что-то, что упорядочивает файлы? Например, когда я публикую файлы, я также могу указать, в какие каталоги следует поместить файлы. Это должно быть сделано автоматически, а не я вхожу на каждую машину и вручную перемещаю их после того, как P2P загрузил файл.
Для большинства распределенных файловых систем они предназначены для кластеров, в которых машины расположены близко друг к другу. Для HDFS требуется централизованный узел имен, поэтому я тоже не могу его использовать.
Есть предположения? Спасибо.
BitTorrent Sync звучит так, как будто он сделает то, что вы хотите.
По сути, вы даете ему папку для синхронизации, и все, что вы помещаете в эту папку - структуру и все такое, - синхронизируется с любой машиной, которую вы настраиваете с помощью секретного ключа.
Вы даже можете указать ключ только для чтения, чтобы другие машины не могли повлиять на ваш «мастер».
Машины могут быть в автономном режиме сколь угодно долго, и когда они подключатся к сети, они будут подключаться к другим одноранговым узлам и извлекать любые различия.
И, конечно же, это бесплатно.
Я бы просто использовал, например, git clone из DNS-имени git clone ssh://mastergit.example.com/vmshared.git
а потом git pull
периодически с cron. Это DNS-имя будет псевдонимом (CNAME) одной из виртуальных машин. Когда главный сервер изменяется, вы просто меняете этот псевдоним DNS на другой компьютер.
С аутентификацией с одинаковыми ключами SSH для каждой виртуальной машины у вас будет:
зашифрованная передача данных, поскольку git работает через SSH,
легкое переключение на другой мастер-сервер,
легкое нажатие изменений из вашей локальной копии (просто git push
),
контроль версий и легкий откат, если что-то тормозит.