ProCloud Yandex
28.06.2023
читать 8 минут

Монтирование контейнера объектного хранилища в Linux

/upload/iblock/78f/18mj8iczfb19m7n72pm3slv7feyx2n0u/object_storage.jpeg.jpg

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

В данной статье используется ОС Centos 8, однако есть возможность воспользоваться и другими версиями операционной системы. Стоит подробнее рассмотреть, как работать с объектным хранилищем Linux.

Объектное хранилище ProСloud

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

Вот основные достоинства объектного хранилища ProСloud:

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

Компания Procloud динамично развивается, у нее активно появляется IT-инфраструктура в новых регионах и странах, что позволяет предлагать клиентам современные решения на выгодных условиях.

Создание контейнера

Объектное хранилище ProСloud
arrow
arrow hover

Для этого требуется выполнить следующие действия:

  1. Войти в соответствующий раздел через web-панель и нажать на кнопку для создания контейнера.
  2. Назвать его. Требуется использовать латиницу в DNS совместимом формате. Длина должна быть от 3 до 255 символов. Между точками в названии нужно составлять не менее 3 символов.
  3. Выбрать доступ контейнера. Существуют Private, Public Objects, Public Full.
  4. Выбрать регион расположения сервиса.
  5. Подтвердить создание контейнера.

После его создания требуется выполнить настройку в соответствии с запросами клиента.

Монтирование контейнера

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

Установка s3fs

В операционной системе должна быть установлена s3fs программа. Все команды выполняются в командной строке. Для установки для OS Centos используются команды:

yum install s3fs

или

dnf install s3fs

Для выполнения команд требуются права пользователя root.

Процесс монтирования контейнера

В корневом каталоге пользователя создаем папку s3test командой:

$ mkdir s3test

К этой папке мы смонтируем существующий контейнер из объектного хранилища и назовем его, например, s3bucket.

На этом этапе администратору нужно подготовить файл конфигурации доступа. S3fs поддерживает стандартные AWS credentials файлы, расположенные в ${HOME}/.aws/credentials. Кроме того, s3fs поддерживает пользовательский парольный файл. Подробнее можно прочитать по ссылке (https://github.com/s3fs-fuse/s3fs-fuse). Сredentials файл имеет удобную опцию разделения доступа к контейнерам, например:

$ cat .aws/credentials [procloud-test] aws_access_key_id = XXXXXXXXXXXXXXXXXXXXXXXXXXX aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXX

С помощью s3fs нужно смонтировать контейнер в созданную на прошлом этапе папку с использованием соответствующей команды. В команде прописывают имя контейнера, путь к директории монтирования, профиль ключей и URL подключения.

$ s3fs s3bucket /path/to/dir/s3test -o profile=procloud-test -o url=<URL доступа>

После выполнения команды подключения в директории появятся файлы, загруженные через web-панель Procloud. Проверим наличие файлов с помощью команды:

$ ls s3test/ tmux-3.3-1.1_c9.x86_64.rpm

Автоматизация запуска s3fs

Можно автоматизировать запуск s3fs, чтобы не нужно было производить монтаж контейнера каждый раз ручным способом. S3fs использует механизм FUSE, что позволяет монтировать контейнеры в локальные директории пользователя не имея полномочий root. Поэтому для автоматического подключения может быть два варианта:

  • монтирование при загрузке ОС через запись в файле /etc/fstab, что требует root привилегий и, соответственно, другого способа передачи ключей доступа;
  • монтирование при загрузке ОС через выполнение скрипта монтирования в пространстве пользователя через запись в персональном crontab файле.

Для первого случая надо создать парольный файл в системе или в домашнем каталоге root пользователя, например, в формате: bucketName:accessKeyId:secretAccessKey

# cat /etc/passwd-s3fs s3bucket:xxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # chmod 640 /etc/passwd-s3fs

Добавим в fstab командой:

s3bucket /path/to/dir/s3test fuse.s3fs _netdev,allow_other,url=<URL доступа> 0 0

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

# mount s3bucket

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

@reboot /bin/sh /path/to/dir/mountme.sh

Заключение

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

  • случайная запись или добавление в файлы требуют перезаписи всего объекта, оптимизированного с помощью многокомпонентной копии для загрузки по частям;
  • операции с метаданными, такие как перечисление каталогов, имеют низкую производительность из-за задержки в сети;
  • Последование чтение может привести к временному отсутствию записанных данных ​​(Eventual Consistency); 
  • нет атомарных переименований файлов или каталогов;
  • отсутствие координации между несколькими клиентами, монтирующими один и тот же контейнер;
  • отсутствие hard link;
  • inotify обнаруживает только локальные модификации, а не внешние, сделанные другими клиентами или инструментами.

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

Новости
13 сентября 202413.09.2024
читать 2 минутычитать 2 мин
Дайджест обновлений продуктов
18 апреля 202418.04.2024
читать 2 минутычитать 2 мин
Дайджест обновлений продуктов Q1
5 апреля 202405.04.2024
читать 1 минутучитать 1 мин
ProCloud CPO Диана Беда в рейтинге ИТ-лидеров от Global CIO
Создать учетную
запись ProCloud
arrow
arrow hover
 
Имя, Фамилия*
Номер телефона
Электронный адрес*
Ваше сообщение*
Файл
Файл
Файл
Файл
Файл
Файл
Файл
Файл
Файл
Файл
Тип формы
ID тикета Zendesk
Продукт
IP
 

Создайте бесплатную учетную запись или напишите нам, чтобы узнать больше.

Нажимая «Отправить заявку» вы даете свое согласие на обработку своих персональных данных