2011-01-08 7 views
3

Ich habe experimentiert mit s3ql auf Ubuntu 10.04, damit Amazon S3 Buckets zu montieren. Wie auch immer, ich möchte es wirklich automatisch mounten. Weiß jemand, wie man das macht?Wie erstellt man ein s3ql Dateisystem und mountet es automatisch beim Booten?


Lösung:

Dank Hilfe von Nikratio von s3ql ich endlich in der Lage bin S3 Eimer zu montieren automatisch beim Systemstart. Sie werden auf jeden Fall die manual betrachten wollen, aber hier sind die Grundlagen, wie es geht!

Der erste Schritt besteht darin, eine Authinfo-Datei zu erstellen. Diese Datei sollte in einem .s3ql-Verzeichnis im Home-Verzeichnis des Benutzers abgelegt werden, der sie verwenden wird. Die Authinfo-Datei enthält Anmeldeinformationen, die es s3ql ermöglichen, Buckets ohne Eingabeaufforderung zu mounten. Im Folgenden finden Sie ein Beispiel dafür, wie Ihre Authinfo-Datei aussehen sollte. Die erste Zeile enthält Ihre Amazon-Sicherheitsanmeldeinformationen. Die zweite enthält den Speicherort und das Passwort für Ihren Bucket. Sie können dieser Datei bei Bedarf mehrere Bucket-Zeilen hinzufügen, aber ich verwende nur eine in diesem Beispiel. An diesem Punkt kann das Bucket-Passwort alles sein.

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

Der Bucket-Name muss eindeutig sein. Keine zwei Benutzer können den gleichen Bucket-Namen haben. Daher ist es eine gute Idee, sich bei Amazon Web Services anzumelden und verschiedene Namen auszuprobieren, bis Sie einen verfügbaren finden. Sobald Sie einen gefunden haben, müssen Sie ihn löschen, da s3ql ihn beim Erstellen Ihres s3ql-Dateisystems neu erstellt. Wenn der Bucket bereits existiert, erhalten Sie einen Fehler.

das Dateisystem zu erstellen, verwenden Sie den Befehl:

mkfs.s3ql s3://mybucket 

Es wird Sie für Ihre Verschlüsselung Passwort gefragt. Dies sollte dem Bucket-Passwort in der Authinfo-Datei entsprechen.

Nun, da Ihr Dateisystem erstellt wird, können Sie es montieren Sie den Befehl:

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

Natürlich Ihre Bucket-Namen und Mount-Punkt variieren.

Wenn wir diesen Bucket beim Booten automatisch mounten möchten, müssen wir ein Upstart-Skript zu/etc/init hinzufügen. Zum Glück kommt s3ql mit einer, s3ql.conf.

Ich habe dem Befehl mount.s3ql "allow-other" hinzugefügt, damit andere Benutzer als root auf den bereitgestellten Bucket zugreifen können.

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

Nachdem dieses Skript hinzugefügt, in der Theorie sollten Sie in der Lage sein, Ihre Eimer automatisch gemountet neu zu starten und haben, aber das ich lief ist sind in Schwierigkeiten. Meins wurde nicht montiert.

Mein Problem wurde durch die Tatsache verursacht, dass Upstart das Skript als root ausführte, aber ich hatte das Dateisystem als ein anderer Benutzer erstellt. Nachdem ich das .s3ql-Verzeichnis aus dem Home-Verzeichnis des Benutzers, bei dem ich angemeldet war, nach/root kopiert hatte, war das Problem gelöst.

Ich hoffe, dass dies jemand anderen da draußen hilft. Obwohl ich meinen montierten S3-Eimer nicht lange benutzt habe, bin ich beeindruckt, wie meine ersten Tests verlaufen sind.

Auch diese Antwort wurde etwa eine Woche nach der Lösung geschrieben.Ich denke, ich habe alles abgedeckt, aber wenn Sie feststellen, dass ich einen Schritt verpasst habe, lassen Sie es mich wissen und ich füge es hinzu. Sie sollten auch die manual lesen, es ist wirklich lesenswert, wenn Sie beabsichtigen, s3ql zu verwenden.

+0

gleiche Frage und Antwort auf zwei verschiedenen Foren Stackexchange ?? https://askubuntu.com/questions/20574 Ich denke nicht, dass dies eine gute Idee ist. –

Antwort

1

Mit etwas Hilfe von Nikratio kann ich endlich meinen S3-Bucket automatisch beim Booten montieren. Ich habe meine Frage mit der Lösung aktualisiert.