docker」カテゴリーアーカイブ

Scality S3 Server (Object Storage) を使ってみる

OSSのオブジェクトストレージ Scality S3 Server をDocker 上で運用

運用のオブジェクトストレージには、Windows クライアント、ownCloud、Linux等のクライアントからのアクセスが出来ます

構成例

  • Scality S3 オブジェクトストレージ (Dockerで運用 IP=192.168.100.56:8000 )
  • Windows ユーザー /  Cyberduck で オブジェクトストレージ  へアクセス
  • ownCloud ユーザー /  外部ストレージとして オブジェクトストレージ  へアクセス
  • Linux ユーザー /  aws cli  コマンドなどで オブジェクトストレージ  へアクセス

 

Dockerの環境

docker 環境 ( CentOS 7 / xfs file system / IP=192.168.100.56 )

標準の scality/s3server イメージをダウンロード

# docker   pull    scality/s3server

 

コンテナの実行

# docker  run  -d  –name  s3server  -p  8000:8000  scality/s3server

docker container IP  :   192.168.100.56:8000

 

Windows クライアントから Scality S3 オブジェクトストレージへのアクセス

S3 HTTP を選択

  • IP 192.168.100.56:8000
  • アクセスキー accessKey1
  • シークレットアクセスキー verySecretKey1

cyberduck-1

フォルダを作成 test-new

cyberduck-2

 

ファイルアップロード & フォルダを作成 2nd-folder

cyberduck-3

 

ownCloudから Scality S3 オブジェクトストレージ へのアクセス

ownCloud ( IP=192.168.100.50 ) の設定

ownCloud の外部ストレージとして Object Storage (IP=192.168.100.56:8000 ) へのアクセスを設定

  • 外部ストレージを有効に設定
  • 外部ストレージを追加 : type は amazon S3
  • フォルダ名は、Cyberduckを利用時にObject Storage へ作成した test-new
  • バケット名も test-new
  • IP : 192.168.100.56 :  8000
  • アクセスキー : accessKey1
  • パスワード : verySecretKey1

赤色の☐ が 緑色の〇 になると 接続完了です

owncloud-ext-1

ownCloud へアクセス

test-new フォルダーが 表示されています

owncloud-ext-4

 

test-new フォルダへ移動

owncloud-ext-2

2nd-folder フォルダ へ移動 ( test-new > 2nd-folder )

owncloud-ext-3

Linux からオブジェクトストレージへアクセス

aws cli でアクセス

Client ( IP = 192.168.100.60 ) から aws cli を利用して、Object Storage ( 192.168.100.56:8000) へアクセス

  • # curl  ”https://bootstrap.pypa.io/get-pip.py”  -o  “get-pip.py”
  • # sudo  pip  install  awscli
  • # mkdir  ~/.aws
  • # cat  ~/.aws/credentials

 

 

s3 コマンドでのフォルダの確認

[root@localhost]# aws  s3  –endpoint-url  http://192.168.100.56:8000  ls
2017-05-18  17:26:03   test-new

 

s3コマンドでファイルのアップロード (php.log ファイルを test-new バケット以下にアップロード)

[root@localhost]# aws  s3  cp  /tmp/php.log  –endpoint-url http://192.168.100.56:8000 s3://test-new
upload :  ./php.log to    s3://test-new/php.log

 

s3コマンドでバケットを削除 ( test-new バケット 内のファイルなどの削除・test-new バケットは削除できない )

[root@localhost]# aws s3 rb s3://test-new –endpoint-url http://192.168.100.56:8000 –force
delete: s3://test-new/php.log
delete: s3://test-new/xpdf-3.04-6.el6.x86_64.rpm
delete: s3://test-new/2nd-folder/
delete: s3://test-new/am1-002620.pdf
remove_bucket: test-newh ~0 file(s) remaining (calculating…)

 

S3API コマンドの例

[root@localhost tmp]# aws s3api –endpoint-url http://192.168.100.56:8000 list-buckets
{
“Owner”: {
“DisplayName”: “Bart”,
“ID”:   “79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be”
},
“Buckets”: [
{
“CreationDate”: “2017-05-19T03:35:02.332Z”,
“Name”: “test-new”
}
]
}

 

 

[root@localhost tmp]# aws s3api –endpoint-url http://192.168.100.56:8000 get-bucket-acl –bucket test-new
{
“Owner”: {
“DisplayName”: “Bart”,
“ID”: “79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be”
},
“Grants”: [

 

 Docker コンテナのデータ保持について

[root@centos72 containers]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bd313afc119b scality/s3server “/usr/src/app/docker-” 34 hours ago Up 4 hours 0.0.0.0:8000->8000/tcp s3server

scality/s3serverコンテナは、利用しない場合には廃棄ではなく停止をさせます

# docker  stop  bd313afc119b

必要な際には停止したコンテナを再起動させることで、以前に登録したオブジェクトストレージ内のデータは残っており、そのまま利用が出来ます。

# docker start  bd313afc119b

[root@localhost]# aws  s3  –endpoint-url  http://192.168.100.56:8000  ls
2017-05-19 12:35:02 test-new

 

scality/s3serverを利用することで、自前のオブジェクトストレージの運用が出来ます。