Как монтировать S3 Bucket локально в Linux — CloudSavvy IT

AWS Logo

Во многих отношениях S3-контейнеры действуют как облачные жесткие диски, но являются только «хранилищами на уровне объектов», а не хранилищами на уровне блоков, такими как EBS или EFS. Тем не менее, можно смонтировать корзину как файловую систему и получить к ней доступ напрямую, читая и записывая файлы.

Преимущества и ограничения S3 как файловой системы

Волшебство, которое заставляет всю эту настройку работать, — это утилита под названием s3fs-fuse, FUSE расшифровывается как Filesystem in Userspace и создает смонтированную виртуальную файловую систему. s3fs взаимодействует с S3 и поддерживает большое подмножество POSIX, включая чтение, запись, создание каталогов и настройку метаданных файла.

Одним из больших преимуществ использования S3 по сравнению с традиционным хранилищем является то, что он очень эффективен при длительном хранении отдельных объектов без ограничения общего размера ковша. Вы можете хранить 10 фотографий или 10 миллионов фотографий в S3, и это будет работать практически одинаково. В приложениях, где вам нужен большой (и дешевый) диск, S3 имеет смысл, и если интегрируемому приложению требуется доступ к файлу, это хороший способ для их объединения.

Конечно, это не без ограничений. Хотя он работает довольно сравнимо с 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и дайте ему разрешение на доступ к корзине, которую вы хотите смонтировать. В конце вы получите секретный ключ доступа:

Успешно настроил s3fs-fuse и получил секретный ключ доступа.

Вы можете вставить их в стандартный файл учетных данных 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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.