13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IBM Cloud Object Storageを使ってみた

Last updated at Posted at 2017-09-08

#内容IBM cloudで提供しているIBM Cloud ObjectStorage(ICOS)の使い方です。
LinuxからCLI(awscli)とFilesystem in Userspace(goofys)で利用してみました。

#参考記事

#ICOS(IBM Cloud Object Storage)とは
AWSのs3互換のオブジェクトストレージです。(旧cleversafe社の買収製品)
IBM cloudのストレージサービスの1つに組み込まれました。
IBM cloudでは従来のOpenstack SwiftベースのオブジェクトストレージとともにICOSが加わったことになります。

ストレージクラスや料金体系については[こちら]を参照してください。

#ICOSのオーダー

IBM cloudポータルからのメニューパスは次の通りです。

[IBM cloudコンソール]->[インフラストラクチャー]->[オブジェクトストレージ]

ICOS-0.png

[オブジェクトストレージの注文]をクリックします。

ICOS-2.png

料金体系が表示されます。画面下部にある[注文]をクリックしてオーダー完了です。
(従量課金ですので気にせずオーダーします。)

ICOS-3.png

作成されたアカウントをクリックして、[資格情報の表示]をクリックします。
[ACCESS KEYS]の欄にあるアクセスキーID秘密アクセス・キーをメモします。
この情報は後述のアクセスツールで使用します。

ICOS-4.png

CLI(awscli)でのアクセス

awscliをインストールします。

RHEL7での例です。

$ sudo yum install python2-pip
$ sudo pip install awscli


アカウント情報を登録します。
先ほどメモした資格情報`アクセスキーID`、`秘密アクセス・キー`を入力します。
regionへは`us-geo`を入力します。
> 2017/09執筆時点では日本国内のリージョンはありません。最寄りのusとしてます。

$ aws configure
AWS Access Key ID []: ****************
AWS Secret Access Key []: [****************
Default region name []: us-geo
Default output format []: json


アクセス確認で`ls`参照コマンドを実行しました。
endpointはデフォルトでawsさんを参照してしまいますので、明示が必要です。

$ aws s3 ls --endpoint=https://s3-api.sjc-us-geo.objectstorage.service.softlayer.net
2017-08-31 04:42:26 my-bucket


## ICOSのエンドポイントとストレージクラス

[エンドポイント一覧](https://ibm-public-cos.github.io/crs-docs/endpoints)

[ストレージクラス] 
ストレージクラスはリージョンとクラスで示されます。
バケットを作る際に利用します。
 
|リージョン | Standard | Vault     | ColdVault   | Flex  | 
|--------- |-------- |---|----|----|----|
|us-geo   |us-standard|us-vault|us-cold |us-flex     |
|us-east  |us-east-standard |us-east-vault |us-east-cold |us-east-flex |
|us-south |us-south-standard |us-south-vault |us-south-cold |us-south-flex|
|eu-geo   |eu-standard |eu-vault |eu-cold |eu-flex |

ストレージクラスはバケットを作成する際に`--region`パラメタで指定してください。

$ aws s3 mb s3://my-vault --region=us-valut --endpoint=https://s3-api.sjc-us-geo.objectstorage.service.softlayer.net
make_bucket: my-vault

その他の操作はaws s3と同様となります。

#Filesystem in Userspace(goofys)でマウントしてアクセス

[goofys](https://github.com/kahing/goofys)はs3fs同様にマウントするためのツールです。
s3fsより高速との噂と実績なので試してみました。

### goofysのインストール 
- golangパッケージをインストールし、goofysをビルドします。

> golangは1.7以上が必要ですが、RHEL7ではgolang v1.6.xが提供されているため、
> ディストリビューション外の goリポジトリから最新golangをインストールします。

$ sudo rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO
$ sudo curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo
$ sudo yum clean all
$ sudo yum install golang git fuse

GOホームディレクトリの作成

$ sudo mkdir /usr/local/go
$ sudo su -

export GOPATH=/usr/local/go

export PATH=$PATH:$GOPATH/bin

go get github.com/kahing/goofys

go install github.com/kahing/goofys

ビルドされていることを確認

ls -l /usr/local/go/bin/goofys

-rwxr-xr-x. 1 root root 13915583 9月 7 03:53 /usr/local/go/bin/goofys

誰でも利用できるように/usr/local/binへsymlinkを作成

ln -sf /usr/local/go/bin/goofys /usr/local/bin/goofys

type goofys

goofys はハッシュされています (/usr/local/bin/goofys)


### マウントの仕方

手動でマウントする例は以下となります。

goofys --endpoint=https://s3-api.sjc-us-geo.objectstorage.service.networklayer.com my-bucket /ext/icos

df -h

ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/xvda2 25G 4.7G 19G 21% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 8.4M 1.8G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/xvda1 240M 119M 109M 53% /boot
tmpfs 354M 0 354M 0% /run/user/0
my-bucket 1.0P 0 1.0P 0% /ext/icos <--1ペタで表示される。(※使用量は見えないです)


通常のファイル通り、findコマンドも利用できます。

find /ext/icos -ls

 1    4 drwxr-xr-x   2 root     root         4096  9月  7 04:41 /ext/icos
 4 1488790 -rw-r--r--   1 root     root     1524520960  9月  7 02:39 /ext/icos/WATSON.tar
 5 3207610 -rw-r--r--   1 root     root     3284592640  9月  7 03:17 /ext/icos/plyabook.tar



### 自動マウントさせる場合(/etc/fstab)

fstabへ以下の様に記述します。

/usr/local/bin/goofys#my-bucket /ext/icos fuse _netdev,--endpoint=https://s3-api.sjc-us-geo.objectstorage.service.networklayer.com 0 0


mount 

#sudo mount /ext/icos

df -h

ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/xvda2 25G 4.7G 19G 21% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 8.4M 1.8G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/xvda1 240M 119M 109M 53% /boot
tmpfs 354M 0 354M 0% /run/user/0
my-bucket 1.0P 0 1.0P 0% /ext/icos <--1ペタで表示される。(※使用量は見え

>注意 API endpointの不調や切り替えが発生した場合や、クライアント側の過負荷等に依存し、マウントが切れる可能性があるため、別途、監視や自動リカバリの実装が必要です。

13
14
0

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
13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?