Бесплатная миграция IT-инфраструктуры в облако

Как подключить объектное хранилище на облачном сервере с использованием s3fs-fuse

Роман Андреев
Роман Андреев
Технический писатель
21 июля 2023 г.
631
5 минут чтения
Средний рейтинг статьи: 5

Для доступа к объектному хранилищу часто используют совместимые с S3 файловые менеджеры, которые предоставляют графический пользовательский интерфейс. Однако возможность использовать графический интерфейс существует не всегда: искать другие решения приходится, например, при организации доступа к хранилищу с облачного сервера Linux. Здесь и приходит на помощь утилита s3fs-fuse.

s3fs-fuse — это популярный инструмент командной строки, который предназначен для облегчения управления объектным хранилищем. Утилита часто обновляется и активно поддерживается сообществом на GitHub. В этом руководстве мы покажем вам, как подключить объектное хранилище с помощью s3fs-fuse на вашем облачном сервере Linux и обеспечить доступ к файлам, как если бы они хранились локально на сервере.

Установка и настройка s3fs-fuse

В первую очередь необходимо наличие самого объектного хранилища (Object Storage), которым мы будем управлять через s3fs-fuse. Подключить его в панели управления в разделе «Хранилище S3» или на сайте, если вы еще не клиент Timeweb Cloud. Теперь приступаем к установке самой утилиты.

Шаг 1. Устанавливаем s3fs-fuse

Это делает простая команда в терминале:

sudo apt install s3fs

После завершения установки вам нужно будет создать файл учетных данных для хранения ключей S3 Access и Secretкоторые выдаются вам при подключении объектного хранилища. При использовании нашего хранилища, это параметры Access key и Secret access key, которые можно найти в вашей панели управления — в настройках конкретного бакета.

Шаг 2. Создаем файл учетных данных

Теперь на облачном сервере введите следующую команду в терминале, чтобы сгенерировать глобальный файл учетных данных:

echo "ACCESS_KEY:SECRET_KEY" | sudo tee /etc/passwd-s3fs

Только не забудьте заменить ACCESS_KEY и SECRET_KEY сгенерированными ключами для вашего объектного хранилища.

Шаг 3. Настраиваем права доступа

Чтобы установить необходимые разрешения для защиты файла, используйте chmod. Установленное значение 600 гарантирует, что только пользователь с правами root сможет читать и перезаписывать файл:

sudo chmod 600 /etc/passwd-s3fs

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

Шаг 4. Добавляем каталог

Теперь выбираем директорию на облачном сервере, куда будет смонтирован бакет. Это может быть любая пустая директория, но правильнее будет создать новую директорию специально для этой цели. Это делает следующая команда:

sudo mkdir /mnt/myobjectstorage

Разумеется, путь и имя каталога следует заменить на свои: значение /mnt/myobjectstorage здесь приведено лишь для примера. Теперь мы готовы смонтировать бакет.

Шаг 5. Подключаем объектное хранилище

Это делает следующая инструкция:

sudo s3fs {bucketname} {/mountpoint/dir/} -o passwd_file=/etc/passwd-s3fs -o allow_other -o url=https:// {private-network-endpoint}

Значения в фигурных скобках вам необходимо заменить на свои:

  • {bucketname} — это имя бакета, который вы будете монтировать;
  • {/mountpoint/dir/} — существующая пустая директория на сервере, куда будет добавлен бакет;
  • /etc/passwd-s3fs — директория созданного ранее файла глобальных учетных данных. Если вы создали его в другом месте, вам нужно будет указать расположение этого файла здесь;
  • -o allow_other разрешает пользователям без полномочий root доступ к корзине. В противном случае доступ к ней будет только у пользователя root;
  • -o url указывает эндпоинт частной сети для объектного хранилища. Его можно найти, щелкнув ссылку доступа к S3 API. Не забудьте добавить к эндпоинту префикс https:// и заменить {private-network-endpoint} реальным значением. В нашем случае это https://s3.timeweb.com.

Эндпоинт позволяет получить доступ к Object Storage через служебную сеть. Однако обратите внимание, что облачные серверы могут получить доступ только к внутренним эндпоинтам объектного хранилища, расположенным в том же центре обработки данных.

Шаг 6. Проверяем работу хранилища

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

touch /mnt/myobjectstorage/test.txt

Если все прошло штатно, вы должны увидеть этот текстовый файл в панели управления. Проверить это можно следующей командой в терминале:

ls /mnt/myobjectstorage/

test.txt

Шаг 7. Настраиваем автоматическое подключение

Чтобы отключить объектное хранилище от вашего облачного сервера, размонтируйте бакет с помощью команды umount:

umount /mnt/myobjectstorage

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

Разумеется, это не слишком удобно, поэтому рекомендуется настроить сервер для автоматического подключения корзины при загрузке. Это можно сделать, добавив команду s3fs в файл /etc/fstab. Только не забудьте заменить путь к хранилищу (/mnt/myobjectstorage) и эндпоинт (https://myobjectstorage.com/) на свои значения:

s3fs #my-bucket /mnt/myobjectstorage fuse _netdev,allow_other,passwd_file=/etc/passwd-s3fs,url=https://myobjectstorage.com/ 0 0

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

Заключение

Вот и всё, в статье мы узнали, ка добавить и настроить на сервере утилиту s3fs-fuse и как с ее помощью подключать объектное хранилище на сервер. Также мы рассмотрели настройку автоматического подключения, что позволит вам избежать монтирования хранилища заново при перезагрузке сервера.

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
21 июля 2023 г.
631
5 минут чтения
Средний рейтинг статьи: 5
Пока нет комментариев