Я экспериментировал с s3ql в Ubuntu 10.04, используя его для монтирования корзин Amazon S3.Однако мне бы очень хотелось, чтобы они монтировались автоматически.Кто-нибудь знает, как это сделать?
Решение:
Благодаря помощи Nikratio s3ql Я наконец-то смогмонтируйте S3 buckets автоматически при загрузке системы.Вы определенно захотите взглянуть на руководство , но вот основы того, как это сделать!
Первый шаг - создать файл authinfo.Этот файл должен быть помещен в каталог .s3ql в домашнем каталоге пользователя, который будет его использовать.Файл authinfo содержит информацию для входа в систему, позволяющую s3ql монтировать сегменты без запроса.Ниже приведен пример того, как должен выглядеть ваш файл authinfo.Первая строка содержит ваши учетные данные безопасности Amazon.Второй содержит местоположение и пароль для вашего ведра.Вы можете добавить несколько строк строки в этот файл, если это необходимо, но я использую только одну в этом примере.На этом этапе пароль корзины может быть любым.
backend s3 machine any login ASDFGHJKL password ZXCVBNM
storage-url s3://mybucket password mypassword
Имя корзины должно быть уникальным.Никакие два пользователя не могут иметь одинаковое имя сегмента, поэтому рекомендуется войти в Amazon Web Services и использовать разные имена, пока не найдете подходящее.Как только вы нашли такой файл, вам нужно будет удалить его, так как s3ql создаст его заново при создании вашей файловой системы s3ql.Если корзина уже существует, вы получите сообщение об ошибке.
Чтобы создать файловую систему, используйте команду:
mkfs.s3ql s3://mybucket
Она запросит ваш пароль шифрования.Он должен совпадать с паролем корзины в файле authinfo.
Теперь, когда ваша файловая система создана, вы можете смонтировать ее с помощью команды:
mount.s3ql s3://mybucket /mnt/s3/bucket
Конечно, ваша корзинаимя и точка монтирования будут разными.
Теперь, если мы хотим автоматически смонтировать этот сегмент при загрузке, нам нужно добавить сценарий выгрузки в / etc / init.К счастью, s3ql поставляется с одним, s3ql.conf.
Я добавил «--allow-other» в команду mount.s3ql, чтобы позволить другим пользователям, кроме root, получить доступ к смонтированному сегменту.
#
# This file can be placed in /etc/init. It defines an upstart job that
# takes care of mounting and unmounting an S3QL file system.
#
description "S3QL Backup File System"
author "Nikolaus Rath <Nikolaus@rath.org>"
start on (filesystem and net-device-up IFACE=eth0)
stop on runlevel [016]
env BUCKET="s3://mybucket"
env MOUNTPOINT="/mnt/s3/bucket"
expect stop
script
# Redirect stdout and stderr into the system log
DIR=$(mktemp -d)
mkfifo "$DIR/LOG_FIFO"
logger -t s3ql -p local0.info < "$DIR/LOG_FIFO" &
exec > "$DIR/LOG_FIFO"
exec 2>&1
rm -rf "$DIR"
# Check and mount file system
fsck.s3ql --batch "$BUCKET"
exec mount.s3ql --upstart --allow-other "$BUCKET" "$MOUNTPOINT"
end script
pre-stop script
umount.s3ql "$MOUNTPOINT"
end script
После добавления этого сценария теоретически вы сможете перезагрузить компьютер и автоматически смонтировать ведро, но это то, где я столкнулся с проблемой.Мой не был смонтирован.
Моя проблема была вызвана тем, что upstart запускал скрипт от имени root, но я создал файловую систему как другой пользователь.Как только я скопировал каталог .s3ql из домашнего каталога пользователя, в который я вошел, как / root, проблема была решена.
Надеюсь, это поможет кому-то еще.Несмотря на то, что я долгое время не использовал мое смонтированное ведро S3, я впечатлен тем, как прошли мои первоначальные тесты.
Кроме того, этот ответ был написан примерно через неделю после того, как решение было найдено.Я думаю, что я охватил все, но если вы обнаружите, что я пропустил шаг, дайте мне знать, и я добавлю это.Вы также захотите прочитать руководство , его действительно стоит прочитать, если вы собираетесь использовать s3ql.