У меня в голове образ, где ссылка слишком медленная, чтобы реализовать передачу файлов в реальном времени, но достаточно быструю, чтобы наверстывать упущенное каждый день. То, что я хотел бы видеть, - это настройка master <-> master, в которой, когда я записываю файл на сервер A, метаданные будут немедленно передаваться на сервер B, а файл будет передаваться в режиме ожидания или немедленно, когда клиент сервера B пытается прочитать файл до того, как сервер A отправил его.
Кажется, что существует много файловых систем, которые могут хорошо работать с быстрыми ссылками, но я не знаю ни одной, которая хорошо справилась бы с большим узким местом и несколькими часами задержки.
Glusterfs имеет режим исцеления, который работает так, как вы описываете; он будет делиться метаданными, но «лечить» копии файлов только при доступе. Документировано, что процесс "ночной синхронизации":
find /mountpoint -type f -print0 | xargs -0 head -c1
Должное предупреждение: я ожидаю, что эта конкретная функция по-прежнему будет доступна, но я не использовал ее в течение года.
Тааааааааааааааааааааааекаалов)) в вашей проблеме является то, что вы делаете, когда кто-то на стороне A хочет файл, который был записан на стороне B, но еще не синхронизирован?
Есть причина, по которой общие файловые системы, которые хорошо работают с быстрыми ссылками, являются обычным явлением - можно определить стандартную семантику для их работы, которая достаточно хорошо соответствует стандартной семантике файловой системы POSIX, которую мы все знаем и любим. Все, что не все данные фактически доступны, сразу попадает в категорию "доменных" - ваш вариант использования для файловой системы может быть таким, что вам не нужно беспокоиться об отсутствии данных (например, хранилище данных, предназначенное только для добавления, или такое, где вы можете эффективно справляться с отсутствующими данными, пересчитывая их или искажая результаты) , но это не достаточно распространенные ситуации (и их очень сложно смоделировать, указать и т. д.), так что никто не потрудился написать что-то общего назначения, которое может использовать каждый.