¿Cómo crear un sistema de archivos s3ql y montarlo automáticamente al arrancar?

He estado experimentando con s3ql en Ubuntu 10.04, usándolo para montar buckets de Amazon S3. Sin embargo, me gustaría mucho que los montara automáticamente. ¿Alguien sabe cómo hacer eso?


Solución:

Gracias a la ayuda de Nikratio de s3ql Finalmente puedo montar buckets S3 automáticamente cuando se inicia el sistema. Definitivamente querrás mirar el manual, ¡pero aquí están los conceptos básicos de cómo hacerlo!

El primer paso es crear un archivo authinfo. Este archivo debe colocarse en un directorio .s3ql dentro del directorio de inicio del usuario que lo usará. El archivo authinfo contiene información de inicio de sesión que permite a s3ql montar depósitos sin preguntar. A continuación se muestra un ejemplo de cómo debería verse su archivo authinfo. La primera línea contiene sus Credenciales de seguridad de Amazon. El segundo contiene la ubicación y la contraseña de su depósito. Puede agregar varias líneas de depósito a este archivo si es necesario, pero solo estoy usando una en este ejemplo. En este punto, la contraseña del depósito puede ser cualquier cosa.

backend s3 machine any login ASDFGHJKL password ZXCVBNM
storage-url s3://mybucket password mypassword

El nombre del depósito debe ser único. No hay dos usuarios que tengan el mismo nombre de depósito, por lo que es una buena idea iniciar sesión en Amazon Web Services y probar nombres diferentes hasta que encuentre uno que esté disponible. Una vez que haya encontrado uno, deberá eliminarlo, ya que s3ql lo volverá a crear cuando cree su sistema de archivos s3ql. Si el depósito ya existe, recibirá un error.

Para crear el sistema de archivos, use el comando:

mkfs.s3ql s3://mybucket

Le pedirá su contraseña de cifrado. Debe ser la misma que la contraseña del depósito en el archivo authinfo.

Ahora que ha creado su sistema de archivos, puede montarlo usando el comando:

mount.s3ql s3://mybucket /mnt/s3/bucket

Por supuesto, el nombre de su depósito y el punto de montaje variarán.

Ahora, si queremos montar este depósito automáticamente al arrancar, necesitamos agregar un script advenedizo a / etc / init. Afortunadamente, s3ql viene empaquetado con uno, s3ql.conf.

Agregué "--allow-other" al comando mount.s3ql para permitir que los usuarios que no sean root accedan al depósito montado.

#
# 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

Después de agregar este script, en teoría debería poder reiniciar y montar su depósito automáticamente, pero aquí es donde tuve problemas. El mío no estaba siendo montado.

Mi problema fue causado por el hecho de que el advenedizo estaba ejecutando el script como root, pero yo había creado el sistema de archivos como otro usuario. Una vez que copié el directorio .s3ql del directorio de inicio del usuario con el que había iniciado sesión como / root, el problema se resolvió.

Espero que esto ayude a alguien más. Aunque no he estado usando mi balde S3 montado durante mucho tiempo, estoy impresionado con cómo han ido mis pruebas iniciales.

Además, esta respuesta se escribió aproximadamente una semana después de que se encontró la solución. Creo que lo he cubierto todo, pero si descubre que me he perdido un paso, avíseme y lo agregaré. También querrá leer el manual, realmente vale la pena leerlo si tiene la intención de utilizar s3ql.

preguntado el 08 de enero de 11 a las 15:01

misma pregunta y respuesta en dos foros diferentes de stackexchange? askubuntu.com/questions/20574 No creo que sea una buena idea. -

1 Respuestas

Con un poco de ayuda de Nikratio, finalmente puedo montar mi cubo S3 automáticamente en el arranque. Actualicé mi pregunta con la solución.

Respondido el 22 de enero de 11 a las 21:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.