Настройка Linux

How to Mount S3/Wasabi/ Nextcloud Storage Bucket on CentOS and Ubuntu using S3FS

В этой статье мы будем использовать S3FS для локального монтирования облачных служб хранения на коробке CentOS или Ubuntu. Их локальное монтирование позволит нам взаимодействовать с поставщиками облачных технологий в качестве локальной файловой системы.

Мы будем охватывать трех провайдеров облачных хранилищ, а именно: AWS S3, Wasabi Hot Storage и Digital Ocean Spaces. Что делает это интересным, так это то, что все три провайдера используют один и тот же API, то есть API S3.

S3FS – это решение на основе FUSE (файловая система в пространстве пользователя), используемое для монтирования Amazon S3 или совместимых решений для хранения данных. Как уже упоминалось выше, мы можем использовать системные команды с этим диском так же, как в качестве другого жесткого диска в системе. В смонтированных файловых системах s3fs мы можем просто использовать cp,
mv и ls – основные команды Unix, аналогичные для запуска на локально подключенных дисках.

Step 1 – Обновление пакетов

Сначала мы обновим систему, чтобы у нас были самые последние пакеты. Затем мы проверим, установлен ли в вашей системе какой-либо существующий пакет s3fs или fuse. Мы удалим все существующие пакеты и установим все заново.

### CentOS and RedHat Systems ###
$ yum update
$ yum remove fuse fuse-s3fs

### Ubuntu Systems ### 
$ sudo apt-get update
$ sudo apt-get remove fuse

Step 2 – Установить зависимости

После того, как вы успешно удалили пакеты. Мы установим все зависимости для предохранителя. Установите необходимые пакеты в систему, используя следующую команду.

### CentOS and RedHat Systems ###
yum install gcc libstdc++-devel gcc-c++ curl-devel libxml2-devel openssl-devel mailcap

### Ubuntu Systems ### 
sudo apt-get install build-essential libcurl4-openssl-dev libxml2-dev mime-support

Step 3 – Скачать и скомпилировать S3FS

На этом этапе мы загрузим и скомпилируем последнюю версию s3fs из GitHub. Для этой статьи мы используем s3fs версии 1.74. После загрузки распакуйте архив и скомпилируйте исходный код в систему, используя команды ниже.

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

Step 4 – Настройка ключа доступа

Для настройки s3fs нам потребуется ключ доступа и секретный ключ вашей учетной записи S3 Amazon, Wasabi или Digital Ocean. Вы можете получить доступ к этим ключам из своей учетной записи соответствующих служб. Когда у вас есть эти ключи, создайте файл, для целей этого урока мы будем называть файл pwd-s3fs.

echo AWSACCESSKEYID:AWSSECRETACCESSKEY > ~/.pwd-s3fs
### Note: Change AWSACCESSKEYID and AWSSECRETACCESSKEY with your actual key values.

После создания файла паролей мы изменим разрешение на файл из соображений безопасности.

chmod 600 ~/.pwd-s3fs

Step 5 – Mount S3 Bucket

Наконец, мы можем смонтировать ведро s3, используя следующий набор команд. Для этого примера мы используем имя сегмента s3 в качестве тестового сегмента и точку монтирования как / s3mnt.

mkdir /tmp/cache /s3mnt
chmod 777 /tmp/cache /s3mnt
s3fs -o usecache=/tmp/cache test-bucket /s3mnt -o passwdfile=/etc/pwd-s3fs

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

Step 6 – Mounting a Wasabi Hot Storage Bucket

Если вы не знакомы с Wasabi, то, согласно их веб-сайту, это хранилище, совместимое с S3, которое в 1/5 раза дороже и в 6 раз быстрее, чем Amazon S3. Поскольку он поддерживает S3 API, работает та же команда, вам нужно только изменить конечную точку, как описано ниже:

s3fs test-bucket /s3mnt -o passwd_file=/etc/pwd-s3fs -o url=https://s3.wasabisys.com 

Step 7 – Автомонтирование при перезапуске

#!/bin/sh

# chkconfig: 2345 20 80
# description: Mounts the S3 bucket datanextcloud to mnt/datawas
# Created by Shivanand Sharma BinaryTurf.Com
# License: GPL 3 and "don't blame me".
# Usage:
#   Edit the relevant sections of this file like your bucket name and mount point
#   copy this file into /etc/init.d/
#   sudo chkconfig --add mounts3
#   sudo service mounts3 start
#   Optional: Configure required runlevels for the service

start() {
echo -n $"Starting..."
sudo s3fs datanextcloud /mnt/datawas
sudo ls -al /mnt/datawas
}

stop() {
echo -n $"Stopping..."
sudo umount /mnt/datawas
}

reload(){
sudo umount /mnt/datawas
sudo s3fs datanextcloud /mnt/datawas
sudo ls -al /mnt/datawas
}

status(){
sudo ls -al /mnt/datawas
}

# See how we were called.
case "$1" in
start)
     start
     ;;
stop)
     stop
     ;;
status)
     status
     ;;
restart)
     stop
     start
     ;;
reload)
     reload
     ;;
*)
     echo $"Usage: $prog {start|stop|restart|status}"
     RETVAL=2
esac

exit $RETVAL

Отредактируйте соответствующие разделы этого файла, такие как имя вашего сегмента и точка монтирования. скопируйте этот файл в /etc/init.d/

sudo chkconfig --add mounts3
sudo service mounts3 start

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

/usr/local/bin/s3fs datanextcloud /mnt/datawas -o passwd_file=/etc/pwd-s3fs -o url=https://s3.eu-central-1.wasabisys.com -o uid=500 -o gid=500

Step 8 Nextcloud. Перенос директории DATA

Посмотрел в файле конфигурации путь к директории data (в ней хранятся все файлы пользователей):

cat /var/www/nextcloud/config/config.php | grep datadirectory

Отобразилось:

‘datadirectory’ => ‘/var/www/nextcloud/data’,

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

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on

Скопировал директорию data в новую папку и указал владельца и права от имени которого работает веб сервер:

cp -R /var/www/nextcloud/data /srv/nextcloud/datachown -R www-data:www-data /srv/nextcloud/data/

Открыл файл конфигурации nextcloud в текстовом редакторе и изменил значение «datadirectory» на путь к новой папке:

nano /var/www/nextcloud/config/config.php

После этого отключил режим обслуживания:

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

Готово, директория «data» с данными пользователей успешно перенесена в другое место.

В заключение

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

Полезные ссылки:

0

Автор публикации

не в сети 1 месяц

Илья Коковин

Аватар 0
Комментарии: 0Публикации: 34Регистрация: 30-05-2019

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

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

Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
*
Генерация пароля