LoginSignup
2
4

More than 1 year has passed since last update.

さくらのクラウドでオブジェクトストレージをマウントする

Last updated at Posted at 2016-12-12

何ができるか

さくらのクラウドで作成したサーバに同じくさくらのクラウドで
提供されているオブジェクトストレージをマウントすることができる。
もう、静的なファイルの置き場(容量)に悩まなくても済む(?)

[root@objstorage s3fs-fuse]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        16G  2.0G   13G  14% /
devtmpfs        483M     0  483M   0% /dev
tmpfs           497M     0  497M   0% /dev/shm
tmpfs           497M  6.5M  490M   2% /run
tmpfs           497M     0  497M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/0
s3fs            256T     0  256T   0% /mnt/objstoragedir #←コレ!めっちゃ容量ある!
[root@objstorage s3fs-fuse]# 

なぜこの記事を書いたのか

思いの外、情報が少なく先人の方々が書いた記事通りに行かないこともあり、
躓いたので自分の備忘録として。

先人たちの記事(ありがたや)

http://qiita.com/sh_cs/items/9cd9d1b4d902ef750ab6
https://www.softel.co.jp/blogs/tech/archives/4660

前提

  • さくらのクラウドでサーバは作成済み。
  • OSはcentOS7 でインストール直後で何もしていない。
    CentOS Linux release 7.3.1611 (Core)
  • オブジェクトストレージにはバケットを作成済み

s3fsのインストール

  • 注意 :s3fsのバージョンは2016/12/17の時点で1.80ですが、さくらインターネットのサイトのこの部分に 書かれている
    バージョンの1.74以外だとオブジェクトストレージからダウンロードするときになんだかうまくいかないとか、
    マウントしたのにいきなり切断されるとかあるようなので、 1.74 を使用するのがよいです。
■ yumで必要なものをインストール
# yum install yum install pkgconfig libcurl libcurl-devel libxml2-devel make automake gcc libstdc++-devel gcc-c++ openssl-devel wget fuse-devel
# cd /usr/local/src
# wget https://github.com/libfuse/libfuse/releases/download/fuse-3.0.0/fuse-3.0.0.tar.gz
# tar zxvf fuse-3.0.0.tar.gz
# cd fuse-3.0.0
# ./configure --prefix=/usr
# make
# make install
# ldconfig
# modprobe fuse
# cd /usr/local/src
# wget "https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.74.zip"
# unzip v1.74.zip
# cd s3fs-fuse-1.74
# ./autogen.sh
# ./configure --prefix=/usr
# make
# make install

アクセスキーの設定

1行1バケットで書く

# vi ~/.passwd-s3fs
バケット名:アクセスキー:シークレットキー
-----
■記載例
mybucket:mybucket:himitsunopasswordhimituhimitsu
-----

# chmod 600 ~/.passwd-s3fs
# echo 'user_allow_other' >> /etc/fuse.conf

マウントポイントの作成

# mkdir -p /mnt/objstoragedir

objstoragedir の部分は任意

マウントする

# s3fs  バケット名 マウントポイント -o allow_other,url=https://b.sakurastorage.jp,nomultipart
-----
■記載例
# s3fs mybucket /mnt/objstoragedir/ -o allow_other,url=https://b.sakurastorage.jp,nomultipart
-----

マウントできた!

[root@objstorage s3fs-fuse]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        16G  2.0G   13G  14% /
devtmpfs        483M     0  483M   0% /dev
tmpfs           497M     0  497M   0% /dev/shm
tmpfs           497M  6.5M  490M   2% /run
tmpfs           497M     0  497M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/0
s3fs            256T     0  256T   0% /mnt/objstoragedir #←コレ!めっちゃ容量ある!
[root@objstorage s3fs-fuse]# 

書き込んで見る

[root@objstorage objstoragedir]# time dd if=/dev/zero of=test1G bs=1G count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 223.14 s, 4.8 MB/s

real    3m43.389s
user    0m0.000s
sys     0m4.193s
[root@objstorage objstoragedir]#

できたファイルを確認してみる

CUIで確認

[root@objstorage objstoragedir]# ls -lah
total 1.1G
drwxrwxrwx  1 root root    0 Jan  1  1970 .
drwxr-xr-x. 3 root root 4.0K Dec 12 22:11 ..
-rw-r--r--  1 root root 1.0G Dec 12 22:14 test1G #←できてる!
[root@objstorage objstoragedir]# 

コントロールパネルから確認

できてる!
file.png

おしまい。

個人的にredmineとかをファイルを添付する系のものをインストールするときに、
20GBのディスクだと心もとないし、かと言ってそのために大きいディスクを用意するのもなぁって感じだったので、
これで解決するといいなぁ(まだ試していない。)

github

追記

s3fsのバージョンは1.74でないと

マウント時に'-o nomultipart'オプションを付けないと20M以上のファイルのダウンロード(get)ができないようです。

とコメントいただいたので、「ふぁl!?」っと思って試してみたらアドバイス通りできなかったので修正しました。

2
4
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4