Как монтировать S3 Bucket локально в Linux – CloudSavvy IT
Во многих отношениях S3-контейнеры действуют как облачные жесткие диски, но являются только «хранилищами на уровне объектов», а не хранилищами на уровне блоков, такими как EBS или EFS. Тем не менее, можно смонтировать корзину как файловую систему и получить к ней доступ напрямую, читая и записывая файлы.
Преимущества и ограничения S3 как файловой системы
Волшебство, которое заставляет всю эту настройку работать, – это утилита под названием s3fs-fuse
, FUSE расшифровывается как Filesystem in Userspace и создает смонтированную виртуальную файловую систему. s3fs
взаимодействует с S3 и поддерживает большое подмножество POSIX, включая чтение, запись, создание каталогов и настройку метаданных файла.
Одним из больших преимуществ использования S3 по сравнению с традиционным хранилищем является то, что он очень эффективен при длительном хранении отдельных объектов без ограничения общего размера ковша. Вы можете хранить 10 фотографий или 10 миллионов фотографий в S3, и это будет работать практически одинаково. В приложениях, где вам нужен большой (и дешевый) диск, S3 имеет смысл, и если интегрируемому приложению требуется доступ к файлу, это хороший способ для их объединения.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Конечно, это не без ограничений. Хотя он работает довольно сравнимо с API S3 с точки зрения производительности при хранении и извлечении целых файлов, он, очевидно, не заменяет полностью более быстрое блочное хранилище, подключенное к сети. Существует причина, по которой эта конфигурация официально не поддерживается AWS – вы столкнетесь с проблемами параллелизма с несколькими клиентами, использующими файлы, особенно если ваши клиенты в разных регионах имеют доступ к одному и тому же сегменту. Конечно, у S3 также есть это ограничение, и оно не препятствует подключению нескольких клиентов, но это становится более очевидным, когда FUSE, по-видимому, предоставляет вам «прямой» доступ. Это не так, и вы должны помнить об этих ограничениях.
У AWS есть сервис, подобный этому:Storage Gateway, который может действовать как локальный NAS и обеспечивает локальное хранилище блоков, поддерживаемое S3. Однако это скорее корпоративное решение, и для развертывания образа VMWare требуется целый физический сервер. s3fs
с другой стороны, это простое решение для одного сервера, хотя оно не выполняет много операций кэширования.
Таким образом, если вы можете преобразовывать приложения с использованием S3 API, а не FUSE, вам следует сделать это вместо этого. Но если у вас все в порядке с немного хакерским решением, s3fs
может быть полезным
Настройка s3fs-fuse
По сравнению с тем, насколько хакерским, его на удивление легко настроить. s3fs-fuse
доступен от большинства менеджеров пакетовхотя это можно просто назвать s3fs
на некоторых системах. Для систем на основе Debian, таких как Ubuntu, это будет:
sudo apt install s3fs
Вам нужно создать пользователя IAMи дайте ему разрешение на доступ к корзине, которую вы хотите смонтировать. В конце вы получите секретный ключ доступа:
Вы можете вставить их в стандартный файл учетных данных AWS, ~/.aws/credentials
, но если вы хотите использовать другой ключ, s3fs
поддерживает пользовательский файл паролей. Вставьте идентификатор ключа доступа и секретный ключ в /etc/passwd-s3fs
в следующем формате:
echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > /etc/passwd-s3fs
И убедитесь, что разрешения для этого ключевого файла установлены правильно, или он будет жаловаться:
chmod 600 /etc/passwd-s3fs
Затем вы можете смонтировать ведро с помощью следующей команды:
s3fs bucket-name /mnt/bucket-name
Если это не работает, вы можете включить отладочный вывод с помощью нескольких дополнительных флагов:
-o dbglevel=info -f -o curldbg
Если вы хотите, чтобы это монтировалось при загрузке, вам нужно добавить следующее в ваш /etc/fstab
:
s3fs#bucket-name /mnt/bucket-name fuse _netdev,allow_other,umask=227,uid=33,gid=33,use_cache=/root/cache 0 0
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)