Монтируем Amazon S3 как файловую систему
Используем Amazon S3 для бэкапа сайтов, но бэкап с помощью команды s3cmd в нашем случае не подходит, так как он подразумевает копирование в хранилище, соответсвенно предварительно необходимо создать архив сайта. Когда место на сервере ограничено, данную задачу таким образом не реализуешь.
Решением будет монтирование s3 как файловой системы. Т.е. мы увидим s3 в системе как дополнительный диск и в скриптах для бэкапа можем использовать его как локальный.
Установка s3 как fs
On CentOS 6 или 7:
1 |
sudo yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel |
Аналогично для Ubuntu 14.04:
1 |
sudo apt-get install automake autotools-dev g++ git libcurl4-gnutls-dev libfuse-dev libssl-dev libxml2-dev make pkg-config |
Собираем и устанавливаем s3fs
1 2 3 4 5 6 |
wget http://system-admins.ru/wp-content/uploads/2016/02/s3fs-fuse-master.zip cd s3fs-fuse ./autogen.sh ./configure make sudo make install |
Проверяем установку
1 2 3 4 5 6 7 |
s3fs --version Amazon Simple Storage Service File System V1.79(commit:unknown) with OpenSSL Copyright (C) 2010 Randy Rizun <rrizun@gmail.com> License GPL2: GNU GPL version 2 <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. |
Может быть проблема, команда s3fs не найдена, тогда выполняем следующую команду
1 |
ln -s /usr/local/bin/s3fs /bin/s3fs |
Создаем файл аутентификации
1 |
echo MYIDENTITY:MYCREDENTIAL > /root/.passwd-s3fs |
Необходимо сменить на него права
1 |
chmod 600 /root/.passwd-s3fs |
Далее монтируем s3 как fs
1 |
s3fs mybucket /path_to_mountpoint -o passwd_file=/root/.passwd-s3fs |
Если возникнут проблемы, можно запустить с опцией отладки
1 |
s3fs mybucket /path_to_mountpoint -o passwd_file=/root/.passwd-s3fs -d -d -f -o f2 -o curldbg |
Что бы монтировать s3fs при загрузке необходимо добавить запись в /etc/fstab
1 2 3 4 5 |
s3fs#mybucket /path_to_mountpoint fuse _netdev,allow_other,nonempty 0 0 или mybucket /path_to_mountpoint fuse.s3fs _netdev,allow_other,nonempty 0 0 |
В качестве глобального файла конфигурации можно использовать:
1 2 |
echo MYIDENTITY:MYCREDENTIAL > /etc/passwd-s3fs chmod 600 /path/to/passwd |
Примечание
Производительность s3 не сравнится со скоростью локальных дисков, так как зависит в том числе от скорости сети.
Если Вам необходимо настроить бэкап с помощью продуктов Amazon или любых других, обращайтесь [email protected]