Этот подход не кажется оптимальным с точки зрения производительности и согласованности данных, поскольку, хотя монтирование gcsfuse
претендует на то, чтобы быть полнофункциональной файловой системой, на самом деле это не так.
Основные отличия от файловой системы POSIX хорошо объяснены в официальной документации:
Ценообразование : Облачное хранилище FUSE - это, в конечном счете, облачное хранилище. Все передачи данных и операции, выполняемые Cloud Storage FUSE, сопоставляются с передачами и операциями Cloud Storage и оплачиваются соответствующим образом. Чтобы избежать неожиданностей, вы должны оценить, как ваше использование Cloud Storage FUSE будет переводиться в оплату Cloud Storage. Например, за каждую обычную операцию с объектом взимается плата (создание, удаление, список).
Производительность : задержка облачного хранилища FUSE намного выше, чем в локальной файловой системе.
• Небольшие случайные чтения выполняются медленно из-за задержки до первого байта ( не запускать базу данных через Cloud Storage FUSE! )
• Произвольные записи выполняются путем чтения во всем BLOB-объекте, редактируя его локально и записывая весь измененный BLOB-объект обратно в Cloud Storage.
Параллелизм : Нет контроля параллелизма для нескольких авторов в файл. Когда несколько авторов пытаются заменить файл, побеждает последняя запись, а все предыдущие записи теряются - слияния, контроля версий или уведомления пользователя о последующей перезаписи не происходит.
Доступ : Авторизация для файлов регулируется разрешениями Cloud Storage. Контроль доступа в стиле POSIX не работает.
Доступность : временные ошибки иногда возникают в распределенных системах, таких как облачное хранилище, что приводит к доступности менее 100%.
Текущее состояние из gcsfuse
- это " beta ". Он распространяется как есть, без каких-либо гарантий. В этом состоянии это вряд ли применимо к любым производственным развертываниям.
Вместо этого лучше использовать постоянный диск для хранения данных.
Существует руководство для сообщества по настройке PostgreSQL в Compute Engine, которое рекомендует
Для повышения производительности и безопасности данных, установите ядро базы данных на загрузочный диск, как показано в этом руководстве, а затем настройте хранилище данных на отдельном постоянном диске. Чтобы узнать, как добавить диск для вашей базы данных, см. Следующий учебник Как настроить новый постоянный диск для PostgreSQL Data .