Как создать файловую систему s3ql и автоматически монтировать ее при загрузке?

Я экспериментировал с s3ql в Ubuntu 10.04, используя его для монтирования корзин Amazon S3. Однако мне бы очень хотелось, чтобы они монтировались автоматически. Кто-нибудь знает как это сделать?


Решение:

Благодаря помощи Никратио из s3ql я наконец-то могу автоматически монтировать корзины S3, когда система сапоги. Вам определенно стоит ознакомиться с руководством, но вот основы того, как сделать это!

Первым шагом является создание файла 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

Конечно, имя вашей корзины и точка монтирования будут отличаться.

Теперь, если мы хотим автоматически монтировать это ведро при загрузке, нам нужно добавить скрипт upstart в /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 <[email protected]>"

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.


person ks78    schedule 08.01.2011    source источник
comment
один и тот же вопрос и ответ на двух разных форумах stackexchange?? askubuntu.com/questions/20574 Я не думаю, что это хорошая идея.   -  person Zia Ul Rehman Mughal    schedule 21.09.2017


Ответы (1)


С некоторой помощью Nikratio я наконец-то смог автоматически монтировать корзину S3 при загрузке. Я обновил свой вопрос с решением.

person ks78    schedule 22.01.2011