
Есть ли у кого-нибудь опыт использования объектного хранилища Openstack Swift с s3fs и одновременного доступа нескольких точек записи к одному и тому же файлу(ам)?
Например, страница руководства для s3:https://linux.die.net/man/1/s3fsесть такой абзац:
«Возможность многопользовательского режима. Хотя существует возможность совместного использования контейнеров s3 несколькими пользователями, текущая модель согласованности данных для сервиса Amazon S3 препятствует безопасному использованию нескольких монтирований несколькими пользователями. Хотя в настоящее время s3fs допускает множественное монтирование, такая деятельность может привести к повреждению данных. Будущий выпуск будет содержать механизм блокировки для надежной защиты от множественных монтирований для чтения и записи. Несколько монтирований только для чтения после одного монтирования для чтения и записи безопасны, но не будут отражать изменения, внесенные записываемым монтированием в какие-либо метаданные файла или файловой системы, что ограничивает его полезность в этом отношении».
Реализован ли уже упомянутый выше механизм блокировки?
Спасибо, Марк.
решение1
Эта страница руководства ссылается на другой s3fs на основе Python, который исчез из Интернета примерно в 2016 году и разработка которого была прекращена в 2009 году:
https://web.archive.org/web/20161008081920/https://fedorahosted.org/s3fs/
Я рекомендую использовать более популярныйs3fs-предохранительвместо этого. Я отправил письмо вебмастеру die.net, чтобы попытаться обновить это, так как люди обычно ссылаются на s3fs-fuse.
В частности, s3fs не имеет семантики POSIX при наличии нескольких писателей, что может проявиться в виде повреждения данных. Базовое хранилище объектов S3 следует модели «последний пишущий выигрывает», где объекты заменяются атомарно каждым PutObject или CompleteMultipartUpload RPC. s3fs также имеет модель кэширования, которая может предоставлять устаревшие данные приложению.
yas3fsпохож на s3fs-fuse и реализует блокировку через Amazon SNS/SQS. Однако это выводит вас дальше за пределы экосистемы OpenStack.