6

I use an Amazon S3 bucket to deliver some of my server's content. I was able to mount it successfully, and grant Apache rights over it, but can't get it mounted properly at reboot.

I updated my /etc/fstab with this line, but nothing happens when I boot

s3fs#my-bucket-name /mnt/s3_bucket fuse allow_other,umask=227,uid=33,gid=33,use_cache=/root/cache 0 0

So, I tried another way, commented said line, and just put my command line in /etc/init.d/local :

#!/usr/bin/env bash
s3fs -o allow_other,uid=33,gid=33,umask=227,use_cache=/root/cache my-bucket-name /mnt/s3_bucket

... didn't work either.

I ended up putting a cron, and now, it works, but it feels terribly hacky to me, and I wonder why mounting it at start doesn't work.

//Crontab
*/10 * * * * ~/mountBucket.sh 1>/dev/null

//Mount script
#!/usr/bin/env bash
if [[ -d /mnt/s3_bucket/someBucketVirtualDirectoryName ]] ; then echo 'Bucket already mounted' ; else s3fs -o allow_other,uid=33,gid=33,umask=227,use_cache=/root/cache my-bucket-name /mnt/s3_bucket ; fi 1>/dev/null

Is there something I missed ?
I'm Using Ubuntu 14.04.4 LTS, with Fuse 2.9.2


EDIT : Here is another unrelated, yet important performance issue I had to figure out by myself:

If your system includes locate and/or mlocate (and Ubuntu 14.04 does), you may want to add an exception, so that it does NOT scan your bucket. I had to modify both my /etc/updatedb.conf and /etc/cron.daily/locate, adding " /mnt/my-bucket-name" to PRUNEPATHS and " fuse.s3fs" to PRUNEFS I suppose adding fuse.s3fs should be enough, but... no time to take risks right now :)

Balmipour
  • 324

3 Answers3

6

You want to add _netdev to your fstab:

s3fs#my-bucket-name /mnt/s3_bucket fuse _netdev,allow_other,umask=227,uid=33,gid=33,use_cache=/root/cache 0 0

khc
  • 336
0

for me, using Amazon Linux 2 this worked:

s3fs#my.bucket.name  /mount/path fuse _netdev,allow_other,iam_role,url=http://s3.amazonaws.com 0 0

From: https://github.com/s3fs-fuse/s3fs-fuse/issues/1138

0

s3fs#my.bucket.name

That hash character after s3fs... that effectively stopped my EC2 from booting. I am not particularly familiar with servers, probably shouldn't be allowed near them, but I wanted to check if that syntax is actually correct for Ubuntu 20.04?

Yes - sorry this is 5yrs too late for a question... just now trying to mount S3 on reboot in AWS...