S3FS: Монтирование корзин Amazon S3 на системах CentOS и Fedora

Amazon S3 представляет собой масштабируемый и надежный сервис для хранения объектов, который позволяет хранить и извлекать любые объемы данных из сети. S3FS — это интерфейс FUSE (Файловая система в пространстве пользователя) для Amazon S3, который позволяет монтировать корзины Amazon S3 как локальную файловую систему на вашем сервере с CentOS или Fedora. Это дает возможность удобно получать доступ к данным S3 и работать с ними так, будто они находятся на локальной файловой системе. В этой статье мы расскажем, как подключить корзину Amazon S3 на системе CentOS или Fedora с помощью S3FS.

Перед началом убедитесь, что у вас есть следующее:

  1. Учетная запись Amazon S3 с хотя бы одной созданной корзиной.
  2. Ключ доступа и секретный ключ для доступа к вашей корзине S3.
  3. Система CentOS или Fedora с правами root.
  4. Установленный S3FS на вашей системе.

Ниже приведены пошаговые инструкции по подключению корзины Amazon S3 на системе CentOS или Fedora с использованием S3FS:

Установите необходимые пакеты:

Для начала, вам нужно установить пакет `s3fs-fuse`. На CentOS или Fedora это можно сделать с помощью команды:

sudo yum install s3fs-fuse

или

sudo dnf install s3fs-fuse

Создайте файл с учетными данными:

Создайте файл, в который будут записаны ваши учетные данные для доступа к SНапример:

echo ACCESS_KEY:SECRET_KEY > ~/.aws-s3fs

Не забудьте заменить `ACCESS_KEY` и `SECRET_KEY` на ваши реальные ключи доступа.

Настройте права доступа к файлу:

Убедитесь, что файл с учетными данными защищен от постороннего доступа:

chmod 600 ~/.aws-s3fs

Создайте точку монтирования:

Создайте директорию, в которую будет монтироваться ваша корзина S3:

mkdir /mnt/s3-bucket

Смонтируйте корзину S3:

Теперь вы можете смонтировать вашу корзину с помощью следующей команды:

s3fs your-bucket-name /mnt/s3-bucket -o passwd_file=~/.aws-s3fs

Замените `your-bucket-name` на название вашей корзины.

Проверьте монтирование:

Чтобы убедиться, что корзина смонтирована правильно, выполните команду:

df -h

Вы должны увидеть свою корзину в списке смонтированных файловых систем.

Автоматическое монтирование (по желанию):

Если вы хотите, чтобы корзина автоматически монтировалась при загрузке системы, добавьте следующую строку в файл `/etc/fstab`:

s3fs#your-bucket-name /mnt/s3-bucket fuse _netdev,allow_other,passwd_file=/home/your-username/.aws-s3fs 0 0

Не забудьте заменить `your-bucket-name` и `your-username` на актуальные значения.

Теперь вы можете работать с вашей корзиной S3 так же, как с любой другой локальной папкой! Убедитесь, что вы следите за правами доступа и безопасностью ваших учетных данных.

Удаление существующих пакетов

Сначала проверьте, установлены ли на вашей системе какие-либо пакеты s3fs или fuse. Если они имеются, удалите их, чтобы избежать конфликтов.

yum remove fuse fuse-s3fs

Для проверки установленных пакетов можно использовать команду:

yum list installed | grep fuse

Эта команда покажет все установленные пакеты, содержащие «fuse» в названии. Если вам нужно удалить другие зависимости, вы можете использовать опцию --setopt=clean_requirements_on_remove=1 вместе с командой удаления, чтобы автоматически удалить ненужные зависимости.

Читайте также:  Включение протокола HTTP/2 в Apache на Ubuntu 20.04

Также рекомендуется перезагрузить систему после удаления пакетов, чтобы убедиться, что все изменения вступили в силу.

Установка необходимых пакетов

После удаления пакетов установим все зависимости для fuse и s3cmd. Выполните команду для установки необходимых пакетов:

yum install gcc libstdc++-devel gcc-c++ curl-devel libxml2-devel openssl-devel mailcap

Также убедитесь, что у вас есть права администратора для выполнения данной команды. Если вы работаете на сервере, рекомендуется создать резервную копию конфигурационных файлов перед установкой. Установленные пакеты обеспечат поддержку разработки и взаимодействия с файловыми системами, а также обработку XML и OpenSSL для безопасных соединений.

Загрузка и компиляция Fuse

Скачайте и соберите последнюю версию исходного кода fuse. В этой статье используется версия fuse 3.1Следуя приведенным ниже командам, вы сможете собрать fuse и интегрировать модуль fuse в ядро.

    Скачайте исходный код fuse:

cd /usr/src/ wget https://github.com/libfuse/libfuse/releases/download/fuse-3.13.0/fuse-3.13.0.tar.xz
tar Jxf fuse-3.13.0.tar.xz cd fuse-3.13.0
./configure --prefix=/usr/local make && make install
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ldconfig modprobe fuse

После выполнения вышеуказанных команд убедитесь, что модуль fuse загружен правильно. Для этого выполните команду:

lsmod | grep fuse

Если вы видите запись «fuse», это означает, что модуль успешно загружен. Также стоит отметить, что для работы с FUSE может понадобиться установка дополнительных библиотек, таких как pkg-config, которые обеспечивают правильную конфигурацию и компиляцию.

После успешной установки вы можете начать использовать FUSE для создания своих собственных файловых систем. Ознакомьтесь с документацией на официальном сайте проекта, чтобы узнать больше о доступных функциях и примерах использования.

Не забудьте проверить права доступа для пользователей, которые будут использовать FUSE. Обычно требуется добавление в группу ‘fuse’, чтобы разрешить доступ к функциональности, предоставляемой модулем.

Загрузка и сборка последней версии S3FS

Скачайте и соберите последнюю версию исходного кода s3fs. В этой статье используется версия s3fs 1.7После загрузки распакуйте архив и соберите исходный код на вашей системе.

    Скачайте исходный код из git-репозитория:

cd /usr/src/ git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse ./autogen.sh ./configure
make && make install

Создание файла с учетными данными

Создайте файл для хранения ваших ключей доступа и секретных ключей:

echo AWS_ACCESS_KEY:AWS_SECRET_KEY > ~/.passwd-s3fs chmod 600 ~/.passwd-s3fs

Примечание: Замените AWS_ACCESS_KEY и AWS_SECRET_KEY на свои действительные ключи доступа и секретные ключи Amazon SЭтот файл обеспечивает безопасность ваших ключей доступа, а установленные права защищают его от несанкционированного доступа.

Для проверки правильности сохранения ключей, вы можете использовать команду:

cat ~/.passwd-s3fs

Однако, будьте осторожны: не показывайте этот файл никому, чтобы избежать компрометации ваших учетных данных.

Также рекомендуется регулярно обновлять ваши ключи доступа в AWS Management Console и заменять их в этом файле, чтобы минимизировать риски безопасности.

Помимо этого, убедитесь, что ваш сервер или локальная машина, где вы храните этот файл, защищены от внешних угроз, например, путем использования брандмауэра или шифрования диска.

Подключение корзины S3

Создайте каталог для монтирования корзины S3:

Читайте также:  Как проверить диск на битые секторы в Linux и обеспечить надежность работы системы

mkdir /tmp/cache /s3-mount

Это создаст директорию, где будет монтироваться корзина SВы можете выбрать любое другое имя для каталога по своему усмотрению.

Установите разрешения для директории монтирования:

chmod 777 /tmp/cache /s3-mount

Это предоставит права доступа к точке монтирования, позволяя всем пользователям читать и записывать данные.

s3fs -o use_cache=/tmp/cache BUCKET_NAME /s3-mount

Замените BUCKET_NAME на реальное название вашего ведра Amazon SЭта команда монтирует ведро S3 в заданную директорию.

Проверьте монтирование

Команда df показывает использование дискового пространства и смонтированные файловые системы на вашем компьютере. Если ведро S3 было успешно смонтировано, вы увидите каталог монтирования с именем ведра S3.

df -h

Вот и все! Вы успешно смонтировали ведро Amazon S3 на вашей системе CentOS или Fedora с помощью S3FS. Теперь у вас есть доступ к данным в вашем ведре S3, и вы можете с ними работать так, будто они находятся на локальной файловой системе.

В итоге, монтирование ведра Amazon S3 на системах CentOS или Fedora с использованием S3FS — это простой и эффективный способ доступа к вашим данным SS3FS позволяет вам легко работать с вашими данными S3, как если бы они находились на локальной файловой системе, что значительно упрощает взаимодействие с данными S3 в среде CentOS или Fedora.

Кроме того, вы можете использовать дополнительные параметры для команды mount, чтобы настроить кэширование и производительность. Например, опция -o use_cache=/путь/к/каталогу позволяет указать путь к каталогу кэша, что может повысить скорость доступа к часто используемым данным.

Также имейте в виду, что при работе с S3FS необходимо учитывать ограничения по доступу и квоты вашего ведра SУбедитесь, что у вас есть необходимые разрешения для выполнения операций с файлами в вашем ведре.

амазон ведро ec2 фьюз fuse s3fs s3 ведро s3 хранилище s3fs

Поделиться. Facebook Twitter Pinterest LinkedIn Tumblr Email WhatsApp

S3FS: Монтирование бакетов Amazon S3 на Ubuntu и Debian

Как вручную создать пользователя в AWS Cognito (CLI)

Как очистить кэш CloudFront

cd fuse-3.1.0 Не существует (только fuse-3.5.0) [root@localhost fuse-3.5.0]# ./configure –prefix=/usr/local -bash: ./configure: Нет такого файла или директории

Есть ли у вас идеи, как смонтировать локальное S3 (не на AWS), созданное на PURE storage? У меня есть имя ведра, конечная точка, ключ доступа и секретный ключ.

Теперь они используют meson/ninja вместо make && make install или ./configure.

У меня возникает ошибка: s3fs: HTTP: 403 Запрещено — возможно, ваши учетные данные неверны. Вы уже решили эту проблему?

Может ли это работать с недорогим wasabi.com вместо amazon s3? Спасибо.

Шаги 4 ./configure<== это не удастся, потому что файла configure нет

У вас есть решение этой проблемы? Я столкнулся с аналогичной ситуацией. С уважением, Рональд.

Тоже самое!

На Ubuntu шаги 1-4 можно заменить одной командой: sudo apt-get install s3fs. Используйте это вместо шагов 1-4 и продолжайте с «Работает – протестировано».

Не используйте fuse3*, а оставайтесь на fuse 2*, иначе установка s3fs не получится.

Читайте также:  Установка AVideo/YouPHPTube на сервер под управлением Ubuntu 20.04

Я получаю следующую ошибку. fuse: предупреждение: библиотека устарела, некоторые операции могут не функционировать. # rpm -qa | grep fuse libconfuse-2.7-4.el6.x86_64 fuse-libs-2.8.3-5.el6.x86_64 # хотя последняя версия пакета недоступна в репозитории Yum. Пожалуйста, дайте совет.

Привет, я следовал твоему руководству (на Ubuntu 14.04, Bitnami – EC2), и у меня возникает ошибка при выполнении «make»:

/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_sasl_bind@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_get_dn_ber@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ber_sockbuf_add_io@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_unbind_ext@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_get_attribute_ber@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_parse_result@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_set_option@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_abandon_ext@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_msgfree@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_result@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_search_ext@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_get_option@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ber_memfree@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_memfree@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_pvt_url_scheme2proto@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_next_message@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ber_free@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_err2string@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_init_fd@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_msgtype@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_free_urldesc@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_url_parse@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_first_message@OPENLDAP_2.4_2

collect2: ошибка: ld завершил с кодом 1
make[2]: *** [s3fs] Ошибка 1
make[2]: Выход из каталога /tmp/s3fs-fuse-1.80/src
make[1]: *** [all-recursive] Ошибка 1
make[1]: Выход из каталога /tmp/s3fs-fuse-1.80
make: *** [all] Ошибка 2

Если вы видите сообщение “bash: s3fs: команда не найдена”, используйте: sudo /usr/local/bin/s3fs -o use_cache=/tmp/cache mydbbackup /s3mnt

Тем, кто столкнулся с проблемой на CentOS: s3fs: ошибка загрузки общих библиотек: libfuse.so.2: невозможно открыть общий объектный файл: Нет такого файла или каталога, выполните команду: yum install fuse-libs.

Прекрасная статья! Всё прошло замечательно… единственное затруднение было в том, что необходимо было обновить путь к библиотекам, так как при запуске s3fs он не обнаруживал зависимости FUSE. LD_LIBRARY_PATH=/usr/local/lib export LD_LIBRARY_PATH. Это исправило ситуацию 🙂

Привет! Я успешно примонтировал S3, но когда пытаюсь использовать команду “cd” в смонтированных папках, возникает ошибка “operation not permitted”: cd: app_logs/: Operation not permitted. Вот права доступа для этой директории: d———. 1 root root 1 May 6 2015 app_logs. Я выполнил команду: s3fs -o use_cache=/tmp/cache s3bucket /s3mnt. Какие права доступа нужно установить для бакета или папки внутри него? Возможно, я неверно ввожу команду для монтирования?

Привет, Рахул! Не мог бы ты поделиться инструкциями по подключению корзины Amazon S3 на Windows OS для версий 2008 и 2012? Спасибо, с уважением, Мехул.

Здравствуйте всем! Я получаю такую ошибку после попытки примонтировать бакет: # s3fs -o user_cache=/tmp/cache lehar-backup /s3mnt s3fs: /lib/libfuse.so.2: версия `FUSE_2.8′ не найдена (требуется для s3fs). Я скачал fuse 2.8 и собрал его по инструкциям, но если что-то упустил, хотел бы знать, что именно. Дайте знать, какая информация может понадобиться. Спасибо за любую помощь! ~Дэйв

У меня заполнился диск после монтирования, и я не могу использовать систему. В идеале он не должен занимать место на диске. Как я могу это исправить?

Файловая система | 1K-блоки | Использовано | Доступно | Использовано% | Смонтировано на
/dev/xvda1 | 10321208 | 10297608 | 0 | 100% | /
none | 847476 | 0 | 847476 | 0% | /dev/shm
s3fs | 274877906944 | 0 | 274877906944 | 0% | /s3mnt

У меня ошибка: s3fs: HTTP: 403 Запрещено – вероятно, ваши учетные данные неверны. Вы уже решили эту проблему?

У меня ошибка: s3fs: HTTP: 403 Запрещено – вероятно, ваши учетные данные неверны. Вы уже решили эту проблему?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *